@memberjunction/ng-explorer-core 5.34.1 → 5.36.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/generated/lazy-feature-config.d.ts +1 -1
- package/dist/generated/lazy-feature-config.d.ts.map +1 -1
- package/dist/generated/lazy-feature-config.js +5 -3
- package/dist/generated/lazy-feature-config.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-collections-resource.component.js +9 -2
- package/dist/lib/resource-wrappers/chat-collections-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts +8 -0
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +25 -0
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/dashboard-resource.component.js +23 -1
- package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.d.ts +6 -0
- package/dist/lib/resource-wrappers/search-results-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.js +21 -0
- package/dist/lib/resource-wrappers/search-results-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.d.ts +12 -0
- package/dist/lib/resource-wrappers/view-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.js +107 -15
- package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
- package/dist/lib/shell/components/tabs/component-cache-manager.d.ts +11 -0
- package/dist/lib/shell/components/tabs/component-cache-manager.d.ts.map +1 -1
- package/dist/lib/shell/components/tabs/component-cache-manager.js +26 -0
- package/dist/lib/shell/components/tabs/component-cache-manager.js.map +1 -1
- package/dist/lib/shell/components/tabs/tab-container.component.d.ts +26 -0
- package/dist/lib/shell/components/tabs/tab-container.component.d.ts.map +1 -1
- package/dist/lib/shell/components/tabs/tab-container.component.js +75 -3
- package/dist/lib/shell/components/tabs/tab-container.component.js.map +1 -1
- package/dist/lib/shell/shell.component.d.ts.map +1 -1
- package/dist/lib/shell/shell.component.js +42 -7
- package/dist/lib/shell/shell.component.js.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.d.ts +153 -3
- package/dist/lib/single-list-detail/single-list-detail.component.d.ts.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.js +1479 -271
- package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -1
- package/dist/module.d.ts +4 -3
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +4 -0
- package/dist/module.js.map +1 -1
- package/package.json +44 -42
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
* Covers all @RegisterClass decorated classes in lazy-loaded packages.
|
|
16
16
|
*/
|
|
17
17
|
export declare const LAZY_FEATURE_CONFIG: Record<string, () => Promise<void>>;
|
|
18
|
-
export declare const LAZY_FEATURE_CONFIG_COUNT =
|
|
18
|
+
export declare const LAZY_FEATURE_CONFIG_COUNT = 98;
|
|
19
19
|
//# sourceMappingURL=lazy-feature-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-feature-config.d.ts","sourceRoot":"","sources":["../../src/generated/lazy-feature-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAuDH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"lazy-feature-config.d.ts","sourceRoot":"","sources":["../../src/generated/lazy-feature-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAuDH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAmInE,CAAC;AAEF,eAAO,MAAM,yBAAyB,KAAK,CAAC"}
|
|
@@ -18,7 +18,7 @@ function featureLoader(importFn) {
|
|
|
18
18
|
const loadActionsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/actions-dashboards.module'));
|
|
19
19
|
// --- @memberjunction/ng-dashboards → ./ai-dashboards.module (15 entries) ---
|
|
20
20
|
const loadAiDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/ai-dashboards.module'));
|
|
21
|
-
// --- @memberjunction/ng-dashboards → ./communication-dashboards.module (
|
|
21
|
+
// --- @memberjunction/ng-dashboards → ./communication-dashboards.module (7 entries) ---
|
|
22
22
|
const loadCommunicationDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/communication-dashboards.module'));
|
|
23
23
|
// --- @memberjunction/ng-dashboards → ./component-studio-dashboards.module (1 entries) ---
|
|
24
24
|
const loadComponentStudioDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/component-studio-dashboards.module'));
|
|
@@ -30,7 +30,7 @@ const loadCredentialsDashboardsModule = featureLoader(() => import('@memberjunct
|
|
|
30
30
|
const loadDataExplorerDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/data-explorer-dashboards.module'));
|
|
31
31
|
// --- @memberjunction/ng-dashboards → ./integration.module (6 entries) ---
|
|
32
32
|
const loadIntegrationModule = featureLoader(() => import('@memberjunction/ng-dashboards/integration.module'));
|
|
33
|
-
// --- @memberjunction/ng-dashboards → ./lists-dashboards.module (
|
|
33
|
+
// --- @memberjunction/ng-dashboards → ./lists-dashboards.module (5 entries) ---
|
|
34
34
|
const loadListsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/lists-dashboards.module'));
|
|
35
35
|
// --- @memberjunction/ng-dashboards → ./mcp.module (2 entries) ---
|
|
36
36
|
const loadMcpModule = featureLoader(() => import('@memberjunction/ng-dashboards/mcp.module'));
|
|
@@ -81,6 +81,7 @@ export const LAZY_FEATURE_CONFIG = {
|
|
|
81
81
|
'BaseResourceComponent::CommunicationMonitorResource': loadCommunicationDashboardsModule,
|
|
82
82
|
'BaseResourceComponent::CommunicationProvidersResource': loadCommunicationDashboardsModule,
|
|
83
83
|
'BaseResourceComponent::CommunicationRunsResource': loadCommunicationDashboardsModule,
|
|
84
|
+
'BaseResourceComponent::CommunicationsNewMessageResource': loadCommunicationDashboardsModule,
|
|
84
85
|
'BaseResourceComponent::CommunicationTemplatesResource': loadCommunicationDashboardsModule,
|
|
85
86
|
// @memberjunction/ng-dashboards → ./component-studio-dashboards.module
|
|
86
87
|
'BaseDashboard::ComponentStudioDashboard': loadComponentStudioDashboardsModule,
|
|
@@ -133,6 +134,7 @@ export const LAZY_FEATURE_CONFIG = {
|
|
|
133
134
|
'BaseResourceComponent::ListsCategoriesResource': loadListsDashboardsModule,
|
|
134
135
|
'BaseResourceComponent::ListsMyListsResource': loadListsDashboardsModule,
|
|
135
136
|
'BaseResourceComponent::ListsOperationsResource': loadListsDashboardsModule,
|
|
137
|
+
'BaseResourceComponent::ListsSharedWithMeResource': loadListsDashboardsModule,
|
|
136
138
|
// @memberjunction/ng-dashboards → ./mcp.module
|
|
137
139
|
'BaseDashboard::MCPDashboard': loadMcpModule,
|
|
138
140
|
'BaseResourceComponent::MCPResource': loadMcpModule,
|
|
@@ -164,5 +166,5 @@ export const LAZY_FEATURE_CONFIG = {
|
|
|
164
166
|
// @memberjunction/ng-react → .
|
|
165
167
|
'RuntimeUtilities::RuntimeUtilities': loadNgReact,
|
|
166
168
|
};
|
|
167
|
-
export const LAZY_FEATURE_CONFIG_COUNT =
|
|
169
|
+
export const LAZY_FEATURE_CONFIG_COUNT = 98;
|
|
168
170
|
//# sourceMappingURL=lazy-feature-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-feature-config.js","sourceRoot":"","sources":["../../src/generated/lazy-feature-config.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * AUTO-GENERATED FILE — DO NOT EDIT\n * Generated by: mj codegen manifest --lazy-config\n * Regenerate with: npm run mj:manifest:explorer\n *\n * Maps @RegisterClass entries to their lazy-loading chunks using compound keys.\n * Compound key format: \"BaseClassName::Key\" (e.g., \"BaseResourceComponent::HomeDashboard\").\n *\n * When ClassFactory.GetRegistrationAsync() or CreateInstanceAsync() cannot find a\n * registration synchronously, the registered lazy loader builds the compound key and\n * looks it up here to dynamically import the chunk containing the class.\n */\n\n/** Helper to create a loader that all entries in a feature share. */\nfunction featureLoader(importFn: () => Promise<unknown>): () => Promise<void> {\n return () => importFn().then(() => {});\n}\n\n// --- @memberjunction/ng-dashboards → ./actions-dashboards.module (7 entries) ---\nconst loadActionsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/actions-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./ai-dashboards.module (15 entries) ---\nconst loadAiDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/ai-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./communication-dashboards.module (6 entries) ---\nconst loadCommunicationDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/communication-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./component-studio-dashboards.module (1 entries) ---\nconst loadComponentStudioDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/component-studio-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./core-dashboards.module (26 entries) ---\nconst loadCoreDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/core-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./credentials-dashboards.module (6 entries) ---\nconst loadCredentialsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/credentials-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./data-explorer-dashboards.module (2 entries) ---\nconst loadDataExplorerDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/data-explorer-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./integration.module (6 entries) ---\nconst loadIntegrationModule = featureLoader(() => import('@memberjunction/ng-dashboards/integration.module'));\n\n// --- @memberjunction/ng-dashboards → ./lists-dashboards.module (4 entries) ---\nconst loadListsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/lists-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./mcp.module (2 entries) ---\nconst loadMcpModule = featureLoader(() => import('@memberjunction/ng-dashboards/mcp.module'));\n\n// --- @memberjunction/ng-dashboards → ./module (3 entries) ---\nconst loadModule = featureLoader(() => import('@memberjunction/ng-dashboards/module'));\n\n// --- @memberjunction/ng-dashboards → ./scheduling-dashboards.module (4 entries) ---\nconst loadSchedulingDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/scheduling-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./testing-dashboards.module (6 entries) ---\nconst loadTestingDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/testing-dashboards.module'));\n\n// --- @memberjunction/ng-explorer-settings → ./settings.module (6 entries) ---\nconst loadSettingsModule = featureLoader(() => import('@memberjunction/ng-explorer-settings/settings.module'));\n\n// --- @memberjunction/ng-file-storage → ./file-storage.module (1 entries) ---\nconst loadFileStorageModule = featureLoader(() => import('@memberjunction/ng-file-storage/file-storage.module'));\n\n// --- @memberjunction/ng-react → . (1 entries) ---\nconst loadNgReact = featureLoader(() => import('@memberjunction/ng-react'));\n\n/**\n * Complete mapping of compound keys (BaseClassName::Key) to lazy-loading functions.\n * Covers all @RegisterClass decorated classes in lazy-loaded packages.\n */\nexport const LAZY_FEATURE_CONFIG: Record<string, () => Promise<void>> = {\n // @memberjunction/ng-dashboards → ./actions-dashboards.module\n 'BaseResourceComponent::ActionExplorerResource': loadActionsDashboardsModule,\n 'BaseResourceComponent::ActionsCodeResource': loadActionsDashboardsModule,\n 'BaseResourceComponent::ActionsEntitiesResource': loadActionsDashboardsModule,\n 'BaseResourceComponent::ActionsMonitorResource': loadActionsDashboardsModule,\n 'BaseResourceComponent::ActionsOverviewResource': loadActionsDashboardsModule,\n 'BaseResourceComponent::ActionsScheduleResource': loadActionsDashboardsModule,\n 'BaseResourceComponent::ActionsSecurityResource': loadActionsDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./ai-dashboards.module\n 'BaseResourceComponent::AIAgentRequestsResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AIAgentsResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AIAnalyticsResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AIConfigResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AIModelsResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AIMonitorResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AIPromptsResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AnalyticsResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AutotaggingPipelineResource': loadAiDashboardsModule,\n 'BaseResourceComponent::ClusterVisualizationResource': loadAiDashboardsModule,\n 'BaseResourceComponent::DuplicateDetectionResource': loadAiDashboardsModule,\n 'BaseResourceComponent::KnowledgeConfigResource': loadAiDashboardsModule,\n 'BaseResourceComponent::SchedulingResource': loadAiDashboardsModule,\n 'BaseResourceComponent::Tags': loadAiDashboardsModule,\n 'BaseResourceComponent::VectorManagementResource': loadAiDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./communication-dashboards.module\n 'BaseDashboard::CommunicationDashboard': loadCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationLogsResource': loadCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationMonitorResource': loadCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationProvidersResource': loadCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationRunsResource': loadCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationTemplatesResource': loadCommunicationDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./component-studio-dashboards.module\n 'BaseDashboard::ComponentStudioDashboard': loadComponentStudioDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./core-dashboards.module\n 'BaseApplication::HomeApplication': loadCoreDashboardsModule,\n 'BaseDashboard::EntityAdmin': loadCoreDashboardsModule,\n 'BaseResourceComponent::AdminDataSchema': loadCoreDashboardsModule,\n 'BaseResourceComponent::AdminDeveloperTools': loadCoreDashboardsModule,\n 'BaseResourceComponent::AdminIdentityAccess': loadCoreDashboardsModule,\n 'BaseResourceComponent::AdminMonitoring': loadCoreDashboardsModule,\n 'BaseResourceComponent::APIKeysResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::ApplicationRolesResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::AppStateInspector': loadCoreDashboardsModule,\n 'BaseResourceComponent::ClassRegistryInspector': loadCoreDashboardsModule,\n 'BaseResourceComponent::DashboardBrowserResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::EventMonitorInspector': loadCoreDashboardsModule,\n 'BaseResourceComponent::GraphQLConsoleInspector': loadCoreDashboardsModule,\n 'BaseResourceComponent::HomeDashboard': loadCoreDashboardsModule,\n 'BaseResourceComponent::LayoutInspector': loadCoreDashboardsModule,\n 'BaseResourceComponent::LazyModuleStatusInspector': loadCoreDashboardsModule,\n 'BaseResourceComponent::PermissionsAuditLogResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::PermissionsResourceAccessResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::PermissionsUserAccessResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::QueryBrowserResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::SettingsExplorerInspector': loadCoreDashboardsModule,\n 'BaseResourceComponent::SystemDiagnosticsResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryDiffResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryGraphResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryLabelsResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryRestoreResource': loadCoreDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./credentials-dashboards.module\n 'BaseDashboard::CredentialsDashboard': loadCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsAuditResource': loadCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsCategoriesResource': loadCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsListResource': loadCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsOverviewResource': loadCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsTypesResource': loadCredentialsDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./data-explorer-dashboards.module\n 'BaseDashboard::DataExplorer': loadDataExplorerDashboardsModule,\n 'BaseResourceComponent::DataExplorerResource': loadDataExplorerDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./integration.module\n 'BaseResourceComponent::IntegrationActivity': loadIntegrationModule,\n 'BaseResourceComponent::IntegrationConnections': loadIntegrationModule,\n 'BaseResourceComponent::IntegrationMappingWorkspace': loadIntegrationModule,\n 'BaseResourceComponent::IntegrationOverview': loadIntegrationModule,\n 'BaseResourceComponent::IntegrationPipelines': loadIntegrationModule,\n 'BaseResourceComponent::IntegrationSchedules': loadIntegrationModule,\n\n // @memberjunction/ng-dashboards → ./lists-dashboards.module\n 'BaseResourceComponent::ListsBrowseResource': loadListsDashboardsModule,\n 'BaseResourceComponent::ListsCategoriesResource': loadListsDashboardsModule,\n 'BaseResourceComponent::ListsMyListsResource': loadListsDashboardsModule,\n 'BaseResourceComponent::ListsOperationsResource': loadListsDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./mcp.module\n 'BaseDashboard::MCPDashboard': loadMcpModule,\n 'BaseResourceComponent::MCPResource': loadMcpModule,\n\n // @memberjunction/ng-dashboards → ./module\n 'BaseResourceComponent::ArchiveConfigResource': loadModule,\n 'BaseResourceComponent::ArchiveRunsResource': loadModule,\n 'BaseResourceComponent::DatabaseDesignerDashboard': loadModule,\n\n // @memberjunction/ng-dashboards → ./scheduling-dashboards.module\n 'BaseDashboard::SchedulingDashboard': loadSchedulingDashboardsModule,\n 'BaseResourceComponent::SchedulingActivityResource': loadSchedulingDashboardsModule,\n 'BaseResourceComponent::SchedulingDashboardResource': loadSchedulingDashboardsModule,\n 'BaseResourceComponent::SchedulingJobsResource': loadSchedulingDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./testing-dashboards.module\n 'BaseDashboard::TestingDashboard': loadTestingDashboardsModule,\n 'BaseResourceComponent::TestingAnalyticsResource': loadTestingDashboardsModule,\n 'BaseResourceComponent::TestingDashboardTabResource': loadTestingDashboardsModule,\n 'BaseResourceComponent::TestingExplorerResource': loadTestingDashboardsModule,\n 'BaseResourceComponent::TestingReviewResource': loadTestingDashboardsModule,\n 'BaseResourceComponent::TestingRunsResource': loadTestingDashboardsModule,\n\n // @memberjunction/ng-explorer-settings → ./settings.module\n 'BaseDashboard::ApplicationManagement': loadSettingsModule,\n 'BaseDashboard::EntityPermissions': loadSettingsModule,\n 'BaseDashboard::RoleManagement': loadSettingsModule,\n 'BaseDashboard::SqlLogging': loadSettingsModule,\n 'BaseDashboard::UserManagement': loadSettingsModule,\n 'BaseNavigationComponent::Settings': loadSettingsModule,\n\n // @memberjunction/ng-file-storage → ./file-storage.module\n 'BaseResourceComponent::FileBrowserResource': loadFileStorageModule,\n\n // @memberjunction/ng-react → .\n 'RuntimeUtilities::RuntimeUtilities': loadNgReact,\n\n};\n\nexport const LAZY_FEATURE_CONFIG_COUNT = 96;\n"]}
|
|
1
|
+
{"version":3,"file":"lazy-feature-config.js","sourceRoot":"","sources":["../../src/generated/lazy-feature-config.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * AUTO-GENERATED FILE — DO NOT EDIT\n * Generated by: mj codegen manifest --lazy-config\n * Regenerate with: npm run mj:manifest:explorer\n *\n * Maps @RegisterClass entries to their lazy-loading chunks using compound keys.\n * Compound key format: \"BaseClassName::Key\" (e.g., \"BaseResourceComponent::HomeDashboard\").\n *\n * When ClassFactory.GetRegistrationAsync() or CreateInstanceAsync() cannot find a\n * registration synchronously, the registered lazy loader builds the compound key and\n * looks it up here to dynamically import the chunk containing the class.\n */\n\n/** Helper to create a loader that all entries in a feature share. */\nfunction featureLoader(importFn: () => Promise<unknown>): () => Promise<void> {\n return () => importFn().then(() => {});\n}\n\n// --- @memberjunction/ng-dashboards → ./actions-dashboards.module (7 entries) ---\nconst loadActionsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/actions-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./ai-dashboards.module (15 entries) ---\nconst loadAiDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/ai-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./communication-dashboards.module (7 entries) ---\nconst loadCommunicationDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/communication-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./component-studio-dashboards.module (1 entries) ---\nconst loadComponentStudioDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/component-studio-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./core-dashboards.module (26 entries) ---\nconst loadCoreDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/core-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./credentials-dashboards.module (6 entries) ---\nconst loadCredentialsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/credentials-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./data-explorer-dashboards.module (2 entries) ---\nconst loadDataExplorerDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/data-explorer-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./integration.module (6 entries) ---\nconst loadIntegrationModule = featureLoader(() => import('@memberjunction/ng-dashboards/integration.module'));\n\n// --- @memberjunction/ng-dashboards → ./lists-dashboards.module (5 entries) ---\nconst loadListsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/lists-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./mcp.module (2 entries) ---\nconst loadMcpModule = featureLoader(() => import('@memberjunction/ng-dashboards/mcp.module'));\n\n// --- @memberjunction/ng-dashboards → ./module (3 entries) ---\nconst loadModule = featureLoader(() => import('@memberjunction/ng-dashboards/module'));\n\n// --- @memberjunction/ng-dashboards → ./scheduling-dashboards.module (4 entries) ---\nconst loadSchedulingDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/scheduling-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./testing-dashboards.module (6 entries) ---\nconst loadTestingDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/testing-dashboards.module'));\n\n// --- @memberjunction/ng-explorer-settings → ./settings.module (6 entries) ---\nconst loadSettingsModule = featureLoader(() => import('@memberjunction/ng-explorer-settings/settings.module'));\n\n// --- @memberjunction/ng-file-storage → ./file-storage.module (1 entries) ---\nconst loadFileStorageModule = featureLoader(() => import('@memberjunction/ng-file-storage/file-storage.module'));\n\n// --- @memberjunction/ng-react → . (1 entries) ---\nconst loadNgReact = featureLoader(() => import('@memberjunction/ng-react'));\n\n/**\n * Complete mapping of compound keys (BaseClassName::Key) to lazy-loading functions.\n * Covers all @RegisterClass decorated classes in lazy-loaded packages.\n */\nexport const LAZY_FEATURE_CONFIG: Record<string, () => Promise<void>> = {\n // @memberjunction/ng-dashboards → ./actions-dashboards.module\n 'BaseResourceComponent::ActionExplorerResource': loadActionsDashboardsModule,\n 'BaseResourceComponent::ActionsCodeResource': loadActionsDashboardsModule,\n 'BaseResourceComponent::ActionsEntitiesResource': loadActionsDashboardsModule,\n 'BaseResourceComponent::ActionsMonitorResource': loadActionsDashboardsModule,\n 'BaseResourceComponent::ActionsOverviewResource': loadActionsDashboardsModule,\n 'BaseResourceComponent::ActionsScheduleResource': loadActionsDashboardsModule,\n 'BaseResourceComponent::ActionsSecurityResource': loadActionsDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./ai-dashboards.module\n 'BaseResourceComponent::AIAgentRequestsResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AIAgentsResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AIAnalyticsResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AIConfigResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AIModelsResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AIMonitorResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AIPromptsResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AnalyticsResource': loadAiDashboardsModule,\n 'BaseResourceComponent::AutotaggingPipelineResource': loadAiDashboardsModule,\n 'BaseResourceComponent::ClusterVisualizationResource': loadAiDashboardsModule,\n 'BaseResourceComponent::DuplicateDetectionResource': loadAiDashboardsModule,\n 'BaseResourceComponent::KnowledgeConfigResource': loadAiDashboardsModule,\n 'BaseResourceComponent::SchedulingResource': loadAiDashboardsModule,\n 'BaseResourceComponent::Tags': loadAiDashboardsModule,\n 'BaseResourceComponent::VectorManagementResource': loadAiDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./communication-dashboards.module\n 'BaseDashboard::CommunicationDashboard': loadCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationLogsResource': loadCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationMonitorResource': loadCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationProvidersResource': loadCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationRunsResource': loadCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationsNewMessageResource': loadCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationTemplatesResource': loadCommunicationDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./component-studio-dashboards.module\n 'BaseDashboard::ComponentStudioDashboard': loadComponentStudioDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./core-dashboards.module\n 'BaseApplication::HomeApplication': loadCoreDashboardsModule,\n 'BaseDashboard::EntityAdmin': loadCoreDashboardsModule,\n 'BaseResourceComponent::AdminDataSchema': loadCoreDashboardsModule,\n 'BaseResourceComponent::AdminDeveloperTools': loadCoreDashboardsModule,\n 'BaseResourceComponent::AdminIdentityAccess': loadCoreDashboardsModule,\n 'BaseResourceComponent::AdminMonitoring': loadCoreDashboardsModule,\n 'BaseResourceComponent::APIKeysResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::ApplicationRolesResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::AppStateInspector': loadCoreDashboardsModule,\n 'BaseResourceComponent::ClassRegistryInspector': loadCoreDashboardsModule,\n 'BaseResourceComponent::DashboardBrowserResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::EventMonitorInspector': loadCoreDashboardsModule,\n 'BaseResourceComponent::GraphQLConsoleInspector': loadCoreDashboardsModule,\n 'BaseResourceComponent::HomeDashboard': loadCoreDashboardsModule,\n 'BaseResourceComponent::LayoutInspector': loadCoreDashboardsModule,\n 'BaseResourceComponent::LazyModuleStatusInspector': loadCoreDashboardsModule,\n 'BaseResourceComponent::PermissionsAuditLogResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::PermissionsResourceAccessResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::PermissionsUserAccessResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::QueryBrowserResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::SettingsExplorerInspector': loadCoreDashboardsModule,\n 'BaseResourceComponent::SystemDiagnosticsResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryDiffResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryGraphResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryLabelsResource': loadCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryRestoreResource': loadCoreDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./credentials-dashboards.module\n 'BaseDashboard::CredentialsDashboard': loadCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsAuditResource': loadCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsCategoriesResource': loadCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsListResource': loadCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsOverviewResource': loadCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsTypesResource': loadCredentialsDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./data-explorer-dashboards.module\n 'BaseDashboard::DataExplorer': loadDataExplorerDashboardsModule,\n 'BaseResourceComponent::DataExplorerResource': loadDataExplorerDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./integration.module\n 'BaseResourceComponent::IntegrationActivity': loadIntegrationModule,\n 'BaseResourceComponent::IntegrationConnections': loadIntegrationModule,\n 'BaseResourceComponent::IntegrationMappingWorkspace': loadIntegrationModule,\n 'BaseResourceComponent::IntegrationOverview': loadIntegrationModule,\n 'BaseResourceComponent::IntegrationPipelines': loadIntegrationModule,\n 'BaseResourceComponent::IntegrationSchedules': loadIntegrationModule,\n\n // @memberjunction/ng-dashboards → ./lists-dashboards.module\n 'BaseResourceComponent::ListsBrowseResource': loadListsDashboardsModule,\n 'BaseResourceComponent::ListsCategoriesResource': loadListsDashboardsModule,\n 'BaseResourceComponent::ListsMyListsResource': loadListsDashboardsModule,\n 'BaseResourceComponent::ListsOperationsResource': loadListsDashboardsModule,\n 'BaseResourceComponent::ListsSharedWithMeResource': loadListsDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./mcp.module\n 'BaseDashboard::MCPDashboard': loadMcpModule,\n 'BaseResourceComponent::MCPResource': loadMcpModule,\n\n // @memberjunction/ng-dashboards → ./module\n 'BaseResourceComponent::ArchiveConfigResource': loadModule,\n 'BaseResourceComponent::ArchiveRunsResource': loadModule,\n 'BaseResourceComponent::DatabaseDesignerDashboard': loadModule,\n\n // @memberjunction/ng-dashboards → ./scheduling-dashboards.module\n 'BaseDashboard::SchedulingDashboard': loadSchedulingDashboardsModule,\n 'BaseResourceComponent::SchedulingActivityResource': loadSchedulingDashboardsModule,\n 'BaseResourceComponent::SchedulingDashboardResource': loadSchedulingDashboardsModule,\n 'BaseResourceComponent::SchedulingJobsResource': loadSchedulingDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./testing-dashboards.module\n 'BaseDashboard::TestingDashboard': loadTestingDashboardsModule,\n 'BaseResourceComponent::TestingAnalyticsResource': loadTestingDashboardsModule,\n 'BaseResourceComponent::TestingDashboardTabResource': loadTestingDashboardsModule,\n 'BaseResourceComponent::TestingExplorerResource': loadTestingDashboardsModule,\n 'BaseResourceComponent::TestingReviewResource': loadTestingDashboardsModule,\n 'BaseResourceComponent::TestingRunsResource': loadTestingDashboardsModule,\n\n // @memberjunction/ng-explorer-settings → ./settings.module\n 'BaseDashboard::ApplicationManagement': loadSettingsModule,\n 'BaseDashboard::EntityPermissions': loadSettingsModule,\n 'BaseDashboard::RoleManagement': loadSettingsModule,\n 'BaseDashboard::SqlLogging': loadSettingsModule,\n 'BaseDashboard::UserManagement': loadSettingsModule,\n 'BaseNavigationComponent::Settings': loadSettingsModule,\n\n // @memberjunction/ng-file-storage → ./file-storage.module\n 'BaseResourceComponent::FileBrowserResource': loadFileStorageModule,\n\n // @memberjunction/ng-react → .\n 'RuntimeUtilities::RuntimeUtilities': loadNgReact,\n\n};\n\nexport const LAZY_FEATURE_CONFIG_COUNT = 98;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-collections-resource.component.d.ts","sourceRoot":"","sources":["../../../src/lib/resource-wrappers/chat-collections-resource.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,MAAM,EAAE,SAAS,EAA6B,MAAM,eAAe,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAY,YAAY,EAAW,MAAM,sBAAsB,CAAC;AAErF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,YAAY,EAA+B,MAAM,+BAA+B,CAAC;AAC1F,OAAO,EAAmD,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;;AAI3H;;;;;GAKG;AACH,qBA6Ga,uBAAwB,SAAQ,qBAAsB,YAAW,MAAM,EAAE,SAAS;IACtF,WAAW,EAAE,GAAG,CAAQ;IAGxB,mBAAmB,EAAE,OAAO,CAAS;IACrC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACzC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC1C,sBAAsB,EAAE,OAAO,CAAS;IACxC,qBAAqB,EAAE,OAAO,CAAS;IACvC,kBAAkB,EAAE,MAAM,CAAM;IAChC,wBAAwB,EAAE,OAAO,CAAS;IACjD,OAAO,CAAC,gCAAgC,CAAc;IAGtD,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,gBAAgB,CAAa;IAErC,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,yBAAyB,CAAqC;IAC/D,eAAe,yBAAkC;IACxD,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,cAAc,CAAkC;IAExD,QAAQ;
|
|
1
|
+
{"version":3,"file":"chat-collections-resource.component.d.ts","sourceRoot":"","sources":["../../../src/lib/resource-wrappers/chat-collections-resource.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,8 +107,15 @@ let ChatCollectionsResource = class ChatCollectionsResource extends BaseResource
|
|
|
107
107
|
});
|
|
108
108
|
// Enable URL updates after initialization
|
|
109
109
|
this.initializing = false;
|
|
110
|
-
// Push initial state to URL
|
|
111
|
-
|
|
110
|
+
// Push initial state to URL — but only if we actually have state to reflect.
|
|
111
|
+
// On a cold/direct deep-link load the params may arrive via the reactive
|
|
112
|
+
// OnQueryParamsChanged delivery slightly after ngOnInit; pushing empty params
|
|
113
|
+
// here would strip the deep link from the URL before that delivery lands.
|
|
114
|
+
// Once state is set (synchronously when params are already present, or via the
|
|
115
|
+
// reactive delivery), subscribeToUrlStateChanges() pushes the normalized URL.
|
|
116
|
+
if (this.collectionState.activeCollectionId || this.activeArtifactId) {
|
|
117
|
+
this.pushStateToUrl();
|
|
118
|
+
}
|
|
112
119
|
// Notify load complete after user is set
|
|
113
120
|
setTimeout(() => {
|
|
114
121
|
this.NotifyLoadComplete();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-collections-resource.component.js","sourceRoot":"","sources":["../../../src/lib/resource-wrappers/chat-collections-resource.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ViewEncapsulation, OnInit, OnDestroy, ChangeDetectorRef, inject } from '@angular/core';\nimport { DataSnapshot, Metadata, CompositeKey, RunView } from '@memberjunction/core';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { ResourceData, MJEnvironmentEntityExtended } from '@memberjunction/core-entities';\nimport { ArtifactStateService, ArtifactPermissionService, CollectionStateService } from '@memberjunction/ng-conversations';\nimport { AnalyzeArtifactService } from '@memberjunction/ng-artifacts';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { Subject, takeUntil, distinctUntilChanged, combineLatest } from 'rxjs';\n/**\n * Chat Collections Resource - displays the collections full view for tab-based display\n * Extends BaseResourceComponent to work with the resource type system\n * Shows all collections and their artifacts in a comprehensive view\n * Includes artifact panel support for viewing selected artifacts\n */\n@RegisterClass(BaseResourceComponent, 'ChatCollectionsResource')\n@Component({\n standalone: false,\n selector: 'mj-chat-collections-resource',\n template: `\n <div class=\"chat-collections-container\">\n <!-- Collections view -->\n <div class=\"collections-main\" [class.with-artifact-panel]=\"isArtifactPanelOpen && activeArtifactId\">\n @if (currentUser) {\n <mj-collections-full-view\n [environmentId]=\"environmentId\"\n [currentUser]=\"currentUser\">\n </mj-collections-full-view>\n }\n </div>\n \n <!-- Artifact Panel -->\n @if (isArtifactPanelOpen && activeArtifactId) {\n @if (!isArtifactPanelMaximized) {\n <div class=\"artifact-panel-resize-handle\"\n (mousedown)=\"onResizeStart($event)\"></div>\n }\n <div class=\"artifact-panel\"\n [style.width.%]=\"artifactPanelWidth\"\n [class.maximized]=\"isArtifactPanelMaximized\">\n <mj-artifact-viewer-panel\n [artifactId]=\"activeArtifactId\"\n [currentUser]=\"currentUser\"\n [environmentId]=\"environmentId\"\n [versionNumber]=\"activeVersionNumber ?? undefined\"\n [showSaveToCollection]=\"false\"\n [viewContext]=\"'collection'\"\n [contextCollectionId]=\"activeCollectionId ?? undefined\"\n [canShare]=\"canShareActiveArtifact\"\n [canEdit]=\"canEditActiveArtifact\"\n [isMaximized]=\"isArtifactPanelMaximized\"\n (closed)=\"closeArtifactPanel()\"\n (maximizeToggled)=\"toggleMaximizeArtifactPanel()\"\n (navigateToLink)=\"onNavigateToLink($event)\"\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n (analyzeRequested)=\"onAnalyzeRequested($event)\">\n </mj-artifact-viewer-panel>\n </div>\n }\n </div>\n `,\n styles: [`\n /* :host doesn't work with ViewEncapsulation.None — use the element selector */\n mj-chat-collections-resource {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .chat-collections-container {\n display: flex;\n width: 100%;\n height: 100%;\n flex: 1;\n overflow: hidden;\n position: relative; /* Required for absolute positioning of maximized panel */\n }\n\n .collections-main {\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n min-width: 0;\n }\n\n .collections-main.with-artifact-panel {\n /* When artifact panel is open, main area shrinks */\n }\n\n .artifact-panel-resize-handle {\n width: 8px;\n cursor: col-resize;\n background: transparent;\n transition: background 150ms ease;\n flex-shrink: 0;\n }\n\n .artifact-panel-resize-handle:hover {\n background: var(--mj-brand-primary);\n }\n\n .artifact-panel-resize-handle:active {\n background: var(--mj-brand-primary-hover);\n }\n\n .artifact-panel {\n border-left: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n transition: width 0.2s ease;\n }\n\n .artifact-panel.maximized {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 100% !important;\n z-index: 100;\n }\n `],\n encapsulation: ViewEncapsulation.None\n})\nexport class ChatCollectionsResource extends BaseResourceComponent implements OnInit, OnDestroy {\n public currentUser: any = null;\n\n // Artifact panel state\n public isArtifactPanelOpen: boolean = false;\n public activeCollectionId: string | null = null;\n public activeArtifactId: string | null = null;\n public activeVersionNumber: number | null = null;\n public canShareActiveArtifact: boolean = false;\n public canEditActiveArtifact: boolean = false;\n public artifactPanelWidth: number = 40; // Default 40% width (percentage-based)\n public isArtifactPanelMaximized: boolean = false;\n private artifactPanelWidthBeforeMaximize: number = 40; // Store width before maximizing\n\n // Resize state\n private isResizing: boolean = false;\n private resizeStartX: number = 0;\n private resizeStartWidth: number = 0;\n\n private initializing = true; // Prevents URL updates during initialization\n\n private artifactState = inject(ArtifactStateService);\n private artifactPermissionService = inject(ArtifactPermissionService);\n public collectionState = inject(CollectionStateService);\n private cdr = inject(ChangeDetectorRef);\n private analyzeService = inject(AnalyzeArtifactService);\n\n ngOnInit() {\n super.ngOnInit();\n const md = this.ProviderToUse;\n this.currentUser = md.CurrentUser;\n\n // Subscribe to artifact state changes\n this.subscribeToArtifactState();\n\n // Setup resize listeners\n this.setupResizeListeners();\n\n // Apply initial state from query params or tab config\n this.applyInitialParams();\n\n // Subscribe to state changes to push URL updates\n this.subscribeToUrlStateChanges();\n\n // Subscribe to collection and artifact changes to update tab title\n this.collectionState.activeCollectionId$\n .pipe(takeUntil(this.destroy$), distinctUntilChanged())\n .subscribe(collectionId => {\n this.activeCollectionId = collectionId;\n // Only update if no artifact is open (artifact title takes priority)\n if (!this.activeArtifactId) {\n this.updateCollectionTabTitle(collectionId);\n }\n this.cdr.detectChanges();\n });\n\n this.artifactState.activeArtifact$\n .pipe(takeUntil(this.destroy$), distinctUntilChanged())\n .subscribe(artifact => {\n if (artifact && artifact.Name) {\n this.NotifyDisplayNameChanged(artifact.Name);\n } else {\n // Artifact closed — fall back to collection name\n this.updateCollectionTabTitle(this.collectionState.activeCollectionId);\n }\n });\n\n // Enable URL updates after initialization\n this.initializing = false;\n\n // Push initial state to URL\n this.pushStateToUrl();\n\n // Notify load complete after user is set\n setTimeout(() => {\n this.NotifyLoadComplete();\n }, 100);\n }\n\n\n /**\n * Apply initial state from query params or tab configuration.\n */\n private applyInitialParams(): void {\n const params = this.GetQueryParams();\n const config = this.Data?.Configuration;\n\n const collectionId = params['collectionId'] || (config?.collectionId as string);\n const artifactId = params['artifactId'] || (config?.artifactId as string);\n const versionNumber = params['versionNumber'] ? parseInt(params['versionNumber'], 10)\n : config?.versionNumber ? (config.versionNumber as number) : undefined;\n\n if (collectionId) {\n this.collectionState.setActiveCollection(collectionId);\n }\n if (artifactId) {\n this.artifactState.openArtifact(artifactId, versionNumber);\n }\n }\n\n /**\n * React to browser back/forward query param changes.\n */\n protected override OnQueryParamsChanged(params: Record<string, string>, source: 'popstate' | 'deeplink'): void {\n const collectionId = params['collectionId'];\n const artifactId = params['artifactId'];\n const versionNumber = params['versionNumber'] ? parseInt(params['versionNumber'], 10) : undefined;\n\n if (collectionId) {\n this.collectionState.setActiveCollection(collectionId);\n } else {\n this.collectionState.setActiveCollection(null);\n }\n\n if (artifactId) {\n this.artifactState.openArtifact(artifactId, versionNumber);\n } else {\n this.artifactState.closeArtifact();\n }\n }\n\n /**\n * Subscribe to state changes for URL updates.\n */\n private subscribeToUrlStateChanges(): void {\n combineLatest([\n this.collectionState.activeCollectionId$.pipe(distinctUntilChanged()),\n this.artifactState.activeArtifactId$.pipe(distinctUntilChanged()),\n this.artifactState.activeVersionNumber$.pipe(distinctUntilChanged())\n ])\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (!this.initializing) {\n this.pushStateToUrl();\n }\n });\n }\n\n /**\n * Push current state to URL via framework query params.\n */\n private pushStateToUrl(): void {\n const queryParams: Record<string, string | null> = {};\n\n const collectionId = this.collectionState.activeCollectionId;\n queryParams['collectionId'] = collectionId || null;\n\n if (this.activeArtifactId) {\n queryParams['artifactId'] = this.activeArtifactId;\n queryParams['versionNumber'] = this.activeVersionNumber ? this.activeVersionNumber.toString() : null;\n } else {\n queryParams['artifactId'] = null;\n queryParams['versionNumber'] = null;\n }\n\n this.UpdateQueryParams(queryParams);\n }\n\n\n /**\n * Update the tab/browser title based on the active collection.\n */\n private async updateCollectionTabTitle(collectionId: string | null): Promise<void> {\n if (!collectionId) {\n this.NotifyDisplayNameChanged('Collections');\n return;\n }\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<{ Name: string }>({\n EntityName: 'MJ: Collections',\n Fields: ['Name'],\n ExtraFilter: `ID='${collectionId}'`,\n ResultType: 'simple'\n });\n if (result.Results?.length > 0 && result.Results[0].Name) {\n this.NotifyDisplayNameChanged(result.Results[0].Name);\n }\n } catch {\n // Fall back to generic title\n this.NotifyDisplayNameChanged('Collections');\n }\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this.removeResizeListeners();\n }\n\n /**\n * Subscribe to artifact state service for panel open/close\n */\n private subscribeToArtifactState(): void {\n // Subscribe to panel open state\n this.artifactState.isPanelOpen$\n .pipe(takeUntil(this.destroy$))\n .subscribe(isOpen => {\n this.isArtifactPanelOpen = isOpen;\n this.cdr.detectChanges();\n });\n\n // Subscribe to active artifact ID\n this.artifactState.activeArtifactId$\n .pipe(takeUntil(this.destroy$))\n .subscribe(async id => {\n this.activeArtifactId = id;\n if (id) {\n await this.loadArtifactPermissions(id);\n } else {\n this.canShareActiveArtifact = false;\n this.canEditActiveArtifact = false;\n }\n this.cdr.detectChanges();\n });\n\n // Subscribe to active version number\n this.artifactState.activeVersionNumber$\n .pipe(takeUntil(this.destroy$))\n .subscribe(versionNumber => {\n this.activeVersionNumber = versionNumber;\n });\n }\n\n /**\n * Load permissions for the active artifact\n */\n private async loadArtifactPermissions(artifactId: string): Promise<void> {\n if (!artifactId || !this.currentUser) {\n this.canShareActiveArtifact = false;\n this.canEditActiveArtifact = false;\n return;\n }\n\n try {\n const permissions = await this.artifactPermissionService.getUserPermissions(artifactId, this.currentUser);\n this.canShareActiveArtifact = permissions.canShare;\n this.canEditActiveArtifact = permissions.canEdit;\n } catch (error) {\n console.error('Failed to load artifact permissions:', error);\n this.canShareActiveArtifact = false;\n this.canEditActiveArtifact = false;\n }\n }\n\n /**\n * Close the artifact panel\n */\n closeArtifactPanel(): void {\n this.artifactState.closeArtifact();\n }\n\n /**\n * Toggle maximize/restore state for artifact panel\n */\n toggleMaximizeArtifactPanel(): void {\n if (this.isArtifactPanelMaximized) {\n // Restore to previous width\n this.artifactPanelWidth = this.artifactPanelWidthBeforeMaximize;\n this.isArtifactPanelMaximized = false;\n } else {\n // Maximize - store current width and set to 100%\n this.artifactPanelWidthBeforeMaximize = this.artifactPanelWidth;\n this.artifactPanelWidth = 100;\n this.isArtifactPanelMaximized = true;\n }\n }\n\n /**\n * Handle navigation request from artifact viewer panel.\n * Converts the link event to a generic navigation request and uses NavigationService.\n */\n onNavigateToLink(event: {\n type: 'conversation' | 'collection';\n id: string;\n artifactId?: string;\n versionNumber?: number;\n versionId?: string;\n }): void {\n // Map the link type to the nav item name\n const navItemName = event.type === 'conversation' ? 'Conversations' : 'Collections';\n\n // Build configuration params to pass to the target resource\n const params: Record<string, unknown> = {};\n if (event.type === 'conversation') {\n params['conversationId'] = event.id;\n } else {\n params['collectionId'] = event.id;\n }\n\n // Include artifact info so destination can open it\n if (event.artifactId) {\n params['artifactId'] = event.artifactId;\n if (event.versionNumber) {\n params['versionNumber'] = event.versionNumber;\n }\n }\n\n // Navigate using the generic nav item method\n this.navigationService.OpenNavItemByName(navItemName, params);\n }\n\n /**\n * Handle entity record open request from artifact viewer (from React component grids).\n * Uses NavigationService to open the record in a new tab.\n */\n onOpenEntityRecord(event: {entityName: string; compositeKey: CompositeKey}): void {\n this.navigationService.OpenEntityRecord(event.entityName, event.compositeKey);\n }\n\n /**\n * Handler for the Analyze button on the artifact viewer panel.\n * Captures the live DataSnapshot, creates a new analysis conversation\n * with the snapshot attached as an input artifact, and routes the user\n * to the Conversations nav item for the new conversation.\n */\n async onAnalyzeRequested(event: { artifactId: string; snapshot: DataSnapshot }): Promise<void> {\n if (!this.currentUser) return;\n\n try {\n const result = await this.analyzeService.StartAnalysisConversation({\n snapshot: event.snapshot,\n currentUser: this.currentUser,\n environmentId: this.environmentId,\n });\n\n await this.navigationService.OpenNavItemByName('Conversations', {\n conversationId: result.conversationId,\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Failed to start analysis conversation';\n MJNotificationService.Instance.CreateSimpleNotification(message, 'error', 5000);\n }\n }\n\n /**\n * Get the environment ID from configuration or use default\n */\n get environmentId(): string {\n return this.Data?.Configuration?.environmentId || MJEnvironmentEntityExtended.DefaultEnvironmentID;\n }\n\n /**\n * Get the display name for chat collections\n */\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Collections';\n }\n\n /**\n * Get the icon class for chat collections\n */\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-folder-open';\n }\n\n // Resize handling\n private setupResizeListeners(): void {\n this.boundOnResizeMove = this.onResizeMove.bind(this);\n this.boundOnResizeEnd = this.onResizeEnd.bind(this);\n }\n\n private removeResizeListeners(): void {\n window.removeEventListener('mousemove', this.boundOnResizeMove);\n window.removeEventListener('mouseup', this.boundOnResizeEnd);\n }\n\n private boundOnResizeMove: (e: MouseEvent) => void = () => {};\n private boundOnResizeEnd: (e: MouseEvent) => void = () => {};\n\n onResizeStart(event: MouseEvent): void {\n this.isResizing = true;\n this.resizeStartX = event.clientX;\n this.resizeStartWidth = this.artifactPanelWidth;\n window.addEventListener('mousemove', this.boundOnResizeMove);\n window.addEventListener('mouseup', this.boundOnResizeEnd);\n event.preventDefault();\n document.body.style.cursor = 'col-resize';\n document.body.style.userSelect = 'none';\n }\n\n private onResizeMove(event: MouseEvent): void {\n if (!this.isResizing) return;\n\n const container = document.querySelector('.chat-collections-container') as HTMLElement;\n if (!container) return;\n\n const containerWidth = container.offsetWidth;\n const deltaX = event.clientX - this.resizeStartX;\n const deltaPercent = (deltaX / containerWidth) * -100; // Negative because we're pulling from the right\n let newWidth = this.resizeStartWidth + deltaPercent;\n\n // Constrain between 20% and 80%\n newWidth = Math.max(20, Math.min(80, newWidth));\n this.artifactPanelWidth = newWidth;\n }\n\n private onResizeEnd(event: MouseEvent): void {\n this.isResizing = false;\n window.removeEventListener('mousemove', this.boundOnResizeMove);\n window.removeEventListener('mouseup', this.boundOnResizeEnd);\n document.body.style.cursor = '';\n document.body.style.userSelect = '';\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"chat-collections-resource.component.js","sourceRoot":"","sources":["../../../src/lib/resource-wrappers/chat-collections-resource.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ViewEncapsulation, OnInit, OnDestroy, ChangeDetectorRef, inject } from '@angular/core';\nimport { DataSnapshot, Metadata, CompositeKey, RunView } from '@memberjunction/core';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { ResourceData, MJEnvironmentEntityExtended } from '@memberjunction/core-entities';\nimport { ArtifactStateService, ArtifactPermissionService, CollectionStateService } from '@memberjunction/ng-conversations';\nimport { AnalyzeArtifactService } from '@memberjunction/ng-artifacts';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { Subject, takeUntil, distinctUntilChanged, combineLatest } from 'rxjs';\n/**\n * Chat Collections Resource - displays the collections full view for tab-based display\n * Extends BaseResourceComponent to work with the resource type system\n * Shows all collections and their artifacts in a comprehensive view\n * Includes artifact panel support for viewing selected artifacts\n */\n@RegisterClass(BaseResourceComponent, 'ChatCollectionsResource')\n@Component({\n standalone: false,\n selector: 'mj-chat-collections-resource',\n template: `\n <div class=\"chat-collections-container\">\n <!-- Collections view -->\n <div class=\"collections-main\" [class.with-artifact-panel]=\"isArtifactPanelOpen && activeArtifactId\">\n @if (currentUser) {\n <mj-collections-full-view\n [environmentId]=\"environmentId\"\n [currentUser]=\"currentUser\">\n </mj-collections-full-view>\n }\n </div>\n \n <!-- Artifact Panel -->\n @if (isArtifactPanelOpen && activeArtifactId) {\n @if (!isArtifactPanelMaximized) {\n <div class=\"artifact-panel-resize-handle\"\n (mousedown)=\"onResizeStart($event)\"></div>\n }\n <div class=\"artifact-panel\"\n [style.width.%]=\"artifactPanelWidth\"\n [class.maximized]=\"isArtifactPanelMaximized\">\n <mj-artifact-viewer-panel\n [artifactId]=\"activeArtifactId\"\n [currentUser]=\"currentUser\"\n [environmentId]=\"environmentId\"\n [versionNumber]=\"activeVersionNumber ?? undefined\"\n [showSaveToCollection]=\"false\"\n [viewContext]=\"'collection'\"\n [contextCollectionId]=\"activeCollectionId ?? undefined\"\n [canShare]=\"canShareActiveArtifact\"\n [canEdit]=\"canEditActiveArtifact\"\n [isMaximized]=\"isArtifactPanelMaximized\"\n (closed)=\"closeArtifactPanel()\"\n (maximizeToggled)=\"toggleMaximizeArtifactPanel()\"\n (navigateToLink)=\"onNavigateToLink($event)\"\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n (analyzeRequested)=\"onAnalyzeRequested($event)\">\n </mj-artifact-viewer-panel>\n </div>\n }\n </div>\n `,\n styles: [`\n /* :host doesn't work with ViewEncapsulation.None — use the element selector */\n mj-chat-collections-resource {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .chat-collections-container {\n display: flex;\n width: 100%;\n height: 100%;\n flex: 1;\n overflow: hidden;\n position: relative; /* Required for absolute positioning of maximized panel */\n }\n\n .collections-main {\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n min-width: 0;\n }\n\n .collections-main.with-artifact-panel {\n /* When artifact panel is open, main area shrinks */\n }\n\n .artifact-panel-resize-handle {\n width: 8px;\n cursor: col-resize;\n background: transparent;\n transition: background 150ms ease;\n flex-shrink: 0;\n }\n\n .artifact-panel-resize-handle:hover {\n background: var(--mj-brand-primary);\n }\n\n .artifact-panel-resize-handle:active {\n background: var(--mj-brand-primary-hover);\n }\n\n .artifact-panel {\n border-left: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n transition: width 0.2s ease;\n }\n\n .artifact-panel.maximized {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 100% !important;\n z-index: 100;\n }\n `],\n encapsulation: ViewEncapsulation.None\n})\nexport class ChatCollectionsResource extends BaseResourceComponent implements OnInit, OnDestroy {\n public currentUser: any = null;\n\n // Artifact panel state\n public isArtifactPanelOpen: boolean = false;\n public activeCollectionId: string | null = null;\n public activeArtifactId: string | null = null;\n public activeVersionNumber: number | null = null;\n public canShareActiveArtifact: boolean = false;\n public canEditActiveArtifact: boolean = false;\n public artifactPanelWidth: number = 40; // Default 40% width (percentage-based)\n public isArtifactPanelMaximized: boolean = false;\n private artifactPanelWidthBeforeMaximize: number = 40; // Store width before maximizing\n\n // Resize state\n private isResizing: boolean = false;\n private resizeStartX: number = 0;\n private resizeStartWidth: number = 0;\n\n private initializing = true; // Prevents URL updates during initialization\n\n private artifactState = inject(ArtifactStateService);\n private artifactPermissionService = inject(ArtifactPermissionService);\n public collectionState = inject(CollectionStateService);\n private cdr = inject(ChangeDetectorRef);\n private analyzeService = inject(AnalyzeArtifactService);\n\n ngOnInit() {\n super.ngOnInit();\n const md = this.ProviderToUse;\n this.currentUser = md.CurrentUser;\n\n // Subscribe to artifact state changes\n this.subscribeToArtifactState();\n\n // Setup resize listeners\n this.setupResizeListeners();\n\n // Apply initial state from query params or tab config\n this.applyInitialParams();\n\n // Subscribe to state changes to push URL updates\n this.subscribeToUrlStateChanges();\n\n // Subscribe to collection and artifact changes to update tab title\n this.collectionState.activeCollectionId$\n .pipe(takeUntil(this.destroy$), distinctUntilChanged())\n .subscribe(collectionId => {\n this.activeCollectionId = collectionId;\n // Only update if no artifact is open (artifact title takes priority)\n if (!this.activeArtifactId) {\n this.updateCollectionTabTitle(collectionId);\n }\n this.cdr.detectChanges();\n });\n\n this.artifactState.activeArtifact$\n .pipe(takeUntil(this.destroy$), distinctUntilChanged())\n .subscribe(artifact => {\n if (artifact && artifact.Name) {\n this.NotifyDisplayNameChanged(artifact.Name);\n } else {\n // Artifact closed — fall back to collection name\n this.updateCollectionTabTitle(this.collectionState.activeCollectionId);\n }\n });\n\n // Enable URL updates after initialization\n this.initializing = false;\n\n // Push initial state to URL — but only if we actually have state to reflect.\n // On a cold/direct deep-link load the params may arrive via the reactive\n // OnQueryParamsChanged delivery slightly after ngOnInit; pushing empty params\n // here would strip the deep link from the URL before that delivery lands.\n // Once state is set (synchronously when params are already present, or via the\n // reactive delivery), subscribeToUrlStateChanges() pushes the normalized URL.\n if (this.collectionState.activeCollectionId || this.activeArtifactId) {\n this.pushStateToUrl();\n }\n\n // Notify load complete after user is set\n setTimeout(() => {\n this.NotifyLoadComplete();\n }, 100);\n }\n\n\n /**\n * Apply initial state from query params or tab configuration.\n */\n private applyInitialParams(): void {\n const params = this.GetQueryParams();\n const config = this.Data?.Configuration;\n\n const collectionId = params['collectionId'] || (config?.collectionId as string);\n const artifactId = params['artifactId'] || (config?.artifactId as string);\n const versionNumber = params['versionNumber'] ? parseInt(params['versionNumber'], 10)\n : config?.versionNumber ? (config.versionNumber as number) : undefined;\n\n if (collectionId) {\n this.collectionState.setActiveCollection(collectionId);\n }\n if (artifactId) {\n this.artifactState.openArtifact(artifactId, versionNumber);\n }\n }\n\n /**\n * React to browser back/forward query param changes.\n */\n protected override OnQueryParamsChanged(params: Record<string, string>, source: 'popstate' | 'deeplink'): void {\n const collectionId = params['collectionId'];\n const artifactId = params['artifactId'];\n const versionNumber = params['versionNumber'] ? parseInt(params['versionNumber'], 10) : undefined;\n\n if (collectionId) {\n this.collectionState.setActiveCollection(collectionId);\n } else {\n this.collectionState.setActiveCollection(null);\n }\n\n if (artifactId) {\n this.artifactState.openArtifact(artifactId, versionNumber);\n } else {\n this.artifactState.closeArtifact();\n }\n }\n\n /**\n * Subscribe to state changes for URL updates.\n */\n private subscribeToUrlStateChanges(): void {\n combineLatest([\n this.collectionState.activeCollectionId$.pipe(distinctUntilChanged()),\n this.artifactState.activeArtifactId$.pipe(distinctUntilChanged()),\n this.artifactState.activeVersionNumber$.pipe(distinctUntilChanged())\n ])\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (!this.initializing) {\n this.pushStateToUrl();\n }\n });\n }\n\n /**\n * Push current state to URL via framework query params.\n */\n private pushStateToUrl(): void {\n const queryParams: Record<string, string | null> = {};\n\n const collectionId = this.collectionState.activeCollectionId;\n queryParams['collectionId'] = collectionId || null;\n\n if (this.activeArtifactId) {\n queryParams['artifactId'] = this.activeArtifactId;\n queryParams['versionNumber'] = this.activeVersionNumber ? this.activeVersionNumber.toString() : null;\n } else {\n queryParams['artifactId'] = null;\n queryParams['versionNumber'] = null;\n }\n\n this.UpdateQueryParams(queryParams);\n }\n\n\n /**\n * Update the tab/browser title based on the active collection.\n */\n private async updateCollectionTabTitle(collectionId: string | null): Promise<void> {\n if (!collectionId) {\n this.NotifyDisplayNameChanged('Collections');\n return;\n }\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<{ Name: string }>({\n EntityName: 'MJ: Collections',\n Fields: ['Name'],\n ExtraFilter: `ID='${collectionId}'`,\n ResultType: 'simple'\n });\n if (result.Results?.length > 0 && result.Results[0].Name) {\n this.NotifyDisplayNameChanged(result.Results[0].Name);\n }\n } catch {\n // Fall back to generic title\n this.NotifyDisplayNameChanged('Collections');\n }\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this.removeResizeListeners();\n }\n\n /**\n * Subscribe to artifact state service for panel open/close\n */\n private subscribeToArtifactState(): void {\n // Subscribe to panel open state\n this.artifactState.isPanelOpen$\n .pipe(takeUntil(this.destroy$))\n .subscribe(isOpen => {\n this.isArtifactPanelOpen = isOpen;\n this.cdr.detectChanges();\n });\n\n // Subscribe to active artifact ID\n this.artifactState.activeArtifactId$\n .pipe(takeUntil(this.destroy$))\n .subscribe(async id => {\n this.activeArtifactId = id;\n if (id) {\n await this.loadArtifactPermissions(id);\n } else {\n this.canShareActiveArtifact = false;\n this.canEditActiveArtifact = false;\n }\n this.cdr.detectChanges();\n });\n\n // Subscribe to active version number\n this.artifactState.activeVersionNumber$\n .pipe(takeUntil(this.destroy$))\n .subscribe(versionNumber => {\n this.activeVersionNumber = versionNumber;\n });\n }\n\n /**\n * Load permissions for the active artifact\n */\n private async loadArtifactPermissions(artifactId: string): Promise<void> {\n if (!artifactId || !this.currentUser) {\n this.canShareActiveArtifact = false;\n this.canEditActiveArtifact = false;\n return;\n }\n\n try {\n const permissions = await this.artifactPermissionService.getUserPermissions(artifactId, this.currentUser);\n this.canShareActiveArtifact = permissions.canShare;\n this.canEditActiveArtifact = permissions.canEdit;\n } catch (error) {\n console.error('Failed to load artifact permissions:', error);\n this.canShareActiveArtifact = false;\n this.canEditActiveArtifact = false;\n }\n }\n\n /**\n * Close the artifact panel\n */\n closeArtifactPanel(): void {\n this.artifactState.closeArtifact();\n }\n\n /**\n * Toggle maximize/restore state for artifact panel\n */\n toggleMaximizeArtifactPanel(): void {\n if (this.isArtifactPanelMaximized) {\n // Restore to previous width\n this.artifactPanelWidth = this.artifactPanelWidthBeforeMaximize;\n this.isArtifactPanelMaximized = false;\n } else {\n // Maximize - store current width and set to 100%\n this.artifactPanelWidthBeforeMaximize = this.artifactPanelWidth;\n this.artifactPanelWidth = 100;\n this.isArtifactPanelMaximized = true;\n }\n }\n\n /**\n * Handle navigation request from artifact viewer panel.\n * Converts the link event to a generic navigation request and uses NavigationService.\n */\n onNavigateToLink(event: {\n type: 'conversation' | 'collection';\n id: string;\n artifactId?: string;\n versionNumber?: number;\n versionId?: string;\n }): void {\n // Map the link type to the nav item name\n const navItemName = event.type === 'conversation' ? 'Conversations' : 'Collections';\n\n // Build configuration params to pass to the target resource\n const params: Record<string, unknown> = {};\n if (event.type === 'conversation') {\n params['conversationId'] = event.id;\n } else {\n params['collectionId'] = event.id;\n }\n\n // Include artifact info so destination can open it\n if (event.artifactId) {\n params['artifactId'] = event.artifactId;\n if (event.versionNumber) {\n params['versionNumber'] = event.versionNumber;\n }\n }\n\n // Navigate using the generic nav item method\n this.navigationService.OpenNavItemByName(navItemName, params);\n }\n\n /**\n * Handle entity record open request from artifact viewer (from React component grids).\n * Uses NavigationService to open the record in a new tab.\n */\n onOpenEntityRecord(event: {entityName: string; compositeKey: CompositeKey}): void {\n this.navigationService.OpenEntityRecord(event.entityName, event.compositeKey);\n }\n\n /**\n * Handler for the Analyze button on the artifact viewer panel.\n * Captures the live DataSnapshot, creates a new analysis conversation\n * with the snapshot attached as an input artifact, and routes the user\n * to the Conversations nav item for the new conversation.\n */\n async onAnalyzeRequested(event: { artifactId: string; snapshot: DataSnapshot }): Promise<void> {\n if (!this.currentUser) return;\n\n try {\n const result = await this.analyzeService.StartAnalysisConversation({\n snapshot: event.snapshot,\n currentUser: this.currentUser,\n environmentId: this.environmentId,\n });\n\n await this.navigationService.OpenNavItemByName('Conversations', {\n conversationId: result.conversationId,\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Failed to start analysis conversation';\n MJNotificationService.Instance.CreateSimpleNotification(message, 'error', 5000);\n }\n }\n\n /**\n * Get the environment ID from configuration or use default\n */\n get environmentId(): string {\n return this.Data?.Configuration?.environmentId || MJEnvironmentEntityExtended.DefaultEnvironmentID;\n }\n\n /**\n * Get the display name for chat collections\n */\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Collections';\n }\n\n /**\n * Get the icon class for chat collections\n */\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-folder-open';\n }\n\n // Resize handling\n private setupResizeListeners(): void {\n this.boundOnResizeMove = this.onResizeMove.bind(this);\n this.boundOnResizeEnd = this.onResizeEnd.bind(this);\n }\n\n private removeResizeListeners(): void {\n window.removeEventListener('mousemove', this.boundOnResizeMove);\n window.removeEventListener('mouseup', this.boundOnResizeEnd);\n }\n\n private boundOnResizeMove: (e: MouseEvent) => void = () => {};\n private boundOnResizeEnd: (e: MouseEvent) => void = () => {};\n\n onResizeStart(event: MouseEvent): void {\n this.isResizing = true;\n this.resizeStartX = event.clientX;\n this.resizeStartWidth = this.artifactPanelWidth;\n window.addEventListener('mousemove', this.boundOnResizeMove);\n window.addEventListener('mouseup', this.boundOnResizeEnd);\n event.preventDefault();\n document.body.style.cursor = 'col-resize';\n document.body.style.userSelect = 'none';\n }\n\n private onResizeMove(event: MouseEvent): void {\n if (!this.isResizing) return;\n\n const container = document.querySelector('.chat-collections-container') as HTMLElement;\n if (!container) return;\n\n const containerWidth = container.offsetWidth;\n const deltaX = event.clientX - this.resizeStartX;\n const deltaPercent = (deltaX / containerWidth) * -100; // Negative because we're pulling from the right\n let newWidth = this.resizeStartWidth + deltaPercent;\n\n // Constrain between 20% and 80%\n newWidth = Math.max(20, Math.min(80, newWidth));\n this.artifactPanelWidth = newWidth;\n }\n\n private onResizeEnd(event: MouseEvent): void {\n this.isResizing = false;\n window.removeEventListener('mousemove', this.boundOnResizeMove);\n window.removeEventListener('mouseup', this.boundOnResizeEnd);\n document.body.style.cursor = '';\n document.body.style.userSelect = '';\n }\n}\n"]}
|
|
@@ -71,6 +71,14 @@ export declare class ChatConversationsResource extends BaseResourceComponent imp
|
|
|
71
71
|
* Sets state synchronously so child components see values immediately.
|
|
72
72
|
*/
|
|
73
73
|
private applyConfigurationParams;
|
|
74
|
+
/**
|
|
75
|
+
* React to query param changes that arrive AFTER initial load — e.g. clicking a
|
|
76
|
+
* Home pin for a different conversation, or browser back/forward — when this tab
|
|
77
|
+
* already exists and is simply re-focused (so ngOnInit / applyConfigurationParams
|
|
78
|
+
* does NOT run again). Without this, every pin would land on whatever conversation
|
|
79
|
+
* was already open instead of the pinned one.
|
|
80
|
+
*/
|
|
81
|
+
protected OnQueryParamsChanged(params: Record<string, string>, _source: 'popstate' | 'deeplink'): void;
|
|
74
82
|
/**
|
|
75
83
|
* Apply navigation state to local selection state.
|
|
76
84
|
* Sets state synchronously so child components see values immediately.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-conversations-resource.component.d.ts","sourceRoot":"","sources":["../../../src/lib/resource-wrappers/chat-conversations-resource.component.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chat-conversations-resource.component.d.ts","sourceRoot":"","sources":["../../../src/lib/resource-wrappers/chat-conversations-resource.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -271,6 +271,31 @@ let ChatConversationsResource = class ChatConversationsResource extends BaseReso
|
|
|
271
271
|
this.loadConversationEntity(conversationId);
|
|
272
272
|
}
|
|
273
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* React to query param changes that arrive AFTER initial load — e.g. clicking a
|
|
276
|
+
* Home pin for a different conversation, or browser back/forward — when this tab
|
|
277
|
+
* already exists and is simply re-focused (so ngOnInit / applyConfigurationParams
|
|
278
|
+
* does NOT run again). Without this, every pin would land on whatever conversation
|
|
279
|
+
* was already open instead of the pinned one.
|
|
280
|
+
*/
|
|
281
|
+
OnQueryParamsChanged(params, _source) {
|
|
282
|
+
const conversationId = params['conversationId'] || null;
|
|
283
|
+
const artifactId = params['artifactId'] || null;
|
|
284
|
+
const versionNumber = params['versionNumber'] ? parseInt(params['versionNumber'], 10) : null;
|
|
285
|
+
// Reflect any artifact intent so the chat area can open it.
|
|
286
|
+
this.pendingArtifactId = artifactId;
|
|
287
|
+
this.pendingArtifactVersionNumber = versionNumber;
|
|
288
|
+
if (conversationId && conversationId !== this.selectedConversationId) {
|
|
289
|
+
// The URL is already the source of truth here — suppress the echo back to it.
|
|
290
|
+
// selectConversation()'s body is synchronous up to its URL-update check, so
|
|
291
|
+
// toggling the flag around the call reliably gates that check.
|
|
292
|
+
const prevSkip = this.skipUrlUpdate;
|
|
293
|
+
this.skipUrlUpdate = true;
|
|
294
|
+
void this.selectConversation(conversationId);
|
|
295
|
+
this.skipUrlUpdate = prevSkip;
|
|
296
|
+
this.cdr.detectChanges();
|
|
297
|
+
}
|
|
298
|
+
}
|
|
274
299
|
/**
|
|
275
300
|
* Apply navigation state to local selection state.
|
|
276
301
|
* Sets state synchronously so child components see values immediately.
|