@elevasis/ui 2.4.1 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-JT7WDIZI.js → chunk-4GZ6VZWO.js} +1 -1
- package/dist/{chunk-WSL5MNAI.js → chunk-6RGNVHG3.js} +6 -4
- package/dist/{chunk-WN764MR7.js → chunk-CC4WGHGG.js} +3 -2
- package/dist/{chunk-PEZ4WOPF.js → chunk-DQJM7T2N.js} +2 -2
- package/dist/{chunk-KRTZTBVP.js → chunk-FH5QGCXL.js} +8 -6
- package/dist/{chunk-2DZACNOX.js → chunk-MU5EZV3L.js} +5 -3
- package/dist/{chunk-ISHNN42L.js → chunk-O4PMRC6J.js} +223 -59
- package/dist/{chunk-ZG7MLOBE.js → chunk-PEDPD3PU.js} +1 -1
- package/dist/{chunk-5XGBMKUY.js → chunk-PHRDZFJT.js} +3 -3
- package/dist/{chunk-IPRMGSCV.js → chunk-POFDRPDI.js} +1 -1
- package/dist/{chunk-3ONP2CEB.js → chunk-X4BLH3JL.js} +6 -4
- package/dist/{chunk-J5KWNRSD.js → chunk-YIWLA2B6.js} +1 -0
- package/dist/{chunk-G3G2QEB6.js → chunk-ZB5PKIX5.js} +4 -13
- package/dist/components/index.d.ts +127 -105
- package/dist/components/index.js +16 -16
- package/dist/features/crm/index.d.ts +24 -0
- package/dist/features/crm/index.js +5 -5
- package/dist/features/dashboard/index.d.ts +2 -37
- package/dist/features/dashboard/index.js +5 -5
- package/dist/features/delivery/index.d.ts +25 -0
- package/dist/features/delivery/index.js +5 -5
- package/dist/features/lead-gen/index.d.ts +25 -1
- package/dist/features/lead-gen/index.js +8 -8
- package/dist/features/monitoring/index.d.ts +25 -0
- package/dist/features/monitoring/index.js +6 -6
- package/dist/features/operations/index.d.ts +83 -59
- package/dist/features/operations/index.js +7 -7
- package/dist/features/seo/index.d.ts +25 -0
- package/dist/features/seo/index.js +1 -1
- package/dist/features/settings/index.d.ts +24 -0
- package/dist/features/settings/index.js +5 -5
- package/dist/hooks/index.d.ts +239 -239
- package/dist/hooks/index.js +4 -4
- package/dist/hooks/published.d.ts +169 -169
- package/dist/hooks/published.js +3 -3
- package/dist/index.d.ts +302 -254
- package/dist/index.js +4 -4
- package/dist/provider/index.d.ts +63 -15
- package/dist/provider/index.js +2 -2
- package/dist/provider/published.d.ts +63 -15
- package/dist/provider/published.js +1 -1
- package/dist/types/index.d.ts +134 -134
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PRESETS, getPreset, generateShades, mantineThemeOverride, createCssVariablesResolver, PresetsProvider } from './chunk-47YILFON.js';
|
|
2
2
|
import { AppBackground } from './chunk-CYXZHBP4.js';
|
|
3
|
-
import { ElevasisCoreProvider } from './chunk-
|
|
3
|
+
import { ElevasisCoreProvider } from './chunk-O4PMRC6J.js';
|
|
4
4
|
import { ElevasisLoader } from './chunk-Y3D3WFJG.js';
|
|
5
5
|
import { AppearanceProvider } from './chunk-QJ2KCHKX.js';
|
|
6
6
|
import { getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-IOKL7BKE.js';
|
|
@@ -3,8 +3,8 @@ import { PageContainer } from './chunk-BZZCNLT6.js';
|
|
|
3
3
|
import { SubshellSidebarSection, SubshellNavItem } from './chunk-27COZ5AH.js';
|
|
4
4
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
5
5
|
import { CustomModal } from './chunk-GBMNCNHX.js';
|
|
6
|
-
import { useProjects, useProject, useProjectNotes, useDeleteProject as useDeleteProject$1, useUpdateMilestone, useCreateNote } from './chunk-
|
|
7
|
-
import { useDeleteProject, useTableSort, sortData, usePaginationState, useTableSelection } from './chunk-
|
|
6
|
+
import { useProjects, useProject, useProjectNotes, useDeleteProject as useDeleteProject$1, useUpdateMilestone, useCreateNote } from './chunk-DQJM7T2N.js';
|
|
7
|
+
import { useDeleteProject, useTableSort, sortData, usePaginationState, useTableSelection } from './chunk-POFDRPDI.js';
|
|
8
8
|
import { SubshellContentContainer } from './chunk-RX4UWZZR.js';
|
|
9
9
|
import { StatusBadge, EmptyState, PageTitleCaption, CenteredErrorState, StatCard } from './chunk-Y3D3WFJG.js';
|
|
10
10
|
import { PAGE_SIZE_DEFAULT, formatTimeAgo, formatDate } from './chunk-IOKL7BKE.js';
|
|
@@ -321,11 +321,13 @@ var ProjectsSidebar = () => {
|
|
|
321
321
|
var deliveryManifest = {
|
|
322
322
|
key: "delivery",
|
|
323
323
|
label: "Projects",
|
|
324
|
+
accessFeatureKey: "delivery",
|
|
325
|
+
domainIds: ["delivery"],
|
|
326
|
+
capabilityIds: ["delivery.projects.view"],
|
|
324
327
|
navEntry: {
|
|
325
328
|
label: "Projects",
|
|
326
329
|
icon: IconBriefcase,
|
|
327
|
-
link: "/projects"
|
|
328
|
-
featureKey: "delivery"
|
|
330
|
+
link: "/projects"
|
|
329
331
|
},
|
|
330
332
|
sidebar: ProjectsSidebar,
|
|
331
333
|
subshellRoutes: ["/projects"]
|
|
@@ -2,8 +2,8 @@ import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
|
2
2
|
import { CustomModal } from './chunk-GBMNCNHX.js';
|
|
3
3
|
import { AppShellLoader } from './chunk-YEX4MQSY.js';
|
|
4
4
|
import { useAvailablePresets } from './chunk-VNUOQQNY.js';
|
|
5
|
-
import { useDeleteCredential, useCreateCredential, useCredentials, MEMBERSHIP_STATUS_COLORS, transformMembershipToTableRow, useUserMemberships, useUpdateWebhookEndpoint, useDeleteWebhookEndpoint, useCreateWebhookEndpoint, useListWebhookEndpoints, useUpdateMemberConfig, useOrganizationMembers, useUpdateCredential, CredentialSchemas } from './chunk-
|
|
6
|
-
import { useResources, showErrorNotification } from './chunk-
|
|
5
|
+
import { useDeleteCredential, useCreateCredential, useCredentials, MEMBERSHIP_STATUS_COLORS, transformMembershipToTableRow, useUserMemberships, useUpdateWebhookEndpoint, useDeleteWebhookEndpoint, useCreateWebhookEndpoint, useListWebhookEndpoints, useUpdateMemberConfig, useOrganizationMembers, useUpdateCredential, CredentialSchemas } from './chunk-DQJM7T2N.js';
|
|
6
|
+
import { useResources, showErrorNotification } from './chunk-POFDRPDI.js';
|
|
7
7
|
import { ListSkeleton, EmptyState, PageTitleCaption, CardHeader, APIErrorAlert, StatCard } from './chunk-Y3D3WFJG.js';
|
|
8
8
|
import { formatDateTime, OAUTH_POPUP_CHECK_INTERVAL, OAUTH_FLOW_TIMEOUT } from './chunk-IOKL7BKE.js';
|
|
9
9
|
import { useInitialization } from './chunk-TUXTSEAF.js';
|
|
@@ -2005,6 +2005,7 @@ function OAuthIntegrationsCard({ apiUrl }) {
|
|
|
2005
2005
|
var settingsManifest = {
|
|
2006
2006
|
key: "settings",
|
|
2007
2007
|
label: "Settings",
|
|
2008
|
+
accessFeatureKey: "settings",
|
|
2008
2009
|
navEntry: {
|
|
2009
2010
|
label: "Settings",
|
|
2010
2011
|
icon: IconSettings,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { CredentialNameSchema, UuidSchema, useErrorNotification, showApiErrorNotification } from './chunk-
|
|
1
|
+
import { CredentialNameSchema, UuidSchema, useErrorNotification, showApiErrorNotification } from './chunk-POFDRPDI.js';
|
|
2
2
|
import { getTimeRangeDates } from './chunk-LXHZYSMQ.js';
|
|
3
|
-
import { useNotificationAdapter } from './chunk-
|
|
3
|
+
import { useNotificationAdapter } from './chunk-O4PMRC6J.js';
|
|
4
4
|
import { GC_TIME_SHORT, STALE_TIME_MONITORING, GC_TIME_MEDIUM, STALE_TIME_DEFAULT } from './chunk-IOKL7BKE.js';
|
|
5
5
|
import { useElevasisServices } from './chunk-QEPXAWE2.js';
|
|
6
6
|
import { z } from 'zod';
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { ChatHeader, ChatSidebar } from './chunk-ROSMICXG.js';
|
|
2
2
|
import { SubshellLoader, CollapsibleSidebarGroup } from './chunk-IDACMRGQ.js';
|
|
3
|
-
import { ResourceHealthPanel } from './chunk-
|
|
3
|
+
import { ResourceHealthPanel } from './chunk-PEDPD3PU.js';
|
|
4
4
|
import { PageContainer } from './chunk-BZZCNLT6.js';
|
|
5
5
|
import { SubshellSidebarSection, SubshellNavItem } from './chunk-27COZ5AH.js';
|
|
6
6
|
import { CustomModal, ConfirmationModal } from './chunk-GBMNCNHX.js';
|
|
7
|
-
import { BaseNode, useGraphTheme, BaseEdge, ExecutionStats, UnifiedWorkflowGraph, WorkflowExecutionTimeline, AgentExecutionVisualizer, AgentExecutionTimeline, GraphBackground, GraphFitViewButton, GraphFitViewHandler } from './chunk-
|
|
7
|
+
import { BaseNode, useGraphTheme, BaseEdge, ExecutionStats, UnifiedWorkflowGraph, WorkflowExecutionTimeline, AgentExecutionVisualizer, AgentExecutionTimeline, GraphBackground, GraphFitViewButton, GraphFitViewHandler } from './chunk-ZB5PKIX5.js';
|
|
8
8
|
import { useCyberColors, CyberDonut } from './chunk-KFICYU6S.js';
|
|
9
9
|
import { AppShellLoader } from './chunk-YEX4MQSY.js';
|
|
10
10
|
import { getResourceStatusColor, useMergedExecution, useTimelineData, useAgentIterationData, getStatusIcon } from './chunk-XA34RETF.js';
|
|
11
|
-
import { useStatusFilter, useResourceSearch, useResourcesDomainFilters, filterByDomainFilters, useCommandViewDomainFilters } from './chunk-
|
|
12
|
-
import { useErrorDetail, useExecution, useArchivedLogs, useDeleteExecution, useRetryExecution, useCancelExecution, useCommandQueueTotals, usePaginationState, useResources, useRecentExecutionsByResource, useExecuteAsync, useResourceDefinition, isSessionCapable, useDeleteTask, useCommandQueue, useSubmitAction, useCommandViewData, useCommandViewStats, useResourceExecutions, useCheckpointTasks, useCalibrationProjects, useCalibrationProject, useAllCalibrationProjects, useCommandViewStore, useCalibrationSSE, useCalibrationRunFull, useExecuteRun, useGradeRun, useCalibrationRuns, useExecutionPanelState, useDeleteSession, useCreateSession, useSessions, useSessionExecutions, useSession, showApiErrorNotification, showSuccessNotification, calibrationKeys, useDeleteProject, useCreateProject, useBulkDeleteExecutions } from './chunk-
|
|
11
|
+
import { useStatusFilter, useResourceSearch, useResourcesDomainFilters, filterByDomainFilters, useCommandViewDomainFilters } from './chunk-DQJM7T2N.js';
|
|
12
|
+
import { useErrorDetail, useExecution, useArchivedLogs, useDeleteExecution, useRetryExecution, useCancelExecution, useCommandQueueTotals, usePaginationState, useResources, useRecentExecutionsByResource, useExecuteAsync, useResourceDefinition, isSessionCapable, useDeleteTask, useCommandQueue, useSubmitAction, useCommandViewData, useCommandViewStats, useResourceExecutions, useCheckpointTasks, useCalibrationProjects, useCalibrationProject, useAllCalibrationProjects, useCommandViewStore, useCalibrationSSE, useCalibrationRunFull, useExecuteRun, useGradeRun, useCalibrationRuns, useExecutionPanelState, useDeleteSession, useCreateSession, useSessions, useSessionExecutions, useSession, showApiErrorNotification, showSuccessNotification, calibrationKeys, useDeleteProject, useCreateProject, useBulkDeleteExecutions } from './chunk-POFDRPDI.js';
|
|
13
13
|
import { useGraphHighlighting, calculateGraphHeight, Graph_module_css_default, GRAPH_CONSTANTS } from './chunk-22UVE3RA.js';
|
|
14
|
-
import { useOptionalElevasisFeatures, useElevasisFeatures } from './chunk-
|
|
14
|
+
import { useOptionalElevasisFeatures, useElevasisFeatures } from './chunk-O4PMRC6J.js';
|
|
15
15
|
import { SubshellContainer, SubshellSidebar, SubshellRightSideContainer, SubshellContentContainer } from './chunk-RX4UWZZR.js';
|
|
16
16
|
import { JsonViewer, CardHeader, PageTitleCaption, CollapsibleSection, TabCountBadge, ResourceCard, ContextViewer, EmptyState, APIErrorAlert } from './chunk-Y3D3WFJG.js';
|
|
17
17
|
import { StyledMarkdown } from './chunk-3KMDHCAR.js';
|
|
@@ -8988,6 +8988,9 @@ function CommandQueueShell({
|
|
|
8988
8988
|
var operationsManifest = {
|
|
8989
8989
|
key: "operations",
|
|
8990
8990
|
label: "Operations",
|
|
8991
|
+
accessFeatureKey: "operations",
|
|
8992
|
+
domainIds: ["operations"],
|
|
8993
|
+
capabilityIds: ["operations.organization-graph", "operations.command-view"],
|
|
8991
8994
|
sidebar: OperationsSidebar,
|
|
8992
8995
|
subshellRoutes: ["/operations"],
|
|
8993
8996
|
organizationGraph: {
|
|
@@ -8996,7 +8999,6 @@ var operationsManifest = {
|
|
|
8996
8999
|
navEntry: {
|
|
8997
9000
|
label: "Operations",
|
|
8998
9001
|
icon: IconCode,
|
|
8999
|
-
featureKey: "operations",
|
|
9000
9002
|
dataOnboardingTourId: "sidebar-operations",
|
|
9001
9003
|
links: [
|
|
9002
9004
|
{ label: "Overview", link: "/operations" },
|
|
@@ -3,7 +3,7 @@ import { PageContainer } from './chunk-BZZCNLT6.js';
|
|
|
3
3
|
import { SubshellSidebarSection, SubshellNavItem } from './chunk-27COZ5AH.js';
|
|
4
4
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
5
5
|
import { CustomModal } from './chunk-GBMNCNHX.js';
|
|
6
|
-
import { useDealTasksDue, useDeals, useCreateDealTask, useDeleteDeal, useTableSort, sortData, usePaginationState, useTableSelection, useDealDetail } from './chunk-
|
|
6
|
+
import { useDealTasksDue, useDeals, useCreateDealTask, useDeleteDeal, useTableSort, sortData, usePaginationState, useTableSelection, useDealDetail } from './chunk-POFDRPDI.js';
|
|
7
7
|
import { SubshellContentContainer } from './chunk-RX4UWZZR.js';
|
|
8
8
|
import { CenteredErrorState, CardHeader, PageTitleCaption, EmptyState, ActivityTimeline } from './chunk-Y3D3WFJG.js';
|
|
9
9
|
import { PAGE_SIZE_DEFAULT, formatTimeAgo } from './chunk-IOKL7BKE.js';
|
|
@@ -694,13 +694,15 @@ function CrmOverview({
|
|
|
694
694
|
var crmManifest = {
|
|
695
695
|
key: "crm",
|
|
696
696
|
label: "CRM",
|
|
697
|
+
accessFeatureKey: "acquisition",
|
|
698
|
+
domainIds: ["crm"],
|
|
699
|
+
capabilityIds: ["crm.pipeline.manage"],
|
|
697
700
|
sidebar: CrmSidebar,
|
|
698
701
|
subshellRoutes: ["/crm"],
|
|
699
702
|
navEntry: {
|
|
700
703
|
label: "CRM",
|
|
701
704
|
icon: IconAddressBook,
|
|
702
|
-
link: "/crm"
|
|
703
|
-
featureKey: "acquisition"
|
|
705
|
+
link: "/crm"
|
|
704
706
|
}
|
|
705
707
|
};
|
|
706
708
|
|
|
@@ -183,17 +183,6 @@ function useElevasisFeatures() {
|
|
|
183
183
|
function useOptionalElevasisFeatures() {
|
|
184
184
|
return useContext(ElevasisFeaturesContext);
|
|
185
185
|
}
|
|
186
|
-
function getEnabledFeatures(features, hasFeature) {
|
|
187
|
-
return features.filter((feature) => {
|
|
188
|
-
const accessKeys = [feature.key, feature.navEntry?.featureKey].filter(
|
|
189
|
-
(key) => Boolean(key)
|
|
190
|
-
);
|
|
191
|
-
if (accessKeys.length === 0) {
|
|
192
|
-
return true;
|
|
193
|
-
}
|
|
194
|
-
return accessKeys.some((key) => hasFeature(key));
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
186
|
function normalizeRoutePath(path) {
|
|
198
187
|
const trimmedPath = path.trim();
|
|
199
188
|
if (!trimmedPath || trimmedPath === "/") {
|
|
@@ -206,6 +195,9 @@ function isRouteMatch(currentPath, route) {
|
|
|
206
195
|
const normalizedRoute = normalizeRoutePath(route);
|
|
207
196
|
return normalizedCurrentPath === normalizedRoute || normalizedCurrentPath.startsWith(`${normalizedRoute}/`);
|
|
208
197
|
}
|
|
198
|
+
function uniqueIds(ids) {
|
|
199
|
+
return ids ? [...new Set(ids)] : [];
|
|
200
|
+
}
|
|
209
201
|
function hasOrganizationModelFeatureKey(organizationModel, key) {
|
|
210
202
|
if (!organizationModel) {
|
|
211
203
|
return false;
|
|
@@ -227,6 +219,15 @@ function findSurfaceById(organizationModel, id) {
|
|
|
227
219
|
}
|
|
228
220
|
return organizationModel.navigation.surfaces.find((surface) => surface.id === id);
|
|
229
221
|
}
|
|
222
|
+
function findSurfacesByPaths(organizationModel, paths) {
|
|
223
|
+
if (!organizationModel || paths.length === 0) {
|
|
224
|
+
return [];
|
|
225
|
+
}
|
|
226
|
+
const normalizedPaths = new Set(paths.map((path) => normalizeRoutePath(path)));
|
|
227
|
+
return organizationModel.navigation.surfaces.filter(
|
|
228
|
+
(surface) => normalizedPaths.has(normalizeRoutePath(surface.path))
|
|
229
|
+
);
|
|
230
|
+
}
|
|
230
231
|
function getOrganizationModelFeatureLabel(organizationModel, key) {
|
|
231
232
|
if (!organizationModel || !key) {
|
|
232
233
|
return void 0;
|
|
@@ -245,6 +246,12 @@ function isOrganizationModelFeatureEnabled(organizationModel, key) {
|
|
|
245
246
|
}
|
|
246
247
|
return organizationModel.features.enabled[key];
|
|
247
248
|
}
|
|
249
|
+
function collectNavLinkPaths(links) {
|
|
250
|
+
if (!links?.length) {
|
|
251
|
+
return [];
|
|
252
|
+
}
|
|
253
|
+
return links.flatMap((link) => [link.link, ...collectNavLinkPaths(link.links)]);
|
|
254
|
+
}
|
|
248
255
|
function resolveOrganizationGraphSurface(features, organizationModel) {
|
|
249
256
|
for (const feature of features) {
|
|
250
257
|
const graphBridge = feature.organizationGraph;
|
|
@@ -274,22 +281,66 @@ function resolveNavLink(link, organizationModel) {
|
|
|
274
281
|
links: link.links?.map((nestedLink) => resolveNavLink(nestedLink, organizationModel))
|
|
275
282
|
};
|
|
276
283
|
}
|
|
284
|
+
function resolveNavEntry(navEntry, organizationModel) {
|
|
285
|
+
const matchedSurface = navEntry.link ? findSurfaceByPath(organizationModel, navEntry.link) : void 0;
|
|
286
|
+
const featureLabel = getOrganizationModelFeatureLabel(organizationModel, navEntry.featureKey);
|
|
287
|
+
return {
|
|
288
|
+
...navEntry,
|
|
289
|
+
label: matchedSurface?.label ?? featureLabel ?? navEntry.label,
|
|
290
|
+
link: matchedSurface?.path ?? navEntry.link,
|
|
291
|
+
links: navEntry.links?.map((link) => resolveNavLink(link, organizationModel))
|
|
292
|
+
};
|
|
293
|
+
}
|
|
277
294
|
function resolveFeatureModule(feature, organizationModel) {
|
|
278
295
|
if (!feature.navEntry) {
|
|
279
296
|
return feature;
|
|
280
297
|
}
|
|
281
|
-
const matchedSurface = feature.navEntry.link ? findSurfaceByPath(organizationModel, feature.navEntry.link) : void 0;
|
|
282
|
-
const featureLabel = getOrganizationModelFeatureLabel(organizationModel, feature.navEntry.featureKey);
|
|
283
298
|
return {
|
|
284
299
|
...feature,
|
|
285
|
-
navEntry:
|
|
286
|
-
...feature.navEntry,
|
|
287
|
-
label: matchedSurface?.label ?? featureLabel ?? feature.navEntry.label,
|
|
288
|
-
link: matchedSurface?.path ?? feature.navEntry.link,
|
|
289
|
-
links: feature.navEntry.links?.map((link) => resolveNavLink(link, organizationModel))
|
|
290
|
-
}
|
|
300
|
+
navEntry: resolveNavEntry(feature.navEntry, organizationModel)
|
|
291
301
|
};
|
|
292
302
|
}
|
|
303
|
+
function resolveFeatureSemantics(feature, resolvedFeature, organizationModel) {
|
|
304
|
+
const linkedPaths = [
|
|
305
|
+
resolvedFeature.navEntry?.link,
|
|
306
|
+
...collectNavLinkPaths(resolvedFeature.navEntry?.links)
|
|
307
|
+
].filter((path) => Boolean(path));
|
|
308
|
+
const linkedSurfaces = findSurfacesByPaths(organizationModel, linkedPaths);
|
|
309
|
+
const organizationGraphSurface = feature.organizationGraph ? findSurfaceById(organizationModel, feature.organizationGraph.surfaceId) : void 0;
|
|
310
|
+
const surfaces = [
|
|
311
|
+
...linkedSurfaces,
|
|
312
|
+
...organizationGraphSurface ? [organizationGraphSurface] : []
|
|
313
|
+
].filter(
|
|
314
|
+
(surface, index, items) => Boolean(surface) && items.findIndex((candidate) => candidate.id === surface.id) === index
|
|
315
|
+
);
|
|
316
|
+
return {
|
|
317
|
+
domainIds: uniqueIds([
|
|
318
|
+
...feature.domainIds ?? [],
|
|
319
|
+
...surfaces.flatMap((surface) => surface.domainIds)
|
|
320
|
+
]),
|
|
321
|
+
capabilityIds: uniqueIds([
|
|
322
|
+
...feature.capabilityIds ?? [],
|
|
323
|
+
...surfaces.flatMap((surface) => surface.capabilityIds)
|
|
324
|
+
]),
|
|
325
|
+
surfaceIds: surfaces.map((surface) => surface.id),
|
|
326
|
+
surfaces
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
function resolveFeatureModules(features, organizationModel, isFeatureEnabled) {
|
|
330
|
+
return features.map((feature) => {
|
|
331
|
+
const resolvedFeature = resolveFeatureModule(feature, organizationModel);
|
|
332
|
+
const accessFeatureKey = feature.accessFeatureKey;
|
|
333
|
+
return {
|
|
334
|
+
...resolvedFeature,
|
|
335
|
+
access: {
|
|
336
|
+
featureKey: accessFeatureKey,
|
|
337
|
+
label: getOrganizationModelFeatureLabel(organizationModel, accessFeatureKey),
|
|
338
|
+
enabled: isFeatureEnabled(accessFeatureKey)
|
|
339
|
+
},
|
|
340
|
+
semantics: resolveFeatureSemantics(feature, resolvedFeature, organizationModel)
|
|
341
|
+
};
|
|
342
|
+
});
|
|
343
|
+
}
|
|
293
344
|
function filterNavLinks(links, disabledSubsectionPaths, isFeatureEnabled) {
|
|
294
345
|
return links.flatMap((link) => {
|
|
295
346
|
if (link.featureKey && !isFeatureEnabled(link.featureKey)) {
|
|
@@ -307,7 +358,7 @@ function filterNavLinks(links, disabledSubsectionPaths, isFeatureEnabled) {
|
|
|
307
358
|
];
|
|
308
359
|
});
|
|
309
360
|
}
|
|
310
|
-
function
|
|
361
|
+
function getFeatureNavItems(features, disabledSubsectionPaths, isFeatureEnabled) {
|
|
311
362
|
return features.flatMap((feature) => {
|
|
312
363
|
if (!feature.navEntry) {
|
|
313
364
|
return [];
|
|
@@ -316,7 +367,47 @@ function getNavItems(features, disabledSubsectionPaths, isFeatureEnabled) {
|
|
|
316
367
|
return [
|
|
317
368
|
{
|
|
318
369
|
...feature.navEntry,
|
|
319
|
-
links
|
|
370
|
+
links,
|
|
371
|
+
placement: "primary",
|
|
372
|
+
source: "feature",
|
|
373
|
+
shellModuleKey: feature.key,
|
|
374
|
+
accessFeatureKey: feature.access.featureKey
|
|
375
|
+
}
|
|
376
|
+
];
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
function resolveAppShellOverrides(appShellOverrides, organizationModel) {
|
|
380
|
+
if (!appShellOverrides) {
|
|
381
|
+
return {};
|
|
382
|
+
}
|
|
383
|
+
return {
|
|
384
|
+
primaryNavItems: appShellOverrides.primaryNavItems?.map(
|
|
385
|
+
(navItem) => resolveNavEntry(navItem, organizationModel)
|
|
386
|
+
),
|
|
387
|
+
bottomNavItems: appShellOverrides.bottomNavItems?.map(
|
|
388
|
+
(navItem) => resolveNavEntry(navItem, organizationModel)
|
|
389
|
+
)
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
function getAppShellNavItems(navItems, placement, disabledSubsectionPaths, isFeatureEnabled) {
|
|
393
|
+
if (!navItems?.length) {
|
|
394
|
+
return [];
|
|
395
|
+
}
|
|
396
|
+
return navItems.flatMap((navItem) => {
|
|
397
|
+
if (navItem.featureKey && !isFeatureEnabled(navItem.featureKey)) {
|
|
398
|
+
return [];
|
|
399
|
+
}
|
|
400
|
+
const links = navItem.links?.length ? filterNavLinks(navItem.links, disabledSubsectionPaths, isFeatureEnabled) : void 0;
|
|
401
|
+
if (navItem.links && !links?.length && !navItem.link) {
|
|
402
|
+
return [];
|
|
403
|
+
}
|
|
404
|
+
return [
|
|
405
|
+
{
|
|
406
|
+
...navItem,
|
|
407
|
+
links,
|
|
408
|
+
placement,
|
|
409
|
+
source: "app",
|
|
410
|
+
accessFeatureKey: navItem.featureKey
|
|
320
411
|
}
|
|
321
412
|
];
|
|
322
413
|
});
|
|
@@ -341,7 +432,7 @@ function isHiddenNavLink(link, disabledSubsectionPaths, isFeatureEnabled) {
|
|
|
341
432
|
}
|
|
342
433
|
return disabledSubsectionPaths.some((disabledPath) => isRouteMatch(link.link, disabledPath));
|
|
343
434
|
}
|
|
344
|
-
function
|
|
435
|
+
function resolveRoute(features, currentPath, disabledSubsectionPaths, isFeatureEnabled) {
|
|
345
436
|
for (const feature of features) {
|
|
346
437
|
const navEntry = feature.navEntry;
|
|
347
438
|
const matchesSubshell = feature.subshellRoutes?.some((route) => isRouteMatch(currentPath, route)) ?? false;
|
|
@@ -352,29 +443,42 @@ function resolveNavRoute(features, currentPath, disabledSubsectionPaths, isFeatu
|
|
|
352
443
|
}
|
|
353
444
|
if (matchedLink && isHiddenNavLink(matchedLink, disabledSubsectionPaths, isFeatureEnabled)) {
|
|
354
445
|
return {
|
|
355
|
-
|
|
446
|
+
status: "hidden",
|
|
356
447
|
path: currentPath,
|
|
357
448
|
feature,
|
|
358
|
-
navEntry
|
|
449
|
+
navItem: feature.navEntry ? {
|
|
450
|
+
...feature.navEntry,
|
|
451
|
+
placement: "primary",
|
|
452
|
+
source: "feature",
|
|
453
|
+
shellModuleKey: feature.key,
|
|
454
|
+
accessFeatureKey: feature.access.featureKey
|
|
455
|
+
} : void 0,
|
|
359
456
|
navLink: matchedLink
|
|
360
457
|
};
|
|
361
458
|
}
|
|
362
459
|
return {
|
|
363
|
-
|
|
460
|
+
status: "matched",
|
|
364
461
|
path: currentPath,
|
|
365
462
|
feature,
|
|
366
|
-
navEntry
|
|
463
|
+
navItem: feature.navEntry ? {
|
|
464
|
+
...feature.navEntry,
|
|
465
|
+
placement: "primary",
|
|
466
|
+
source: "feature",
|
|
467
|
+
shellModuleKey: feature.key,
|
|
468
|
+
accessFeatureKey: feature.access.featureKey
|
|
469
|
+
} : void 0,
|
|
367
470
|
navLink: matchedLink ?? void 0
|
|
368
471
|
};
|
|
369
472
|
}
|
|
370
473
|
return {
|
|
371
|
-
|
|
474
|
+
status: "unmatched",
|
|
372
475
|
path: currentPath
|
|
373
476
|
};
|
|
374
477
|
}
|
|
375
478
|
function ElevasisFeaturesProvider({
|
|
376
479
|
features,
|
|
377
480
|
organizationModel,
|
|
481
|
+
appShellOverrides,
|
|
378
482
|
timeRange,
|
|
379
483
|
operationsApiUrl,
|
|
380
484
|
operationsSSEManager,
|
|
@@ -402,39 +506,100 @@ function ElevasisFeaturesProvider({
|
|
|
402
506
|
() => disabledSubsectionPaths.map((path) => normalizeRoutePath(path)),
|
|
403
507
|
[disabledSubsectionPaths]
|
|
404
508
|
);
|
|
405
|
-
const
|
|
406
|
-
() =>
|
|
407
|
-
[features,
|
|
509
|
+
const resolvedFeatures = useMemo(
|
|
510
|
+
() => resolveFeatureModules(features, organizationModel, hasResolvedFeature),
|
|
511
|
+
[features, organizationModel, hasResolvedFeature]
|
|
408
512
|
);
|
|
409
|
-
const
|
|
410
|
-
() =>
|
|
411
|
-
[
|
|
513
|
+
const resolvedAppShellOverrides = useMemo(
|
|
514
|
+
() => resolveAppShellOverrides(appShellOverrides, organizationModel),
|
|
515
|
+
[appShellOverrides, organizationModel]
|
|
412
516
|
);
|
|
413
|
-
const
|
|
414
|
-
() =>
|
|
415
|
-
[
|
|
517
|
+
const enabledResolvedFeatures = useMemo(
|
|
518
|
+
() => resolvedFeatures.filter((feature) => feature.access.enabled),
|
|
519
|
+
[resolvedFeatures]
|
|
520
|
+
);
|
|
521
|
+
const featureNavItems = useMemo(
|
|
522
|
+
() => getFeatureNavItems(
|
|
523
|
+
enabledResolvedFeatures,
|
|
524
|
+
normalizedDisabledSubsectionPaths,
|
|
525
|
+
hasResolvedFeature
|
|
526
|
+
),
|
|
527
|
+
[enabledResolvedFeatures, normalizedDisabledSubsectionPaths, hasResolvedFeature]
|
|
528
|
+
);
|
|
529
|
+
const primaryNavItems = useMemo(
|
|
530
|
+
() => [
|
|
531
|
+
...getAppShellNavItems(
|
|
532
|
+
resolvedAppShellOverrides.primaryNavItems,
|
|
533
|
+
"primary",
|
|
534
|
+
normalizedDisabledSubsectionPaths,
|
|
535
|
+
hasResolvedFeature
|
|
536
|
+
),
|
|
537
|
+
...featureNavItems
|
|
538
|
+
],
|
|
539
|
+
[
|
|
540
|
+
resolvedAppShellOverrides.primaryNavItems,
|
|
541
|
+
normalizedDisabledSubsectionPaths,
|
|
542
|
+
hasResolvedFeature,
|
|
543
|
+
featureNavItems
|
|
544
|
+
]
|
|
545
|
+
);
|
|
546
|
+
const bottomNavItems = useMemo(
|
|
547
|
+
() => getAppShellNavItems(
|
|
548
|
+
resolvedAppShellOverrides.bottomNavItems,
|
|
549
|
+
"bottom",
|
|
550
|
+
normalizedDisabledSubsectionPaths,
|
|
551
|
+
hasResolvedFeature
|
|
552
|
+
),
|
|
553
|
+
[
|
|
554
|
+
resolvedAppShellOverrides.bottomNavItems,
|
|
555
|
+
normalizedDisabledSubsectionPaths,
|
|
556
|
+
hasResolvedFeature
|
|
557
|
+
]
|
|
558
|
+
);
|
|
559
|
+
const shellNavItems = useMemo(
|
|
560
|
+
() => [...primaryNavItems, ...bottomNavItems],
|
|
561
|
+
[primaryNavItems, bottomNavItems]
|
|
562
|
+
);
|
|
563
|
+
const shellModel = useMemo(
|
|
564
|
+
() => ({
|
|
565
|
+
navItems: shellNavItems
|
|
566
|
+
}),
|
|
567
|
+
[shellNavItems]
|
|
416
568
|
);
|
|
417
569
|
const organizationGraph = useMemo(
|
|
418
|
-
() => resolveOrganizationGraphSurface(
|
|
419
|
-
[
|
|
570
|
+
() => resolveOrganizationGraphSurface(enabledResolvedFeatures, organizationModel),
|
|
571
|
+
[enabledResolvedFeatures, organizationModel]
|
|
420
572
|
);
|
|
421
|
-
const
|
|
422
|
-
(key) =>
|
|
423
|
-
[
|
|
573
|
+
const getResolvedFeature = useCallback(
|
|
574
|
+
(key) => resolvedFeatures.find((feature) => feature.key === key),
|
|
575
|
+
[resolvedFeatures]
|
|
424
576
|
);
|
|
425
577
|
const isFeatureEnabled = useCallback(
|
|
426
578
|
(key) => hasResolvedFeature(key),
|
|
427
579
|
[hasResolvedFeature]
|
|
428
580
|
);
|
|
429
|
-
const
|
|
430
|
-
(path) =>
|
|
431
|
-
|
|
581
|
+
const resolveRouteByPath = useCallback(
|
|
582
|
+
(path) => resolveRoute(
|
|
583
|
+
enabledResolvedFeatures,
|
|
584
|
+
path,
|
|
585
|
+
normalizedDisabledSubsectionPaths,
|
|
586
|
+
isFeatureEnabled
|
|
587
|
+
),
|
|
588
|
+
[enabledResolvedFeatures, normalizedDisabledSubsectionPaths, isFeatureEnabled]
|
|
589
|
+
);
|
|
590
|
+
const shellRuntime = useMemo(
|
|
591
|
+
() => ({
|
|
592
|
+
shellModel,
|
|
593
|
+
resolveRoute: resolveRouteByPath
|
|
594
|
+
}),
|
|
595
|
+
[shellModel, resolveRouteByPath]
|
|
432
596
|
);
|
|
433
597
|
const value = useMemo(
|
|
434
598
|
() => ({
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
599
|
+
shellModel,
|
|
600
|
+
shellRuntime,
|
|
601
|
+
enabledResolvedFeatures,
|
|
602
|
+
resolvedFeatures,
|
|
438
603
|
organizationGraph,
|
|
439
604
|
organizationModel,
|
|
440
605
|
timeRange,
|
|
@@ -442,13 +607,13 @@ function ElevasisFeaturesProvider({
|
|
|
442
607
|
operationsSSEManager,
|
|
443
608
|
disabledSubsectionPaths: normalizedDisabledSubsectionPaths,
|
|
444
609
|
isFeatureEnabled,
|
|
445
|
-
|
|
446
|
-
resolveNavRoute: resolveNavRouteByPath
|
|
610
|
+
getResolvedFeature
|
|
447
611
|
}),
|
|
448
612
|
[
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
613
|
+
shellModel,
|
|
614
|
+
shellRuntime,
|
|
615
|
+
enabledResolvedFeatures,
|
|
616
|
+
resolvedFeatures,
|
|
452
617
|
organizationGraph,
|
|
453
618
|
organizationModel,
|
|
454
619
|
timeRange,
|
|
@@ -456,23 +621,22 @@ function ElevasisFeaturesProvider({
|
|
|
456
621
|
operationsSSEManager,
|
|
457
622
|
normalizedDisabledSubsectionPaths,
|
|
458
623
|
isFeatureEnabled,
|
|
459
|
-
|
|
460
|
-
resolveNavRouteByPath
|
|
624
|
+
getResolvedFeature
|
|
461
625
|
]
|
|
462
626
|
);
|
|
463
627
|
return /* @__PURE__ */ jsx(ElevasisFeaturesContext.Provider, { value, children });
|
|
464
628
|
}
|
|
465
629
|
function FeatureShell({ children }) {
|
|
466
|
-
const {
|
|
630
|
+
const { shellRuntime } = useElevasisFeatures();
|
|
467
631
|
const { currentPath } = useRouterContext();
|
|
468
|
-
const
|
|
469
|
-
if (
|
|
632
|
+
const routeMatch = shellRuntime.resolveRoute(currentPath);
|
|
633
|
+
if (routeMatch.status === "hidden") {
|
|
470
634
|
return /* @__PURE__ */ jsx(FeatureUnavailableState, { path: currentPath });
|
|
471
635
|
}
|
|
472
|
-
if (
|
|
636
|
+
if (routeMatch.status !== "matched" || !routeMatch.feature?.sidebar) {
|
|
473
637
|
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
474
638
|
}
|
|
475
|
-
const SidebarComponent =
|
|
639
|
+
const SidebarComponent = routeMatch.feature.sidebar;
|
|
476
640
|
return /* @__PURE__ */ jsxs(SubshellContainer, { children: [
|
|
477
641
|
/* @__PURE__ */ jsx(SubshellSidebar, { width: 250, children: /* @__PURE__ */ jsx(SidebarComponent, {}) }),
|
|
478
642
|
/* @__PURE__ */ jsx(SubshellRightSideContainer, { children })
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCyberColors, CyberLegendItem, CyberAreaChart } from './chunk-KFICYU6S.js';
|
|
2
|
-
import { useResourcesHealth } from './chunk-
|
|
2
|
+
import { useResourcesHealth } from './chunk-POFDRPDI.js';
|
|
3
3
|
import { getTimeRangeDates, formatBucketTime } from './chunk-LXHZYSMQ.js';
|
|
4
4
|
import { CardHeader, EmptyState } from './chunk-Y3D3WFJG.js';
|
|
5
5
|
import { Paper, Center, Loader, Group } from '@mantine/core';
|
|
@@ -3,8 +3,8 @@ import { CustomModal } from './chunk-GBMNCNHX.js';
|
|
|
3
3
|
import { CyberAreaChart, CostTrendChart, ActivityTrendChart } from './chunk-KFICYU6S.js';
|
|
4
4
|
import { AppShellLoader } from './chunk-YEX4MQSY.js';
|
|
5
5
|
import { formatDuration } from './chunk-XA34RETF.js';
|
|
6
|
-
import { useExecutionLogsFilters, useTimeRangeDates, useActivityFilters } from './chunk-
|
|
7
|
-
import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useExecutionLogs, useExecutionHealth, useErrorAnalysis, useErrorDetail, useResolveErrorsByExecution, useResources, useCostTrends, useCostSummary, useCostByModel, useCostBreakdown, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead, useTestNotification } from './chunk-
|
|
6
|
+
import { useExecutionLogsFilters, useTimeRangeDates, useActivityFilters } from './chunk-DQJM7T2N.js';
|
|
7
|
+
import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useExecutionLogs, useExecutionHealth, useErrorAnalysis, useErrorDetail, useResolveErrorsByExecution, useResources, useCostTrends, useCostSummary, useCostByModel, useCostBreakdown, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead, useTestNotification } from './chunk-POFDRPDI.js';
|
|
8
8
|
import { formatBucketTime, getTimeRangeDates } from './chunk-LXHZYSMQ.js';
|
|
9
9
|
import { CenteredErrorState, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, EmptyState, PageTitleCaption, JsonViewer } from './chunk-Y3D3WFJG.js';
|
|
10
10
|
import { PAGE_SIZE_DEFAULT } from './chunk-IOKL7BKE.js';
|
|
@@ -1791,10 +1791,10 @@ function NotificationCenter({ pageSize = 20 }) {
|
|
|
1791
1791
|
var monitoringManifest = {
|
|
1792
1792
|
key: "monitoring",
|
|
1793
1793
|
label: "Monitoring",
|
|
1794
|
+
accessFeatureKey: "monitoring",
|
|
1794
1795
|
navEntry: {
|
|
1795
1796
|
label: "Monitoring",
|
|
1796
1797
|
icon: IconActivity,
|
|
1797
|
-
featureKey: "monitoring",
|
|
1798
1798
|
dataOnboardingTourId: "sidebar-monitoring",
|
|
1799
1799
|
links: [
|
|
1800
1800
|
{ label: "Activity Log", link: "/monitoring/activity-log" },
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getTimeRangeDates, observabilityKeys } from './chunk-LXHZYSMQ.js';
|
|
2
2
|
import { GRAPH_CONSTANTS } from './chunk-22UVE3RA.js';
|
|
3
|
-
import { useNotificationAdapter } from './chunk-
|
|
3
|
+
import { useNotificationAdapter } from './chunk-O4PMRC6J.js';
|
|
4
4
|
import { HTTP_HEADERS } from './chunk-NVOCKXUQ.js';
|
|
5
5
|
import { STALE_TIME_MONITORING, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, getErrorInfo, formatErrorMessage, getErrorTitle, STALE_TIME_DEFAULT, STALE_TIME_ADMIN, APIClientError } from './chunk-IOKL7BKE.js';
|
|
6
6
|
import { useStableAccessToken } from './chunk-MTJ43R2E.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ResourceExecuteDialog } from './chunk-
|
|
1
|
+
import { ResourceExecuteDialog } from './chunk-FH5QGCXL.js';
|
|
2
2
|
import { TableSelectionToolbar, SortableHeader } from './chunk-TUMSNGTX.js';
|
|
3
3
|
import { PageContainer } from './chunk-BZZCNLT6.js';
|
|
4
4
|
import { SubshellSidebarSection, SubshellNavItem } from './chunk-27COZ5AH.js';
|
|
5
5
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
6
6
|
import { CustomModal } from './chunk-GBMNCNHX.js';
|
|
7
|
-
import { showApiErrorNotification, acquisitionListKeys, showSuccessNotification, useListsTelemetry, useLists, useCreateList, useTableSort, sortData, usePaginationState, useTableSelection, useList, useListProgress, useListExecutions, useResourceDefinition, useCompanies, useDeleteCompanies, useContacts, useDeleteContacts } from './chunk-
|
|
7
|
+
import { showApiErrorNotification, acquisitionListKeys, showSuccessNotification, useListsTelemetry, useLists, useCreateList, useTableSort, sortData, usePaginationState, useTableSelection, useList, useListProgress, useListExecutions, useResourceDefinition, useCompanies, useDeleteCompanies, useContacts, useDeleteContacts } from './chunk-POFDRPDI.js';
|
|
8
8
|
import { SubshellContentContainer } from './chunk-RX4UWZZR.js';
|
|
9
9
|
import { PageTitleCaption, CenteredErrorState, StatCard, EmptyState } from './chunk-Y3D3WFJG.js';
|
|
10
10
|
import { useElevasisServices } from './chunk-QEPXAWE2.js';
|
|
@@ -51,13 +51,15 @@ var LeadGenSidebar = () => {
|
|
|
51
51
|
var leadGenManifest = {
|
|
52
52
|
key: "lead-gen",
|
|
53
53
|
label: "Lead Gen",
|
|
54
|
+
accessFeatureKey: "acquisition",
|
|
55
|
+
domainIds: ["lead-gen"],
|
|
56
|
+
capabilityIds: ["leadgen.lists.manage"],
|
|
54
57
|
sidebar: LeadGenSidebar,
|
|
55
58
|
subshellRoutes: ["/lead-gen"],
|
|
56
59
|
navEntry: {
|
|
57
60
|
label: "Lead Gen",
|
|
58
61
|
icon: IconTarget,
|
|
59
|
-
link: "/lead-gen"
|
|
60
|
-
featureKey: "acquisition"
|
|
62
|
+
link: "/lead-gen"
|
|
61
63
|
}
|
|
62
64
|
};
|
|
63
65
|
var LEAD_GEN_ROUTE_LINKS = [
|