@memberjunction/ng-explorer-core 5.48.0 → 5.49.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 +6 -2
- package/dist/generated/lazy-feature-config.js.map +1 -1
- package/dist/lib/omnibar/omnibar-palette.component.d.ts.map +1 -1
- package/dist/lib/omnibar/omnibar-palette.component.js +11 -2
- package/dist/lib/omnibar/omnibar-palette.component.js.map +1 -1
- package/dist/lib/profile/profile-dialog.component.d.ts +17 -0
- package/dist/lib/profile/profile-dialog.component.d.ts.map +1 -1
- package/dist/lib/profile/profile-dialog.component.js +141 -5
- package/dist/lib/profile/profile-dialog.component.js.map +1 -1
- package/dist/lib/shell/shell.component.d.ts +14 -8
- package/dist/lib/shell/shell.component.d.ts.map +1 -1
- package/dist/lib/shell/shell.component.js +264 -210
- package/dist/lib/shell/shell.component.js.map +1 -1
- 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 +10 -7
- package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -1
- package/package.json +52 -50
|
@@ -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 = 114;
|
|
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;AA6DH;;;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;AA6DH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAuJnE,CAAC;AAEF,eAAO,MAAM,yBAAyB,MAAM,CAAC"}
|
|
@@ -22,7 +22,7 @@ const loadNgDashboardsAiDashboardsModule = featureLoader(() => import('@memberju
|
|
|
22
22
|
const loadNgDashboardsCommunicationDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/communication-dashboards.module'));
|
|
23
23
|
// --- @memberjunction/ng-dashboards → ./component-studio-dashboards.module (3 entries) ---
|
|
24
24
|
const loadNgDashboardsComponentStudioDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/component-studio-dashboards.module'));
|
|
25
|
-
// --- @memberjunction/ng-dashboards → ./core-dashboards.module (
|
|
25
|
+
// --- @memberjunction/ng-dashboards → ./core-dashboards.module (34 entries) ---
|
|
26
26
|
const loadNgDashboardsCoreDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/core-dashboards.module'));
|
|
27
27
|
// --- @memberjunction/ng-dashboards → ./credentials-dashboards.module (6 entries) ---
|
|
28
28
|
const loadNgDashboardsCredentialsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/credentials-dashboards.module'));
|
|
@@ -96,6 +96,8 @@ export const LAZY_FEATURE_CONFIG = {
|
|
|
96
96
|
// @memberjunction/ng-dashboards → ./core-dashboards.module
|
|
97
97
|
'BaseApplication::HomeApplication': loadNgDashboardsCoreDashboardsModule,
|
|
98
98
|
'BaseDashboard::EntityAdmin': loadNgDashboardsCoreDashboardsModule,
|
|
99
|
+
'BaseDashboard::ThemeManagerDashboard': loadNgDashboardsCoreDashboardsModule,
|
|
100
|
+
'BaseDashboard::ThemeStudioDashboard': loadNgDashboardsCoreDashboardsModule,
|
|
99
101
|
'BaseResourceComponent::AdminDataSchema': loadNgDashboardsCoreDashboardsModule,
|
|
100
102
|
'BaseResourceComponent::AdminDeveloperTools': loadNgDashboardsCoreDashboardsModule,
|
|
101
103
|
'BaseResourceComponent::AdminIdentityAccess': loadNgDashboardsCoreDashboardsModule,
|
|
@@ -120,6 +122,8 @@ export const LAZY_FEATURE_CONFIG = {
|
|
|
120
122
|
'BaseResourceComponent::RealtimeRecordingsDashboard': loadNgDashboardsCoreDashboardsModule,
|
|
121
123
|
'BaseResourceComponent::SettingsExplorerInspector': loadNgDashboardsCoreDashboardsModule,
|
|
122
124
|
'BaseResourceComponent::SystemDiagnosticsResource': loadNgDashboardsCoreDashboardsModule,
|
|
125
|
+
'BaseResourceComponent::ThemeManagerResource': loadNgDashboardsCoreDashboardsModule,
|
|
126
|
+
'BaseResourceComponent::ThemeStudioResource': loadNgDashboardsCoreDashboardsModule,
|
|
123
127
|
'BaseResourceComponent::VersionHistoryDiffResource': loadNgDashboardsCoreDashboardsModule,
|
|
124
128
|
'BaseResourceComponent::VersionHistoryGraphResource': loadNgDashboardsCoreDashboardsModule,
|
|
125
129
|
'BaseResourceComponent::VersionHistoryLabelsResource': loadNgDashboardsCoreDashboardsModule,
|
|
@@ -184,5 +188,5 @@ export const LAZY_FEATURE_CONFIG = {
|
|
|
184
188
|
// @memberjunction/ng-react → .
|
|
185
189
|
'RuntimeUtilities::RuntimeUtilities': loadNgReact,
|
|
186
190
|
};
|
|
187
|
-
export const LAZY_FEATURE_CONFIG_COUNT =
|
|
191
|
+
export const LAZY_FEATURE_CONFIG_COUNT = 114;
|
|
188
192
|
//# 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 loadNgDashboardsActionsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/actions-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./ai-dashboards.module (17 entries) ---\nconst loadNgDashboardsAiDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/ai-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./communication-dashboards.module (7 entries) ---\nconst loadNgDashboardsCommunicationDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/communication-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./component-studio-dashboards.module (3 entries) ---\nconst loadNgDashboardsComponentStudioDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/component-studio-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./core-dashboards.module (30 entries) ---\nconst loadNgDashboardsCoreDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/core-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./credentials-dashboards.module (6 entries) ---\nconst loadNgDashboardsCredentialsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/credentials-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./data-explorer-dashboards.module (2 entries) ---\nconst loadNgDashboardsDataExplorerDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/data-explorer-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./integration.module (6 entries) ---\nconst loadNgDashboardsIntegrationModule = featureLoader(() => import('@memberjunction/ng-dashboards/integration.module'));\n\n// --- @memberjunction/ng-dashboards → ./lists-dashboards.module (5 entries) ---\nconst loadNgDashboardsListsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/lists-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./mcp.module (2 entries) ---\nconst loadNgDashboardsMcpModule = featureLoader(() => import('@memberjunction/ng-dashboards/mcp.module'));\n\n// --- @memberjunction/ng-dashboards → ./module (3 entries) ---\nconst loadNgDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/module'));\n\n// --- @memberjunction/ng-dashboards → ./predictive-studio-dashboards.module (3 entries) ---\nconst loadNgDashboardsPredictiveStudioDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/predictive-studio-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./routines-dashboards.module (1 entries) ---\nconst loadNgDashboardsRoutinesDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/routines-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./scheduling-dashboards.module (4 entries) ---\nconst loadNgDashboardsSchedulingDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/scheduling-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./testing-dashboards.module (6 entries) ---\nconst loadNgDashboardsTestingDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/testing-dashboards.module'));\n\n// --- @memberjunction/ng-explorer-settings → ./settings.module (6 entries) ---\nconst loadNgExplorerSettingsSettingsModule = featureLoader(() => import('@memberjunction/ng-explorer-settings/settings.module'));\n\n// --- @memberjunction/ng-file-storage → ./file-storage.module (1 entries) ---\nconst loadNgFileStorageFileStorageModule = 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': loadNgDashboardsActionsDashboardsModule,\n 'BaseResourceComponent::ActionsCodeResource': loadNgDashboardsActionsDashboardsModule,\n 'BaseResourceComponent::ActionsEntitiesResource': loadNgDashboardsActionsDashboardsModule,\n 'BaseResourceComponent::ActionsMonitorResource': loadNgDashboardsActionsDashboardsModule,\n 'BaseResourceComponent::ActionsOverviewResource': loadNgDashboardsActionsDashboardsModule,\n 'BaseResourceComponent::ActionsScheduleResource': loadNgDashboardsActionsDashboardsModule,\n 'BaseResourceComponent::ActionsSecurityResource': loadNgDashboardsActionsDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./ai-dashboards.module\n 'BaseResourceComponent::AIAgentRequestsResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AIAgentsResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AIAnalyticsResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AIConfigResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AIModelsResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AIMonitorResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AIPromptsResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AnalyticsResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AutotaggingPipelineResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::ClusterVisualizationResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::DuplicateDetectionResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::FeaturePipelinesResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::KnowledgeConfigResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::SchedulingResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::Tags': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::VectorManagementResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::VisualizationResource': loadNgDashboardsAiDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./communication-dashboards.module\n 'BaseDashboard::CommunicationDashboard': loadNgDashboardsCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationLogsResource': loadNgDashboardsCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationMonitorResource': loadNgDashboardsCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationProvidersResource': loadNgDashboardsCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationRunsResource': loadNgDashboardsCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationsNewMessageResource': loadNgDashboardsCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationTemplatesResource': loadNgDashboardsCommunicationDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./component-studio-dashboards.module\n 'BaseDashboard::ComponentStudioDashboard': loadNgDashboardsComponentStudioDashboardsModule,\n 'BaseResourceComponent::ComponentStudioResource': loadNgDashboardsComponentStudioDashboardsModule,\n 'BaseResourceComponent::FormBuilderResource': loadNgDashboardsComponentStudioDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./core-dashboards.module\n 'BaseApplication::HomeApplication': loadNgDashboardsCoreDashboardsModule,\n 'BaseDashboard::EntityAdmin': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::AdminDataSchema': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::AdminDeveloperTools': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::AdminIdentityAccess': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::AdminMonitoring': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::APIKeysResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::ApplicationRolesResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::AppStateInspector': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::BulkOperationsContainer': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::BulkOperationsOperations': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::BulkOperationsRunHistory': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::ClassRegistryInspector': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::DashboardBrowserResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::EventMonitorInspector': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::GraphQLConsoleInspector': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::HomeDashboard': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::LayoutInspector': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::LazyModuleStatusInspector': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::PermissionsAuditLogResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::PermissionsResourceAccessResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::PermissionsUserAccessResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::QueryBrowserResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::RealtimeRecordingsDashboard': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::SettingsExplorerInspector': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::SystemDiagnosticsResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryDiffResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryGraphResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryLabelsResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryRestoreResource': loadNgDashboardsCoreDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./credentials-dashboards.module\n 'BaseDashboard::CredentialsDashboard': loadNgDashboardsCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsAuditResource': loadNgDashboardsCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsCategoriesResource': loadNgDashboardsCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsListResource': loadNgDashboardsCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsOverviewResource': loadNgDashboardsCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsTypesResource': loadNgDashboardsCredentialsDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./data-explorer-dashboards.module\n 'BaseDashboard::DataExplorer': loadNgDashboardsDataExplorerDashboardsModule,\n 'BaseResourceComponent::DataExplorerResource': loadNgDashboardsDataExplorerDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./integration.module\n 'BaseResourceComponent::IntegrationActivity': loadNgDashboardsIntegrationModule,\n 'BaseResourceComponent::IntegrationConnections': loadNgDashboardsIntegrationModule,\n 'BaseResourceComponent::IntegrationMappingWorkspace': loadNgDashboardsIntegrationModule,\n 'BaseResourceComponent::IntegrationOverview': loadNgDashboardsIntegrationModule,\n 'BaseResourceComponent::IntegrationPipelines': loadNgDashboardsIntegrationModule,\n 'BaseResourceComponent::IntegrationSchedules': loadNgDashboardsIntegrationModule,\n\n // @memberjunction/ng-dashboards → ./lists-dashboards.module\n 'BaseResourceComponent::ListsBrowseResource': loadNgDashboardsListsDashboardsModule,\n 'BaseResourceComponent::ListsCategoriesResource': loadNgDashboardsListsDashboardsModule,\n 'BaseResourceComponent::ListsMyListsResource': loadNgDashboardsListsDashboardsModule,\n 'BaseResourceComponent::ListsOperationsResource': loadNgDashboardsListsDashboardsModule,\n 'BaseResourceComponent::ListsSharedWithMeResource': loadNgDashboardsListsDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./mcp.module\n 'BaseDashboard::MCPDashboard': loadNgDashboardsMcpModule,\n 'BaseResourceComponent::MCPResource': loadNgDashboardsMcpModule,\n\n // @memberjunction/ng-dashboards → ./module\n 'BaseResourceComponent::ArchiveConfigResource': loadNgDashboardsModule,\n 'BaseResourceComponent::ArchiveRunsResource': loadNgDashboardsModule,\n 'BaseResourceComponent::DatabaseDesignerDashboard': loadNgDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./predictive-studio-dashboards.module\n 'BaseResourceComponent::PredictiveStudioModelsResource': loadNgDashboardsPredictiveStudioDashboardsModule,\n 'BaseResourceComponent::PredictiveStudioPredictionsResource': loadNgDashboardsPredictiveStudioDashboardsModule,\n 'BaseResourceComponent::PredictiveStudioStudioResource': loadNgDashboardsPredictiveStudioDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./routines-dashboards.module\n 'BaseResourceComponent::UserRoutines': loadNgDashboardsRoutinesDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./scheduling-dashboards.module\n 'BaseDashboard::SchedulingDashboard': loadNgDashboardsSchedulingDashboardsModule,\n 'BaseResourceComponent::SchedulingActivityResource': loadNgDashboardsSchedulingDashboardsModule,\n 'BaseResourceComponent::SchedulingDashboardResource': loadNgDashboardsSchedulingDashboardsModule,\n 'BaseResourceComponent::SchedulingJobsResource': loadNgDashboardsSchedulingDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./testing-dashboards.module\n 'BaseDashboard::TestingDashboard': loadNgDashboardsTestingDashboardsModule,\n 'BaseResourceComponent::TestingAnalyticsResource': loadNgDashboardsTestingDashboardsModule,\n 'BaseResourceComponent::TestingDashboardTabResource': loadNgDashboardsTestingDashboardsModule,\n 'BaseResourceComponent::TestingExplorerResource': loadNgDashboardsTestingDashboardsModule,\n 'BaseResourceComponent::TestingReviewResource': loadNgDashboardsTestingDashboardsModule,\n 'BaseResourceComponent::TestingRunsResource': loadNgDashboardsTestingDashboardsModule,\n\n // @memberjunction/ng-explorer-settings → ./settings.module\n 'BaseDashboard::ApplicationManagement': loadNgExplorerSettingsSettingsModule,\n 'BaseDashboard::EntityPermissions': loadNgExplorerSettingsSettingsModule,\n 'BaseDashboard::RoleManagement': loadNgExplorerSettingsSettingsModule,\n 'BaseDashboard::SqlLogging': loadNgExplorerSettingsSettingsModule,\n 'BaseDashboard::UserManagement': loadNgExplorerSettingsSettingsModule,\n 'BaseNavigationComponent::Settings': loadNgExplorerSettingsSettingsModule,\n\n // @memberjunction/ng-file-storage → ./file-storage.module\n 'BaseResourceComponent::FileBrowserResource': loadNgFileStorageFileStorageModule,\n\n // @memberjunction/ng-react → .\n 'RuntimeUtilities::RuntimeUtilities': loadNgReact,\n\n};\n\nexport const LAZY_FEATURE_CONFIG_COUNT = 110;\n"]}
|
|
1
|
+
{"version":3,"file":"lazy-feature-config.js","sourceRoot":"","sources":["../../src/generated/lazy-feature-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,qEAAqE;AACrE,SAAS,aAAa,CAAC,QAAgC;IACrD,OAAO,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,kFAAkF;AAClF,MAAM,uCAAuC,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC,CAAC;AAEvI,8EAA8E;AAC9E,MAAM,kCAAkC,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,oDAAoD,CAAC,CAAC,CAAC;AAE7H,wFAAwF;AACxF,MAAM,6CAA6C,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,+DAA+D,CAAC,CAAC,CAAC;AAEnJ,2FAA2F;AAC3F,MAAM,+CAA+C,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,kEAAkE,CAAC,CAAC,CAAC;AAExJ,gFAAgF;AAChF,MAAM,oCAAoC,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,CAAC;AAEjI,sFAAsF;AACtF,MAAM,2CAA2C,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,6DAA6D,CAAC,CAAC,CAAC;AAE/I,wFAAwF;AACxF,MAAM,4CAA4C,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,+DAA+D,CAAC,CAAC,CAAC;AAElJ,2EAA2E;AAC3E,MAAM,iCAAiC,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,kDAAkD,CAAC,CAAC,CAAC;AAE1H,gFAAgF;AAChF,MAAM,qCAAqC,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;AAEnI,mEAAmE;AACnE,MAAM,yBAAyB,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;AAE1G,+DAA+D;AAC/D,MAAM,sBAAsB,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC;AAEnG,4FAA4F;AAC5F,MAAM,gDAAgD,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mEAAmE,CAAC,CAAC,CAAC;AAE1J,mFAAmF;AACnF,MAAM,wCAAwC,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,0DAA0D,CAAC,CAAC,CAAC;AAEzI,qFAAqF;AACrF,MAAM,0CAA0C,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,4DAA4D,CAAC,CAAC,CAAC;AAE7I,kFAAkF;AAClF,MAAM,uCAAuC,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC,CAAC;AAEvI,+EAA+E;AAC/E,MAAM,oCAAoC,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,CAAC;AAEjI,8EAA8E;AAC9E,MAAM,kCAAkC,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC,CAAC;AAE9H,mDAAmD;AACnD,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAwC;IACtE,8DAA8D;IAC9D,+CAA+C,EAAE,uCAAuC;IACxF,4CAA4C,EAAE,uCAAuC;IACrF,gDAAgD,EAAE,uCAAuC;IACzF,+CAA+C,EAAE,uCAAuC;IACxF,gDAAgD,EAAE,uCAAuC;IACzF,gDAAgD,EAAE,uCAAuC;IACzF,gDAAgD,EAAE,uCAAuC;IAEzF,yDAAyD;IACzD,gDAAgD,EAAE,kCAAkC;IACpF,yCAAyC,EAAE,kCAAkC;IAC7E,4CAA4C,EAAE,kCAAkC;IAChF,yCAAyC,EAAE,kCAAkC;IAC7E,yCAAyC,EAAE,kCAAkC;IAC7E,0CAA0C,EAAE,kCAAkC;IAC9E,0CAA0C,EAAE,kCAAkC;IAC9E,0CAA0C,EAAE,kCAAkC;IAC9E,oDAAoD,EAAE,kCAAkC;IACxF,qDAAqD,EAAE,kCAAkC;IACzF,mDAAmD,EAAE,kCAAkC;IACvF,iDAAiD,EAAE,kCAAkC;IACrF,gDAAgD,EAAE,kCAAkC;IACpF,2CAA2C,EAAE,kCAAkC;IAC/E,6BAA6B,EAAE,kCAAkC;IACjE,iDAAiD,EAAE,kCAAkC;IACrF,8CAA8C,EAAE,kCAAkC;IAElF,oEAAoE;IACpE,uCAAuC,EAAE,6CAA6C;IACtF,kDAAkD,EAAE,6CAA6C;IACjG,qDAAqD,EAAE,6CAA6C;IACpG,uDAAuD,EAAE,6CAA6C;IACtG,kDAAkD,EAAE,6CAA6C;IACjG,yDAAyD,EAAE,6CAA6C;IACxG,uDAAuD,EAAE,6CAA6C;IAEtG,uEAAuE;IACvE,yCAAyC,EAAE,+CAA+C;IAC1F,gDAAgD,EAAE,+CAA+C;IACjG,4CAA4C,EAAE,+CAA+C;IAE7F,2DAA2D;IAC3D,kCAAkC,EAAE,oCAAoC;IACxE,4BAA4B,EAAE,oCAAoC;IAClE,sCAAsC,EAAE,oCAAoC;IAC5E,qCAAqC,EAAE,oCAAoC;IAC3E,wCAAwC,EAAE,oCAAoC;IAC9E,4CAA4C,EAAE,oCAAoC;IAClF,4CAA4C,EAAE,oCAAoC;IAClF,wCAAwC,EAAE,oCAAoC;IAC9E,wCAAwC,EAAE,oCAAoC;IAC9E,iDAAiD,EAAE,oCAAoC;IACvF,0CAA0C,EAAE,oCAAoC;IAChF,gDAAgD,EAAE,oCAAoC;IACtF,iDAAiD,EAAE,oCAAoC;IACvF,iDAAiD,EAAE,oCAAoC;IACvF,+CAA+C,EAAE,oCAAoC;IACrF,iDAAiD,EAAE,oCAAoC;IACvF,8CAA8C,EAAE,oCAAoC;IACpF,gDAAgD,EAAE,oCAAoC;IACtF,sCAAsC,EAAE,oCAAoC;IAC5E,wCAAwC,EAAE,oCAAoC;IAC9E,kDAAkD,EAAE,oCAAoC;IACxF,oDAAoD,EAAE,oCAAoC;IAC1F,0DAA0D,EAAE,oCAAoC;IAChG,sDAAsD,EAAE,oCAAoC;IAC5F,6CAA6C,EAAE,oCAAoC;IACnF,oDAAoD,EAAE,oCAAoC;IAC1F,kDAAkD,EAAE,oCAAoC;IACxF,kDAAkD,EAAE,oCAAoC;IACxF,6CAA6C,EAAE,oCAAoC;IACnF,4CAA4C,EAAE,oCAAoC;IAClF,mDAAmD,EAAE,oCAAoC;IACzF,oDAAoD,EAAE,oCAAoC;IAC1F,qDAAqD,EAAE,oCAAoC;IAC3F,sDAAsD,EAAE,oCAAoC;IAE5F,kEAAkE;IAClE,qCAAqC,EAAE,2CAA2C;IAClF,iDAAiD,EAAE,2CAA2C;IAC9F,sDAAsD,EAAE,2CAA2C;IACnG,gDAAgD,EAAE,2CAA2C;IAC7F,oDAAoD,EAAE,2CAA2C;IACjG,iDAAiD,EAAE,2CAA2C;IAE9F,oEAAoE;IACpE,6BAA6B,EAAE,4CAA4C;IAC3E,6CAA6C,EAAE,4CAA4C;IAE3F,uDAAuD;IACvD,4CAA4C,EAAE,iCAAiC;IAC/E,+CAA+C,EAAE,iCAAiC;IAClF,oDAAoD,EAAE,iCAAiC;IACvF,4CAA4C,EAAE,iCAAiC;IAC/E,6CAA6C,EAAE,iCAAiC;IAChF,6CAA6C,EAAE,iCAAiC;IAEhF,4DAA4D;IAC5D,4CAA4C,EAAE,qCAAqC;IACnF,gDAAgD,EAAE,qCAAqC;IACvF,6CAA6C,EAAE,qCAAqC;IACpF,gDAAgD,EAAE,qCAAqC;IACvF,kDAAkD,EAAE,qCAAqC;IAEzF,+CAA+C;IAC/C,6BAA6B,EAAE,yBAAyB;IACxD,oCAAoC,EAAE,yBAAyB;IAE/D,2CAA2C;IAC3C,8CAA8C,EAAE,sBAAsB;IACtE,4CAA4C,EAAE,sBAAsB;IACpE,kDAAkD,EAAE,sBAAsB;IAE1E,wEAAwE;IACxE,uDAAuD,EAAE,gDAAgD;IACzG,4DAA4D,EAAE,gDAAgD;IAC9G,uDAAuD,EAAE,gDAAgD;IAEzG,+DAA+D;IAC/D,qCAAqC,EAAE,wCAAwC;IAE/E,iEAAiE;IACjE,oCAAoC,EAAE,0CAA0C;IAChF,mDAAmD,EAAE,0CAA0C;IAC/F,oDAAoD,EAAE,0CAA0C;IAChG,+CAA+C,EAAE,0CAA0C;IAE3F,8DAA8D;IAC9D,iCAAiC,EAAE,uCAAuC;IAC1E,iDAAiD,EAAE,uCAAuC;IAC1F,oDAAoD,EAAE,uCAAuC;IAC7F,gDAAgD,EAAE,uCAAuC;IACzF,8CAA8C,EAAE,uCAAuC;IACvF,4CAA4C,EAAE,uCAAuC;IAErF,2DAA2D;IAC3D,sCAAsC,EAAE,oCAAoC;IAC5E,kCAAkC,EAAE,oCAAoC;IACxE,+BAA+B,EAAE,oCAAoC;IACrE,2BAA2B,EAAE,oCAAoC;IACjE,+BAA+B,EAAE,oCAAoC;IACrE,mCAAmC,EAAE,oCAAoC;IAEzE,0DAA0D;IAC1D,4CAA4C,EAAE,kCAAkC;IAEhF,+BAA+B;IAC/B,oCAAoC,EAAE,WAAW;CAElD,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC","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 loadNgDashboardsActionsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/actions-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./ai-dashboards.module (17 entries) ---\nconst loadNgDashboardsAiDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/ai-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./communication-dashboards.module (7 entries) ---\nconst loadNgDashboardsCommunicationDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/communication-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./component-studio-dashboards.module (3 entries) ---\nconst loadNgDashboardsComponentStudioDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/component-studio-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./core-dashboards.module (34 entries) ---\nconst loadNgDashboardsCoreDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/core-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./credentials-dashboards.module (6 entries) ---\nconst loadNgDashboardsCredentialsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/credentials-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./data-explorer-dashboards.module (2 entries) ---\nconst loadNgDashboardsDataExplorerDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/data-explorer-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./integration.module (6 entries) ---\nconst loadNgDashboardsIntegrationModule = featureLoader(() => import('@memberjunction/ng-dashboards/integration.module'));\n\n// --- @memberjunction/ng-dashboards → ./lists-dashboards.module (5 entries) ---\nconst loadNgDashboardsListsDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/lists-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./mcp.module (2 entries) ---\nconst loadNgDashboardsMcpModule = featureLoader(() => import('@memberjunction/ng-dashboards/mcp.module'));\n\n// --- @memberjunction/ng-dashboards → ./module (3 entries) ---\nconst loadNgDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/module'));\n\n// --- @memberjunction/ng-dashboards → ./predictive-studio-dashboards.module (3 entries) ---\nconst loadNgDashboardsPredictiveStudioDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/predictive-studio-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./routines-dashboards.module (1 entries) ---\nconst loadNgDashboardsRoutinesDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/routines-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./scheduling-dashboards.module (4 entries) ---\nconst loadNgDashboardsSchedulingDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/scheduling-dashboards.module'));\n\n// --- @memberjunction/ng-dashboards → ./testing-dashboards.module (6 entries) ---\nconst loadNgDashboardsTestingDashboardsModule = featureLoader(() => import('@memberjunction/ng-dashboards/testing-dashboards.module'));\n\n// --- @memberjunction/ng-explorer-settings → ./settings.module (6 entries) ---\nconst loadNgExplorerSettingsSettingsModule = featureLoader(() => import('@memberjunction/ng-explorer-settings/settings.module'));\n\n// --- @memberjunction/ng-file-storage → ./file-storage.module (1 entries) ---\nconst loadNgFileStorageFileStorageModule = 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': loadNgDashboardsActionsDashboardsModule,\n 'BaseResourceComponent::ActionsCodeResource': loadNgDashboardsActionsDashboardsModule,\n 'BaseResourceComponent::ActionsEntitiesResource': loadNgDashboardsActionsDashboardsModule,\n 'BaseResourceComponent::ActionsMonitorResource': loadNgDashboardsActionsDashboardsModule,\n 'BaseResourceComponent::ActionsOverviewResource': loadNgDashboardsActionsDashboardsModule,\n 'BaseResourceComponent::ActionsScheduleResource': loadNgDashboardsActionsDashboardsModule,\n 'BaseResourceComponent::ActionsSecurityResource': loadNgDashboardsActionsDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./ai-dashboards.module\n 'BaseResourceComponent::AIAgentRequestsResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AIAgentsResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AIAnalyticsResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AIConfigResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AIModelsResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AIMonitorResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AIPromptsResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AnalyticsResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::AutotaggingPipelineResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::ClusterVisualizationResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::DuplicateDetectionResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::FeaturePipelinesResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::KnowledgeConfigResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::SchedulingResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::Tags': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::VectorManagementResource': loadNgDashboardsAiDashboardsModule,\n 'BaseResourceComponent::VisualizationResource': loadNgDashboardsAiDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./communication-dashboards.module\n 'BaseDashboard::CommunicationDashboard': loadNgDashboardsCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationLogsResource': loadNgDashboardsCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationMonitorResource': loadNgDashboardsCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationProvidersResource': loadNgDashboardsCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationRunsResource': loadNgDashboardsCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationsNewMessageResource': loadNgDashboardsCommunicationDashboardsModule,\n 'BaseResourceComponent::CommunicationTemplatesResource': loadNgDashboardsCommunicationDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./component-studio-dashboards.module\n 'BaseDashboard::ComponentStudioDashboard': loadNgDashboardsComponentStudioDashboardsModule,\n 'BaseResourceComponent::ComponentStudioResource': loadNgDashboardsComponentStudioDashboardsModule,\n 'BaseResourceComponent::FormBuilderResource': loadNgDashboardsComponentStudioDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./core-dashboards.module\n 'BaseApplication::HomeApplication': loadNgDashboardsCoreDashboardsModule,\n 'BaseDashboard::EntityAdmin': loadNgDashboardsCoreDashboardsModule,\n 'BaseDashboard::ThemeManagerDashboard': loadNgDashboardsCoreDashboardsModule,\n 'BaseDashboard::ThemeStudioDashboard': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::AdminDataSchema': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::AdminDeveloperTools': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::AdminIdentityAccess': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::AdminMonitoring': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::APIKeysResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::ApplicationRolesResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::AppStateInspector': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::BulkOperationsContainer': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::BulkOperationsOperations': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::BulkOperationsRunHistory': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::ClassRegistryInspector': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::DashboardBrowserResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::EventMonitorInspector': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::GraphQLConsoleInspector': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::HomeDashboard': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::LayoutInspector': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::LazyModuleStatusInspector': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::PermissionsAuditLogResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::PermissionsResourceAccessResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::PermissionsUserAccessResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::QueryBrowserResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::RealtimeRecordingsDashboard': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::SettingsExplorerInspector': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::SystemDiagnosticsResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::ThemeManagerResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::ThemeStudioResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryDiffResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryGraphResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryLabelsResource': loadNgDashboardsCoreDashboardsModule,\n 'BaseResourceComponent::VersionHistoryRestoreResource': loadNgDashboardsCoreDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./credentials-dashboards.module\n 'BaseDashboard::CredentialsDashboard': loadNgDashboardsCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsAuditResource': loadNgDashboardsCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsCategoriesResource': loadNgDashboardsCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsListResource': loadNgDashboardsCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsOverviewResource': loadNgDashboardsCredentialsDashboardsModule,\n 'BaseResourceComponent::CredentialsTypesResource': loadNgDashboardsCredentialsDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./data-explorer-dashboards.module\n 'BaseDashboard::DataExplorer': loadNgDashboardsDataExplorerDashboardsModule,\n 'BaseResourceComponent::DataExplorerResource': loadNgDashboardsDataExplorerDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./integration.module\n 'BaseResourceComponent::IntegrationActivity': loadNgDashboardsIntegrationModule,\n 'BaseResourceComponent::IntegrationConnections': loadNgDashboardsIntegrationModule,\n 'BaseResourceComponent::IntegrationMappingWorkspace': loadNgDashboardsIntegrationModule,\n 'BaseResourceComponent::IntegrationOverview': loadNgDashboardsIntegrationModule,\n 'BaseResourceComponent::IntegrationPipelines': loadNgDashboardsIntegrationModule,\n 'BaseResourceComponent::IntegrationSchedules': loadNgDashboardsIntegrationModule,\n\n // @memberjunction/ng-dashboards → ./lists-dashboards.module\n 'BaseResourceComponent::ListsBrowseResource': loadNgDashboardsListsDashboardsModule,\n 'BaseResourceComponent::ListsCategoriesResource': loadNgDashboardsListsDashboardsModule,\n 'BaseResourceComponent::ListsMyListsResource': loadNgDashboardsListsDashboardsModule,\n 'BaseResourceComponent::ListsOperationsResource': loadNgDashboardsListsDashboardsModule,\n 'BaseResourceComponent::ListsSharedWithMeResource': loadNgDashboardsListsDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./mcp.module\n 'BaseDashboard::MCPDashboard': loadNgDashboardsMcpModule,\n 'BaseResourceComponent::MCPResource': loadNgDashboardsMcpModule,\n\n // @memberjunction/ng-dashboards → ./module\n 'BaseResourceComponent::ArchiveConfigResource': loadNgDashboardsModule,\n 'BaseResourceComponent::ArchiveRunsResource': loadNgDashboardsModule,\n 'BaseResourceComponent::DatabaseDesignerDashboard': loadNgDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./predictive-studio-dashboards.module\n 'BaseResourceComponent::PredictiveStudioModelsResource': loadNgDashboardsPredictiveStudioDashboardsModule,\n 'BaseResourceComponent::PredictiveStudioPredictionsResource': loadNgDashboardsPredictiveStudioDashboardsModule,\n 'BaseResourceComponent::PredictiveStudioStudioResource': loadNgDashboardsPredictiveStudioDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./routines-dashboards.module\n 'BaseResourceComponent::UserRoutines': loadNgDashboardsRoutinesDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./scheduling-dashboards.module\n 'BaseDashboard::SchedulingDashboard': loadNgDashboardsSchedulingDashboardsModule,\n 'BaseResourceComponent::SchedulingActivityResource': loadNgDashboardsSchedulingDashboardsModule,\n 'BaseResourceComponent::SchedulingDashboardResource': loadNgDashboardsSchedulingDashboardsModule,\n 'BaseResourceComponent::SchedulingJobsResource': loadNgDashboardsSchedulingDashboardsModule,\n\n // @memberjunction/ng-dashboards → ./testing-dashboards.module\n 'BaseDashboard::TestingDashboard': loadNgDashboardsTestingDashboardsModule,\n 'BaseResourceComponent::TestingAnalyticsResource': loadNgDashboardsTestingDashboardsModule,\n 'BaseResourceComponent::TestingDashboardTabResource': loadNgDashboardsTestingDashboardsModule,\n 'BaseResourceComponent::TestingExplorerResource': loadNgDashboardsTestingDashboardsModule,\n 'BaseResourceComponent::TestingReviewResource': loadNgDashboardsTestingDashboardsModule,\n 'BaseResourceComponent::TestingRunsResource': loadNgDashboardsTestingDashboardsModule,\n\n // @memberjunction/ng-explorer-settings → ./settings.module\n 'BaseDashboard::ApplicationManagement': loadNgExplorerSettingsSettingsModule,\n 'BaseDashboard::EntityPermissions': loadNgExplorerSettingsSettingsModule,\n 'BaseDashboard::RoleManagement': loadNgExplorerSettingsSettingsModule,\n 'BaseDashboard::SqlLogging': loadNgExplorerSettingsSettingsModule,\n 'BaseDashboard::UserManagement': loadNgExplorerSettingsSettingsModule,\n 'BaseNavigationComponent::Settings': loadNgExplorerSettingsSettingsModule,\n\n // @memberjunction/ng-file-storage → ./file-storage.module\n 'BaseResourceComponent::FileBrowserResource': loadNgFileStorageFileStorageModule,\n\n // @memberjunction/ng-react → .\n 'RuntimeUtilities::RuntimeUtilities': loadNgReact,\n\n};\n\nexport const LAZY_FEATURE_CONFIG_COUNT = 114;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omnibar-palette.component.d.ts","sourceRoot":"","sources":["../../../src/lib/omnibar/omnibar-palette.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACgE,YAAY,EAC/E,SAAS,EACZ,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,EAAiB,eAAe,EAAE,MAAM,2BAA2B,CAAC;;AAS3E,qEAAqE;AACrE,UAAU,UAAU;IAChB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,2EAA2E;IAC3E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,8CAA8C;IAC9C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"omnibar-palette.component.d.ts","sourceRoot":"","sources":["../../../src/lib/omnibar/omnibar-palette.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -286,6 +286,13 @@ function OmnibarPaletteComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
286
286
|
} }
|
|
287
287
|
/** Debounce for the default (network-backed) search mode; trigger modes serve warm caches. */
|
|
288
288
|
const SEARCH_DEBOUNCE_MS = 300;
|
|
289
|
+
/**
|
|
290
|
+
* Debounce for trigger modes (e.g. '#' jump-to-record). Entity-name matching is in-memory,
|
|
291
|
+
* but the record-suggestion path issues a RunView per keystroke — firing on every character
|
|
292
|
+
* floods MJAPI during a typing burst. A short debounce collapses rapid typing into a single
|
|
293
|
+
* backend query while keeping the picker responsive.
|
|
294
|
+
*/
|
|
295
|
+
const TRIGGER_DEBOUNCE_MS = 150;
|
|
289
296
|
/** Max suggestions requested per keystroke. */
|
|
290
297
|
const MAX_RESULTS = 9;
|
|
291
298
|
/**
|
|
@@ -703,7 +710,9 @@ export class OmnibarPaletteComponent {
|
|
|
703
710
|
}
|
|
704
711
|
const fire = () => void this.fetchSuggestions(provider, query, generation);
|
|
705
712
|
if (isTriggerMode) {
|
|
706
|
-
|
|
713
|
+
// Short debounce: entity matching is in-memory, but record suggestions issue a
|
|
714
|
+
// RunView per keystroke — debouncing collapses a typing burst into one backend query.
|
|
715
|
+
this.debounceHandle = setTimeout(fire, TRIGGER_DEBOUNCE_MS);
|
|
707
716
|
}
|
|
708
717
|
else {
|
|
709
718
|
this.IsLoading = this.Rows.length === 0;
|
|
@@ -821,7 +830,7 @@ export class OmnibarPaletteComponent {
|
|
|
821
830
|
}], SettingsRequested: [{
|
|
822
831
|
type: Output
|
|
823
832
|
}] }); })();
|
|
824
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(OmnibarPaletteComponent, { className: "OmnibarPaletteComponent", filePath: "src/lib/omnibar/omnibar-palette.component.ts", lineNumber:
|
|
833
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(OmnibarPaletteComponent, { className: "OmnibarPaletteComponent", filePath: "src/lib/omnibar/omnibar-palette.component.ts", lineNumber: 57 }); })();
|
|
825
834
|
/** Tree-shaking guard for the palette component. */
|
|
826
835
|
export function LoadOmnibarPaletteComponent() {
|
|
827
836
|
// intentional no-op
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omnibar-palette.component.js","sourceRoot":"","sources":["../../../src/lib/omnibar/omnibar-palette.component.ts","../../../src/lib/omnibar/omnibar-palette.component.html"],"names":[],"mappings":"AAAA,OAAO,EACH,uBAAuB,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EACpE,MAAM,EAAE,SAAS,EAAE,MAAM,GACvC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAY,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAmB,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAgB,cAAc,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EACH,wBAAwB,EAAE,oBAAoB,GACjD,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;;;;;;;;ICRrC,yBAAG;IAAA,YAAuB;IAAA,iBAAI;;;IAA3B,cAAuB;IAAvB,8CAAuB;;;IAE1B,uBAA4C;;;;IAsB5C,kCACkC;IAAhC,4OAAS,+BAAqB,KAAC;IAAC,YAAgB;IAAA,iBAAS;;;;IADpB,mEAAgD;IACrD,cAAgB;IAAhB,mCAAgB;;;;IAJpD,AADF,+BAAuB,iBAEK;IAAxB,2MAAS,oBAAa,KAAC;IAAC,2BAAW;IAAA,iBAAS;IAC9C,2HAGC;IACH,iBAAM;;;IANmC,cAAoD;IAApD,oEAAoD;IAE3F,eAGC;IAHD,4BAGC;;;IAMD,+BAAwB;IAAA,wBAAgD;IAAC,gCAAU;IAAA,iBAAM;;;;IAIrF,kCAA4E;IAAjC,2OAAS,gCAAsB,KAAC;IACzE,yBAAG;IAAA,YAAe;IAAA,iBAAI;IAAA,4BAAM;IAAA,YAAgB;IAC9C,AAD8C,iBAAO,EAC5C;;;IADJ,eAAe;IAAf,kCAAe;IAAU,eAAgB;IAAhB,mCAAgB;;;;IAQ9C,+BAMuF;IAAlC,AAAnD,AADA,AADA,2TAA6C,mPAClC,+CAAoC,KAAC,wTACE,yOAAU,kCAAuB,KAAC;IACpF,gCAAqB;IAAA,oBAAwE;IAAA,iBAAO;IAElG,AADF,gCAAuB,eACE;IAAA,YAAgC;IAAA,iBAAO;IAC9D,gCAAsB;IAAA,YAAgC;IACxD,AADwD,iBAAO,EACxD;IACe,AAAtB,gCAAsB,eAAuB;IAAA,aAAyB;IACxE,AAD+E,AAAP,iBAAO,EAAO,EAChF;;;;;IAVJ,8FAA2D;;IAInC,eAAgE;IAAhE,yEAAgE;IAE/D,eAAgC;IAAhC,oDAAgC;IACjC,eAAgC;IAAhC,oDAAgC;IAEX,eAAyB;IAAzB,6CAAyB;;;IAf1E,+BAAgD;IAAA,sBAAM;IAAA,iBAAM;IAC5D,+BAA6D;IAC7D,wIAeC;IACD,iBAAM;;;IAhBN,eAeC;IAfD,gCAeC;;;IAzBH,+BAAwB;IACtB,2HAIC;IACH,iBAAM;IACN,4GAA6B;;;IAN3B,cAIC;IAJD,kCAIC;IAEH,eAoBC;IApBD,uDAoBC;;;IAED,+BAAsB;IAAA,wCAAmB;IAAA,8BAAoB;IAAA,sBAAC;IAAA,iBAAM;IAAC,YAAgD;IAAA,iBAAM;;;IAAtD,eAAgD;IAAhD,2FAAgD;;;IAKjH,+BAAgD;IAAA,YAAoB;IAAA,iBAAM;;;IAA1B,cAAoB;IAApB,wCAAoB;;;IAahE,gCAAsB;IAAA,YAAgC;IAAA,iBAAO;;;IAAvC,cAAgC;IAAhC,oDAAgC;;;IAKtD,gCAAuB;IAAA,oBAA0C;IAAA,iBAAO;;;IAA9C,cAAkC;IAAlC,kDAAkC;;;;IAnBlE,6HAAsB;IAGtB,+BAMqE;IAAlC,AAAjC,AADA,AADA,uRAA2B,sOAChB,+CAAoC,KAAC,oRAChB,4NAAU,kCAAuB,KAAC;IAClE,gCAAqB;IAAA,oBAA6D;IAAA,iBAAO;IAEvF,AADF,gCAAuB,eACE;IAAA,YAAgC;IAAA,iBAAO;IAC9D,8HAAkC;IAGpC,iBAAO;IACP,gCAAsB;IACpB,8HAAgC;IAGhC,iCAAuB;IAAA,aAAyB;IAAA,iBAAO;IACvD,iCAAoB;IAAA,sBAAK;IAAA,+BAAoB;IAAA,uBAAC;IAElD,AADE,AADsD,AAAN,iBAAM,EAAO,EACtD,EACH;;;;;IAxBN,6CAEC;IAIC,cAAyC;IAAzC,sEAAyC;;IAIjB,eAAqD;IAArD,8DAAqD;IAEpD,eAAgC;IAAhC,oDAAgC;IACvD,cAEC;IAFD,yDAEC;IAGD,eAEC;IAFD,uDAEC;IACsB,eAAyB;IAAzB,6CAAyB;;;IAvBtD,+BAA6D;IAC7D,2HA0BC;IACD,iBAAM;;;IA3BN,cA0BC;IA1BD,0BA0BC;;;;IAnGP,8BAA+C;IAAlB,wLAAS,cAAO,KAAC;IAAC,iBAAM;IACrD,8BACuC;IAArC,kMAAW,+BAAwB,KAAC;IAGlC,AADF,8BAA0B,cACsD;IAG1E,AAFF,kGAAoC,+EAE3B;IAGX,iBAAO;IACP,mCAMuC;IAArC,AADkB,gNAAiB,4BAAqB,KAAC,uLAC9C,6BAAsB,KAAC;IANpC,iBAMuC;IACvC,+BAA4B;IAAA,YAAqB;IAAA,iBAAO;IACxD,+BAAoB;IAAA,oBAAG;IAAA,iBAAM;IAC7B,kCAA0F;IAAlB,4LAAS,cAAO,KAAC;IACvF,yBAAiC;IAErC,AADE,iBAAS,EACL;IAEN,0GAAuC;IAWvC,gCAAqB;IAkCjB,AAFA,AA7BA,AAFF,0GAAiB,yEAEqC,oFA6BtB,oFAEvB;IA+BX,iBAAM;IAGe,AAAnB,AADF,gCAAqB,gBACA,cAAoB;IAAA,uBAAC;IAAA,iBAAM;IAAA,+BAAoB;IAAA,uBAAC;IAAA,iBAAM;IAAC,0BAAQ;IAAA,iBAAO;IACtE,AAAnB,iCAAmB,cAAoB;IAAA,uBAAC;IAAA,iBAAM;IAAC,sBAAI;IAAA,iBAAO;IAC1D,mCAC+D;IAA5B,4LAAS,wBAAiB,KAAC;IAC5D,yBAAgC;IAGtC,AADE,AADE,iBAAS,EACL,EACF;;;IA3GoB,eAAuD;IAAvD,uEAAuD;IAC3E,cAIC;IAJD,6DAIC;IAMD,eAAiC;IACjC,AADA,sDAAiC,yBAChB;;IAES,eAAqB;IAArB,4CAAqB;IAOnD,eASC;IATD,yEASC;IAGC,eA+DC;IA/DD,yIA+DC;;AD3EP,8FAA8F;AAC9F,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,+CAA+C;AAC/C,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB;;;;;;;GAOG;AAQH,MAAM,OAAO,uBAAuB;IACxB,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAChC,IAAI,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC;IACnD,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACvC,UAAU,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACxC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/B,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC/C,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IAER,QAAQ,CAAgC;IAE3E,yEAAyE;IAClE,MAAM,GAAG,KAAK,CAAC;IACtB,yDAAyD;IAClD,KAAK,GAAG,EAAE,CAAC;IACX,IAAI,GAAiB,EAAE,CAAC;IACxB,UAAU,GAAiB,EAAE,CAAC;IAC9B,aAAa,GAAG,CAAC,CAAC;IAClB,SAAS,GAAG,KAAK,CAAC;IAClB,MAAM,GAAsB,EAAE,CAAC;IAC/B,gBAAgB,GAAa,EAAE,CAAC;IAE7B,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;IAClC,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC5C;;qEAEiE;IACvD,iBAAiB,GAAG,IAAI,YAAY,EAAQ,CAAC;IAE/C,SAAS,GAAsB,EAAE,CAAC;IAClC,eAAe,GAA2B,IAAI,CAAC;IAC/C,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC/C,eAAe,GAAG,CAAC,CAAC;IACpB,cAAc,GAAyC,IAAI,CAAC;IACpE,4EAA4E;IACpE,aAAa,GAAuB,IAAI,CAAC;IACzC,UAAU,GAAwB,IAAI,CAAC;IAE/C,kEAAkE;IAClE,qBAAqB;IACrB,kEAAkE;IAElE,iEAAiE;IACjE,IAAW,iBAAiB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,CAAC;IAED,iDAAiD;IACjD,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACzE,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,cAAc,EAAE,SAAS,IAAI,QAAQ,CAAC;IACtD,CAAC;IAED,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC,cAAc,EAAE,WAAW,IAAI,uCAAuC,CAAC;IACvF,CAAC;IAED,8DAA8D;IAC9D,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,iBAAiB,KAAK,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAClF,CAAC;IAED,0EAA0E;IACnE,eAAe;QAClB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,qEAAqE;IACrE,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,SAAS;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC;aACnC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,kFAAkF;IAClF,IAAW,eAAe;QACtB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,IAAY,cAAc;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACpC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;IAC5E,CAAC;IAED,IAAY,cAAc;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,CAAC;IAED,2EAA2E;IAC3E,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,kEAAkE;IAClE,aAAa;IACb,kEAAkE;IAElE,uFAAuF;IAChF,IAAI,CAAC,YAAY,GAAG,EAAE;QACzB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,YAAY,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QACnG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;QACxB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACxB,0CAA0C;QAC1C,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,OAAO;QACX,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACxB,0EAA0E;QAC1E,IAAI,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,YAAY,GAAG,EAAE;QAC3B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YAC9B,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC;IACnC,CAAC;IAED,kEAAkE;IAClE,iBAAiB;IACjB,kEAAkE;IAE3D,aAAa,CAAC,KAAa;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAEM,cAAc,CAAC,KAAoB;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;QACjC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC;YAChB,KAAK,WAAW;gBACZ,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM;YACV,KAAK,SAAS;gBACV,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM;YACV,KAAK,OAAO,CAAC,CAAC,CAAC;gBACX,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACrC,IAAI,GAAG,EAAE,CAAC;oBACN,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;qBAAM,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChF,gFAAgF;oBAChF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACI,gBAAgB,CAAC,KAAoB;QACxC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACzB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO;QACX,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QACD,uEAAuE;QACvE,yEAAyE;QACzE,oEAAoE;QACpE,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAmC,CAAC;QAC9D,IAAI,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,CAAC;gBAC/C,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC5B,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;gBAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC7B,OAAO;YACX,CAAC;YACD,gEAAgE;QACpE,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,kBAAkB,CAAuB,CAAC;QAC7F,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO;QACX,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAc,sCAAsC,CAAC,CAAC;aACpG,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC;QAC9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAmC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,KAAK,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YAClE,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9C,CAAC;IACL,CAAC;IAED,oFAAoF;IAC7E,YAAY,CAAC,KAAoB,EAAE,UAA6B;QACnE,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC;YAChB,KAAK,WAAW;gBACZ,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC5B,MAAM;YACV,KAAK,SAAS;gBACV,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC7B,MAAM;YACV,KAAK,OAAO;gBACR,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACzB,MAAM;QACd,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,aAAa,CAAC,KAAa,EAAE,QAAQ,GAAG,KAAK;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QACzC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACd,OAAO;QACX,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAc,WAAW,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAChG,GAAG,EAAE,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACX,GAAG,EAAE,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC;IAED,0DAA0D;IACnD,WAAW,CAAC,IAAY;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,kEAAkE;IAClE,SAAS;IACT,kEAAkE;IAE3D,eAAe,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAEM,WAAW,CAAC,EAAU;QACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YAC/C,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAEM,WAAW;QACd,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,kEAAkE;IAClE,YAAY;IACZ,kEAAkE;IAElE,uFAAuF;IAChF,OAAO,CAAC,UAA6B;QACxC,MAAM,GAAG,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,CAAC,6DAA6D;QACzE,CAAC;QACD,yEAAyE;QACzE,0EAA0E;QAC1E,4EAA4E;QAC5E,yEAAyE;QACzE,wDAAwD;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,QAAQ;gBACT,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpF,MAAM;YACV,KAAK,aAAa;gBACd,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAChD,MAAM;YACV,KAAK,QAAQ;gBACT,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/B,OAAO,CAAC,wBAAwB;YACpC,KAAK,KAAK;gBACN,KAAK,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACnD,KAAK,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC5C,MAAM;YACV,KAAK,KAAK;gBACN,KAAK,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC7D,MAAM;YACV,KAAK,OAAO;gBACR,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACvC,MAAM;YACV,KAAK,MAAM;gBACP,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9D,KAAK,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACjE,CAAC;gBACD,MAAM;QACd,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAEO,cAAc,CAAC,KAAa;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACrG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,wEAAwE;IAChE,KAAK,CAAC,aAAa,CAAC,SAAiB;QACzC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAChF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;QACtE,IAAI,IAAI,EAAE,CAAC;YACP,sEAAsE;YACtE,sEAAsE;YACtE,uEAAuE;YACvE,qEAAqE;YACrE,6DAA6D;YAC7D,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE;gBAClD,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;aACpC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,kEAAkE;IAClE,kBAAkB;IAClB,kEAAkE;IAE1D,eAAe;QACnB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QACD,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,8DAA8D;QAC9D,KAAK,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACtC,wEAAwE;QACxE,qEAAqE;QACrE,gEAAgE;QAChE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;YACvE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzC,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5B,CAAC;QACL,CAAC,CAAC,CAAC;QACH,oBAAoB,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,wBAAwB,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG;YACZ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC;QACF,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,IAAI,QAAQ,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;gBAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC;YAC5D,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACvD,CAAC;QACL,CAAC;IACL,CAAC;IAEO,QAAQ;QACZ,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YAC9B,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,MAAM,UAAU,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,KAAK,EAAE,CAAC;QAEpD,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC3E,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,EAAE,CAAC,CAAC,4BAA4B;QACxC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,QAAyB,EAAE,KAAa,EAAE,UAAkB;QACvF,MAAM,OAAO,GAAG;YACZ,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,WAAW;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI;SACjB,CAAC;QACF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YACzC,CAAC,CAAC,MAAM,QAAQ,CAAC,qBAAqB,CAAC,OAAO,CAAC;YAC/C,CAAC,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,UAAU,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YACtC,OAAO,CAAC,mDAAmD;QAC/D,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAEO,MAAM,CAAC,WAAgC;QAC3C,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,SAAS,CAAC;YAC3D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnB,SAAS,GAAG,KAAK,CAAC;YACtB,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;YACzF,OAAO;gBACH,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;gBACrC,YAAY,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;aACzF,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,UAAU;QACpB,IAAI,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACL,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;IACL,CAAC;IAED,wEAAwE;IAChE,KAAK,CAAC,WAAW;QACrB,MAAM,IAAI,GAAiB,EAAE,CAAC;QAC9B,IAAI,CAAC;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrE,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC;oBACN,UAAU,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,EAAE,EAAE,iBAAiB,MAAM,CAAC,KAAK,EAAE;wBACnC,IAAI,EAAE,MAAM,CAAC,KAAK;wBAClB,WAAW,EAAE,MAAM,CAAC,KAAK;wBACzB,WAAW,EAAE,eAAe;wBAC5B,IAAI,EAAE,+BAA+B;wBACrC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE;qBACzD;oBACD,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,IAAI;iBACrB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,mDAAmD;QACvD,CAAC;QACD,IAAI,CAAC;YACD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,eAAe,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,qBAAqB,CAAC;oBACrD,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI;iBAC1E,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7F,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,QAAQ;QACZ,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,IAAY,WAAW;QACnB,OAAO,QAAQ,CAAC,QAAQ,EAAE,WAAW,IAAI,IAAI,CAAC,CAAC,mGAAmG;IACtJ,CAAC;iHA1hBQ,uBAAuB;6DAAvB,uBAAuB;;;;;;YChDpC,iFAAc;;YAAd,qCAkHC;;;iFDlEY,uBAAuB;cAPnC,SAAS;6BACM,KAAK,YACP,oBAAoB,mBAGb,uBAAuB,CAAC,MAAM;;kBAW9C,SAAS;mBAAC,cAAc;;kBAaxB,MAAM;;kBACN,MAAM;;kBAIN,MAAM;;kFA3BE,uBAAuB;AA6hBpC,oDAAoD;AACpD,MAAM,UAAU,2BAA2B;IACvC,oBAAoB;AACxB,CAAC","sourcesContent":["import {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter,\n OnDestroy, Output, ViewChild, inject,\n} from '@angular/core';\nimport { CompositeKey, UserInfo } from '@memberjunction/core';\nimport { Metadata } from '@memberjunction/core';\nimport { MentionSuggestion } from '@memberjunction/ng-composer';\nimport { NavigationService } from '@memberjunction/ng-shared';\nimport { ApplicationManager } from '@memberjunction/ng-base-application';\nimport { SearchService, SearchScopeInfo } from '@memberjunction/ng-search';\nimport { FileOpenService } from '@memberjunction/ng-file-storage';\nimport { Subscription, firstValueFrom, skip } from 'rxjs';\nimport { CommandPaletteService } from '../command-palette/command-palette.service';\nimport {\n DiscoverOmnibarProviders, GetOmnibarNavPayload, OmnibarProvider,\n} from './omnibar-provider';\nimport { LoadOmnibarProviders } from './index';\n\n/** One rendered result row: the suggestion + presentation extras. */\ninterface OmnibarRow {\n Suggestion: MentionSuggestion;\n /** Set only on the FIRST row of each group — drives the section header. */\n GroupLabel: string | null;\n /** 0-100 relevance bar (search mode only). */\n ScorePercent: number | null;\n}\n\n/** Debounce for the default (network-backed) search mode; trigger modes serve warm caches. */\nconst SEARCH_DEBOUNCE_MS = 300;\n\n/** Max suggestions requested per keystroke. */\nconst MAX_RESULTS = 9;\n\n/**\n * The unified Explorer command palette (Ctrl/Cmd+K): one surface for global\n * cross-source search (plain text), jump-to-record ('#'), commands & apps ('/'),\n * and agents ('@') — every mode a pluggable {@link OmnibarProvider}, discovered via\n * the MJ ClassFactory so OpenApps can add modes without touching this component.\n *\n * Design source of truth: plans/composer-adoption/mockups/omnibar-command-palette.html.\n */\n@Component({\n standalone: false,\n selector: 'mj-omnibar-palette',\n templateUrl: './omnibar-palette.component.html',\n styleUrls: ['./omnibar-palette.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OmnibarPaletteComponent implements OnDestroy {\n private cdr = inject(ChangeDetectorRef);\n private host = inject<ElementRef<HTMLElement>>(ElementRef);\n private navigation = inject(NavigationService);\n private appManager = inject(ApplicationManager);\n private search = inject(SearchService);\n private paletteService = inject(CommandPaletteService);\n private fileOpen = inject(FileOpenService);\n\n @ViewChild('paletteInput') private inputRef?: ElementRef<HTMLInputElement>;\n\n /** Palette visibility (open via {@link Open}; Escape/backdrop close). */\n public IsOpen = false;\n /** Raw input text including any leading trigger char. */\n public Query = '';\n public Rows: OmnibarRow[] = [];\n public RecentRows: OmnibarRow[] = [];\n public SelectedIndex = 0;\n public IsLoading = false;\n public Scopes: SearchScopeInfo[] = [];\n public SelectedScopeIDs: string[] = [];\n\n @Output() Opened = new EventEmitter<void>();\n @Output() Closed = new EventEmitter<void>();\n /** Footer gear clicked — the host opens its settings surface (Explorer: My\n Profile, where the Command Palette opt-in section lives). The palette\n closes first so the settings dialog isn't buried under it. */\n @Output() SettingsRequested = new EventEmitter<void>();\n\n private providers: OmnibarProvider[] = [];\n private defaultProvider: OmnibarProvider | null = null;\n private byTrigger = new Map<string, OmnibarProvider>();\n private queryGeneration = 0;\n private debounceHandle: ReturnType<typeof setTimeout> | null = null;\n /** Element focused before the palette opened — restored on close (a11y). */\n private previousFocus: HTMLElement | null = null;\n private recentsSub: Subscription | null = null;\n\n // ---------------------------------------------------------------\n // Derived view state\n // ---------------------------------------------------------------\n\n /** The active trigger char ('' = default/global-search mode). */\n public get ActiveTriggerChar(): string {\n const first = this.Query.charAt(0);\n return this.byTrigger.has(first) ? first : '';\n }\n\n /** Query text with the trigger char stripped. */\n public get EffectiveQuery(): string {\n return this.ActiveTriggerChar ? this.Query.substring(1) : this.Query;\n }\n\n public get ActiveModeLabel(): string {\n return this.activeProvider?.ModeLabel ?? 'Search';\n }\n\n public get ActivePlaceholder(): string {\n return this.activeProvider?.Placeholder ?? 'Search everything — or type #, /, @ …';\n }\n\n /** Scope pills only apply to the cross-source search mode. */\n public get ShowScopes(): boolean {\n return this.ActiveTriggerChar === '' && this.EffectiveQuery.trim().length > 0;\n }\n\n /** Footer gear: close, then let the host present its settings surface. */\n public RequestSettings(): void {\n this.Close();\n this.SettingsRequested.emit();\n }\n\n /** Hint chips for the empty state — one per non-default provider. */\n public get TriggerHints(): Array<{ Char: string; Label: string }> {\n return this.providers\n .filter((p) => p.TriggerChar !== '')\n .map((p) => ({ Char: p.TriggerChar, Label: p.ModeLabel }));\n }\n\n /** RecentRows render after the hint bar; selection indexes continue into them. */\n public get RecentBaseIndex(): number {\n return 0;\n }\n\n private get activeProvider(): OmnibarProvider | null {\n const char = this.ActiveTriggerChar;\n return char ? (this.byTrigger.get(char) ?? null) : this.defaultProvider;\n }\n\n private get selectableRows(): OmnibarRow[] {\n return this.Rows.length > 0 ? this.Rows : this.RecentRows;\n }\n\n /**\n * ARIA combobox wiring: the input keeps DOM focus while this points at the\n * virtually-highlighted option row, so screen readers announce selection moves.\n */\n public get ActiveDescendantId(): string | null {\n return this.selectableRows.length > 0 ? `ob-opt-${this.SelectedIndex}` : null;\n }\n\n /** Whether any option rows exist — drives the combobox's aria-expanded. */\n public get HasOptions(): boolean {\n return this.selectableRows.length > 0;\n }\n\n // ---------------------------------------------------------------\n // Public API\n // ---------------------------------------------------------------\n\n /** Opens the palette, optionally pre-seeded (e.g. '/' from the legacy Ctrl+/ path). */\n public Open(initialQuery = ''): void {\n this.ensureProviders();\n this.previousFocus = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n this.IsOpen = true;\n this.Query = initialQuery;\n this.Rows = [];\n this.SelectedIndex = 0;\n void this.loadScopes();\n void this.loadRecents();\n if (initialQuery.length > 0) {\n this.runQuery();\n }\n this.Opened.emit();\n this.cdr.markForCheck();\n // Input mounts via @if — focus next tick.\n setTimeout(() => this.inputRef?.nativeElement.focus(), 30);\n }\n\n public Close(): void {\n if (!this.IsOpen) {\n return;\n }\n this.IsOpen = false;\n this.Query = '';\n this.Rows = [];\n this.Closed.emit();\n this.cdr.markForCheck();\n // Return focus to where the user was (skip if that element left the DOM).\n if (this.previousFocus?.isConnected) {\n this.previousFocus.focus();\n }\n this.previousFocus = null;\n }\n\n public Toggle(initialQuery = ''): void {\n if (this.IsOpen) {\n this.Close();\n } else {\n this.Open(initialQuery);\n }\n }\n\n ngOnDestroy(): void {\n if (this.debounceHandle != null) {\n clearTimeout(this.debounceHandle);\n }\n this.recentsSub?.unsubscribe();\n }\n\n // ---------------------------------------------------------------\n // Input handling\n // ---------------------------------------------------------------\n\n public OnQueryChange(value: string): void {\n this.Query = value;\n this.SelectedIndex = 0;\n this.runQuery();\n }\n\n public OnInputKeydown(event: KeyboardEvent): void {\n const rows = this.selectableRows;\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.moveSelection(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.moveSelection(-1);\n break;\n case 'Enter': {\n event.preventDefault();\n const row = rows[this.SelectedIndex];\n if (row) {\n this.Execute(row.Suggestion);\n } else if (this.ActiveTriggerChar === '' && this.EffectiveQuery.trim().length > 1) {\n // No rows yet (still loading / no matches): honest escape hatch to full search.\n this.openFullSearch(this.EffectiveQuery.trim());\n }\n break;\n }\n }\n }\n\n /**\n * Dialog-level keys (bubbled from anywhere inside the palette):\n * - Escape closes from any focused element, not just the input.\n * - Tab follows the natural visual order — input → scope pills → mode chips →\n * the selected result row (roving tabindex) — and TRAPS at the ends so focus\n * cycles inside the dialog instead of escaping to the page underneath.\n * (Design review: Tab must reach the three mode chips, not skip them.)\n */\n public OnPaletteKeydown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n event.preventDefault();\n this.Close();\n return;\n }\n if (event.key !== 'Tab') {\n return;\n }\n // On a result row, Tab / Shift+Tab step through the RESULTS themselves\n // (mirrors ArrowDown/Up) until walking off either end of the list — then\n // the trap logic below takes over. Same model as mj-search-overlay.\n const activeEl = document.activeElement as HTMLElement | null;\n if (activeEl?.classList.contains('ob-row')) {\n const last = this.selectableRows.length - 1;\n if (!event.shiftKey && this.SelectedIndex < last) {\n event.preventDefault();\n this.moveSelection(1, true);\n return;\n }\n if (event.shiftKey && this.SelectedIndex > 0) {\n event.preventDefault();\n this.moveSelection(-1, true);\n return;\n }\n // At either end: fall through so Tab leaves the list naturally.\n }\n const root = this.host.nativeElement.querySelector('.omnibar-palette') as HTMLElement | null;\n if (!root) {\n return;\n }\n const focusables = Array.from(root.querySelectorAll<HTMLElement>('input, button, .ob-row[tabindex=\"0\"]'))\n .filter((el) => el.offsetParent !== null);\n if (focusables.length === 0) {\n return;\n }\n const active = document.activeElement as HTMLElement | null;\n if (!event.shiftKey && active === focusables[focusables.length - 1]) {\n event.preventDefault();\n focusables[0].focus();\n } else if (event.shiftKey && active === focusables[0]) {\n event.preventDefault();\n focusables[focusables.length - 1].focus();\n }\n }\n\n /** Keys on a focused result row (rows are real focus stops via roving tabindex). */\n public OnRowKeydown(event: KeyboardEvent, suggestion: MentionSuggestion): void {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.moveSelection(1, true);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.moveSelection(-1, true);\n break;\n case 'Enter':\n event.preventDefault();\n this.Execute(suggestion);\n break;\n }\n }\n\n /**\n * Keyboard-driven selection move: wraps at both ends (standard picker behavior)\n * and keeps the highlighted row visible. Mouse hover sets SelectedIndex directly\n * in the template and deliberately does NOT scroll — auto-scrolling under the\n * pointer would fight the user's hand. When the move originates from a focused\n * row (roving tabindex), DOM focus follows the selection.\n */\n private moveSelection(delta: 1 | -1, focusRow = false): void {\n const count = this.selectableRows.length;\n if (count === 0) {\n return;\n }\n this.SelectedIndex = (this.SelectedIndex + delta + count) % count;\n this.cdr.markForCheck();\n const row = this.host.nativeElement.querySelector<HTMLElement>(`#ob-opt-${this.SelectedIndex}`);\n row?.scrollIntoView({ block: 'nearest' });\n if (focusRow) {\n row?.focus();\n }\n }\n\n /** Hint-chip click: seed the trigger char and refocus. */\n public SeedTrigger(char: string): void {\n this.Query = char;\n this.SelectedIndex = 0;\n this.runQuery();\n this.inputRef?.nativeElement.focus();\n }\n\n // ---------------------------------------------------------------\n // Scopes\n // ---------------------------------------------------------------\n\n public IsScopeSelected(id: string): boolean {\n return this.SelectedScopeIDs.includes(id);\n }\n\n public ToggleScope(id: string): void {\n this.SelectedScopeIDs = this.IsScopeSelected(id)\n ? this.SelectedScopeIDs.filter((s) => s !== id)\n : [...this.SelectedScopeIDs, id];\n this.cdr.markForCheck();\n }\n\n public ClearScopes(): void {\n this.SelectedScopeIDs = [];\n this.cdr.markForCheck();\n }\n\n // ---------------------------------------------------------------\n // Execution\n // ---------------------------------------------------------------\n\n /** Executes a suggestion: navigate per its payload, or re-seed for entity drill-in. */\n public Execute(suggestion: MentionSuggestion): void {\n const nav = GetOmnibarNavPayload(suggestion);\n if (!nav) {\n return; // foreign suggestion with no navigation — nothing to execute\n }\n // Default-mode queries count as \"searches\" even when the user executes a\n // suggestion that navigates directly (no full ExecuteSearch downstream to\n // record them). Trigger-mode fragments ('#accounts ac…') are NOT searches —\n // recording those would pollute recents. 'search' payloads skip too: the\n // results page records them with the real result count.\n const typed = this.EffectiveQuery.trim();\n if (this.ActiveTriggerChar === '' && typed.length > 0 && nav.kind !== 'search') {\n this.search.RecordRecentSearch(typed);\n }\n switch (nav.kind) {\n case 'record':\n this.navigation.OpenEntityRecord(nav.entityName, CompositeKey.FromID(nav.recordId));\n break;\n case 'entity-list':\n this.navigation.OpenDynamicView(nav.entityName);\n break;\n case 'search':\n this.openFullSearch(nav.query);\n return; // openFullSearch closes\n case 'app':\n void this.paletteService.TrackAppAccess(nav.appId);\n void this.navigation.SwitchToApp(nav.appId);\n break;\n case 'nav':\n void this.navigation.SwitchToApp(nav.appId, nav.navItemName);\n break;\n case 'agent':\n void this.openAgentChat(nav.agentName);\n break;\n case 'file':\n if (!this.fileOpen.OpenPreviewFromSearchResult(nav.rawMetadata)) {\n void this.fileOpen.OpenFileFromSearchResult(nav.rawMetadata);\n }\n break;\n }\n this.Close();\n }\n\n private openFullSearch(query: string): void {\n const opts = this.SelectedScopeIDs.length > 0 ? { scopeIDs: [...this.SelectedScopeIDs] } : undefined;\n this.navigation.OpenSearch(query, opts);\n this.Close();\n }\n\n /** '@' selection: switch to the Chat app pre-addressed to the agent. */\n private async openAgentChat(agentName: string): Promise<void> {\n const apps = await firstValueFrom(this.appManager.Applications).catch(() => []);\n const chat = apps.find((a) => a.Name.trim().toLowerCase() === 'chat');\n if (chat) {\n // agentReq is a one-shot request nonce: the chat wrapper applies each\n // agent|nonce instruction exactly once, so URL↔tab-config sync echoes\n // of an already-consumed param can never re-stage the pre-address (and\n // wipe an in-progress composer draft), while a genuine re-tag of the\n // SAME agent still applies because it carries a fresh nonce.\n await this.navigation.SwitchToApp(chat.ID, undefined, {\n agent: agentName,\n agentReq: Date.now().toString(36),\n });\n }\n }\n\n // ---------------------------------------------------------------\n // Query execution\n // ---------------------------------------------------------------\n\n private ensureProviders(): void {\n if (this.providers.length > 0) {\n return;\n }\n // Kick off the persisted-recents load (idempotent; resolves via LoggedIn\n // replay). The legacy search composite used to be the only caller — with\n // the omnibar enabled it never renders, so prior-session recents were\n // invisible until the palette started requesting them itself.\n void this.search.LoadRecentSearches();\n // Refresh the empty-state Recent rows whenever recents change while the\n // palette is idle-open (skip(1): BehaviorSubject replays its current\n // value on subscribe, which loadRecents already read directly).\n this.recentsSub = this.search.RecentSearches$.pipe(skip(1)).subscribe(() => {\n if (this.IsOpen && this.Query.length === 0) {\n void this.loadRecents();\n }\n });\n LoadOmnibarProviders();\n this.providers = DiscoverOmnibarProviders();\n const context = {\n Search: this.search,\n Apps: this.appManager,\n PaletteService: this.paletteService,\n Navigation: this.navigation,\n };\n for (const provider of this.providers) {\n provider.Attach(context);\n if (provider.TriggerChar === '') {\n this.defaultProvider = this.defaultProvider ?? provider;\n } else if (!this.byTrigger.has(provider.TriggerChar)) {\n this.byTrigger.set(provider.TriggerChar, provider);\n }\n }\n }\n\n private runQuery(): void {\n if (this.debounceHandle != null) {\n clearTimeout(this.debounceHandle);\n this.debounceHandle = null;\n }\n const generation = ++this.queryGeneration;\n const provider = this.activeProvider;\n const query = this.EffectiveQuery;\n const isTriggerMode = this.ActiveTriggerChar !== '';\n\n if (!provider || (query.trim().length === 0 && !isTriggerMode)) {\n this.Rows = [];\n this.IsLoading = false;\n this.cdr.markForCheck();\n return;\n }\n\n const fire = () => void this.fetchSuggestions(provider, query, generation);\n if (isTriggerMode) {\n fire(); // warm caches — no debounce\n } else {\n this.IsLoading = this.Rows.length === 0;\n this.cdr.markForCheck();\n this.debounceHandle = setTimeout(fire, SEARCH_DEBOUNCE_MS);\n }\n }\n\n private async fetchSuggestions(provider: OmnibarProvider, query: string, generation: number): Promise<void> {\n const request = {\n Query: query,\n MaxResults: MAX_RESULTS,\n ContextUser: this.currentUser,\n Provider: null,\n };\n const suggestions = query.trim().length === 0\n ? await provider.EmptyStateSuggestions(request)\n : await provider.GetSuggestions(request);\n if (generation !== this.queryGeneration) {\n return; // stale response — a newer keystroke superseded it\n }\n this.Rows = this.toRows(suggestions);\n this.SelectedIndex = 0;\n this.IsLoading = false;\n this.cdr.markForCheck();\n }\n\n private toRows(suggestions: MentionSuggestion[]): OmnibarRow[] {\n let lastGroup: string | null = null;\n return suggestions.map((s) => {\n const group = typeof s.data?.['group'] === 'string' ? (s.data['group'] as string) : '';\n const isNewGroup = group.length > 0 && group !== lastGroup;\n if (group.length > 0) {\n lastGroup = group;\n }\n const score = typeof s.data?.['score'] === 'number' ? (s.data['score'] as number) : null;\n return {\n Suggestion: s,\n GroupLabel: isNewGroup ? group : null,\n ScorePercent: score != null ? Math.round(Math.max(0, Math.min(1, score)) * 100) : null,\n };\n });\n }\n\n private async loadScopes(): Promise<void> {\n try {\n this.Scopes = await this.search.LoadScopes();\n this.cdr.markForCheck();\n } catch {\n this.Scopes = [];\n }\n }\n\n /** Empty-state recents: recent searches + recent apps (best-effort). */\n private async loadRecents(): Promise<void> {\n const rows: OmnibarRow[] = [];\n try {\n const recentSearches = this.search.RecentSearches$.value.slice(0, 3);\n for (const recent of recentSearches) {\n rows.push({\n Suggestion: {\n type: 'search',\n id: `recent-search:${recent.Query}`,\n name: recent.Query,\n displayName: recent.Query,\n description: 'Recent search',\n icon: 'fa-solid fa-clock-rotate-left',\n data: { nav: { kind: 'search', query: recent.Query } },\n },\n GroupLabel: null,\n ScorePercent: null,\n });\n }\n } catch {\n // recents are decorative — never block the palette\n }\n try {\n const commandProvider = this.byTrigger.get('/');\n if (commandProvider) {\n const apps = await commandProvider.EmptyStateSuggestions({\n Query: '', MaxResults: 3, ContextUser: this.currentUser, Provider: null,\n });\n rows.push(...apps.map((s) => ({ Suggestion: s, GroupLabel: null, ScorePercent: null })));\n }\n } catch {\n // ditto\n }\n this.RecentRows = rows;\n this.cdr.markForCheck();\n }\n\n private get currentUser(): UserInfo | null {\n return Metadata.Provider?.CurrentUser ?? null; // global-provider-ok: Explorer shell palette is app chrome bound to the session's default provider\n }\n}\n\n/** Tree-shaking guard for the palette component. */\nexport function LoadOmnibarPaletteComponent(): void {\n // intentional no-op\n}\n","@if (IsOpen) {\n <div class=\"omnibar-overlay\" (click)=\"Close()\"></div>\n <div class=\"omnibar-palette\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Command palette\"\n (keydown)=\"OnPaletteKeydown($event)\">\n\n <div class=\"ob-input-row\">\n <span class=\"ob-lead\" [class.ob-lead--trigger]=\"ActiveTriggerChar.length > 0\">\n @if (ActiveTriggerChar.length > 0) {\n <b>{{ ActiveTriggerChar }}</b>\n } @else {\n <i class=\"fa-solid fa-magnifying-glass\"></i>\n }\n </span>\n <input #paletteInput class=\"ob-input\" type=\"text\" autocomplete=\"off\" spellcheck=\"false\"\n role=\"combobox\" aria-controls=\"ob-listbox\" aria-autocomplete=\"list\"\n [attr.aria-expanded]=\"HasOptions\"\n [attr.aria-activedescendant]=\"ActiveDescendantId\"\n [placeholder]=\"ActivePlaceholder\"\n [ngModel]=\"Query\" (ngModelChange)=\"OnQueryChange($event)\"\n (keydown)=\"OnInputKeydown($event)\" />\n <span class=\"ob-mode-badge\">{{ ActiveModeLabel }}</span>\n <kbd class=\"ob-kbd\">esc</kbd>\n <button type=\"button\" class=\"ob-close\" aria-label=\"Close\" title=\"Close\" (click)=\"Close()\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n @if (ShowScopes && Scopes.length > 0) {\n <div class=\"ob-scopes\">\n <button type=\"button\" class=\"ob-scope\" [class.ob-scope--on]=\"SelectedScopeIDs.length === 0\"\n (click)=\"ClearScopes()\">All sources</button>\n @for (scope of Scopes; track scope.ID) {\n <button type=\"button\" class=\"ob-scope\" [class.ob-scope--on]=\"IsScopeSelected(scope.ID)\"\n (click)=\"ToggleScope(scope.ID)\">{{ scope.Name }}</button>\n }\n </div>\n }\n\n <div class=\"ob-body\">\n @if (IsLoading) {\n <div class=\"ob-loading\"><i class=\"fa-solid fa-circle-notch fa-spin\"></i> Searching…</div>\n } @else if (Rows.length === 0 && Query.length === 0) {\n <div class=\"ob-hintbar\">\n @for (hint of TriggerHints; track hint.Char) {\n <button type=\"button\" class=\"ob-hint-chip\" (click)=\"SeedTrigger(hint.Char)\">\n <b>{{ hint.Char }}</b><span>{{ hint.Label }}</span>\n </button>\n }\n </div>\n @if (RecentRows.length > 0) {\n <div class=\"ob-group-label\" role=\"presentation\">Recent</div>\n <div id=\"ob-listbox\" role=\"listbox\" aria-label=\"Suggestions\">\n @for (row of RecentRows; track row.Suggestion.id; let i = $index) {\n <div class=\"ob-row\" role=\"option\" [attr.id]=\"'ob-opt-' + (RecentBaseIndex + i)\"\n [attr.tabindex]=\"RecentBaseIndex + i === SelectedIndex ? 0 : -1\"\n [attr.aria-selected]=\"RecentBaseIndex + i === SelectedIndex\"\n [class.ob-row--sel]=\"RecentBaseIndex + i === SelectedIndex\"\n (focus)=\"SelectedIndex = RecentBaseIndex + i\"\n (keydown)=\"OnRowKeydown($event, row.Suggestion)\"\n (mouseenter)=\"SelectedIndex = RecentBaseIndex + i\" (click)=\"Execute(row.Suggestion)\">\n <span class=\"ob-ric\"><i [class]=\"row.Suggestion.icon || 'fa-solid fa-clock-rotate-left'\"></i></span>\n <span class=\"ob-rmain\">\n <span class=\"ob-rname\">{{ row.Suggestion.displayName }}</span>\n <span class=\"ob-rsub\">{{ row.Suggestion.description }}</span>\n </span>\n <span class=\"ob-raux\"><span class=\"ob-rtype\">{{ row.Suggestion.type }}</span></span>\n </div>\n }\n </div>\n }\n } @else if (Rows.length === 0) {\n <div class=\"ob-empty\">No matches — press <kbd class=\"ob-kbd\">↵</kbd> to search everything for “{{ EffectiveQuery }}”.</div>\n } @else {\n <div id=\"ob-listbox\" role=\"listbox\" aria-label=\"Suggestions\">\n @for (row of Rows; track row.Suggestion.id; let i = $index) {\n @if (row.GroupLabel) {\n <div class=\"ob-group-label\" role=\"presentation\">{{ row.GroupLabel }}</div>\n }\n <div class=\"ob-row\" role=\"option\" [attr.id]=\"'ob-opt-' + i\"\n [attr.tabindex]=\"i === SelectedIndex ? 0 : -1\"\n [attr.aria-selected]=\"i === SelectedIndex\"\n [class.ob-row--sel]=\"i === SelectedIndex\"\n (focus)=\"SelectedIndex = i\"\n (keydown)=\"OnRowKeydown($event, row.Suggestion)\"\n (mouseenter)=\"SelectedIndex = i\" (click)=\"Execute(row.Suggestion)\">\n <span class=\"ob-ric\"><i [class]=\"row.Suggestion.icon || 'fa-solid fa-circle'\"></i></span>\n <span class=\"ob-rmain\">\n <span class=\"ob-rname\">{{ row.Suggestion.displayName }}</span>\n @if (row.Suggestion.description) {\n <span class=\"ob-rsub\">{{ row.Suggestion.description }}</span>\n }\n </span>\n <span class=\"ob-raux\">\n @if (row.ScorePercent != null) {\n <span class=\"ob-score\"><i [style.width.%]=\"row.ScorePercent\"></i></span>\n }\n <span class=\"ob-rtype\">{{ row.Suggestion.type }}</span>\n <span class=\"ob-go\">open <kbd class=\"ob-kbd\">↵</kbd></span>\n </span>\n </div>\n }\n </div>\n }\n </div>\n\n <div class=\"ob-foot\">\n <span class=\"ob-k\"><kbd class=\"ob-kbd\">↑</kbd><kbd class=\"ob-kbd\">↓</kbd> navigate</span>\n <span class=\"ob-k\"><kbd class=\"ob-kbd\">↵</kbd> open</span>\n <button type=\"button\" class=\"ob-settings\" aria-label=\"Command Palette settings\"\n title=\"Command Palette settings\" (click)=\"RequestSettings()\">\n <i class=\"fa-solid fa-gear\"></i>\n </button>\n </div>\n </div>\n}\n"]}
|
|
1
|
+
{"version":3,"file":"omnibar-palette.component.js","sourceRoot":"","sources":["../../../src/lib/omnibar/omnibar-palette.component.ts","../../../src/lib/omnibar/omnibar-palette.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter,\n OnDestroy, Output, ViewChild, inject,\n} from '@angular/core';\nimport { CompositeKey, UserInfo } from '@memberjunction/core';\nimport { Metadata } from '@memberjunction/core';\nimport { MentionSuggestion } from '@memberjunction/ng-composer';\nimport { NavigationService } from '@memberjunction/ng-shared';\nimport { ApplicationManager } from '@memberjunction/ng-base-application';\nimport { SearchService, SearchScopeInfo } from '@memberjunction/ng-search';\nimport { FileOpenService } from '@memberjunction/ng-file-storage';\nimport { Subscription, firstValueFrom, skip } from 'rxjs';\nimport { CommandPaletteService } from '../command-palette/command-palette.service';\nimport {\n DiscoverOmnibarProviders, GetOmnibarNavPayload, OmnibarProvider,\n} from './omnibar-provider';\nimport { LoadOmnibarProviders } from './index';\n\n/** One rendered result row: the suggestion + presentation extras. */\ninterface OmnibarRow {\n Suggestion: MentionSuggestion;\n /** Set only on the FIRST row of each group — drives the section header. */\n GroupLabel: string | null;\n /** 0-100 relevance bar (search mode only). */\n ScorePercent: number | null;\n}\n\n/** Debounce for the default (network-backed) search mode; trigger modes serve warm caches. */\nconst SEARCH_DEBOUNCE_MS = 300;\n\n/**\n * Debounce for trigger modes (e.g. '#' jump-to-record). Entity-name matching is in-memory,\n * but the record-suggestion path issues a RunView per keystroke — firing on every character\n * floods MJAPI during a typing burst. A short debounce collapses rapid typing into a single\n * backend query while keeping the picker responsive.\n */\nconst TRIGGER_DEBOUNCE_MS = 150;\n\n/** Max suggestions requested per keystroke. */\nconst MAX_RESULTS = 9;\n\n/**\n * The unified Explorer command palette (Ctrl/Cmd+K): one surface for global\n * cross-source search (plain text), jump-to-record ('#'), commands & apps ('/'),\n * and agents ('@') — every mode a pluggable {@link OmnibarProvider}, discovered via\n * the MJ ClassFactory so OpenApps can add modes without touching this component.\n *\n * Design source of truth: plans/composer-adoption/mockups/omnibar-command-palette.html.\n */\n@Component({\n standalone: false,\n selector: 'mj-omnibar-palette',\n templateUrl: './omnibar-palette.component.html',\n styleUrls: ['./omnibar-palette.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OmnibarPaletteComponent implements OnDestroy {\n private cdr = inject(ChangeDetectorRef);\n private host = inject<ElementRef<HTMLElement>>(ElementRef);\n private navigation = inject(NavigationService);\n private appManager = inject(ApplicationManager);\n private search = inject(SearchService);\n private paletteService = inject(CommandPaletteService);\n private fileOpen = inject(FileOpenService);\n\n @ViewChild('paletteInput') private inputRef?: ElementRef<HTMLInputElement>;\n\n /** Palette visibility (open via {@link Open}; Escape/backdrop close). */\n public IsOpen = false;\n /** Raw input text including any leading trigger char. */\n public Query = '';\n public Rows: OmnibarRow[] = [];\n public RecentRows: OmnibarRow[] = [];\n public SelectedIndex = 0;\n public IsLoading = false;\n public Scopes: SearchScopeInfo[] = [];\n public SelectedScopeIDs: string[] = [];\n\n @Output() Opened = new EventEmitter<void>();\n @Output() Closed = new EventEmitter<void>();\n /** Footer gear clicked — the host opens its settings surface (Explorer: My\n Profile, where the Command Palette opt-in section lives). The palette\n closes first so the settings dialog isn't buried under it. */\n @Output() SettingsRequested = new EventEmitter<void>();\n\n private providers: OmnibarProvider[] = [];\n private defaultProvider: OmnibarProvider | null = null;\n private byTrigger = new Map<string, OmnibarProvider>();\n private queryGeneration = 0;\n private debounceHandle: ReturnType<typeof setTimeout> | null = null;\n /** Element focused before the palette opened — restored on close (a11y). */\n private previousFocus: HTMLElement | null = null;\n private recentsSub: Subscription | null = null;\n\n // ---------------------------------------------------------------\n // Derived view state\n // ---------------------------------------------------------------\n\n /** The active trigger char ('' = default/global-search mode). */\n public get ActiveTriggerChar(): string {\n const first = this.Query.charAt(0);\n return this.byTrigger.has(first) ? first : '';\n }\n\n /** Query text with the trigger char stripped. */\n public get EffectiveQuery(): string {\n return this.ActiveTriggerChar ? this.Query.substring(1) : this.Query;\n }\n\n public get ActiveModeLabel(): string {\n return this.activeProvider?.ModeLabel ?? 'Search';\n }\n\n public get ActivePlaceholder(): string {\n return this.activeProvider?.Placeholder ?? 'Search everything — or type #, /, @ …';\n }\n\n /** Scope pills only apply to the cross-source search mode. */\n public get ShowScopes(): boolean {\n return this.ActiveTriggerChar === '' && this.EffectiveQuery.trim().length > 0;\n }\n\n /** Footer gear: close, then let the host present its settings surface. */\n public RequestSettings(): void {\n this.Close();\n this.SettingsRequested.emit();\n }\n\n /** Hint chips for the empty state — one per non-default provider. */\n public get TriggerHints(): Array<{ Char: string; Label: string }> {\n return this.providers\n .filter((p) => p.TriggerChar !== '')\n .map((p) => ({ Char: p.TriggerChar, Label: p.ModeLabel }));\n }\n\n /** RecentRows render after the hint bar; selection indexes continue into them. */\n public get RecentBaseIndex(): number {\n return 0;\n }\n\n private get activeProvider(): OmnibarProvider | null {\n const char = this.ActiveTriggerChar;\n return char ? (this.byTrigger.get(char) ?? null) : this.defaultProvider;\n }\n\n private get selectableRows(): OmnibarRow[] {\n return this.Rows.length > 0 ? this.Rows : this.RecentRows;\n }\n\n /**\n * ARIA combobox wiring: the input keeps DOM focus while this points at the\n * virtually-highlighted option row, so screen readers announce selection moves.\n */\n public get ActiveDescendantId(): string | null {\n return this.selectableRows.length > 0 ? `ob-opt-${this.SelectedIndex}` : null;\n }\n\n /** Whether any option rows exist — drives the combobox's aria-expanded. */\n public get HasOptions(): boolean {\n return this.selectableRows.length > 0;\n }\n\n // ---------------------------------------------------------------\n // Public API\n // ---------------------------------------------------------------\n\n /** Opens the palette, optionally pre-seeded (e.g. '/' from the legacy Ctrl+/ path). */\n public Open(initialQuery = ''): void {\n this.ensureProviders();\n this.previousFocus = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n this.IsOpen = true;\n this.Query = initialQuery;\n this.Rows = [];\n this.SelectedIndex = 0;\n void this.loadScopes();\n void this.loadRecents();\n if (initialQuery.length > 0) {\n this.runQuery();\n }\n this.Opened.emit();\n this.cdr.markForCheck();\n // Input mounts via @if — focus next tick.\n setTimeout(() => this.inputRef?.nativeElement.focus(), 30);\n }\n\n public Close(): void {\n if (!this.IsOpen) {\n return;\n }\n this.IsOpen = false;\n this.Query = '';\n this.Rows = [];\n this.Closed.emit();\n this.cdr.markForCheck();\n // Return focus to where the user was (skip if that element left the DOM).\n if (this.previousFocus?.isConnected) {\n this.previousFocus.focus();\n }\n this.previousFocus = null;\n }\n\n public Toggle(initialQuery = ''): void {\n if (this.IsOpen) {\n this.Close();\n } else {\n this.Open(initialQuery);\n }\n }\n\n ngOnDestroy(): void {\n if (this.debounceHandle != null) {\n clearTimeout(this.debounceHandle);\n }\n this.recentsSub?.unsubscribe();\n }\n\n // ---------------------------------------------------------------\n // Input handling\n // ---------------------------------------------------------------\n\n public OnQueryChange(value: string): void {\n this.Query = value;\n this.SelectedIndex = 0;\n this.runQuery();\n }\n\n public OnInputKeydown(event: KeyboardEvent): void {\n const rows = this.selectableRows;\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.moveSelection(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.moveSelection(-1);\n break;\n case 'Enter': {\n event.preventDefault();\n const row = rows[this.SelectedIndex];\n if (row) {\n this.Execute(row.Suggestion);\n } else if (this.ActiveTriggerChar === '' && this.EffectiveQuery.trim().length > 1) {\n // No rows yet (still loading / no matches): honest escape hatch to full search.\n this.openFullSearch(this.EffectiveQuery.trim());\n }\n break;\n }\n }\n }\n\n /**\n * Dialog-level keys (bubbled from anywhere inside the palette):\n * - Escape closes from any focused element, not just the input.\n * - Tab follows the natural visual order — input → scope pills → mode chips →\n * the selected result row (roving tabindex) — and TRAPS at the ends so focus\n * cycles inside the dialog instead of escaping to the page underneath.\n * (Design review: Tab must reach the three mode chips, not skip them.)\n */\n public OnPaletteKeydown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n event.preventDefault();\n this.Close();\n return;\n }\n if (event.key !== 'Tab') {\n return;\n }\n // On a result row, Tab / Shift+Tab step through the RESULTS themselves\n // (mirrors ArrowDown/Up) until walking off either end of the list — then\n // the trap logic below takes over. Same model as mj-search-overlay.\n const activeEl = document.activeElement as HTMLElement | null;\n if (activeEl?.classList.contains('ob-row')) {\n const last = this.selectableRows.length - 1;\n if (!event.shiftKey && this.SelectedIndex < last) {\n event.preventDefault();\n this.moveSelection(1, true);\n return;\n }\n if (event.shiftKey && this.SelectedIndex > 0) {\n event.preventDefault();\n this.moveSelection(-1, true);\n return;\n }\n // At either end: fall through so Tab leaves the list naturally.\n }\n const root = this.host.nativeElement.querySelector('.omnibar-palette') as HTMLElement | null;\n if (!root) {\n return;\n }\n const focusables = Array.from(root.querySelectorAll<HTMLElement>('input, button, .ob-row[tabindex=\"0\"]'))\n .filter((el) => el.offsetParent !== null);\n if (focusables.length === 0) {\n return;\n }\n const active = document.activeElement as HTMLElement | null;\n if (!event.shiftKey && active === focusables[focusables.length - 1]) {\n event.preventDefault();\n focusables[0].focus();\n } else if (event.shiftKey && active === focusables[0]) {\n event.preventDefault();\n focusables[focusables.length - 1].focus();\n }\n }\n\n /** Keys on a focused result row (rows are real focus stops via roving tabindex). */\n public OnRowKeydown(event: KeyboardEvent, suggestion: MentionSuggestion): void {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.moveSelection(1, true);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.moveSelection(-1, true);\n break;\n case 'Enter':\n event.preventDefault();\n this.Execute(suggestion);\n break;\n }\n }\n\n /**\n * Keyboard-driven selection move: wraps at both ends (standard picker behavior)\n * and keeps the highlighted row visible. Mouse hover sets SelectedIndex directly\n * in the template and deliberately does NOT scroll — auto-scrolling under the\n * pointer would fight the user's hand. When the move originates from a focused\n * row (roving tabindex), DOM focus follows the selection.\n */\n private moveSelection(delta: 1 | -1, focusRow = false): void {\n const count = this.selectableRows.length;\n if (count === 0) {\n return;\n }\n this.SelectedIndex = (this.SelectedIndex + delta + count) % count;\n this.cdr.markForCheck();\n const row = this.host.nativeElement.querySelector<HTMLElement>(`#ob-opt-${this.SelectedIndex}`);\n row?.scrollIntoView({ block: 'nearest' });\n if (focusRow) {\n row?.focus();\n }\n }\n\n /** Hint-chip click: seed the trigger char and refocus. */\n public SeedTrigger(char: string): void {\n this.Query = char;\n this.SelectedIndex = 0;\n this.runQuery();\n this.inputRef?.nativeElement.focus();\n }\n\n // ---------------------------------------------------------------\n // Scopes\n // ---------------------------------------------------------------\n\n public IsScopeSelected(id: string): boolean {\n return this.SelectedScopeIDs.includes(id);\n }\n\n public ToggleScope(id: string): void {\n this.SelectedScopeIDs = this.IsScopeSelected(id)\n ? this.SelectedScopeIDs.filter((s) => s !== id)\n : [...this.SelectedScopeIDs, id];\n this.cdr.markForCheck();\n }\n\n public ClearScopes(): void {\n this.SelectedScopeIDs = [];\n this.cdr.markForCheck();\n }\n\n // ---------------------------------------------------------------\n // Execution\n // ---------------------------------------------------------------\n\n /** Executes a suggestion: navigate per its payload, or re-seed for entity drill-in. */\n public Execute(suggestion: MentionSuggestion): void {\n const nav = GetOmnibarNavPayload(suggestion);\n if (!nav) {\n return; // foreign suggestion with no navigation — nothing to execute\n }\n // Default-mode queries count as \"searches\" even when the user executes a\n // suggestion that navigates directly (no full ExecuteSearch downstream to\n // record them). Trigger-mode fragments ('#accounts ac…') are NOT searches —\n // recording those would pollute recents. 'search' payloads skip too: the\n // results page records them with the real result count.\n const typed = this.EffectiveQuery.trim();\n if (this.ActiveTriggerChar === '' && typed.length > 0 && nav.kind !== 'search') {\n this.search.RecordRecentSearch(typed);\n }\n switch (nav.kind) {\n case 'record':\n this.navigation.OpenEntityRecord(nav.entityName, CompositeKey.FromID(nav.recordId));\n break;\n case 'entity-list':\n this.navigation.OpenDynamicView(nav.entityName);\n break;\n case 'search':\n this.openFullSearch(nav.query);\n return; // openFullSearch closes\n case 'app':\n void this.paletteService.TrackAppAccess(nav.appId);\n void this.navigation.SwitchToApp(nav.appId);\n break;\n case 'nav':\n void this.navigation.SwitchToApp(nav.appId, nav.navItemName);\n break;\n case 'agent':\n void this.openAgentChat(nav.agentName);\n break;\n case 'file':\n if (!this.fileOpen.OpenPreviewFromSearchResult(nav.rawMetadata)) {\n void this.fileOpen.OpenFileFromSearchResult(nav.rawMetadata);\n }\n break;\n }\n this.Close();\n }\n\n private openFullSearch(query: string): void {\n const opts = this.SelectedScopeIDs.length > 0 ? { scopeIDs: [...this.SelectedScopeIDs] } : undefined;\n this.navigation.OpenSearch(query, opts);\n this.Close();\n }\n\n /** '@' selection: switch to the Chat app pre-addressed to the agent. */\n private async openAgentChat(agentName: string): Promise<void> {\n const apps = await firstValueFrom(this.appManager.Applications).catch(() => []);\n const chat = apps.find((a) => a.Name.trim().toLowerCase() === 'chat');\n if (chat) {\n // agentReq is a one-shot request nonce: the chat wrapper applies each\n // agent|nonce instruction exactly once, so URL↔tab-config sync echoes\n // of an already-consumed param can never re-stage the pre-address (and\n // wipe an in-progress composer draft), while a genuine re-tag of the\n // SAME agent still applies because it carries a fresh nonce.\n await this.navigation.SwitchToApp(chat.ID, undefined, {\n agent: agentName,\n agentReq: Date.now().toString(36),\n });\n }\n }\n\n // ---------------------------------------------------------------\n // Query execution\n // ---------------------------------------------------------------\n\n private ensureProviders(): void {\n if (this.providers.length > 0) {\n return;\n }\n // Kick off the persisted-recents load (idempotent; resolves via LoggedIn\n // replay). The legacy search composite used to be the only caller — with\n // the omnibar enabled it never renders, so prior-session recents were\n // invisible until the palette started requesting them itself.\n void this.search.LoadRecentSearches();\n // Refresh the empty-state Recent rows whenever recents change while the\n // palette is idle-open (skip(1): BehaviorSubject replays its current\n // value on subscribe, which loadRecents already read directly).\n this.recentsSub = this.search.RecentSearches$.pipe(skip(1)).subscribe(() => {\n if (this.IsOpen && this.Query.length === 0) {\n void this.loadRecents();\n }\n });\n LoadOmnibarProviders();\n this.providers = DiscoverOmnibarProviders();\n const context = {\n Search: this.search,\n Apps: this.appManager,\n PaletteService: this.paletteService,\n Navigation: this.navigation,\n };\n for (const provider of this.providers) {\n provider.Attach(context);\n if (provider.TriggerChar === '') {\n this.defaultProvider = this.defaultProvider ?? provider;\n } else if (!this.byTrigger.has(provider.TriggerChar)) {\n this.byTrigger.set(provider.TriggerChar, provider);\n }\n }\n }\n\n private runQuery(): void {\n if (this.debounceHandle != null) {\n clearTimeout(this.debounceHandle);\n this.debounceHandle = null;\n }\n const generation = ++this.queryGeneration;\n const provider = this.activeProvider;\n const query = this.EffectiveQuery;\n const isTriggerMode = this.ActiveTriggerChar !== '';\n\n if (!provider || (query.trim().length === 0 && !isTriggerMode)) {\n this.Rows = [];\n this.IsLoading = false;\n this.cdr.markForCheck();\n return;\n }\n\n const fire = () => void this.fetchSuggestions(provider, query, generation);\n if (isTriggerMode) {\n // Short debounce: entity matching is in-memory, but record suggestions issue a\n // RunView per keystroke — debouncing collapses a typing burst into one backend query.\n this.debounceHandle = setTimeout(fire, TRIGGER_DEBOUNCE_MS);\n } else {\n this.IsLoading = this.Rows.length === 0;\n this.cdr.markForCheck();\n this.debounceHandle = setTimeout(fire, SEARCH_DEBOUNCE_MS);\n }\n }\n\n private async fetchSuggestions(provider: OmnibarProvider, query: string, generation: number): Promise<void> {\n const request = {\n Query: query,\n MaxResults: MAX_RESULTS,\n ContextUser: this.currentUser,\n Provider: null,\n };\n const suggestions = query.trim().length === 0\n ? await provider.EmptyStateSuggestions(request)\n : await provider.GetSuggestions(request);\n if (generation !== this.queryGeneration) {\n return; // stale response — a newer keystroke superseded it\n }\n this.Rows = this.toRows(suggestions);\n this.SelectedIndex = 0;\n this.IsLoading = false;\n this.cdr.markForCheck();\n }\n\n private toRows(suggestions: MentionSuggestion[]): OmnibarRow[] {\n let lastGroup: string | null = null;\n return suggestions.map((s) => {\n const group = typeof s.data?.['group'] === 'string' ? (s.data['group'] as string) : '';\n const isNewGroup = group.length > 0 && group !== lastGroup;\n if (group.length > 0) {\n lastGroup = group;\n }\n const score = typeof s.data?.['score'] === 'number' ? (s.data['score'] as number) : null;\n return {\n Suggestion: s,\n GroupLabel: isNewGroup ? group : null,\n ScorePercent: score != null ? Math.round(Math.max(0, Math.min(1, score)) * 100) : null,\n };\n });\n }\n\n private async loadScopes(): Promise<void> {\n try {\n this.Scopes = await this.search.LoadScopes();\n this.cdr.markForCheck();\n } catch {\n this.Scopes = [];\n }\n }\n\n /** Empty-state recents: recent searches + recent apps (best-effort). */\n private async loadRecents(): Promise<void> {\n const rows: OmnibarRow[] = [];\n try {\n const recentSearches = this.search.RecentSearches$.value.slice(0, 3);\n for (const recent of recentSearches) {\n rows.push({\n Suggestion: {\n type: 'search',\n id: `recent-search:${recent.Query}`,\n name: recent.Query,\n displayName: recent.Query,\n description: 'Recent search',\n icon: 'fa-solid fa-clock-rotate-left',\n data: { nav: { kind: 'search', query: recent.Query } },\n },\n GroupLabel: null,\n ScorePercent: null,\n });\n }\n } catch {\n // recents are decorative — never block the palette\n }\n try {\n const commandProvider = this.byTrigger.get('/');\n if (commandProvider) {\n const apps = await commandProvider.EmptyStateSuggestions({\n Query: '', MaxResults: 3, ContextUser: this.currentUser, Provider: null,\n });\n rows.push(...apps.map((s) => ({ Suggestion: s, GroupLabel: null, ScorePercent: null })));\n }\n } catch {\n // ditto\n }\n this.RecentRows = rows;\n this.cdr.markForCheck();\n }\n\n private get currentUser(): UserInfo | null {\n return Metadata.Provider?.CurrentUser ?? null; // global-provider-ok: Explorer shell palette is app chrome bound to the session's default provider\n }\n}\n\n/** Tree-shaking guard for the palette component. */\nexport function LoadOmnibarPaletteComponent(): void {\n // intentional no-op\n}\n","@if (IsOpen) {\n <div class=\"omnibar-overlay\" (click)=\"Close()\"></div>\n <div class=\"omnibar-palette\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Command palette\"\n (keydown)=\"OnPaletteKeydown($event)\">\n\n <div class=\"ob-input-row\">\n <span class=\"ob-lead\" [class.ob-lead--trigger]=\"ActiveTriggerChar.length > 0\">\n @if (ActiveTriggerChar.length > 0) {\n <b>{{ ActiveTriggerChar }}</b>\n } @else {\n <i class=\"fa-solid fa-magnifying-glass\"></i>\n }\n </span>\n <input #paletteInput class=\"ob-input\" type=\"text\" autocomplete=\"off\" spellcheck=\"false\"\n role=\"combobox\" aria-controls=\"ob-listbox\" aria-autocomplete=\"list\"\n [attr.aria-expanded]=\"HasOptions\"\n [attr.aria-activedescendant]=\"ActiveDescendantId\"\n [placeholder]=\"ActivePlaceholder\"\n [ngModel]=\"Query\" (ngModelChange)=\"OnQueryChange($event)\"\n (keydown)=\"OnInputKeydown($event)\" />\n <span class=\"ob-mode-badge\">{{ ActiveModeLabel }}</span>\n <kbd class=\"ob-kbd\">esc</kbd>\n <button type=\"button\" class=\"ob-close\" aria-label=\"Close\" title=\"Close\" (click)=\"Close()\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n @if (ShowScopes && Scopes.length > 0) {\n <div class=\"ob-scopes\">\n <button type=\"button\" class=\"ob-scope\" [class.ob-scope--on]=\"SelectedScopeIDs.length === 0\"\n (click)=\"ClearScopes()\">All sources</button>\n @for (scope of Scopes; track scope.ID) {\n <button type=\"button\" class=\"ob-scope\" [class.ob-scope--on]=\"IsScopeSelected(scope.ID)\"\n (click)=\"ToggleScope(scope.ID)\">{{ scope.Name }}</button>\n }\n </div>\n }\n\n <div class=\"ob-body\">\n @if (IsLoading) {\n <div class=\"ob-loading\"><i class=\"fa-solid fa-circle-notch fa-spin\"></i> Searching…</div>\n } @else if (Rows.length === 0 && Query.length === 0) {\n <div class=\"ob-hintbar\">\n @for (hint of TriggerHints; track hint.Char) {\n <button type=\"button\" class=\"ob-hint-chip\" (click)=\"SeedTrigger(hint.Char)\">\n <b>{{ hint.Char }}</b><span>{{ hint.Label }}</span>\n </button>\n }\n </div>\n @if (RecentRows.length > 0) {\n <div class=\"ob-group-label\" role=\"presentation\">Recent</div>\n <div id=\"ob-listbox\" role=\"listbox\" aria-label=\"Suggestions\">\n @for (row of RecentRows; track row.Suggestion.id; let i = $index) {\n <div class=\"ob-row\" role=\"option\" [attr.id]=\"'ob-opt-' + (RecentBaseIndex + i)\"\n [attr.tabindex]=\"RecentBaseIndex + i === SelectedIndex ? 0 : -1\"\n [attr.aria-selected]=\"RecentBaseIndex + i === SelectedIndex\"\n [class.ob-row--sel]=\"RecentBaseIndex + i === SelectedIndex\"\n (focus)=\"SelectedIndex = RecentBaseIndex + i\"\n (keydown)=\"OnRowKeydown($event, row.Suggestion)\"\n (mouseenter)=\"SelectedIndex = RecentBaseIndex + i\" (click)=\"Execute(row.Suggestion)\">\n <span class=\"ob-ric\"><i [class]=\"row.Suggestion.icon || 'fa-solid fa-clock-rotate-left'\"></i></span>\n <span class=\"ob-rmain\">\n <span class=\"ob-rname\">{{ row.Suggestion.displayName }}</span>\n <span class=\"ob-rsub\">{{ row.Suggestion.description }}</span>\n </span>\n <span class=\"ob-raux\"><span class=\"ob-rtype\">{{ row.Suggestion.type }}</span></span>\n </div>\n }\n </div>\n }\n } @else if (Rows.length === 0) {\n <div class=\"ob-empty\">No matches — press <kbd class=\"ob-kbd\">↵</kbd> to search everything for “{{ EffectiveQuery }}”.</div>\n } @else {\n <div id=\"ob-listbox\" role=\"listbox\" aria-label=\"Suggestions\">\n @for (row of Rows; track row.Suggestion.id; let i = $index) {\n @if (row.GroupLabel) {\n <div class=\"ob-group-label\" role=\"presentation\">{{ row.GroupLabel }}</div>\n }\n <div class=\"ob-row\" role=\"option\" [attr.id]=\"'ob-opt-' + i\"\n [attr.tabindex]=\"i === SelectedIndex ? 0 : -1\"\n [attr.aria-selected]=\"i === SelectedIndex\"\n [class.ob-row--sel]=\"i === SelectedIndex\"\n (focus)=\"SelectedIndex = i\"\n (keydown)=\"OnRowKeydown($event, row.Suggestion)\"\n (mouseenter)=\"SelectedIndex = i\" (click)=\"Execute(row.Suggestion)\">\n <span class=\"ob-ric\"><i [class]=\"row.Suggestion.icon || 'fa-solid fa-circle'\"></i></span>\n <span class=\"ob-rmain\">\n <span class=\"ob-rname\">{{ row.Suggestion.displayName }}</span>\n @if (row.Suggestion.description) {\n <span class=\"ob-rsub\">{{ row.Suggestion.description }}</span>\n }\n </span>\n <span class=\"ob-raux\">\n @if (row.ScorePercent != null) {\n <span class=\"ob-score\"><i [style.width.%]=\"row.ScorePercent\"></i></span>\n }\n <span class=\"ob-rtype\">{{ row.Suggestion.type }}</span>\n <span class=\"ob-go\">open <kbd class=\"ob-kbd\">↵</kbd></span>\n </span>\n </div>\n }\n </div>\n }\n </div>\n\n <div class=\"ob-foot\">\n <span class=\"ob-k\"><kbd class=\"ob-kbd\">↑</kbd><kbd class=\"ob-kbd\">↓</kbd> navigate</span>\n <span class=\"ob-k\"><kbd class=\"ob-kbd\">↵</kbd> open</span>\n <button type=\"button\" class=\"ob-settings\" aria-label=\"Command Palette settings\"\n title=\"Command Palette settings\" (click)=\"RequestSettings()\">\n <i class=\"fa-solid fa-gear\"></i>\n </button>\n </div>\n </div>\n}\n"]}
|
|
@@ -8,6 +8,14 @@ interface NotificationChannel {
|
|
|
8
8
|
enabled: boolean;
|
|
9
9
|
saving: boolean;
|
|
10
10
|
}
|
|
11
|
+
interface StarredThemeItem {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
seeds: string;
|
|
15
|
+
swatches: string[];
|
|
16
|
+
overrides: string | null;
|
|
17
|
+
customCss: string | null;
|
|
18
|
+
}
|
|
11
19
|
type ProfilePanel = 'none' | 'photo' | 'theme';
|
|
12
20
|
/**
|
|
13
21
|
* "Identity Card" profile dialog with slide-in detail panels for editing
|
|
@@ -48,6 +56,10 @@ export declare class ProfileDialogComponent extends BaseAngularComponent impleme
|
|
|
48
56
|
}>;
|
|
49
57
|
ThemePreference: string;
|
|
50
58
|
SavingTheme: string | null;
|
|
59
|
+
StarredThemes: StarredThemeItem[];
|
|
60
|
+
get AppliedBrandId(): string | null;
|
|
61
|
+
/** Whether a theme id is the applied brand overlay (case-insensitive GUID compare). */
|
|
62
|
+
IsAppliedBrand(id: string): boolean;
|
|
51
63
|
get PanelTitle(): string;
|
|
52
64
|
private authBase;
|
|
53
65
|
private themeService;
|
|
@@ -62,6 +74,11 @@ export declare class ProfileDialogComponent extends BaseAngularComponent impleme
|
|
|
62
74
|
ClosePanel(): void;
|
|
63
75
|
OnSignOut(): Promise<void>;
|
|
64
76
|
SelectTheme(themeId: string): Promise<void>;
|
|
77
|
+
/** Load the user's starred brand themes to show inline in the theme list. */
|
|
78
|
+
private loadStarredThemes;
|
|
79
|
+
/** Apply a starred brand theme to the running app and persist it as the user's choice. */
|
|
80
|
+
ApplyStarredTheme(t: StarredThemeItem): Promise<void>;
|
|
81
|
+
private swatchesFor;
|
|
65
82
|
/**
|
|
66
83
|
* Per-user omnibar opt-in/out. Persists via UserInfoEngine (MJ: User
|
|
67
84
|
* Settings) so the choice follows the user across browsers/devices. The
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-dialog.component.d.ts","sourceRoot":"","sources":["../../../src/lib/profile/profile-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,YAAY,EAEZ,SAAS,EACT,MAAM,EAIT,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"profile-dialog.component.d.ts","sourceRoot":"","sources":["../../../src/lib/profile/profile-dialog.component.ts"],"names":[],"mappings":"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"}
|