@elevasis/ui 2.32.0 → 2.33.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/app/index.d.ts +3 -0
- package/dist/app/index.js +3 -3
- package/dist/{chunk-LLRXA7D7.js → chunk-2VYMDNJ3.js} +1 -1
- package/dist/{chunk-7KZINJLP.js → chunk-3YZRKADM.js} +4 -4
- package/dist/{chunk-MOY4VOHF.js → chunk-4AAZXKLL.js} +1 -1
- package/dist/{chunk-RQTWIXJ5.js → chunk-53436UTQ.js} +1 -1
- package/dist/{chunk-WQPX44YM.js → chunk-AV2TKVVV.js} +673 -168
- package/dist/chunk-CLDCYJQT.js +1 -0
- package/dist/chunk-DWXDNT7P.js +145 -0
- package/dist/{chunk-T35FWDAB.js → chunk-DYIDXUJS.js} +1089 -158
- package/dist/{chunk-IQHU7O5Y.js → chunk-F3MXFE72.js} +1 -1
- package/dist/{chunk-5FJJ72HU.js → chunk-FOUYP4JX.js} +1 -1
- package/dist/{chunk-QQHOKTJA.js → chunk-H6EFQP2P.js} +39 -2
- package/dist/{chunk-5J4PDX26.js → chunk-KW7ZNQD7.js} +16 -2
- package/dist/{chunk-ZQOKIGZP.js → chunk-NCEQGEW5.js} +4 -4
- package/dist/{chunk-6DWD423K.js → chunk-PIS24NIV.js} +1 -1
- package/dist/{chunk-4MFNGNHF.js → chunk-QVTIOT73.js} +2 -2
- package/dist/{chunk-GCOQ3TBG.js → chunk-SWMQTF2H.js} +2 -2
- package/dist/{chunk-4QK76KIF.js → chunk-UNVRVCXZ.js} +1 -1
- package/dist/{chunk-VRNMNB3O.js → chunk-UYRT7SPM.js} +1 -1
- package/dist/{chunk-IZWTVFJ2.js → chunk-V6SZ4ECN.js} +6 -3
- package/dist/{chunk-YLQEVSOR.js → chunk-WGUEIGPC.js} +202 -54
- package/dist/{chunk-QXCDKE2O.js → chunk-WJOE76FI.js} +9 -28
- package/dist/{chunk-QTI3KC7D.js → chunk-YENKDBUU.js} +106 -43
- package/dist/components/index.d.ts +117 -4
- package/dist/components/index.js +24 -23
- package/dist/components/navigation/index.js +4 -3
- package/dist/execution/index.d.ts +8 -3
- package/dist/features/auth/index.d.ts +3 -0
- package/dist/features/clients/index.js +8 -7
- package/dist/features/crm/index.d.ts +3 -0
- package/dist/features/crm/index.js +10 -9
- package/dist/features/dashboard/index.d.ts +113 -3
- package/dist/features/dashboard/index.js +9 -8
- package/dist/features/delivery/index.d.ts +3 -0
- package/dist/features/delivery/index.js +9 -8
- package/dist/features/knowledge/index.js +8 -18
- package/dist/features/lead-gen/index.js +10 -9
- package/dist/features/monitoring/index.js +10 -9
- package/dist/features/monitoring/requests/index.d.ts +2 -2
- package/dist/features/monitoring/requests/index.js +8 -7
- package/dist/features/operations/index.d.ts +560 -93
- package/dist/features/operations/index.js +13 -12
- package/dist/features/settings/index.d.ts +3 -0
- package/dist/features/settings/index.js +9 -8
- package/dist/hooks/delivery/index.d.ts +3 -0
- package/dist/hooks/index.d.ts +210 -6
- package/dist/hooks/index.js +8 -7
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +205 -4
- package/dist/hooks/published.d.ts +210 -6
- package/dist/hooks/published.js +8 -7
- package/dist/index.d.ts +565 -95
- package/dist/index.js +8 -7
- package/dist/initialization/index.d.ts +3 -0
- package/dist/knowledge/index.d.ts +577 -215
- package/dist/knowledge/index.js +1180 -689
- package/dist/knowledge-search-index-P7PR626V.js +1514 -0
- package/dist/layout/index.js +1 -1
- package/dist/profile/index.d.ts +3 -0
- package/dist/provider/index.d.ts +447 -73
- package/dist/provider/index.js +7 -6
- package/dist/provider/published.d.ts +447 -73
- package/dist/provider/published.js +5 -4
- package/dist/supabase/index.d.ts +6 -0
- package/dist/types/index.d.ts +208 -4
- package/dist/utils/index.d.ts +113 -3
- package/package.json +39 -39
- package/src/README.md +29 -29
- package/src/api/README.md +18 -18
- package/src/app/README.md +24 -24
- package/src/auth/README.md +18 -18
- package/src/components/README.md +24 -24
- package/src/execution/README.md +16 -16
- package/src/features/README.md +28 -28
- package/src/graph/README.md +16 -16
- package/src/hooks/README.md +23 -23
- package/src/initialization/README.md +19 -19
- package/src/knowledge/README.md +31 -31
- package/src/organization/README.md +18 -18
- package/src/profile/README.md +19 -19
- package/src/provider/README.md +32 -32
- package/src/router/README.md +18 -18
- package/src/sse/README.md +13 -13
- package/src/test-utils/README.md +7 -7
- package/src/theme/README.md +23 -23
- package/src/theme/presets/README.md +19 -19
- package/src/types/README.md +16 -16
- package/src/utils/README.md +18 -18
- package/src/zustand/README.md +18 -18
- package/dist/chunk-UROTM5OR.js +0 -172
- package/dist/knowledge-search-index-5KYPO746.js +0 -1479
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCyberColors, CyberLegendItem, CyberAreaChart } from './chunk-4DYOXEH6.js';
|
|
2
|
-
import { useResourcesHealth } from './chunk-
|
|
2
|
+
import { useResourcesHealth } from './chunk-SWMQTF2H.js';
|
|
3
3
|
import { CardHeader, EmptyState } from './chunk-EPTHX4VZ.js';
|
|
4
4
|
import { getTimeRangeDates, formatBucketTime } from './chunk-2RJMVWFJ.js';
|
|
5
5
|
import { Paper, Center, Loader, Group } from '@mantine/core';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useOptionalElevasisSystems } from './chunk-
|
|
1
|
+
import { useOptionalElevasisSystems } from './chunk-WJOE76FI.js';
|
|
2
2
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
4
|
|
|
@@ -42,7 +42,44 @@ var useBreadcrumbs = (options = {}) => {
|
|
|
42
42
|
}, [currentPath, systemContext, labelsByPath]);
|
|
43
43
|
};
|
|
44
44
|
function formatSegmentLabel(segment) {
|
|
45
|
-
|
|
45
|
+
const decodedSegment = safeDecodeURIComponent(segment);
|
|
46
|
+
const routeLabel = formatRouteIdLabel(decodedSegment);
|
|
47
|
+
if (routeLabel) return routeLabel;
|
|
48
|
+
return titleCaseSegment(decodedSegment);
|
|
49
|
+
}
|
|
50
|
+
function safeDecodeURIComponent(value) {
|
|
51
|
+
try {
|
|
52
|
+
return decodeURIComponent(value);
|
|
53
|
+
} catch {
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function formatRouteIdLabel(segment) {
|
|
58
|
+
if (segment.startsWith("group:")) {
|
|
59
|
+
const groupKey = segment.slice("group:".length);
|
|
60
|
+
return groupKey === "graph" ? "Ontology" : titleCaseSegment(groupKey);
|
|
61
|
+
}
|
|
62
|
+
if (segment.startsWith("domain:")) {
|
|
63
|
+
return titleCaseSegment(segment.slice("domain:".length));
|
|
64
|
+
}
|
|
65
|
+
if (segment.startsWith("item:")) {
|
|
66
|
+
const rest = segment.slice("item:".length);
|
|
67
|
+
const separatorIndex = rest.indexOf(":");
|
|
68
|
+
const itemId = separatorIndex === -1 ? rest : rest.slice(separatorIndex + 1);
|
|
69
|
+
return formatOntologyOrIdLabel(itemId);
|
|
70
|
+
}
|
|
71
|
+
if (segment.startsWith("ontology:")) {
|
|
72
|
+
return formatOntologyOrIdLabel(segment);
|
|
73
|
+
}
|
|
74
|
+
return void 0;
|
|
75
|
+
}
|
|
76
|
+
function formatOntologyOrIdLabel(value) {
|
|
77
|
+
const localId = value.includes("/") ? value.slice(value.lastIndexOf("/") + 1) : value;
|
|
78
|
+
const suffix = localId.includes(":") ? localId.slice(localId.lastIndexOf(":") + 1) : localId;
|
|
79
|
+
return titleCaseSegment(suffix);
|
|
80
|
+
}
|
|
81
|
+
function titleCaseSegment(segment) {
|
|
82
|
+
return segment.split("-").flatMap((part) => part.split("_")).flatMap((part) => part.split(".")).map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
46
83
|
}
|
|
47
84
|
|
|
48
85
|
export { useBreadcrumbs };
|
|
@@ -15,6 +15,7 @@ var ORGANIZATION_GRAPH_NODE_KIND_ORDER = [
|
|
|
15
15
|
"goal",
|
|
16
16
|
"surface",
|
|
17
17
|
"navigation-group",
|
|
18
|
+
"ontology",
|
|
18
19
|
"content-node"
|
|
19
20
|
];
|
|
20
21
|
var ORGANIZATION_GRAPH_NODE_KIND_LABELS = {
|
|
@@ -33,6 +34,7 @@ var ORGANIZATION_GRAPH_NODE_KIND_LABELS = {
|
|
|
33
34
|
goal: "Goal",
|
|
34
35
|
surface: "Surface",
|
|
35
36
|
"navigation-group": "Navigation group",
|
|
37
|
+
ontology: "Ontology",
|
|
36
38
|
"content-node": "Content node"
|
|
37
39
|
};
|
|
38
40
|
var ORGANIZATION_GRAPH_NODE_KIND_DETAIL_LABELS = {
|
|
@@ -51,6 +53,7 @@ var ORGANIZATION_GRAPH_NODE_KIND_DETAIL_LABELS = {
|
|
|
51
53
|
goal: "Goal",
|
|
52
54
|
surface: "Surface",
|
|
53
55
|
"navigation-group": "Navigation group",
|
|
56
|
+
ontology: "Ontology record",
|
|
54
57
|
"content-node": "Content node"
|
|
55
58
|
};
|
|
56
59
|
var ORGANIZATION_GRAPH_NODE_KIND_MEANINGS = {
|
|
@@ -69,6 +72,7 @@ var ORGANIZATION_GRAPH_NODE_KIND_MEANINGS = {
|
|
|
69
72
|
goal: "A strategic or operational objective that guides priorities and measures progress.",
|
|
70
73
|
surface: "A navigation surface (page or view) that is exposed through the platform shell.",
|
|
71
74
|
"navigation-group": "A logical grouping of navigation surfaces within the platform shell.",
|
|
75
|
+
ontology: "A compiled ontology record such as an object, action, catalog, value type, surface, or resource binding.",
|
|
72
76
|
"content-node": "A system-scoped content node authored in system.content (schema, config, or tenant-defined kind)."
|
|
73
77
|
};
|
|
74
78
|
var ORGANIZATION_GRAPH_EDGE_KIND_LABELS = {
|
|
@@ -82,8 +86,13 @@ var ORGANIZATION_GRAPH_EDGE_KIND_LABELS = {
|
|
|
82
86
|
emits: "Emits",
|
|
83
87
|
originates_from: "Originates from",
|
|
84
88
|
triggers: "Triggers",
|
|
89
|
+
approval: "Approval",
|
|
85
90
|
applies_to: "Applies to",
|
|
86
|
-
effects: "Effects"
|
|
91
|
+
effects: "Effects",
|
|
92
|
+
actions: "Actions",
|
|
93
|
+
reads: "Reads",
|
|
94
|
+
writes: "Writes",
|
|
95
|
+
uses_catalog: "Uses catalog"
|
|
87
96
|
};
|
|
88
97
|
var ORGANIZATION_GRAPH_EDGE_KIND_MEANINGS = {
|
|
89
98
|
contains: "A hierarchy or ownership link inside the shared graph.",
|
|
@@ -96,8 +105,13 @@ var ORGANIZATION_GRAPH_EDGE_KIND_MEANINGS = {
|
|
|
96
105
|
emits: "The source produces an event that can be inspected or traversed.",
|
|
97
106
|
originates_from: "The source is derived from or owned by the target origin.",
|
|
98
107
|
triggers: "The source can start or activate the target.",
|
|
108
|
+
approval: "The source requests or participates in an approval path.",
|
|
99
109
|
applies_to: "A policy or rule targets the node it applies to.",
|
|
100
|
-
effects: "A policy or event produces the target effect."
|
|
110
|
+
effects: "A policy or event produces the target effect.",
|
|
111
|
+
actions: "The source is bound to the target ontology action contract.",
|
|
112
|
+
reads: "The source reads data described by the target ontology record.",
|
|
113
|
+
writes: "The source writes data described by the target ontology record.",
|
|
114
|
+
uses_catalog: "The source uses the target ontology catalog."
|
|
101
115
|
};
|
|
102
116
|
var DEFAULT_ORGANIZATION_GRAPH_FILTERS = {
|
|
103
117
|
search: "",
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { SalesSidebar, CrmSidebarMiddle } from './chunk-
|
|
1
|
+
import { SalesSidebar, CrmSidebarMiddle } from './chunk-4AAZXKLL.js';
|
|
2
2
|
import { SubshellSidebarSection } from './chunk-IIMU5YAJ.js';
|
|
3
3
|
import { PageContainer } from './chunk-BZZCNLT6.js';
|
|
4
4
|
import { TableSelectionToolbar, SortableHeader } from './chunk-TUMSNGTX.js';
|
|
5
5
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
6
6
|
import { CustomModal } from './chunk-R66W5UDG.js';
|
|
7
|
-
import { useDealsSummary, useDeleteDeal, usePaginationState, useDeals, useTableSort, sortData, useTableSelection, useDealDetail, useCompany, dealKeys, useContact, useExecuteAction } from './chunk-
|
|
7
|
+
import { useDealsSummary, useDeleteDeal, usePaginationState, useDeals, useTableSort, sortData, useTableSelection, useDealDetail, useCompany, dealKeys, useContact, useExecuteAction } from './chunk-SWMQTF2H.js';
|
|
8
8
|
import { showApiErrorNotification, showSuccessNotification } from './chunk-XZGSCABI.js';
|
|
9
9
|
import { CenteredErrorState, CardHeader, StatCard, PageTitleCaption, EmptyState, ActivityTimeline } from './chunk-EPTHX4VZ.js';
|
|
10
|
-
import { useCrmActions, deriveActions } from './chunk-
|
|
10
|
+
import { useCrmActions, deriveActions } from './chunk-WGUEIGPC.js';
|
|
11
11
|
import { SubshellContentContainer } from './chunk-TKAYX2SP.js';
|
|
12
|
-
import { CRM_PIPELINE_DEFINITION, DEFAULT_CRM_PRIORITY_RULE_CONFIG, CRM_PRIORITY_BUCKETS } from './chunk-
|
|
12
|
+
import { CRM_PIPELINE_DEFINITION, DEFAULT_CRM_PRIORITY_RULE_CONFIG, CRM_PRIORITY_BUCKETS } from './chunk-DYIDXUJS.js';
|
|
13
13
|
import { PAGE_SIZE_DEFAULT, formatTimeAgo } from './chunk-2RJMVWFJ.js';
|
|
14
14
|
import { useElevasisServices } from './chunk-KJ3QUBNU.js';
|
|
15
15
|
import { Stack, Paper, Center, Loader, Group, Box, Text, Alert, Table, SimpleGrid, Button, Select, TextInput, Tabs, Checkbox, Badge, Tooltip, Pagination, Title, Code, Card, Switch, NumberInput, ColorSwatch, Popover, ActionIcon, Anchor, CopyButton, Divider, Textarea } from '@mantine/core';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FeatureUnavailableState } from './chunk-EPTHX4VZ.js';
|
|
2
|
-
import { useElevasisSystems } from './chunk-
|
|
2
|
+
import { useElevasisSystems } from './chunk-WJOE76FI.js';
|
|
3
3
|
import { SubshellContainer, SubshellSidebar, SubshellRightSideContainer } from './chunk-TKAYX2SP.js';
|
|
4
4
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
5
5
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
@@ -5,11 +5,11 @@ import { PageContainer } from './chunk-BZZCNLT6.js';
|
|
|
5
5
|
import { TableSelectionToolbar, SortableHeader } from './chunk-TUMSNGTX.js';
|
|
6
6
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
7
7
|
import { CustomModal } from './chunk-R66W5UDG.js';
|
|
8
|
-
import { useProjectRealtime, useTableSort, sortData, usePaginationState, useTableSelection, useProjectActivities } from './chunk-
|
|
8
|
+
import { useProjectRealtime, useTableSort, sortData, usePaginationState, useTableSelection, useProjectActivities } from './chunk-SWMQTF2H.js';
|
|
9
9
|
import { useCreateTask, useCreateMilestone, useProjectMilestones, useUpdateTask, useProjects, useDeleteProject, useProject, useProjectNotes, useUpdateMilestone, useCreateNote, showApiErrorNotification, projectKeys } from './chunk-XZGSCABI.js';
|
|
10
10
|
import { StatusBadge, EmptyState, PageTitleCaption, CenteredErrorState, StatCard, CardHeader } from './chunk-EPTHX4VZ.js';
|
|
11
11
|
import { SubshellContentContainer } from './chunk-TKAYX2SP.js';
|
|
12
|
-
import { PROJECTS_VIEW_ACTION_ID } from './chunk-
|
|
12
|
+
import { PROJECTS_VIEW_ACTION_ID } from './chunk-DYIDXUJS.js';
|
|
13
13
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
14
14
|
import { PAGE_SIZE_DEFAULT, formatTimeAgo, formatDate, formatRelativeTime } from './chunk-2RJMVWFJ.js';
|
|
15
15
|
import { useElevasisServices } from './chunk-KJ3QUBNU.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { observabilityKeys } from './chunk-VNAZTCHA.js';
|
|
2
2
|
import { showApiErrorNotification, showSuccessNotification, projectKeys, noteKeys, taskKeys, milestoneKeys } from './chunk-XZGSCABI.js';
|
|
3
3
|
import { useSupabase } from './chunk-BRXELOHC.js';
|
|
4
|
-
import { useNotificationAdapter, deriveActions } from './chunk-
|
|
5
|
-
import { useOptionalElevasisSystems } from './chunk-
|
|
4
|
+
import { useNotificationAdapter, deriveActions } from './chunk-WGUEIGPC.js';
|
|
5
|
+
import { useOptionalElevasisSystems } from './chunk-WJOE76FI.js';
|
|
6
6
|
import { HTTP_HEADERS } from './chunk-ND5TDV2J.js';
|
|
7
7
|
import { ResourceTypeSchema, NonEmptyStringSchema, OriginResourceTypeSchema, UuidSchema, CredentialNameSchema, STALE_TIME_DEFAULT, REFETCH_INTERVAL_DASHBOARD, STALE_TIME_MONITORING, getTimeRangeDates, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, STALE_TIME_ADMIN, APIClientError, GC_TIME_MEDIUM, GC_TIME_SHORT } from './chunk-2RJMVWFJ.js';
|
|
8
8
|
import { useStableAccessToken } from './chunk-VKIZUUPM.js';
|
|
@@ -2,7 +2,7 @@ import { AppShellLoader } from './chunk-RYTEQBAO.js';
|
|
|
2
2
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
3
3
|
import { CustomModal } from './chunk-R66W5UDG.js';
|
|
4
4
|
import { useAvailablePresets } from './chunk-JFL3GRD4.js';
|
|
5
|
-
import { useDeleteCredential, useCreateCredential, useCredentials, MEMBERSHIP_STATUS_COLORS, transformMembershipToTableRow, useUserMemberships, useUpdateWebhookEndpoint, useResources, useDeleteWebhookEndpoint, useCreateWebhookEndpoint, useListWebhookEndpoints, useOrgRoles, useAssignRole, useRevokeRole, useHasPermission, useUpdateMemberConfig, useOrganizationMembers, useUpdateCredential, CredentialSchemas } from './chunk-
|
|
5
|
+
import { useDeleteCredential, useCreateCredential, useCredentials, MEMBERSHIP_STATUS_COLORS, transformMembershipToTableRow, useUserMemberships, useUpdateWebhookEndpoint, useResources, useDeleteWebhookEndpoint, useCreateWebhookEndpoint, useListWebhookEndpoints, useOrgRoles, useAssignRole, useRevokeRole, useHasPermission, useUpdateMemberConfig, useOrganizationMembers, useUpdateCredential, CredentialSchemas } from './chunk-SWMQTF2H.js';
|
|
6
6
|
import { showApiErrorNotification, showErrorNotification, showSuccessNotification } from './chunk-XZGSCABI.js';
|
|
7
7
|
import { ListSkeleton, EmptyState, PageTitleCaption, CardHeader, APIErrorAlert, StatCard } from './chunk-EPTHX4VZ.js';
|
|
8
8
|
import { RoleBadge } from './chunk-JA5ECJJB.js';
|
|
@@ -3,7 +3,7 @@ import { AppShellLoader } from './chunk-RYTEQBAO.js';
|
|
|
3
3
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
4
4
|
import { CustomModal } from './chunk-R66W5UDG.js';
|
|
5
5
|
import { formatDuration } from './chunk-E4WQGJNS.js';
|
|
6
|
-
import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useExecutionLogsFilters, useExecutionLogs, useExecutionHealth, useErrorAnalysis, useTimeRangeDates, useErrorDetail, useResolveErrorsByExecution, useResources, useCostTrends, useCostSummary, useCostByModel, useCostBreakdown, useActivityFilters, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead } from './chunk-
|
|
6
|
+
import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useExecutionLogsFilters, useExecutionLogs, useExecutionHealth, useErrorAnalysis, useTimeRangeDates, useErrorDetail, useResolveErrorsByExecution, useResources, useCostTrends, useCostSummary, useCostByModel, useCostBreakdown, useActivityFilters, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead } from './chunk-SWMQTF2H.js';
|
|
7
7
|
import { CenteredErrorState, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, EmptyState, PageTitleCaption, JsonViewer } from './chunk-EPTHX4VZ.js';
|
|
8
8
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
9
9
|
import { formatBucketTime, PAGE_SIZE_DEFAULT, getTimeRangeDates } from './chunk-2RJMVWFJ.js';
|
|
@@ -4,7 +4,7 @@ import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
|
4
4
|
import { useAppearance } from './chunk-E565XMTQ.js';
|
|
5
5
|
import { sidebarItemGap, sidebarSubLinkPaddingY, sidebarSubLinkPaddingX, sidebarSubLinkIndent, sidebarHoverDelay, sidebarTransitionDuration, sidebarCollapsedWidth, sidebarWidth, topbarHeight, sidebarToggleIconSize, sidebarSectionPadding, sidebarGroupChevronSize, sidebarIconInnerSize } from './chunk-DT3QYZVU.js';
|
|
6
6
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
|
-
import { createContext, memo, useEffect, createElement, useContext,
|
|
7
|
+
import { createContext, memo, useEffect, useRef, createElement, useContext, useLayoutEffect, useState } from 'react';
|
|
8
8
|
import { Collapse, HoverCard, Stack, Group, Text, UnstyledButton, Tooltip, ScrollArea, Menu, Avatar, Box, useMantineColorScheme, Switch, Code } from '@mantine/core';
|
|
9
9
|
import { IconLayoutSidebarLeftExpand, IconLayoutSidebarLeftCollapse, IconUser, IconLogout, IconChevronDown, IconChevronRight, IconMoonStars, IconSun } from '@tabler/icons-react';
|
|
10
10
|
|
|
@@ -576,11 +576,14 @@ var LinksGroup = memo(function LinksGroup2({
|
|
|
576
576
|
const isParentActive = !hasLinks && (link === "/" ? currentPath === "/" : isPathActive(link || "", currentPath));
|
|
577
577
|
const isIconTextActive = isParentActive || hasActiveChild;
|
|
578
578
|
const isBackgroundActive = isParentActive || hasActiveChild && !opened;
|
|
579
|
+
const prevPathRef = useRef(null);
|
|
579
580
|
useEffect(() => {
|
|
580
|
-
|
|
581
|
+
const pathChanged = prevPathRef.current !== currentPath;
|
|
582
|
+
prevPathRef.current = currentPath;
|
|
583
|
+
if (pathChanged && !isCollapsed && hasActiveChild && !opened && onToggle) {
|
|
581
584
|
onToggle();
|
|
582
585
|
}
|
|
583
|
-
}, [hasActiveChild, isCollapsed, opened, onToggle]);
|
|
586
|
+
}, [currentPath, hasActiveChild, isCollapsed, opened, onToggle]);
|
|
584
587
|
const handleMainClick = () => {
|
|
585
588
|
if (hasLinks && !isCollapsed) {
|
|
586
589
|
onToggle?.();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { formatOntologyId, DEFAULT_ORGANIZATION_MODEL, CRM_DISCOVERY_NUDGING_STATE, compileOrganizationOntology, CRM_DISCOVERY_REPLIED_STATE, CRM_DISCOVERY_LINK_SENT_STATE, CRM_DISCOVERY_BOOKING_CANCELLED_STATE, CRM_PIPELINE_DEFINITION, LEAD_GEN_STAGE_CATALOG } from './chunk-DYIDXUJS.js';
|
|
2
2
|
import { ApiClientProvider, useApiClient } from './chunk-ND5TDV2J.js';
|
|
3
3
|
import { OrganizationProvider } from './chunk-HUJCU55S.js';
|
|
4
4
|
import { getErrorInfo, getErrorTitle, formatErrorMessage } from './chunk-2RJMVWFJ.js';
|
|
@@ -40,6 +40,169 @@ function useNotificationAdapter() {
|
|
|
40
40
|
return useContext(NotificationContext);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
// ../core/src/business/acquisition/ontology-validation.ts
|
|
44
|
+
var CRM_PIPELINE_CATALOG_ONTOLOGY_ID = formatOntologyId({
|
|
45
|
+
scope: "sales.crm",
|
|
46
|
+
kind: "catalog",
|
|
47
|
+
localId: "crm.pipeline"
|
|
48
|
+
});
|
|
49
|
+
var LEAD_GEN_STAGE_CATALOG_ONTOLOGY_ID = formatOntologyId({
|
|
50
|
+
scope: "sales.lead-gen",
|
|
51
|
+
kind: "catalog",
|
|
52
|
+
localId: "lead-gen.stage-catalog"
|
|
53
|
+
});
|
|
54
|
+
var CRM_DEAL_OBJECT_ONTOLOGY_ID = formatOntologyId({
|
|
55
|
+
scope: "sales.crm",
|
|
56
|
+
kind: "object",
|
|
57
|
+
localId: "crm.deal"
|
|
58
|
+
});
|
|
59
|
+
function createCrmPipelineCatalog() {
|
|
60
|
+
return {
|
|
61
|
+
id: CRM_PIPELINE_CATALOG_ONTOLOGY_ID,
|
|
62
|
+
label: CRM_PIPELINE_DEFINITION.label,
|
|
63
|
+
ownerSystemId: "sales.crm",
|
|
64
|
+
kind: "pipeline",
|
|
65
|
+
appliesTo: CRM_DEAL_OBJECT_ONTOLOGY_ID,
|
|
66
|
+
entries: Object.fromEntries(
|
|
67
|
+
CRM_PIPELINE_DEFINITION.stages.map((stage, index) => [
|
|
68
|
+
stage.stageKey,
|
|
69
|
+
{
|
|
70
|
+
key: stage.stageKey,
|
|
71
|
+
label: stage.label,
|
|
72
|
+
order: (index + 1) * 10,
|
|
73
|
+
...stage.color !== void 0 ? { color: stage.color } : {},
|
|
74
|
+
states: stage.states.map((state) => ({ ...state }))
|
|
75
|
+
}
|
|
76
|
+
])
|
|
77
|
+
),
|
|
78
|
+
legacyPipelineKey: CRM_PIPELINE_DEFINITION.pipelineKey,
|
|
79
|
+
legacyEntityKey: CRM_PIPELINE_DEFINITION.entityKey
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function createLeadGenStageCatalog() {
|
|
83
|
+
return {
|
|
84
|
+
id: LEAD_GEN_STAGE_CATALOG_ONTOLOGY_ID,
|
|
85
|
+
label: "Lead Gen Processing Stages",
|
|
86
|
+
ownerSystemId: "sales.lead-gen",
|
|
87
|
+
kind: "processing-stage-catalog",
|
|
88
|
+
entries: Object.fromEntries(
|
|
89
|
+
Object.entries(LEAD_GEN_STAGE_CATALOG).map(([key, entry]) => [
|
|
90
|
+
key,
|
|
91
|
+
{
|
|
92
|
+
...entry
|
|
93
|
+
}
|
|
94
|
+
])
|
|
95
|
+
),
|
|
96
|
+
legacyCatalogKey: "LEAD_GEN_STAGE_CATALOG"
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function isPlainRecord(value) {
|
|
100
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
101
|
+
}
|
|
102
|
+
function mergeBridgeCatalogs(model) {
|
|
103
|
+
const baseCatalogTypes = model.ontology?.catalogTypes ?? {};
|
|
104
|
+
const bridgeCatalogTypes = {};
|
|
105
|
+
if (baseCatalogTypes[CRM_PIPELINE_CATALOG_ONTOLOGY_ID] === void 0) {
|
|
106
|
+
bridgeCatalogTypes[CRM_PIPELINE_CATALOG_ONTOLOGY_ID] = createCrmPipelineCatalog();
|
|
107
|
+
}
|
|
108
|
+
if (baseCatalogTypes[LEAD_GEN_STAGE_CATALOG_ONTOLOGY_ID] === void 0) {
|
|
109
|
+
bridgeCatalogTypes[LEAD_GEN_STAGE_CATALOG_ONTOLOGY_ID] = createLeadGenStageCatalog();
|
|
110
|
+
}
|
|
111
|
+
if (Object.keys(bridgeCatalogTypes).length === 0) return model;
|
|
112
|
+
return {
|
|
113
|
+
...model,
|
|
114
|
+
ontology: {
|
|
115
|
+
...model.ontology ?? {},
|
|
116
|
+
catalogTypes: {
|
|
117
|
+
...baseCatalogTypes,
|
|
118
|
+
...bridgeCatalogTypes
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
function compileBusinessOntologyValidationIndex(model = DEFAULT_ORGANIZATION_MODEL) {
|
|
124
|
+
const compilation = compileOrganizationOntology(mergeBridgeCatalogs(model));
|
|
125
|
+
if (compilation.diagnostics.length > 0) {
|
|
126
|
+
const summary = compilation.diagnostics.map((diagnostic) => diagnostic.message).join("; ");
|
|
127
|
+
throw new Error(`Business ontology validation index failed to compile: ${summary}`);
|
|
128
|
+
}
|
|
129
|
+
const crmPipelineCatalog = compilation.ontology.catalogTypes[CRM_PIPELINE_CATALOG_ONTOLOGY_ID];
|
|
130
|
+
const leadGenStageCatalog = compilation.ontology.catalogTypes[LEAD_GEN_STAGE_CATALOG_ONTOLOGY_ID];
|
|
131
|
+
if (crmPipelineCatalog === void 0 || leadGenStageCatalog === void 0) {
|
|
132
|
+
throw new Error("Business ontology validation index is missing CRM or lead-gen catalog bridge records");
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
ontology: compilation.ontology,
|
|
136
|
+
crmPipelineCatalog,
|
|
137
|
+
leadGenStageCatalog,
|
|
138
|
+
actionTypesByLegacyId: indexActionTypesByLegacyId(compilation.ontology.actionTypes)
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
function indexActionTypesByLegacyId(actionTypes) {
|
|
142
|
+
const byLegacyId = {};
|
|
143
|
+
for (const actionType of Object.values(actionTypes)) {
|
|
144
|
+
const legacyActionId = actionType["legacyActionId"];
|
|
145
|
+
if (typeof legacyActionId === "string") {
|
|
146
|
+
byLegacyId[legacyActionId] = actionType;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return byLegacyId;
|
|
150
|
+
}
|
|
151
|
+
var BUSINESS_ONTOLOGY_VALIDATION_INDEX = compileBusinessOntologyValidationIndex();
|
|
152
|
+
function getCatalogEntries(catalog) {
|
|
153
|
+
return isPlainRecord(catalog.entries) ? catalog.entries : {};
|
|
154
|
+
}
|
|
155
|
+
function asCrmStageEntry(key, value) {
|
|
156
|
+
const record = isPlainRecord(value) ? value : {};
|
|
157
|
+
const label = typeof record.label === "string" ? record.label : key;
|
|
158
|
+
const order = typeof record.order === "number" ? record.order : 0;
|
|
159
|
+
const color = typeof record.color === "string" ? record.color : void 0;
|
|
160
|
+
const rawStates = Array.isArray(record.states) ? record.states : [];
|
|
161
|
+
const states = rawStates.flatMap((state) => {
|
|
162
|
+
if (!isPlainRecord(state) || typeof state.stateKey !== "string") return [];
|
|
163
|
+
return [
|
|
164
|
+
{
|
|
165
|
+
stateKey: state.stateKey,
|
|
166
|
+
label: typeof state.label === "string" ? state.label : state.stateKey
|
|
167
|
+
}
|
|
168
|
+
];
|
|
169
|
+
});
|
|
170
|
+
return {
|
|
171
|
+
key,
|
|
172
|
+
label,
|
|
173
|
+
order,
|
|
174
|
+
...color !== void 0 ? { color } : {},
|
|
175
|
+
states
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
var CRM_STAGE_KEYS_FROM_ONTOLOGY = Object.keys(
|
|
179
|
+
getCatalogEntries(BUSINESS_ONTOLOGY_VALIDATION_INDEX.crmPipelineCatalog)
|
|
180
|
+
);
|
|
181
|
+
Object.values(
|
|
182
|
+
getCatalogEntries(BUSINESS_ONTOLOGY_VALIDATION_INDEX.crmPipelineCatalog)
|
|
183
|
+
).flatMap((entry, index) => {
|
|
184
|
+
const stageKey = CRM_STAGE_KEYS_FROM_ONTOLOGY[index];
|
|
185
|
+
if (stageKey === void 0) return [];
|
|
186
|
+
return asCrmStageEntry(stageKey, entry).states.map((state) => state.stateKey);
|
|
187
|
+
});
|
|
188
|
+
Object.keys(
|
|
189
|
+
getCatalogEntries(BUSINESS_ONTOLOGY_VALIDATION_INDEX.leadGenStageCatalog)
|
|
190
|
+
);
|
|
191
|
+
function getActionMetadata(actionKey) {
|
|
192
|
+
const actionType = BUSINESS_ONTOLOGY_VALIDATION_INDEX.actionTypesByLegacyId[actionKey];
|
|
193
|
+
if (actionType === void 0) return void 0;
|
|
194
|
+
const resourceId = actionType["resourceId"];
|
|
195
|
+
return {
|
|
196
|
+
id: actionKey,
|
|
197
|
+
label: actionType.label ?? actionKey,
|
|
198
|
+
...typeof resourceId === "string" ? { resourceId } : {}
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
function getCrmActionMetadata(actionKey) {
|
|
202
|
+
const actionType = BUSINESS_ONTOLOGY_VALIDATION_INDEX.actionTypesByLegacyId[actionKey];
|
|
203
|
+
return actionType?.ownerSystemId === "sales.crm" ? getActionMetadata(actionKey) : void 0;
|
|
204
|
+
}
|
|
205
|
+
|
|
43
206
|
// ../core/src/business/acquisition/deal-ownership.ts
|
|
44
207
|
var INBOUND_EVENT_TYPES = ["reply_received"];
|
|
45
208
|
var OUTBOUND_EVENT_TYPES = [
|
|
@@ -98,56 +261,44 @@ function parseMs(value) {
|
|
|
98
261
|
var SendReplyActionPayloadSchema = z.object({
|
|
99
262
|
replyBody: z.string().trim().min(1).max(1e4)
|
|
100
263
|
}).strict();
|
|
264
|
+
function crmAction(actionId, runtime) {
|
|
265
|
+
const metadata = getCrmActionMetadata(actionId);
|
|
266
|
+
if (!metadata?.resourceId) {
|
|
267
|
+
throw new Error(`CRM action metadata for "${actionId}" must define resourceId`);
|
|
268
|
+
}
|
|
269
|
+
return {
|
|
270
|
+
key: metadata.id,
|
|
271
|
+
label: metadata.label,
|
|
272
|
+
workflowId: metadata.resourceId,
|
|
273
|
+
...runtime
|
|
274
|
+
};
|
|
275
|
+
}
|
|
101
276
|
var DEFAULT_CRM_ACTIONS = [
|
|
102
|
-
{
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
workflowId: "move_to_closed_won-workflow"
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
key: "move_to_closed_lost",
|
|
122
|
-
label: "Close Lost",
|
|
123
|
-
isAvailableFor: (deal) => deal.stage_key === "interested" || deal.stage_key === "proposal" || deal.stage_key === "closing",
|
|
124
|
-
workflowId: "move_to_closed_lost-workflow"
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
key: "move_to_nurturing",
|
|
128
|
-
label: "Move to Nurturing",
|
|
129
|
-
isAvailableFor: (deal) => deal.stage_key === "interested" || deal.stage_key === "proposal" || deal.stage_key === "closing",
|
|
130
|
-
workflowId: "move_to_nurturing-workflow"
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
key: "send_reply",
|
|
134
|
-
label: "Send Reply",
|
|
277
|
+
crmAction("move_to_proposal", {
|
|
278
|
+
isAvailableFor: (deal) => deal.stage_key === "interested"
|
|
279
|
+
}),
|
|
280
|
+
crmAction("move_to_closing", {
|
|
281
|
+
isAvailableFor: (deal) => deal.stage_key === "proposal"
|
|
282
|
+
}),
|
|
283
|
+
crmAction("move_to_closed_won", {
|
|
284
|
+
isAvailableFor: (deal) => deal.stage_key === "closing"
|
|
285
|
+
}),
|
|
286
|
+
crmAction("move_to_closed_lost", {
|
|
287
|
+
isAvailableFor: (deal) => deal.stage_key === "interested" || deal.stage_key === "proposal" || deal.stage_key === "closing"
|
|
288
|
+
}),
|
|
289
|
+
crmAction("move_to_nurturing", {
|
|
290
|
+
isAvailableFor: (deal) => deal.stage_key === "interested" || deal.stage_key === "proposal" || deal.stage_key === "closing"
|
|
291
|
+
}),
|
|
292
|
+
crmAction("send_reply", {
|
|
135
293
|
isAvailableFor: (deal) => deal.stage_key === "interested" && isOurReplyAction(deal) && (deal.state_key === CRM_DISCOVERY_REPLIED_STATE.stateKey || deal.state_key === CRM_DISCOVERY_LINK_SENT_STATE.stateKey || deal.state_key === CRM_DISCOVERY_NUDGING_STATE.stateKey),
|
|
136
|
-
workflowId: "crm-send-reply-workflow",
|
|
137
294
|
payloadSchema: SendReplyActionPayloadSchema
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
key: "send_nudge",
|
|
147
|
-
label: "Send Nudge",
|
|
148
|
-
isAvailableFor: (deal) => deal.stage_key === "interested" && (deal.state_key === CRM_DISCOVERY_LINK_SENT_STATE.stateKey || deal.state_key === CRM_DISCOVERY_NUDGING_STATE.stateKey),
|
|
149
|
-
workflowId: "crm-send-nudge-workflow"
|
|
150
|
-
},
|
|
295
|
+
}),
|
|
296
|
+
crmAction("send_link", {
|
|
297
|
+
isAvailableFor: (deal) => deal.stage_key === "interested" && deal.state_key === CRM_DISCOVERY_REPLIED_STATE.stateKey
|
|
298
|
+
}),
|
|
299
|
+
crmAction("send_nudge", {
|
|
300
|
+
isAvailableFor: (deal) => deal.stage_key === "interested" && (deal.state_key === CRM_DISCOVERY_LINK_SENT_STATE.stateKey || deal.state_key === CRM_DISCOVERY_NUDGING_STATE.stateKey)
|
|
301
|
+
}),
|
|
151
302
|
{
|
|
152
303
|
key: "mark_no_show",
|
|
153
304
|
label: "Mark No-Show",
|
|
@@ -157,12 +308,9 @@ var DEFAULT_CRM_ACTIONS = [
|
|
|
157
308
|
// event captures operator intent and distinguishes the manual variant from the timed one.
|
|
158
309
|
workflowId: "mark_no_show-workflow"
|
|
159
310
|
},
|
|
160
|
-
{
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
isAvailableFor: (deal) => deal.stage_key === "interested" && deal.state_key === CRM_DISCOVERY_BOOKING_CANCELLED_STATE.stateKey,
|
|
164
|
-
workflowId: "crm-rebook-workflow"
|
|
165
|
-
}
|
|
311
|
+
crmAction("rebook", {
|
|
312
|
+
isAvailableFor: (deal) => deal.stage_key === "interested" && deal.state_key === CRM_DISCOVERY_BOOKING_CANCELLED_STATE.stateKey
|
|
313
|
+
})
|
|
166
314
|
];
|
|
167
315
|
function deriveActions(deal, actions = DEFAULT_CRM_ACTIONS) {
|
|
168
316
|
return actions.filter((a) => a.isAvailableFor(deal)).map(({ key, label, payloadSchema }) => ({ key, label, payloadSchema }));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getSemanticIconComponent } from './chunk-DWXDNT7P.js';
|
|
2
|
+
import { devOnlyFor, requiresAdminFor, topLevel, parentOf, ancestorsOf, childrenOf, findById, findByPath, listAllSystems, defaultPathFor, getSortedSidebarEntries } from './chunk-DYIDXUJS.js';
|
|
2
3
|
import { useInitialization } from './chunk-533DUEQY.js';
|
|
3
4
|
import { useOrganization } from './chunk-DD3CCMCZ.js';
|
|
4
5
|
import { createContext, useMemo, useCallback, useContext } from 'react';
|
|
5
|
-
import { IconSettings, IconArchive, IconShieldLock, IconBriefcase, IconUsers, IconChartBar, IconCalendar, IconDashboard, IconBrain, IconActivity, IconCode, IconTarget, IconTool } from '@tabler/icons-react';
|
|
6
6
|
import { jsx } from 'react/jsx-runtime';
|
|
7
7
|
|
|
8
8
|
function createFeatureAccessHook({
|
|
@@ -105,27 +105,8 @@ function validateManifests(manifests, organizationModel) {
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
var ElevasisSystemsContext = createContext(null);
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
"feature.business": IconBriefcase,
|
|
111
|
-
"feature.sales": IconTarget,
|
|
112
|
-
"feature.clients": IconUsers,
|
|
113
|
-
"feature.projects": IconBriefcase,
|
|
114
|
-
"feature.operations": IconCode,
|
|
115
|
-
"feature.monitoring": IconActivity,
|
|
116
|
-
"feature.knowledge": IconBrain,
|
|
117
|
-
"feature.settings": IconSettings,
|
|
118
|
-
"feature.admin": IconShieldLock,
|
|
119
|
-
dashboard: IconDashboard,
|
|
120
|
-
calendar: IconCalendar,
|
|
121
|
-
business: IconBriefcase,
|
|
122
|
-
sales: IconChartBar,
|
|
123
|
-
clients: IconUsers,
|
|
124
|
-
projects: IconBriefcase,
|
|
125
|
-
admin: IconShieldLock,
|
|
126
|
-
archive: IconArchive,
|
|
127
|
-
settings: IconSettings
|
|
128
|
-
};
|
|
108
|
+
|
|
109
|
+
// src/provider/sidebarProjection.ts
|
|
129
110
|
function isLifecycleEnabled(system) {
|
|
130
111
|
if (system.enabled === false) return false;
|
|
131
112
|
return system.lifecycle !== "deprecated" && system.lifecycle !== "archived";
|
|
@@ -150,12 +131,12 @@ function iconForNode(node, context) {
|
|
|
150
131
|
const targetIcon = node.targets?.systems?.map((systemId) => context.shellModel.findById(systemId)?.iconComponent).find(Boolean);
|
|
151
132
|
if (targetIcon) return targetIcon;
|
|
152
133
|
}
|
|
153
|
-
return
|
|
134
|
+
return getSemanticIconComponent(node.icon);
|
|
154
135
|
}
|
|
155
136
|
function activeMatchPathsForSurface(node, context) {
|
|
156
|
-
const
|
|
157
|
-
|
|
158
|
-
);
|
|
137
|
+
const targets = node.targets?.systems ?? [];
|
|
138
|
+
if (targets.length !== 1) return void 0;
|
|
139
|
+
const paths = context.shellModel.childrenOf(targets[0]).map((child) => child.path).filter((path) => Boolean(path && path !== node.path));
|
|
159
140
|
return paths.length > 0 ? [...new Set(paths)] : void 0;
|
|
160
141
|
}
|
|
161
142
|
function surfaceToLinkItem(node, context, siblings) {
|
|
@@ -384,7 +365,7 @@ function ElevasisSystemsProvider({
|
|
|
384
365
|
}
|
|
385
366
|
return {
|
|
386
367
|
...organizationModel,
|
|
387
|
-
knowledge: organizationModel.knowledge ?? {
|
|
368
|
+
knowledge: organizationModel.knowledge ?? {}
|
|
388
369
|
};
|
|
389
370
|
}, [organizationModel]);
|
|
390
371
|
useMemo(() => validateManifests(activeSystems, resolvedOrganizationModel), [activeSystems, resolvedOrganizationModel]);
|