@manta-eu/react 0.1.10 → 0.2.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/dist/components/channel-icon/index.d.ts +1 -0
- package/dist/components/channel-icon/index.d.ts.map +1 -1
- package/dist/components/channel-icon/index.js +1 -1
- package/dist/components/channel-icon/index.js.map +1 -1
- package/dist/components/chat-view/ChatTurnErrorNotice.d.ts.map +1 -1
- package/dist/components/chat-view/ChatTurnErrorNotice.js +3 -1
- package/dist/components/chat-view/ChatTurnErrorNotice.js.map +1 -1
- package/dist/components/layouts/ConnectedCustomApp.d.ts +13 -0
- package/dist/components/layouts/ConnectedCustomApp.d.ts.map +1 -0
- package/dist/components/layouts/ConnectedCustomApp.js +37 -0
- package/dist/components/layouts/ConnectedCustomApp.js.map +1 -0
- package/dist/components/layouts/Sidebar.d.ts.map +1 -1
- package/dist/components/layouts/Sidebar.js +6 -3
- package/dist/components/layouts/Sidebar.js.map +1 -1
- package/dist/components/planning/ActioningView.d.ts +1 -2
- package/dist/components/planning/ActioningView.d.ts.map +1 -1
- package/dist/components/planning/ActioningView.js +19 -44
- package/dist/components/planning/ActioningView.js.map +1 -1
- package/dist/components/planning/ManualActionCard.d.ts +4 -0
- package/dist/components/planning/ManualActionCard.d.ts.map +1 -1
- package/dist/components/planning/ManualActionCard.js +7 -5
- package/dist/components/planning/ManualActionCard.js.map +1 -1
- package/dist/components/planning/ManualActionList.d.ts +4 -0
- package/dist/components/planning/ManualActionList.d.ts.map +1 -1
- package/dist/components/planning/ManualActionList.js +8 -2
- package/dist/components/planning/ManualActionList.js.map +1 -1
- package/dist/components/planning/actioning-view-utils.d.ts +9 -0
- package/dist/components/planning/actioning-view-utils.d.ts.map +1 -1
- package/dist/components/planning/actioning-view-utils.js +19 -1
- package/dist/components/planning/actioning-view-utils.js.map +1 -1
- package/dist/components/table-skeleton/index.d.ts +2 -0
- package/dist/components/table-skeleton/index.d.ts.map +1 -1
- package/dist/components/table-skeleton/index.js +2 -1
- package/dist/components/table-skeleton/index.js.map +1 -1
- package/dist/components/tooltip/index.d.ts +7 -0
- package/dist/components/tooltip/index.d.ts.map +1 -1
- package/dist/components/tooltip/index.js +10 -1
- package/dist/components/tooltip/index.js.map +1 -1
- package/dist/globals.css +19 -6
- package/dist/graph/createNodeRouter.js +3 -3
- package/dist/graph/createNodeRouter.js.map +1 -1
- package/dist/graph/entity-link.d.ts +14 -0
- package/dist/graph/entity-link.d.ts.map +1 -0
- package/dist/graph/entity-link.js +12 -0
- package/dist/graph/entity-link.js.map +1 -0
- package/dist/graph/graph-list-utils.d.ts +1 -0
- package/dist/graph/graph-list-utils.d.ts.map +1 -1
- package/dist/graph/graph-list-utils.js +1 -0
- package/dist/graph/graph-list-utils.js.map +1 -1
- package/dist/graph/graph-model.d.ts.map +1 -1
- package/dist/graph/graph-model.js +14 -5
- package/dist/graph/graph-model.js.map +1 -1
- package/dist/graph/nodes/BrandAssetAnalysisView.d.ts.map +1 -1
- package/dist/graph/nodes/BrandAssetAnalysisView.js +2 -1
- package/dist/graph/nodes/BrandAssetAnalysisView.js.map +1 -1
- package/dist/graph/nodes/BrandFontSuggestionView.d.ts +3 -0
- package/dist/graph/nodes/BrandFontSuggestionView.d.ts.map +1 -0
- package/dist/graph/nodes/{BrandFontFamilyView.js → BrandFontSuggestionView.js} +22 -13
- package/dist/graph/nodes/BrandFontSuggestionView.js.map +1 -0
- package/dist/graph/nodes/BrandGuidelinesView.js +1 -1
- package/dist/graph/nodes/BrandGuidelinesView.js.map +1 -1
- package/dist/graph/nodes/NodePropertyTable.d.ts +4 -2
- package/dist/graph/nodes/NodePropertyTable.d.ts.map +1 -1
- package/dist/graph/nodes/NodePropertyTable.js +12 -59
- package/dist/graph/nodes/NodePropertyTable.js.map +1 -1
- package/dist/graph/nodes/brand-font.d.ts +8 -0
- package/dist/graph/nodes/brand-font.d.ts.map +1 -1
- package/dist/graph/nodes/brand-font.js +6 -0
- package/dist/graph/nodes/brand-font.js.map +1 -1
- package/dist/graph/nodes/brand-shared.d.ts +0 -3
- package/dist/graph/nodes/brand-shared.d.ts.map +1 -1
- package/dist/graph/nodes/brand-shared.js +1 -4
- package/dist/graph/nodes/brand-shared.js.map +1 -1
- package/dist/graph/nodes/node-property-row.d.ts +30 -0
- package/dist/graph/nodes/node-property-row.d.ts.map +1 -0
- package/dist/graph/nodes/node-property-row.js +35 -0
- package/dist/graph/nodes/node-property-row.js.map +1 -0
- package/dist/graph/property-formatters.d.ts +1 -0
- package/dist/graph/property-formatters.d.ts.map +1 -1
- package/dist/graph/property-formatters.js +4 -1
- package/dist/graph/property-formatters.js.map +1 -1
- package/dist/graph/special-nodes/AttributeList.d.ts +27 -0
- package/dist/graph/special-nodes/AttributeList.d.ts.map +1 -0
- package/dist/graph/special-nodes/AttributeList.js +57 -0
- package/dist/graph/special-nodes/AttributeList.js.map +1 -0
- package/dist/graph/special-nodes/EntityPreview.d.ts +5 -0
- package/dist/graph/special-nodes/EntityPreview.d.ts.map +1 -0
- package/dist/graph/special-nodes/EntityPreview.js +19 -0
- package/dist/graph/special-nodes/EntityPreview.js.map +1 -0
- package/dist/graph/special-nodes/EntityValueChip.d.ts +11 -0
- package/dist/graph/special-nodes/EntityValueChip.d.ts.map +1 -0
- package/dist/graph/special-nodes/EntityValueChip.js +40 -0
- package/dist/graph/special-nodes/EntityValueChip.js.map +1 -0
- package/dist/graph/special-nodes/GenericView.d.ts +2 -1
- package/dist/graph/special-nodes/GenericView.d.ts.map +1 -1
- package/dist/graph/special-nodes/GenericView.js +23 -69
- package/dist/graph/special-nodes/GenericView.js.map +1 -1
- package/dist/graph/special-nodes/card-facts.d.ts +52 -0
- package/dist/graph/special-nodes/card-facts.d.ts.map +1 -0
- package/dist/graph/special-nodes/card-facts.js +189 -0
- package/dist/graph/special-nodes/card-facts.js.map +1 -0
- package/dist/graph/special-nodes/property-icons.d.ts +9 -0
- package/dist/graph/special-nodes/property-icons.d.ts.map +1 -0
- package/dist/graph/special-nodes/property-icons.js +39 -0
- package/dist/graph/special-nodes/property-icons.js.map +1 -0
- package/dist/graph/status-utils.d.ts +16 -0
- package/dist/graph/status-utils.d.ts.map +1 -1
- package/dist/graph/status-utils.js +35 -0
- package/dist/graph/status-utils.js.map +1 -1
- package/dist/graph/types.d.ts +5 -0
- package/dist/graph/types.d.ts.map +1 -1
- package/dist/hooks/use-approve-anyway.d.ts +12 -0
- package/dist/hooks/use-approve-anyway.d.ts.map +1 -0
- package/dist/hooks/use-approve-anyway.js +81 -0
- package/dist/hooks/use-approve-anyway.js.map +1 -0
- package/dist/hooks/use-connection-problems.d.ts.map +1 -1
- package/dist/hooks/useAuth.d.ts +2 -2
- package/dist/hooks/useAuth.d.ts.map +1 -1
- package/dist/hooks/useAuth.js +2 -2
- package/dist/hooks/useAuth.js.map +1 -1
- package/dist/hooks/useOnboardingState.js +1 -1
- package/dist/hooks/useOnboardingState.js.map +1 -1
- package/dist/hooks/useValidateActionPlan.d.ts.map +1 -1
- package/dist/ldo-ui.d.ts +2 -1
- package/dist/ldo-ui.d.ts.map +1 -1
- package/dist/ldo-ui.js +1 -0
- package/dist/ldo-ui.js.map +1 -1
- package/dist/lib/datastore-route-table.d.ts +2 -1
- package/dist/lib/datastore-route-table.d.ts.map +1 -1
- package/dist/lib/datastore-route-table.js +2 -1
- package/dist/lib/datastore-route-table.js.map +1 -1
- package/dist/lib/manual-actions.d.ts +2 -1
- package/dist/lib/manual-actions.d.ts.map +1 -1
- package/dist/lib/manual-actions.js +3 -2
- package/dist/lib/manual-actions.js.map +1 -1
- package/dist/providers/ActiveChatProvider.js +3 -1
- package/dist/providers/ActiveChatProvider.js.map +1 -1
- package/dist/providers/AuthContext.d.ts +2 -1
- package/dist/providers/AuthContext.d.ts.map +1 -1
- package/dist/providers/AuthContext.js.map +1 -1
- package/dist/providers/ChatManagerProvider.d.ts.map +1 -1
- package/dist/providers/ChatManagerProvider.js +22 -9
- package/dist/providers/ChatManagerProvider.js.map +1 -1
- package/dist/providers/chat-socket-auth.d.ts +7 -2
- package/dist/providers/chat-socket-auth.d.ts.map +1 -1
- package/dist/providers/chat-socket-auth.js +87 -16
- package/dist/providers/chat-socket-auth.js.map +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +8 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/routes/activity/detail/ActivityChanges.d.ts +2 -0
- package/dist/routes/activity/detail/ActivityChanges.d.ts.map +1 -1
- package/dist/routes/activity/detail/ActivityChanges.js +8 -7
- package/dist/routes/activity/detail/ActivityChanges.js.map +1 -1
- package/dist/routes/activity/detail/ActivityDetail.d.ts +1 -0
- package/dist/routes/activity/detail/ActivityDetail.d.ts.map +1 -1
- package/dist/routes/activity/detail/ActivityDetail.js +5 -4
- package/dist/routes/activity/detail/ActivityDetail.js.map +1 -1
- package/dist/routes/activity/detail/ActivityStepsRail.d.ts +1 -0
- package/dist/routes/activity/detail/ActivityStepsRail.d.ts.map +1 -1
- package/dist/routes/activity/detail/ActivityStepsRail.js +3 -2
- package/dist/routes/activity/detail/ActivityStepsRail.js.map +1 -1
- package/dist/routes/activity/detail/ActivityTimeline.js +2 -2
- package/dist/routes/activity/detail/ActivityTimeline.js.map +1 -1
- package/dist/routes/activity/detail/NoChangesMessage.d.ts +6 -0
- package/dist/routes/activity/detail/NoChangesMessage.d.ts.map +1 -0
- package/dist/routes/activity/detail/NoChangesMessage.js +10 -0
- package/dist/routes/activity/detail/NoChangesMessage.js.map +1 -0
- package/dist/routes/data-explorer/components/RawTriples.js +1 -1
- package/dist/routes/data-explorer/components/RawTriples.js.map +1 -1
- package/dist/routes/data-explorer/components/RecentTypes.js +1 -1
- package/dist/routes/data-explorer/components/RecentTypes.js.map +1 -1
- package/dist/routes/data-explorer/components/class-detail/Instances.js +1 -1
- package/dist/routes/data-explorer/components/class-detail/Instances.js.map +1 -1
- package/dist/routes/data-explorer/components/namespace-detail/NamespaceClassRow.js +1 -1
- package/dist/routes/data-explorer/components/namespace-detail/NamespaceClassRow.js.map +1 -1
- package/dist/routes/data-explorer/components/ontology-coverage/CoverageTermColumns.js +1 -1
- package/dist/routes/data-explorer/components/ontology-coverage/CoverageTermColumns.js.map +1 -1
- package/dist/routes/data-explorer/components/ontology-coverage/UnobservedRuleVocabulary.js +1 -1
- package/dist/routes/data-explorer/components/ontology-coverage/UnobservedRuleVocabulary.js.map +1 -1
- package/dist/routes/data-explorer/components/record-detail/ChatPreview.js +2 -2
- package/dist/routes/data-explorer/components/record-detail/ChatPreview.js.map +1 -1
- package/dist/routes/data-explorer/declared-namespaces.d.ts +3 -0
- package/dist/routes/data-explorer/declared-namespaces.d.ts.map +1 -1
- package/dist/routes/data-explorer/declared-namespaces.js +21 -13
- package/dist/routes/data-explorer/declared-namespaces.js.map +1 -1
- package/dist/routes/data-explorer/namespaces.d.ts +1 -0
- package/dist/routes/data-explorer/namespaces.d.ts.map +1 -1
- package/dist/routes/data-explorer/namespaces.js +7 -6
- package/dist/routes/data-explorer/namespaces.js.map +1 -1
- package/dist/routes/datastores/components/DeleteDatastoreDialog.d.ts +10 -0
- package/dist/routes/datastores/components/DeleteDatastoreDialog.d.ts.map +1 -0
- package/dist/routes/datastores/components/DeleteDatastoreDialog.js +20 -0
- package/dist/routes/datastores/components/DeleteDatastoreDialog.js.map +1 -0
- package/dist/routes/datastores/flatten.d.ts +1 -0
- package/dist/routes/datastores/flatten.d.ts.map +1 -1
- package/dist/routes/datastores/flatten.js +17 -0
- package/dist/routes/datastores/flatten.js.map +1 -1
- package/dist/routes/datastores/hooks/useDatastoreColumns.d.ts +3 -1
- package/dist/routes/datastores/hooks/useDatastoreColumns.d.ts.map +1 -1
- package/dist/routes/datastores/hooks/useDatastoreColumns.js +14 -6
- package/dist/routes/datastores/hooks/useDatastoreColumns.js.map +1 -1
- package/dist/routes/datastores/index.d.ts.map +1 -1
- package/dist/routes/datastores/index.js +31 -5
- package/dist/routes/datastores/index.js.map +1 -1
- package/dist/routes/integrations/components/ProviderGroup.js +2 -2
- package/dist/routes/integrations/components/ProviderGroup.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/DataConnectionConnectForm.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/DataConnectionConnectForm.js +13 -6
- package/dist/routes/integrations/components/connect-forms/DataConnectionConnectForm.js.map +1 -1
- package/dist/routes/integrations/components/connect-forms/data-connection-fields.d.ts +3 -0
- package/dist/routes/integrations/components/connect-forms/data-connection-fields.d.ts.map +1 -1
- package/dist/routes/integrations/components/connect-forms/data-connection-fields.js +9 -2
- package/dist/routes/integrations/components/connect-forms/data-connection-fields.js.map +1 -1
- package/dist/routes/plans/components/ActionPlanPage.d.ts.map +1 -1
- package/dist/routes/plans/components/ActionPlanPage.js +4 -7
- package/dist/routes/plans/components/ActionPlanPage.js.map +1 -1
- package/dist/routes/plans/components/PlanDetailRouteContent.d.ts.map +1 -1
- package/dist/routes/plans/components/PlanDetailRouteContent.js +2 -1
- package/dist/routes/plans/components/PlanDetailRouteContent.js.map +1 -1
- package/package.json +12 -7
- package/src/app-subpaths.json +1 -0
- package/src/components/channel-icon/index.tsx +1 -1
- package/src/components/chat-view/ChatTurnErrorNotice.tsx +3 -1
- package/src/components/layouts/ConnectedCustomApp.tsx +63 -0
- package/src/components/layouts/Sidebar.tsx +9 -3
- package/src/components/planning/ActioningView.tsx +62 -70
- package/src/components/planning/ManualActionCard.tsx +66 -14
- package/src/components/planning/ManualActionList.tsx +30 -11
- package/src/components/planning/actioning-view-utils.ts +27 -1
- package/src/components/table-skeleton/index.tsx +7 -1
- package/src/components/tooltip/index.tsx +35 -2
- package/src/graph/createNodeRouter.tsx +3 -3
- package/src/graph/entity-link.tsx +20 -0
- package/src/graph/graph-list-utils.ts +2 -0
- package/src/graph/graph-model.ts +15 -6
- package/src/graph/nodes/BrandAssetAnalysisView.tsx +3 -1
- package/src/graph/nodes/{BrandFontFamilyView.tsx → BrandFontSuggestionView.tsx} +41 -27
- package/src/graph/nodes/BrandGuidelinesView.tsx +1 -1
- package/src/graph/nodes/NodePropertyTable.tsx +32 -143
- package/src/graph/nodes/brand-font.ts +17 -0
- package/src/graph/nodes/brand-shared.tsx +1 -4
- package/src/graph/nodes/node-property-row.tsx +154 -0
- package/src/graph/property-formatters.ts +5 -1
- package/src/graph/special-nodes/AttributeList.tsx +177 -0
- package/src/graph/special-nodes/EntityPreview.tsx +27 -0
- package/src/graph/special-nodes/EntityValueChip.tsx +85 -0
- package/src/graph/special-nodes/GenericView.tsx +49 -139
- package/src/graph/special-nodes/card-facts.ts +278 -0
- package/src/graph/special-nodes/property-icons.ts +59 -0
- package/src/graph/status-utils.ts +40 -0
- package/src/graph/types.ts +4 -0
- package/src/hooks/use-approve-anyway.ts +100 -0
- package/src/hooks/useAuth.ts +3 -3
- package/src/hooks/useOnboardingState.ts +1 -1
- package/src/ldo-ui.ts +8 -0
- package/src/lib/datastore-route-table.ts +4 -2
- package/src/lib/manual-actions.ts +3 -2
- package/src/providers/ActiveChatProvider.tsx +3 -1
- package/src/providers/AuthContext.ts +3 -1
- package/src/providers/ChatManagerProvider.tsx +19 -9
- package/src/providers/chat-socket-auth.ts +95 -16
- package/src/providers/index.tsx +16 -1
- package/src/routes/activity/detail/ActivityChanges.tsx +21 -5
- package/src/routes/activity/detail/ActivityDetail.tsx +24 -5
- package/src/routes/activity/detail/ActivityStepsRail.tsx +4 -2
- package/src/routes/activity/detail/ActivityTimeline.tsx +2 -2
- package/src/routes/activity/detail/NoChangesMessage.tsx +20 -0
- package/src/routes/data-explorer/components/RawTriples.tsx +1 -1
- package/src/routes/data-explorer/components/RecentTypes.tsx +1 -1
- package/src/routes/data-explorer/components/class-detail/Instances.tsx +1 -1
- package/src/routes/data-explorer/components/namespace-detail/NamespaceClassRow.tsx +1 -1
- package/src/routes/data-explorer/components/ontology-coverage/CoverageTermColumns.tsx +1 -1
- package/src/routes/data-explorer/components/ontology-coverage/UnobservedRuleVocabulary.tsx +1 -1
- package/src/routes/data-explorer/components/record-detail/ChatPreview.tsx +2 -2
- package/src/routes/data-explorer/declared-namespaces.ts +21 -13
- package/src/routes/data-explorer/namespaces.ts +7 -6
- package/src/routes/datastores/components/DeleteDatastoreDialog.tsx +78 -0
- package/src/routes/datastores/flatten.ts +15 -0
- package/src/routes/datastores/hooks/useDatastoreColumns.tsx +88 -49
- package/src/routes/datastores/index.tsx +41 -2
- package/src/routes/integrations/components/ProviderGroup.tsx +2 -2
- package/src/routes/integrations/components/connect-forms/DataConnectionConnectForm.tsx +38 -12
- package/src/routes/integrations/components/connect-forms/data-connection-fields.ts +11 -2
- package/src/routes/plans/components/ActionPlanPage.tsx +9 -8
- package/src/routes/plans/components/PlanDetailRouteContent.tsx +4 -3
- package/dist/components/planning/ExecutionActivityRow.d.ts +0 -9
- package/dist/components/planning/ExecutionActivityRow.d.ts.map +0 -1
- package/dist/components/planning/ExecutionActivityRow.js +0 -53
- package/dist/components/planning/ExecutionActivityRow.js.map +0 -1
- package/dist/components/planning/ExecutionSectionItem.d.ts +0 -20
- package/dist/components/planning/ExecutionSectionItem.d.ts.map +0 -1
- package/dist/components/planning/ExecutionSectionItem.js +0 -66
- package/dist/components/planning/ExecutionSectionItem.js.map +0 -1
- package/dist/components/planning/ExecutionSections.d.ts +0 -16
- package/dist/components/planning/ExecutionSections.d.ts.map +0 -1
- package/dist/components/planning/ExecutionSections.js +0 -32
- package/dist/components/planning/ExecutionSections.js.map +0 -1
- package/dist/components/planning/action-plan-icons.d.ts +0 -3
- package/dist/components/planning/action-plan-icons.d.ts.map +0 -1
- package/dist/components/planning/action-plan-icons.js +0 -25
- package/dist/components/planning/action-plan-icons.js.map +0 -1
- package/dist/components/planning/execution-section-model.d.ts +0 -24
- package/dist/components/planning/execution-section-model.d.ts.map +0 -1
- package/dist/components/planning/execution-section-model.js +0 -150
- package/dist/components/planning/execution-section-model.js.map +0 -1
- package/dist/graph/nodes/BrandFontFamilyView.d.ts +0 -3
- package/dist/graph/nodes/BrandFontFamilyView.d.ts.map +0 -1
- package/dist/graph/nodes/BrandFontFamilyView.js.map +0 -1
- package/dist/graph/nodes/BrandFontUploadButton.d.ts +0 -6
- package/dist/graph/nodes/BrandFontUploadButton.d.ts.map +0 -1
- package/dist/graph/nodes/BrandFontUploadButton.js +0 -69
- package/dist/graph/nodes/BrandFontUploadButton.js.map +0 -1
- package/dist/routes/data-explorer/components/TruncateTooltip.d.ts +0 -7
- package/dist/routes/data-explorer/components/TruncateTooltip.d.ts.map +0 -1
- package/dist/routes/data-explorer/components/TruncateTooltip.js +0 -9
- package/dist/routes/data-explorer/components/TruncateTooltip.js.map +0 -1
- package/src/components/planning/ExecutionActivityRow.tsx +0 -89
- package/src/components/planning/ExecutionSectionItem.tsx +0 -184
- package/src/components/planning/ExecutionSections.tsx +0 -97
- package/src/components/planning/action-plan-icons.tsx +0 -27
- package/src/components/planning/execution-section-model.ts +0 -190
- package/src/graph/nodes/BrandFontUploadButton.tsx +0 -95
- package/src/routes/data-explorer/components/TruncateTooltip.tsx +0 -25
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useBringDatastoreOnlineMutation,
|
|
3
|
+
useDeleteDatastoreMutation,
|
|
3
4
|
useOrganizationLinkingQuery,
|
|
4
5
|
useLinkOrganizationToProviderMutation,
|
|
5
6
|
useLinkUnlinkedDatastoreMutation,
|
|
@@ -26,6 +27,7 @@ import { toast } from "sonner";
|
|
|
26
27
|
import type { DatastoreFormTarget } from "./components/DatastoreFormDialog";
|
|
27
28
|
import { DatastoresToolbar } from "./components/DatastoresToolbar";
|
|
28
29
|
import { DatastoreTableSkeleton } from "./components/DatastoreTableSkeleton";
|
|
30
|
+
import { DeleteDatastoreDialog } from "./components/DeleteDatastoreDialog";
|
|
29
31
|
import { LinkUnlinkedDatastoreDialog, type SuggestedLinkTarget } from "./components/LinkUnlinkedDatastoreDialog";
|
|
30
32
|
import { ProvisionDatastoreDialog } from "./components/ProvisionDatastoreDialog";
|
|
31
33
|
import { RenameDatastoreGroupDialog } from "./components/RenameDatastoreGroupDialog";
|
|
@@ -34,6 +36,7 @@ import {
|
|
|
34
36
|
existingOrganizationNameKeys,
|
|
35
37
|
hiddenRowCount,
|
|
36
38
|
matchesProviderFilter,
|
|
39
|
+
nestedDatastoreNamesByRowId,
|
|
37
40
|
organizationNameKey,
|
|
38
41
|
organizationNames,
|
|
39
42
|
realmDefaultRow,
|
|
@@ -104,6 +107,7 @@ export function DatastoresRoute() {
|
|
|
104
107
|
|
|
105
108
|
const [formTarget, setFormTarget] = useState<DatastoreFormTarget | null>(null);
|
|
106
109
|
const [pendingRemoval, setPendingRemoval] = useState<DatastoreRow | null>(null);
|
|
110
|
+
const [pendingDeletion, setPendingDeletion] = useState<DatastoreRow | null>(null);
|
|
107
111
|
const [renameTarget, setRenameTarget] = useState<DatastoreRow | null>(null);
|
|
108
112
|
const [linkDialogTarget, setLinkDialogTarget] = useState<string | null>(null);
|
|
109
113
|
const [visibility, setVisibility] = useState<DatastoreRowVisibility>({
|
|
@@ -197,6 +201,25 @@ export function DatastoresRoute() {
|
|
|
197
201
|
},
|
|
198
202
|
});
|
|
199
203
|
|
|
204
|
+
const deleteMutation = useDeleteDatastoreMutation(mantaClient, {
|
|
205
|
+
onSuccess: (result, variables) => {
|
|
206
|
+
void refreshDatastores();
|
|
207
|
+
setPendingDeletion(null);
|
|
208
|
+
const { success, error } = result.deleteDatastore;
|
|
209
|
+
if (!success) {
|
|
210
|
+
toast.error("Couldn't delete the datastore", { description: error ?? undefined });
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
toast.success(`"${variables.confirmName}" was deleted permanently`);
|
|
215
|
+
},
|
|
216
|
+
onError: (error) => {
|
|
217
|
+
setPendingDeletion(null);
|
|
218
|
+
const info = parseError(error, "Couldn't delete the datastore");
|
|
219
|
+
toast.error(info.message, { description: info.description });
|
|
220
|
+
},
|
|
221
|
+
});
|
|
222
|
+
|
|
200
223
|
const restoreMutation = useRestoreDatastoreMutation(mantaClient, {
|
|
201
224
|
onSuccess: (result) => {
|
|
202
225
|
invalidateTree();
|
|
@@ -294,6 +317,7 @@ export function DatastoresRoute() {
|
|
|
294
317
|
[unlinkedData],
|
|
295
318
|
);
|
|
296
319
|
const allRows = useMemo(() => [...treeRows, ...unlinkedRows], [treeRows, unlinkedRows]);
|
|
320
|
+
const nestedDatastoreNames = useMemo(() => nestedDatastoreNamesByRowId(treeRows), [treeRows]);
|
|
297
321
|
const rows = useMemo(() => visibleDatastoreRows(treeRows, visibility), [treeRows, visibility]);
|
|
298
322
|
const unprovisionedCount = useMemo(
|
|
299
323
|
() => hiddenRowCount(treeRows, visibility, "showUnprovisioned", rows.length),
|
|
@@ -462,7 +486,7 @@ export function DatastoresRoute() {
|
|
|
462
486
|
[navigate],
|
|
463
487
|
);
|
|
464
488
|
|
|
465
|
-
const
|
|
489
|
+
const onManageCustomApps = useCallback(
|
|
466
490
|
(row: DatastoreRow) =>
|
|
467
491
|
void navigate(`/custom-apps?${new URLSearchParams({ org: row.organizationAlias }).toString()}`),
|
|
468
492
|
[navigate],
|
|
@@ -488,6 +512,7 @@ export function DatastoresRoute() {
|
|
|
488
512
|
isSwitching,
|
|
489
513
|
indented,
|
|
490
514
|
matchableRowIds,
|
|
515
|
+
nestedDatastoreNamesByRowId: nestedDatastoreNames,
|
|
491
516
|
suggestedMatchByDatastoreId,
|
|
492
517
|
onSelect,
|
|
493
518
|
onAddChild,
|
|
@@ -495,11 +520,12 @@ export function DatastoresRoute() {
|
|
|
495
520
|
onProvision: provisionExisting,
|
|
496
521
|
onLinkExisting,
|
|
497
522
|
onRemove: setPendingRemoval,
|
|
523
|
+
onDelete: setPendingDeletion,
|
|
498
524
|
onRestore,
|
|
499
525
|
onRename: setRenameTarget,
|
|
500
526
|
onRegister,
|
|
501
527
|
onManageUsers,
|
|
502
|
-
|
|
528
|
+
onManageCustomApps,
|
|
503
529
|
onBringOnline,
|
|
504
530
|
isBringingOnline: bringOnlineMutation.isPending,
|
|
505
531
|
onLinkProvider,
|
|
@@ -810,6 +836,19 @@ export function DatastoresRoute() {
|
|
|
810
836
|
/>
|
|
811
837
|
)}
|
|
812
838
|
|
|
839
|
+
{pendingDeletion && isPresent(pendingDeletion.datastoreId) && (
|
|
840
|
+
<DeleteDatastoreDialog
|
|
841
|
+
target={pendingDeletion}
|
|
842
|
+
isDeleting={deleteMutation.isPending}
|
|
843
|
+
onConfirm={(confirmName) => {
|
|
844
|
+
if (isPresent(pendingDeletion.datastoreId)) {
|
|
845
|
+
deleteMutation.mutate({ datastoreId: pendingDeletion.datastoreId, confirmName });
|
|
846
|
+
}
|
|
847
|
+
}}
|
|
848
|
+
onCancel={() => setPendingDeletion(null)}
|
|
849
|
+
/>
|
|
850
|
+
)}
|
|
851
|
+
|
|
813
852
|
{pendingRemoval && isPresent(pendingRemoval.datastoreId) && (
|
|
814
853
|
<DeleteConfirmationDialog
|
|
815
854
|
title="Remove datastore"
|
|
@@ -57,7 +57,7 @@ export function ProviderGroup<Id extends string = ProviderId>(props: ProviderGro
|
|
|
57
57
|
)}
|
|
58
58
|
</header>
|
|
59
59
|
|
|
60
|
-
<div className="flex flex-col gap-2 min-w-0 bg-card py-4
|
|
60
|
+
<div className="flex flex-col gap-2 min-w-0 bg-card py-4">
|
|
61
61
|
{alwaysVisible.map(renderConnection)}
|
|
62
62
|
|
|
63
63
|
{hasOverflow && (
|
|
@@ -90,7 +90,7 @@ export function ProviderGroupSkeleton() {
|
|
|
90
90
|
</div>
|
|
91
91
|
<Skeleton className="h-8 w-24 rounded-md" />
|
|
92
92
|
</header>
|
|
93
|
-
<div className="flex flex-col gap-2 bg-card py-4
|
|
93
|
+
<div className="flex flex-col gap-2 bg-card py-4">
|
|
94
94
|
<ConnectionRowSkeleton />
|
|
95
95
|
<ConnectionRowSkeleton />
|
|
96
96
|
</div>
|
|
@@ -23,6 +23,8 @@ import {
|
|
|
23
23
|
nameSchema,
|
|
24
24
|
pickSettings,
|
|
25
25
|
settingsSchema,
|
|
26
|
+
sourceKey,
|
|
27
|
+
sourceSchema,
|
|
26
28
|
storedValues,
|
|
27
29
|
type ConnectorField,
|
|
28
30
|
type DataConnectionValues,
|
|
@@ -39,22 +41,41 @@ export type StoredConnection = StoredDataConnection & { id: string };
|
|
|
39
41
|
|
|
40
42
|
type Step = StepConfig<DataConnectionValues>;
|
|
41
43
|
|
|
42
|
-
|
|
44
|
+
const newSourceHint =
|
|
45
|
+
"Optional. Lowercase letters and digits. Left blank, Manta reuses the name of an earlier connection to this database, or takes one from the connection name. It can't change later.";
|
|
46
|
+
const editingSourceHint = "Set when the connection was created. It can't change.";
|
|
47
|
+
|
|
48
|
+
function nameStep(providerName: string, editing: boolean): Step {
|
|
43
49
|
return {
|
|
44
50
|
id: "name",
|
|
45
51
|
title: "Name this connection",
|
|
46
52
|
description: `Used to identify this ${providerName} database in Manta.`,
|
|
47
|
-
schema: z.object({ [nameKey]: nameSchema }),
|
|
53
|
+
schema: z.object({ [nameKey]: nameSchema, [sourceKey]: sourceSchema }),
|
|
48
54
|
continueLabel: "Continue",
|
|
49
55
|
render: (form) => (
|
|
50
|
-
<
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
<div className="grid gap-4">
|
|
57
|
+
<Input
|
|
58
|
+
id={inputId(nameKey)}
|
|
59
|
+
label="Name"
|
|
60
|
+
placeholder="Warehouse"
|
|
61
|
+
autoComplete="off"
|
|
62
|
+
error={form.formState.errors[nameKey]?.message?.toString()}
|
|
63
|
+
{...form.register(nameKey)}
|
|
64
|
+
/>
|
|
65
|
+
|
|
66
|
+
{(!editing || isPresent(form.getValues(sourceKey))) && (
|
|
67
|
+
<Input
|
|
68
|
+
id={inputId(sourceKey)}
|
|
69
|
+
label="Source name"
|
|
70
|
+
placeholder="warehouse"
|
|
71
|
+
autoComplete="off"
|
|
72
|
+
disabled={editing}
|
|
73
|
+
helperText={editing ? editingSourceHint : newSourceHint}
|
|
74
|
+
error={form.formState.errors[sourceKey]?.message?.toString()}
|
|
75
|
+
{...form.register(sourceKey)}
|
|
76
|
+
/>
|
|
77
|
+
)}
|
|
78
|
+
</div>
|
|
58
79
|
),
|
|
59
80
|
};
|
|
60
81
|
}
|
|
@@ -117,7 +138,7 @@ export function createSteps(
|
|
|
117
138
|
const required = fields.filter((field) => field.required);
|
|
118
139
|
const optional = fields.filter((field) => !field.required);
|
|
119
140
|
const steps = [
|
|
120
|
-
nameStep(providerName),
|
|
141
|
+
nameStep(providerName, editing),
|
|
121
142
|
connectionStep({ providerName, connectorType, stepFields: required, allFields: fields, editing }),
|
|
122
143
|
...(isPresent(optional) ? [optionalStep(optional, editing)] : []),
|
|
123
144
|
];
|
|
@@ -160,7 +181,12 @@ function DataConnectionWizard(props: DataConnectionWizardProps) {
|
|
|
160
181
|
|
|
161
182
|
async function create(values: DataConnectionValues) {
|
|
162
183
|
await createMutation.mutateAsync({
|
|
163
|
-
input: {
|
|
184
|
+
input: {
|
|
185
|
+
name: values[nameKey],
|
|
186
|
+
connectorType,
|
|
187
|
+
sourceName: values[sourceKey] || undefined,
|
|
188
|
+
settings: pickSettings(values, fields),
|
|
189
|
+
},
|
|
164
190
|
});
|
|
165
191
|
toast.success(`${provider.name} added`, { description: "Manta is testing the connection." });
|
|
166
192
|
}
|
|
@@ -5,12 +5,19 @@ import { z } from "zod";
|
|
|
5
5
|
export type ConnectorField = GQLDataConnectorTypesQuery["dataConnectorTypes"][number]["fields"][number];
|
|
6
6
|
|
|
7
7
|
export const nameKey = "connectionName";
|
|
8
|
+
export const sourceKey = "sourceName";
|
|
8
9
|
|
|
9
10
|
// The setting keys come from the connector descriptor at runtime, so the value type is an index signature.
|
|
10
11
|
export type DataConnectionValues = { [nameKey]: string; [setting: string]: string };
|
|
11
12
|
|
|
12
13
|
export const nameSchema = z.string().trim().min(1, "Name is required").max(64, "64 characters or fewer");
|
|
13
14
|
|
|
15
|
+
export const sourceSchema = z
|
|
16
|
+
.string()
|
|
17
|
+
.trim()
|
|
18
|
+
.regex(/^([a-z][a-z0-9]*)?$/, "Use lowercase letters and digits, starting with a letter")
|
|
19
|
+
.optional();
|
|
20
|
+
|
|
14
21
|
const valuePatterns: Partial<Record<GQLDataConnectorFieldType, { pattern: RegExp; message: string }>> = {
|
|
15
22
|
[GQLDataConnectorFieldType.Integer]: { pattern: /^-?\d+$/, message: "Enter a whole number" },
|
|
16
23
|
[GQLDataConnectorFieldType.Decimal]: { pattern: /^-?\d+(\.\d+)?$/, message: "Enter a number" },
|
|
@@ -40,7 +47,7 @@ export function settingsSchema(fields: readonly ConnectorField[]) {
|
|
|
40
47
|
|
|
41
48
|
// The fields come at runtime, so the built schema has no static output type to infer.
|
|
42
49
|
export function formSchema(fields: readonly ConnectorField[]): z.ZodType<DataConnectionValues, DataConnectionValues> {
|
|
43
|
-
return settingsSchema(fields).extend({ [nameKey]: nameSchema }) as unknown as z.ZodType<
|
|
50
|
+
return settingsSchema(fields).extend({ [nameKey]: nameSchema, [sourceKey]: sourceSchema }) as unknown as z.ZodType<
|
|
44
51
|
DataConnectionValues,
|
|
45
52
|
DataConnectionValues
|
|
46
53
|
>;
|
|
@@ -55,13 +62,14 @@ export function pickSettings(values: DataConnectionValues, fields: readonly Conn
|
|
|
55
62
|
}
|
|
56
63
|
|
|
57
64
|
export function blankValues(fields: readonly ConnectorField[]): DataConnectionValues {
|
|
58
|
-
return { ...Object.fromEntries(fields.map((field) => [field.key, ""])), [nameKey]: "" };
|
|
65
|
+
return { ...Object.fromEntries(fields.map((field) => [field.key, ""])), [nameKey]: "", [sourceKey]: "" };
|
|
59
66
|
}
|
|
60
67
|
|
|
61
68
|
export type DataConnectionSetting = { key: string; value: string };
|
|
62
69
|
|
|
63
70
|
export type StoredDataConnection = {
|
|
64
71
|
name: string;
|
|
72
|
+
sourceName?: string | null;
|
|
65
73
|
settings: readonly DataConnectionSetting[];
|
|
66
74
|
candidateSettings?: readonly DataConnectionSetting[] | null;
|
|
67
75
|
error?: string | null;
|
|
@@ -83,6 +91,7 @@ export function storedValues(stored: StoredDataConnection, fields: readonly Conn
|
|
|
83
91
|
return {
|
|
84
92
|
...Object.fromEntries(fields.map((field) => [field.key, field.secret ? "" : (storedByKey.get(field.key) ?? "")])),
|
|
85
93
|
[nameKey]: stored.name,
|
|
94
|
+
[sourceKey]: stored.sourceName ?? "",
|
|
86
95
|
};
|
|
87
96
|
}
|
|
88
97
|
|
|
@@ -17,8 +17,8 @@ import { ExecutePlanDialog } from "#components/planning/ExecutePlanDialog";
|
|
|
17
17
|
import { isTerminalActionPlanState } from "#components/planning/plan-detail-utils";
|
|
18
18
|
import { useActionPlanDetail } from "#hooks/useActionPlanDetail";
|
|
19
19
|
import { useActionPlanExecution } from "#hooks/useActionPlanExecution";
|
|
20
|
-
import { useActionPlanDiff } from "#ldo-ui";
|
|
21
20
|
import { useMantaClient } from "#providers/index";
|
|
21
|
+
import { KnowledgeGraphStateProvider } from "#providers/KnowledgeGraphStateProvider";
|
|
22
22
|
|
|
23
23
|
export type ActionPlanPageProps = {
|
|
24
24
|
planName: string;
|
|
@@ -46,10 +46,6 @@ export function ActionPlanPage(props: ActionPlanPageProps) {
|
|
|
46
46
|
const viewRef = useRef<ConnectedPlanDetailViewHandle>(null);
|
|
47
47
|
const { mantaBaseUrl } = useMantaClient();
|
|
48
48
|
const { plan, graphDocument, isLoading, error } = useActionPlanDetail(planGraphIri);
|
|
49
|
-
const { data: diff = null, isLoading: isDiffLoading } = useActionPlanDiff({
|
|
50
|
-
planGraphIri,
|
|
51
|
-
enabled: !!planGraphIri,
|
|
52
|
-
});
|
|
53
49
|
const [pageMode, setPageMode] = useState<ActionPlanPageMode>(initialMode);
|
|
54
50
|
const [executePromptNonce, setExecutePromptNonce] = useState(0);
|
|
55
51
|
const [isRerunDialogOpen, setIsRerunDialogOpen] = useState(false);
|
|
@@ -196,11 +192,11 @@ export function ActionPlanPage(props: ActionPlanPageProps) {
|
|
|
196
192
|
{!isLoading && plan && !showPlanningSurface && (
|
|
197
193
|
<ActioningView
|
|
198
194
|
planGraphIri={planGraphIri}
|
|
199
|
-
|
|
200
|
-
isLoading={isLoading || isDiffLoading}
|
|
195
|
+
isLoading={isLoading}
|
|
201
196
|
mantaChatBaseUrl={mantaBaseUrl}
|
|
202
197
|
executionControl={executionControl}
|
|
203
198
|
executePromptNonce={executePromptNonce}
|
|
199
|
+
showActivityLinks={false}
|
|
204
200
|
datastoreId={datastoreId}
|
|
205
201
|
userId={userId}
|
|
206
202
|
hideRunControls={hideRunControls}
|
|
@@ -219,5 +215,10 @@ export function ActionPlanPage(props: ActionPlanPageProps) {
|
|
|
219
215
|
</>
|
|
220
216
|
);
|
|
221
217
|
|
|
222
|
-
|
|
218
|
+
// An exported entry point owns its graph refresh, like EmbeddedChat; hosts may mount it outside one.
|
|
219
|
+
return (
|
|
220
|
+
<KnowledgeGraphStateProvider datastoreId={datastoreId}>
|
|
221
|
+
{renderLayout({ header, body })}
|
|
222
|
+
</KnowledgeGraphStateProvider>
|
|
223
|
+
);
|
|
223
224
|
}
|
|
@@ -152,6 +152,7 @@ export function PlanDetailRouteContent(props: PlanDetailRouteContentProps) {
|
|
|
152
152
|
plan.hasCurrentFacts && isTerminalActionPlanState(effectivePlanState) ? handleOpenRerun : undefined;
|
|
153
153
|
const activeViewMode = viewMode === "visual" && !graphDocument?.size ? "overview" : viewMode;
|
|
154
154
|
const showExecutionSurface = shouldShowActioningSurface && activeViewMode === "overview";
|
|
155
|
+
const rulesSection = <ActionPlanRulesSection planGraphIri={planGraphIri} LinkComponent={Link} />;
|
|
155
156
|
|
|
156
157
|
return (
|
|
157
158
|
<div className="flex min-h-0 flex-1 flex-col overflow-y-auto overflow-x-hidden">
|
|
@@ -183,13 +184,12 @@ export function PlanDetailRouteContent(props: PlanDetailRouteContentProps) {
|
|
|
183
184
|
onExecute={detailExecuteAction}
|
|
184
185
|
onCancel={detailCancelAction}
|
|
185
186
|
onRerun={detailRerunAction}
|
|
186
|
-
rulesSlot={
|
|
187
|
+
rulesSlot={showExecutionSurface ? undefined : rulesSection}
|
|
187
188
|
onRunClick={(activityIri) => navigate(buildActivityHref(activityIri))}
|
|
188
189
|
/>
|
|
189
190
|
{showExecutionSurface && (
|
|
190
191
|
<ActioningView
|
|
191
192
|
planGraphIri={planGraphIri}
|
|
192
|
-
diff={null}
|
|
193
193
|
isLoading={false}
|
|
194
194
|
mantaChatBaseUrl={mantaBaseUrl}
|
|
195
195
|
executionControl={executionControl}
|
|
@@ -201,7 +201,7 @@ export function PlanDetailRouteContent(props: PlanDetailRouteContentProps) {
|
|
|
201
201
|
planGraphIri={planGraphIri}
|
|
202
202
|
emptyFallback={
|
|
203
203
|
isPresent(latestRunIri) ? (
|
|
204
|
-
<div className="h-[60vh]">
|
|
204
|
+
<div className="flex max-h-[60vh] flex-col">
|
|
205
205
|
<ActivityDetail
|
|
206
206
|
activityIri={latestRunIri}
|
|
207
207
|
variant="embedded"
|
|
@@ -214,6 +214,7 @@ export function PlanDetailRouteContent(props: PlanDetailRouteContentProps) {
|
|
|
214
214
|
}
|
|
215
215
|
/>
|
|
216
216
|
)}
|
|
217
|
+
{showExecutionSurface && <div className="mx-auto w-full max-w-7xl px-8 py-6">{rulesSection}</div>}
|
|
217
218
|
</div>
|
|
218
219
|
);
|
|
219
220
|
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { type ResolvedManualActionStatus } from "./execution-section-model.js";
|
|
2
|
-
import type { ExecutionProvenanceActivity } from "#ldo-ui";
|
|
3
|
-
type ExecutionActivityRowProps = {
|
|
4
|
-
activity: ExecutionProvenanceActivity;
|
|
5
|
-
manualActionStatus?: ResolvedManualActionStatus | null;
|
|
6
|
-
};
|
|
7
|
-
export declare function ExecutionActivityRow(props: ExecutionActivityRowProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=ExecutionActivityRow.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionActivityRow.d.ts","sourceRoot":"","sources":["../../../src/components/planning/ExecutionActivityRow.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAG3D,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,EAAE,2BAA2B,CAAC;IACtC,kBAAkB,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;CACxD,CAAC;AAeF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,2CA4BpE"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { humanDuration } from "@manta-eu/lib/humanize";
|
|
3
|
-
import { AlertCircle, Check, ClockFading, Loader2, X } from "lucide-react";
|
|
4
|
-
import { useEffect, useState } from "react";
|
|
5
|
-
import { match } from "ts-pattern";
|
|
6
|
-
import { parseTimestampMs } from "./execution-section-model.js";
|
|
7
|
-
import { cn } from "#lib/utils";
|
|
8
|
-
function resolveIconState(activity, manualActionStatus) {
|
|
9
|
-
if (activity.errorMessage)
|
|
10
|
-
return "error";
|
|
11
|
-
if (manualActionStatus === "REJECTED")
|
|
12
|
-
return "rejected";
|
|
13
|
-
if (manualActionStatus === "COMPLETED" || !!activity.endedAtTime)
|
|
14
|
-
return "completed";
|
|
15
|
-
if (activity.startedAtTime)
|
|
16
|
-
return "running";
|
|
17
|
-
return "pending";
|
|
18
|
-
}
|
|
19
|
-
export function ExecutionActivityRow(props) {
|
|
20
|
-
const { activity, manualActionStatus = null } = props;
|
|
21
|
-
const iconState = resolveIconState(activity, manualActionStatus);
|
|
22
|
-
const hasError = iconState === "error";
|
|
23
|
-
const isPending = iconState === "pending";
|
|
24
|
-
return (_jsxs("div", { className: cn("flex items-center justify-between pl-5 pr-3 py-2", hasError && "bg-error/10"), children: [_jsxs("div", { className: "flex items-center gap-3 min-w-0", children: [match(iconState)
|
|
25
|
-
.with("error", () => _jsx(AlertCircle, { className: "size-4 shrink-0 text-error-foreground" }))
|
|
26
|
-
.with("rejected", () => _jsx(X, { className: "size-4 shrink-0 text-error-foreground" }))
|
|
27
|
-
.with("completed", () => _jsx(Check, { className: "size-4 shrink-0 text-success-foreground" }))
|
|
28
|
-
.with("running", () => _jsx(Loader2, { className: "size-4 shrink-0 text-muted-foreground animate-spin" }))
|
|
29
|
-
.with("pending", () => _jsx(ClockFading, { className: "size-4 shrink-0 text-muted-foreground/40" }))
|
|
30
|
-
.exhaustive(), _jsx("span", { className: cn("text-[12px] font-mono leading-[18px] truncate", hasError ? "text-error-foreground" : isPending ? "text-muted-foreground" : "text-default-foreground"), children: activity.errorMessage ?? activity.entityLabel })] }), _jsx(ActivityElapsed, { activity: activity, hasError: hasError, isPending: isPending })] }));
|
|
31
|
-
}
|
|
32
|
-
function ActivityElapsed(props) {
|
|
33
|
-
const { activity, hasError, isPending } = props;
|
|
34
|
-
const isRunning = !!activity.startedAtTime && !activity.endedAtTime;
|
|
35
|
-
const [now, setNow] = useState(() => Date.now());
|
|
36
|
-
useEffect(() => {
|
|
37
|
-
if (!isRunning)
|
|
38
|
-
return;
|
|
39
|
-
const id = setInterval(() => setNow(Date.now()), 1000);
|
|
40
|
-
return () => clearInterval(id);
|
|
41
|
-
}, [isRunning]);
|
|
42
|
-
if (!activity.startedAtTime) {
|
|
43
|
-
return _jsx("span", { className: "text-[12px] font-mono leading-[18px] shrink-0 ml-3 text-muted-foreground", children: "-" });
|
|
44
|
-
}
|
|
45
|
-
const start = parseTimestampMs(activity.startedAtTime);
|
|
46
|
-
if (start === null) {
|
|
47
|
-
return _jsx("span", { className: "text-[12px] font-mono leading-[18px] shrink-0 ml-3 text-muted-foreground", children: "-" });
|
|
48
|
-
}
|
|
49
|
-
const end = parseTimestampMs(activity.endedAtTime) ?? now;
|
|
50
|
-
const label = humanDuration({ start, end, largest: 2 }) || "0 seconds";
|
|
51
|
-
return (_jsx("span", { className: cn("text-[12px] font-mono leading-[18px] shrink-0 ml-3", hasError ? "text-error-foreground" : isPending ? "text-muted-foreground" : "text-default-foreground"), children: label }));
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=ExecutionActivityRow.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionActivityRow.js","sourceRoot":"","sources":["../../../src/components/planning/ExecutionActivityRow.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { EntityTypeEntry } from "./ActionPlanDetailView.js";
|
|
2
|
-
import { type SectionStatus } from "./execution-section-model.js";
|
|
3
|
-
import { type ManualActionTarget } from "./ManualActionCard.js";
|
|
4
|
-
import type { ExecutionProvenanceActivity, ManualAction, ManualActionResolution, ManualActionResolving } from "#ldo-ui";
|
|
5
|
-
export type ExecutionSectionItemProps = {
|
|
6
|
-
entry: EntityTypeEntry;
|
|
7
|
-
activities: ExecutionProvenanceActivity[];
|
|
8
|
-
status: SectionStatus;
|
|
9
|
-
fallbackStartedAtMs?: number | null;
|
|
10
|
-
isExpanded: boolean;
|
|
11
|
-
onToggle: () => void;
|
|
12
|
-
manualActions?: ManualAction[];
|
|
13
|
-
manualActionEntities?: Map<string, ManualActionTarget[]>;
|
|
14
|
-
onManualActionResolve?: (subjectIri: string, resolution: ManualActionResolution) => void;
|
|
15
|
-
resolvingManualAction?: ManualActionResolving;
|
|
16
|
-
canResolveManualAction?: boolean;
|
|
17
|
-
manualActionDisabledReason?: string;
|
|
18
|
-
};
|
|
19
|
-
export declare function ExecutionSectionItem(props: ExecutionSectionItemProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
-
//# sourceMappingURL=ExecutionSectionItem.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionSectionItem.d.ts","sourceRoot":"","sources":["../../../src/components/planning/ExecutionSectionItem.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAoD,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEjH,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,2BAA2B,EAAE,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAIxH,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,EAAE,2BAA2B,EAAE,CAAC;IAC1C,MAAM,EAAE,aAAa,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACzD,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACzF,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,2CAwFpE"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { humanDuration } from "@manta-eu/lib/humanize";
|
|
3
|
-
import { isPresent } from "@manta-eu/lib/present";
|
|
4
|
-
import { AlertCircle, Check, ChevronDown, ClockFading, Loader2 } from "lucide-react";
|
|
5
|
-
import { isNotNil } from "ramda";
|
|
6
|
-
import { useEffect, useState } from "react";
|
|
7
|
-
import { match } from "ts-pattern";
|
|
8
|
-
import { resolveStepIcon } from "./action-plan-icons.js";
|
|
9
|
-
import { findResolvedManualActionStatus, parseTimestampMs } from "./execution-section-model.js";
|
|
10
|
-
import { ExecutionActivityRow } from "./ExecutionActivityRow.js";
|
|
11
|
-
import { ManualActionCard } from "./ManualActionCard.js";
|
|
12
|
-
import { getPendingManualActions, getResolvedManualActions } from "#lib/manual-actions";
|
|
13
|
-
import { cn } from "#lib/utils";
|
|
14
|
-
export function ExecutionSectionItem(props) {
|
|
15
|
-
const { entry, activities, status, fallbackStartedAtMs = null, isExpanded, onToggle, manualActions = [], manualActionEntities, onManualActionResolve, resolvingManualAction, canResolveManualAction, manualActionDisabledReason, } = props;
|
|
16
|
-
const pendingManualActions = getPendingManualActions(manualActions);
|
|
17
|
-
const resolvedManualActions = getResolvedManualActions(manualActions);
|
|
18
|
-
const hasContent = isPresent(activities) || isPresent(pendingManualActions);
|
|
19
|
-
return (_jsxs("div", { children: [_jsxs("button", { type: "button", onClick: onToggle, className: "flex w-full items-center gap-3 pl-2 pr-3 py-3 text-left transition-colors hover:bg-muted/30", children: [_jsx("div", { className: "flex shrink-0 items-center p-1.5 rounded-lg", children: _jsx(ChevronDown, { className: cn("size-5 shrink-0 text-muted-foreground transition-transform", !isExpanded && "-rotate-90") }) }), _jsx("div", { className: "flex size-9 shrink-0 items-center justify-center rounded-lg bg-faint", children: resolveStepIcon(entry.typeName, "size-5 text-muted-foreground") }), _jsxs("div", { className: "flex-1 min-w-0 flex flex-col gap-0.5", children: [_jsx("span", { className: cn("typography-small-medium block truncate", status === "pending" ? "text-muted-foreground" : "text-default-foreground"), children: entry.typeName }), entry.description && (_jsx("span", { className: "typography-tiny text-muted-foreground block truncate", children: entry.description }))] }), _jsxs("div", { className: "flex items-center gap-3 shrink-0", children: [_jsx(SectionElapsed, { activities: activities, status: status, estimatedTime: entry.estimatedTime ?? null, fallbackStartedAtMs: fallbackStartedAtMs }), _jsx(SectionStatusIcon, { status: status })] })] }), isExpanded && hasContent && (_jsxs("div", { className: "bg-faint border-t border-default-border py-1.5", children: [activities.map((activity) => (_jsx(ExecutionActivityRow, { activity: activity, manualActionStatus: findResolvedManualActionStatus(activity, resolvedManualActions) }, activity.iri))), pendingManualActions.map((ma) => (_jsx(ManualActionCard, { manualAction: ma, entities: manualActionEntities?.get(ma.subjectIri) ?? [], description: ma.description ?? entry.description ?? undefined, resolving: resolvingManualAction, onResolve: (resolution) => onManualActionResolve?.(ma.subjectIri, resolution), canResolve: canResolveManualAction, disabledReason: manualActionDisabledReason }, ma.subjectIri)))] }))] }));
|
|
20
|
-
}
|
|
21
|
-
function SectionStatusIcon(props) {
|
|
22
|
-
return match(props.status)
|
|
23
|
-
.with("completed", () => (_jsx("div", { className: "size-5 flex items-center justify-center rounded-full bg-success", children: _jsx(Check, { className: "size-3 text-success-foreground" }) })))
|
|
24
|
-
.with("running", () => _jsx(Loader2, { className: "size-5 text-muted-foreground animate-spin" }))
|
|
25
|
-
.with("failed", () => (_jsx("div", { className: "size-5 flex items-center justify-center rounded-full bg-error", children: _jsx(AlertCircle, { className: "size-3 text-error-foreground" }) })))
|
|
26
|
-
.with("pending", () => _jsx(ClockFading, { className: "size-5 text-muted-foreground/40" }))
|
|
27
|
-
.exhaustive();
|
|
28
|
-
}
|
|
29
|
-
function SectionElapsed(props) {
|
|
30
|
-
const { activities, status, estimatedTime, fallbackStartedAtMs = null } = props;
|
|
31
|
-
const isRunning = status === "running";
|
|
32
|
-
const [now, setNow] = useState(() => Date.now());
|
|
33
|
-
useEffect(() => {
|
|
34
|
-
if (!isRunning)
|
|
35
|
-
return;
|
|
36
|
-
const id = setInterval(() => setNow(Date.now()), 1000);
|
|
37
|
-
return () => clearInterval(id);
|
|
38
|
-
}, [isRunning]);
|
|
39
|
-
const started = activities
|
|
40
|
-
.map((a) => a.startedAtTime)
|
|
41
|
-
.filter(isNotNil)
|
|
42
|
-
.sort();
|
|
43
|
-
if (!isPresent(started)) {
|
|
44
|
-
if (fallbackStartedAtMs !== null) {
|
|
45
|
-
return (_jsx("span", { className: "typography-tiny text-muted-foreground whitespace-nowrap", children: humanDuration({ start: fallbackStartedAtMs, end: now, largest: 2 }) || "0 seconds" }));
|
|
46
|
-
}
|
|
47
|
-
if (estimatedTime) {
|
|
48
|
-
return _jsx("span", { className: "typography-tiny text-muted-foreground/60 whitespace-nowrap", children: estimatedTime });
|
|
49
|
-
}
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
const ended = activities
|
|
53
|
-
.map((a) => a.endedAtTime)
|
|
54
|
-
.filter(isNotNil)
|
|
55
|
-
.sort()
|
|
56
|
-
.reverse();
|
|
57
|
-
const start = parseTimestampMs(started[0]);
|
|
58
|
-
if (start === null)
|
|
59
|
-
return null;
|
|
60
|
-
const end = isPresent(ended) && !isRunning ? parseTimestampMs(ended[0]) : now;
|
|
61
|
-
if (end === null)
|
|
62
|
-
return null;
|
|
63
|
-
const label = humanDuration({ start, end, largest: 2 }) || "0 seconds";
|
|
64
|
-
return _jsx("span", { className: "typography-tiny text-muted-foreground whitespace-nowrap", children: label });
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=ExecutionSectionItem.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionSectionItem.js","sourceRoot":"","sources":["../../../src/components/planning/ExecutionSectionItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { EntityTypeEntry } from "./ActionPlanDetailView.js";
|
|
2
|
-
import type { ManualActionTarget } from "./ManualActionCard.js";
|
|
3
|
-
import type { ActionPlanExecutionProvenanceResult, ManualAction, ManualActionResolution, ManualActionResolving } from "#ldo-ui";
|
|
4
|
-
export type ExecutionSectionsProps = {
|
|
5
|
-
entityTypes: EntityTypeEntry[];
|
|
6
|
-
provenance: ActionPlanExecutionProvenanceResult | null;
|
|
7
|
-
manualActions?: ManualAction[];
|
|
8
|
-
manualActionEntities?: Map<string, ManualActionTarget[]>;
|
|
9
|
-
activeStartedAtMs?: number | null;
|
|
10
|
-
onManualActionResolve?: (subjectIri: string, resolution: ManualActionResolution) => void;
|
|
11
|
-
resolvingManualAction?: ManualActionResolving;
|
|
12
|
-
canResolveManualAction?: boolean;
|
|
13
|
-
manualActionDisabledReason?: string;
|
|
14
|
-
};
|
|
15
|
-
export declare function ExecutionSections(props: ExecutionSectionsProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
//# sourceMappingURL=ExecutionSections.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionSections.d.ts","sourceRoot":"","sources":["../../../src/components/planning/ExecutionSections.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EACV,mCAAmC,EACnC,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,UAAU,EAAE,mCAAmC,GAAG,IAAI,CAAC;IACvD,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACzD,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACzF,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAsE9D"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { isPresent } from "@manta-eu/lib/present";
|
|
3
|
-
import { useEffect, useState } from "react";
|
|
4
|
-
import { buildSections, matchesManualActionSection } from "./execution-section-model.js";
|
|
5
|
-
import { ExecutionActivityRow } from "./ExecutionActivityRow.js";
|
|
6
|
-
import { ExecutionSectionItem } from "./ExecutionSectionItem.js";
|
|
7
|
-
export function ExecutionSections(props) {
|
|
8
|
-
const { entityTypes, provenance, manualActions = [], manualActionEntities, activeStartedAtMs = null, onManualActionResolve, resolvingManualAction, canResolveManualAction, manualActionDisabledReason, } = props;
|
|
9
|
-
const [expandedIndex, setExpandedIndex] = useState(0);
|
|
10
|
-
const [lastAutoExpandedRunning, setLastAutoExpandedRunning] = useState(-1);
|
|
11
|
-
const activities = provenance?.activities ?? [];
|
|
12
|
-
const planFailed = !!provenance?.planErrorMessage;
|
|
13
|
-
const sections = buildSections({ entityTypes, activities, provenance, planFailed });
|
|
14
|
-
const runningSectionIndex = sections.findIndex((s) => s.status === "running");
|
|
15
|
-
useEffect(() => {
|
|
16
|
-
if (runningSectionIndex >= 0 && runningSectionIndex !== lastAutoExpandedRunning) {
|
|
17
|
-
setLastAutoExpandedRunning(runningSectionIndex);
|
|
18
|
-
setExpandedIndex(runningSectionIndex);
|
|
19
|
-
}
|
|
20
|
-
}, [lastAutoExpandedRunning, runningSectionIndex]);
|
|
21
|
-
if (!isPresent(sections) && isPresent(activities)) {
|
|
22
|
-
return (_jsx("div", { className: "overflow-hidden rounded-xl border border-default-border bg-card", children: _jsx("div", { className: "bg-faint py-1.5", children: activities.map((activity) => (_jsx(ExecutionActivityRow, { activity: activity }, activity.iri))) }) }));
|
|
23
|
-
}
|
|
24
|
-
return (_jsx("div", { className: "overflow-hidden rounded-xl border border-default-border bg-card divide-y divide-default-border", children: sections.map((section, index) => {
|
|
25
|
-
const activeFallbackApplies = index === 0 && section.status === "pending" && activeStartedAtMs !== null;
|
|
26
|
-
const effectiveStatus = activeFallbackApplies ? "running" : section.status;
|
|
27
|
-
const fallbackStartedAtMs = activeFallbackApplies ? activeStartedAtMs : null;
|
|
28
|
-
const sectionManualActions = manualActions.filter((manualAction) => matchesManualActionSection(manualAction, section.entry, sections.length));
|
|
29
|
-
return (_jsx(ExecutionSectionItem, { entry: section.entry, activities: section.activities, status: effectiveStatus, fallbackStartedAtMs: fallbackStartedAtMs, isExpanded: expandedIndex === index, onToggle: () => setExpandedIndex((prev) => (prev === index ? null : index)), manualActions: sectionManualActions, manualActionEntities: manualActionEntities, onManualActionResolve: onManualActionResolve, resolvingManualAction: resolvingManualAction, canResolveManualAction: canResolveManualAction, manualActionDisabledReason: manualActionDisabledReason }, section.key));
|
|
30
|
-
}) }));
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=ExecutionSections.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionSections.js","sourceRoot":"","sources":["../../../src/components/planning/ExecutionSections.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAqB9D,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,EACJ,WAAW,EACX,UAAU,EACV,aAAa,GAAG,EAAE,EAClB,oBAAoB,EACpB,iBAAiB,GAAG,IAAI,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,GAC3B,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAgB,CAAC,CAAC,CAAC;IACrE,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,UAAU,EAAE,UAAU,IAAI,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAElD,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IAEpF,MAAM,mBAAmB,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAE9E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,mBAAmB,IAAI,CAAC,IAAI,mBAAmB,KAAK,uBAAuB,EAAE,CAAC;YAChF,0BAA0B,CAAC,mBAAmB,CAAC,CAAC;YAChD,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,EAAE,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEnD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAClD,OAAO,CACL,cAAK,SAAS,EAAC,iEAAiE,YAC9E,cAAK,SAAS,EAAC,iBAAiB,YAC7B,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC5B,KAAC,oBAAoB,IAAoB,QAAQ,EAAE,QAAQ,IAAhC,QAAQ,CAAC,GAAG,CAAwB,CAChE,CAAC,GACE,GACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,gGAAgG,YAC5G,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,qBAAqB,GAAG,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,iBAAiB,KAAK,IAAI,CAAC;YACxG,MAAM,eAAe,GAAG,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YAC3E,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7E,MAAM,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CACjE,0BAA0B,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CACzE,CAAC;YAEF,OAAO,CACL,KAAC,oBAAoB,IAEnB,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,UAAU,EAAE,OAAO,CAAC,UAAU,EAC9B,MAAM,EAAE,eAAe,EACvB,mBAAmB,EAAE,mBAAmB,EACxC,UAAU,EAAE,aAAa,KAAK,KAAK,EACnC,QAAQ,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAC3E,aAAa,EAAE,oBAAoB,EACnC,oBAAoB,EAAE,oBAAoB,EAC1C,qBAAqB,EAAE,qBAAqB,EAC5C,qBAAqB,EAAE,qBAAqB,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,0BAA0B,EAAE,0BAA0B,IAZjD,OAAO,CAAC,GAAG,CAahB,CACH,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action-plan-icons.d.ts","sourceRoot":"","sources":["../../../src/components/planning/action-plan-icons.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAqBvC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAG1E"}
|