@memberjunction/ng-explorer-core 6.1.0-edge.4 → 6.1.0-edge.5

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.
Files changed (27) hide show
  1. package/dist/generated/lazy-feature-config.d.ts.map +1 -1
  2. package/dist/generated/lazy-feature-config.js +9 -3
  3. package/dist/generated/lazy-feature-config.js.map +1 -1
  4. package/dist/lib/command-palette/command-palette.component.d.ts +13 -0
  5. package/dist/lib/command-palette/command-palette.component.d.ts.map +1 -1
  6. package/dist/lib/command-palette/command-palette.component.js +105 -41
  7. package/dist/lib/command-palette/command-palette.component.js.map +1 -1
  8. package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts.map +1 -1
  9. package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +13 -12
  10. package/dist/lib/resource-wrappers/chat-conversations-resource.component.js.map +1 -1
  11. package/dist/lib/resource-wrappers/chat-deeplink-params.d.ts +24 -0
  12. package/dist/lib/resource-wrappers/chat-deeplink-params.d.ts.map +1 -0
  13. package/dist/lib/resource-wrappers/chat-deeplink-params.js +27 -0
  14. package/dist/lib/resource-wrappers/chat-deeplink-params.js.map +1 -0
  15. package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts +7 -0
  16. package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts.map +1 -1
  17. package/dist/lib/resource-wrappers/dashboard-resource.component.js +23 -0
  18. package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
  19. package/dist/lib/server-connectivity/server-connectivity-banner.component.d.ts +20 -8
  20. package/dist/lib/server-connectivity/server-connectivity-banner.component.d.ts.map +1 -1
  21. package/dist/lib/server-connectivity/server-connectivity-banner.component.js +25 -20
  22. package/dist/lib/server-connectivity/server-connectivity-banner.component.js.map +1 -1
  23. package/dist/lib/shell/shell.component.d.ts +23 -0
  24. package/dist/lib/shell/shell.component.d.ts.map +1 -1
  25. package/dist/lib/shell/shell.component.js +316 -248
  26. package/dist/lib/shell/shell.component.js.map +1 -1
  27. package/package.json +52 -52
@@ -1 +1 @@
1
- {"version":3,"file":"lazy-feature-config.d.ts","sourceRoot":"","sources":["../../src/generated/lazy-feature-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAoHH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CA6J9F,CAAC;AAEF,eAAO,MAAM,yBAAyB,MAAM,CAAC"}
1
+ {"version":3,"file":"lazy-feature-config.d.ts","sourceRoot":"","sources":["../../src/generated/lazy-feature-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA0HH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CA+J9F,CAAC;AAEF,eAAO,MAAM,yBAAyB,MAAM,CAAC"}
@@ -26,6 +26,11 @@ const loadNgDashboardsAiDashboardsModule = {
26
26
  chunkId: '@memberjunction/ng-dashboards/ai-dashboards.module',
27
27
  load: () => import('@memberjunction/ng-dashboards/ai-dashboards.module').then(() => { })
28
28
  };
29
+ // --- @memberjunction/ng-dashboards → ./archiving-dashboards.module (2 entries) ---
30
+ const loadNgDashboardsArchivingDashboardsModule = {
31
+ chunkId: '@memberjunction/ng-dashboards/archiving-dashboards.module',
32
+ load: () => import('@memberjunction/ng-dashboards/archiving-dashboards.module').then(() => { })
33
+ };
29
34
  // --- @memberjunction/ng-dashboards → ./communication-dashboards.module (7 entries) ---
30
35
  const loadNgDashboardsCommunicationDashboardsModule = {
31
36
  chunkId: '@memberjunction/ng-dashboards/communication-dashboards.module',
@@ -66,7 +71,7 @@ const loadNgDashboardsMcpModule = {
66
71
  chunkId: '@memberjunction/ng-dashboards/mcp.module',
67
72
  load: () => import('@memberjunction/ng-dashboards/mcp.module').then(() => { })
68
73
  };
69
- // --- @memberjunction/ng-dashboards → ./module (3 entries) ---
74
+ // --- @memberjunction/ng-dashboards → ./module (1 entries) ---
70
75
  const loadNgDashboardsModule = {
71
76
  chunkId: '@memberjunction/ng-dashboards/module',
72
77
  load: () => import('@memberjunction/ng-dashboards/module').then(() => { })
@@ -141,6 +146,9 @@ export const LAZY_FEATURE_CONFIG = {
141
146
  'BaseResourceComponent::Tags': loadNgDashboardsAiDashboardsModule,
142
147
  'BaseResourceComponent::VectorManagementResource': loadNgDashboardsAiDashboardsModule,
143
148
  'BaseResourceComponent::VisualizationResource': loadNgDashboardsAiDashboardsModule,
149
+ // @memberjunction/ng-dashboards → ./archiving-dashboards.module
150
+ 'BaseResourceComponent::ArchiveConfigResource': loadNgDashboardsArchivingDashboardsModule,
151
+ 'BaseResourceComponent::ArchiveRunsResource': loadNgDashboardsArchivingDashboardsModule,
144
152
  // @memberjunction/ng-dashboards → ./communication-dashboards.module
145
153
  'BaseDashboard::CommunicationDashboard': loadNgDashboardsCommunicationDashboardsModule,
146
154
  'BaseResourceComponent::CommunicationLogsResource': loadNgDashboardsCommunicationDashboardsModule,
@@ -217,8 +225,6 @@ export const LAZY_FEATURE_CONFIG = {
217
225
  'BaseDashboard::MCPDashboard': loadNgDashboardsMcpModule,
218
226
  'BaseResourceComponent::MCPResource': loadNgDashboardsMcpModule,
219
227
  // @memberjunction/ng-dashboards → ./module
220
- 'BaseResourceComponent::ArchiveConfigResource': loadNgDashboardsModule,
221
- 'BaseResourceComponent::ArchiveRunsResource': loadNgDashboardsModule,
222
228
  'BaseResourceComponent::DatabaseDesignerDashboard': loadNgDashboardsModule,
223
229
  // @memberjunction/ng-dashboards → ./predictive-studio-dashboards.module
224
230
  'BaseResourceComponent::PredictiveStudioModelsResource': loadNgDashboardsPredictiveStudioDashboardsModule,
@@ -1 +1 @@
1
- {"version":3,"file":"lazy-feature-config.js","sourceRoot":"","sources":["../../src/generated/lazy-feature-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,kFAAkF;AAClF,MAAM,uCAAuC,GAAG;IAC9C,OAAO,EAAE,yDAAyD;IAClE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CAC7F,CAAC;AAEF,8EAA8E;AAC9E,MAAM,kCAAkC,GAAG;IACzC,OAAO,EAAE,oDAAoD;IAC7D,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,oDAAoD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CACxF,CAAC;AAEF,wFAAwF;AACxF,MAAM,6CAA6C,GAAG;IACpD,OAAO,EAAE,+DAA+D;IACxE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,+DAA+D,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CACnG,CAAC;AAEF,2FAA2F;AAC3F,MAAM,+CAA+C,GAAG;IACtD,OAAO,EAAE,kEAAkE;IAC3E,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,kEAAkE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CACtG,CAAC;AAEF,gFAAgF;AAChF,MAAM,oCAAoC,GAAG;IAC3C,OAAO,EAAE,sDAAsD;IAC/D,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CAC1F,CAAC;AAEF,sFAAsF;AACtF,MAAM,2CAA2C,GAAG;IAClD,OAAO,EAAE,6DAA6D;IACtE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6DAA6D,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CACjG,CAAC;AAEF,wFAAwF;AACxF,MAAM,4CAA4C,GAAG;IACnD,OAAO,EAAE,+DAA+D;IACxE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,+DAA+D,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CACnG,CAAC;AAEF,2EAA2E;AAC3E,MAAM,iCAAiC,GAAG;IACxC,OAAO,EAAE,kDAAkD;IAC3D,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,kDAAkD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CACtF,CAAC;AAEF,gFAAgF;AAChF,MAAM,qCAAqC,GAAG;IAC5C,OAAO,EAAE,uDAAuD;IAChE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CAC3F,CAAC;AAEF,mEAAmE;AACnE,MAAM,yBAAyB,GAAG;IAChC,OAAO,EAAE,0CAA0C;IACnD,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CAC9E,CAAC;AAEF,+DAA+D;AAC/D,MAAM,sBAAsB,GAAG;IAC7B,OAAO,EAAE,sCAAsC;IAC/C,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CAC1E,CAAC;AAEF,4FAA4F;AAC5F,MAAM,gDAAgD,GAAG;IACvD,OAAO,EAAE,mEAAmE;IAC5E,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mEAAmE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CACvG,CAAC;AAEF,mFAAmF;AACnF,MAAM,wCAAwC,GAAG;IAC/C,OAAO,EAAE,0DAA0D;IACnE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,0DAA0D,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CAC9F,CAAC;AAEF,qFAAqF;AACrF,MAAM,0CAA0C,GAAG;IACjD,OAAO,EAAE,4DAA4D;IACrE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,4DAA4D,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CAChG,CAAC;AAEF,kFAAkF;AAClF,MAAM,uCAAuC,GAAG;IAC9C,OAAO,EAAE,yDAAyD;IAClE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CAC7F,CAAC;AAEF,oFAAoF;AACpF,MAAM,yCAAyC,GAAG;IAChD,OAAO,EAAE,2DAA2D;IACpE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2DAA2D,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CAC/F,CAAC;AAEF,+EAA+E;AAC/E,MAAM,oCAAoC,GAAG;IAC3C,OAAO,EAAE,sDAAsD;IAC/D,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CAC1F,CAAC;AAEF,8EAA8E;AAC9E,MAAM,kCAAkC,GAAG;IACzC,OAAO,EAAE,qDAAqD;IAC9D,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CACzF,CAAC;AAEF,mDAAmD;AACnD,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,0BAA0B;IACnC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CAC9D,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAmE;IACjG,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;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,8CAA8C,EAAE,oCAAoC;IACpF,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,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,gEAAgE;IAChE,mCAAmC,EAAE,yCAAyC;IAC9E,6CAA6C,EAAE,yCAAyC;IACxF,0CAA0C,EAAE,yCAAyC;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 * Every entry carries an explicit `chunkId` — the dynamic import specifier — because many\n * compound keys share one chunk and the registry must be able to tell those chunks apart.\n * Do NOT collapse these into a shared helper that returns a closure: closures built by the\n * same helper are indistinguishable by identity-adjacent means (e.g. Function.toString()),\n * which silently merges all chunks into one.\n */\n\n// --- @memberjunction/ng-dashboards → ./actions-dashboards.module (6 entries) ---\nconst loadNgDashboardsActionsDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/actions-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/actions-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./ai-dashboards.module (17 entries) ---\nconst loadNgDashboardsAiDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/ai-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/ai-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./communication-dashboards.module (7 entries) ---\nconst loadNgDashboardsCommunicationDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/communication-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/communication-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./component-studio-dashboards.module (3 entries) ---\nconst loadNgDashboardsComponentStudioDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/component-studio-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/component-studio-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./core-dashboards.module (36 entries) ---\nconst loadNgDashboardsCoreDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/core-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/core-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./credentials-dashboards.module (6 entries) ---\nconst loadNgDashboardsCredentialsDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/credentials-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/credentials-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./data-explorer-dashboards.module (2 entries) ---\nconst loadNgDashboardsDataExplorerDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/data-explorer-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/data-explorer-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./integration.module (6 entries) ---\nconst loadNgDashboardsIntegrationModule = {\n chunkId: '@memberjunction/ng-dashboards/integration.module',\n load: () => import('@memberjunction/ng-dashboards/integration.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./lists-dashboards.module (5 entries) ---\nconst loadNgDashboardsListsDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/lists-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/lists-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./mcp.module (2 entries) ---\nconst loadNgDashboardsMcpModule = {\n chunkId: '@memberjunction/ng-dashboards/mcp.module',\n load: () => import('@memberjunction/ng-dashboards/mcp.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./module (3 entries) ---\nconst loadNgDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/module',\n load: () => import('@memberjunction/ng-dashboards/module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./predictive-studio-dashboards.module (3 entries) ---\nconst loadNgDashboardsPredictiveStudioDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/predictive-studio-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/predictive-studio-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./routines-dashboards.module (1 entries) ---\nconst loadNgDashboardsRoutinesDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/routines-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/routines-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./scheduling-dashboards.module (4 entries) ---\nconst loadNgDashboardsSchedulingDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/scheduling-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/scheduling-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./testing-dashboards.module (6 entries) ---\nconst loadNgDashboardsTestingDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/testing-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/testing-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./workflows-dashboards.module (3 entries) ---\nconst loadNgDashboardsWorkflowsDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/workflows-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/workflows-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-explorer-settings → ./settings.module (6 entries) ---\nconst loadNgExplorerSettingsSettingsModule = {\n chunkId: '@memberjunction/ng-explorer-settings/settings.module',\n load: () => import('@memberjunction/ng-explorer-settings/settings.module').then(() => {})\n};\n\n// --- @memberjunction/ng-file-storage → ./file-storage.module (1 entries) ---\nconst loadNgFileStorageFileStorageModule = {\n chunkId: '@memberjunction/ng-file-storage/file-storage.module',\n load: () => import('@memberjunction/ng-file-storage/file-storage.module').then(() => {})\n};\n\n// --- @memberjunction/ng-react → . (1 entries) ---\nconst loadNgReact = {\n chunkId: '@memberjunction/ng-react',\n load: () => import('@memberjunction/ng-react').then(() => {})\n};\n\n/**\n * Complete mapping of compound keys (BaseClassName::Key) to their chunk descriptor.\n * Covers all @RegisterClass decorated classes in lazy-loaded packages.\n */\nexport const LAZY_FEATURE_CONFIG: Record<string, { chunkId: string; load: () => 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::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::GridWidthLabInspector': 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::TabStripLabInspector': 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-dashboards → ./workflows-dashboards.module\n 'BaseDashboard::WorkflowsDashboard': loadNgDashboardsWorkflowsDashboardsModule,\n 'BaseResourceComponent::WorkflowRunsResource': loadNgDashboardsWorkflowsDashboardsModule,\n 'BaseResourceComponent::WorkflowsResource': loadNgDashboardsWorkflowsDashboardsModule,\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 = 118;\n"]}
1
+ {"version":3,"file":"lazy-feature-config.js","sourceRoot":"","sources":["../../src/generated/lazy-feature-config.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * AUTO-GENERATED FILE — DO NOT EDIT\n * Generated by: mj codegen manifest --lazy-config\n * Regenerate with: npm run mj:manifest:explorer\n *\n * Maps @RegisterClass entries to their lazy-loading chunks using compound keys.\n * Compound key format: \"BaseClassName::Key\" (e.g., \"BaseResourceComponent::HomeDashboard\").\n *\n * When ClassFactory.GetRegistrationAsync() or CreateInstanceAsync() cannot find a\n * registration synchronously, the registered lazy loader builds the compound key and\n * looks it up here to dynamically import the chunk containing the class.\n *\n * Every entry carries an explicit `chunkId` — the dynamic import specifier — because many\n * compound keys share one chunk and the registry must be able to tell those chunks apart.\n * Do NOT collapse these into a shared helper that returns a closure: closures built by the\n * same helper are indistinguishable by identity-adjacent means (e.g. Function.toString()),\n * which silently merges all chunks into one.\n */\n\n// --- @memberjunction/ng-dashboards → ./actions-dashboards.module (6 entries) ---\nconst loadNgDashboardsActionsDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/actions-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/actions-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./ai-dashboards.module (17 entries) ---\nconst loadNgDashboardsAiDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/ai-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/ai-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./archiving-dashboards.module (2 entries) ---\nconst loadNgDashboardsArchivingDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/archiving-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/archiving-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./communication-dashboards.module (7 entries) ---\nconst loadNgDashboardsCommunicationDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/communication-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/communication-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./component-studio-dashboards.module (3 entries) ---\nconst loadNgDashboardsComponentStudioDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/component-studio-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/component-studio-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./core-dashboards.module (36 entries) ---\nconst loadNgDashboardsCoreDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/core-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/core-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./credentials-dashboards.module (6 entries) ---\nconst loadNgDashboardsCredentialsDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/credentials-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/credentials-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./data-explorer-dashboards.module (2 entries) ---\nconst loadNgDashboardsDataExplorerDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/data-explorer-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/data-explorer-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./integration.module (6 entries) ---\nconst loadNgDashboardsIntegrationModule = {\n chunkId: '@memberjunction/ng-dashboards/integration.module',\n load: () => import('@memberjunction/ng-dashboards/integration.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./lists-dashboards.module (5 entries) ---\nconst loadNgDashboardsListsDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/lists-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/lists-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./mcp.module (2 entries) ---\nconst loadNgDashboardsMcpModule = {\n chunkId: '@memberjunction/ng-dashboards/mcp.module',\n load: () => import('@memberjunction/ng-dashboards/mcp.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./module (1 entries) ---\nconst loadNgDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/module',\n load: () => import('@memberjunction/ng-dashboards/module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./predictive-studio-dashboards.module (3 entries) ---\nconst loadNgDashboardsPredictiveStudioDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/predictive-studio-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/predictive-studio-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./routines-dashboards.module (1 entries) ---\nconst loadNgDashboardsRoutinesDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/routines-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/routines-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./scheduling-dashboards.module (4 entries) ---\nconst loadNgDashboardsSchedulingDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/scheduling-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/scheduling-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./testing-dashboards.module (6 entries) ---\nconst loadNgDashboardsTestingDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/testing-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/testing-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-dashboards → ./workflows-dashboards.module (3 entries) ---\nconst loadNgDashboardsWorkflowsDashboardsModule = {\n chunkId: '@memberjunction/ng-dashboards/workflows-dashboards.module',\n load: () => import('@memberjunction/ng-dashboards/workflows-dashboards.module').then(() => {})\n};\n\n// --- @memberjunction/ng-explorer-settings → ./settings.module (6 entries) ---\nconst loadNgExplorerSettingsSettingsModule = {\n chunkId: '@memberjunction/ng-explorer-settings/settings.module',\n load: () => import('@memberjunction/ng-explorer-settings/settings.module').then(() => {})\n};\n\n// --- @memberjunction/ng-file-storage → ./file-storage.module (1 entries) ---\nconst loadNgFileStorageFileStorageModule = {\n chunkId: '@memberjunction/ng-file-storage/file-storage.module',\n load: () => import('@memberjunction/ng-file-storage/file-storage.module').then(() => {})\n};\n\n// --- @memberjunction/ng-react → . (1 entries) ---\nconst loadNgReact = {\n chunkId: '@memberjunction/ng-react',\n load: () => import('@memberjunction/ng-react').then(() => {})\n};\n\n/**\n * Complete mapping of compound keys (BaseClassName::Key) to their chunk descriptor.\n * Covers all @RegisterClass decorated classes in lazy-loaded packages.\n */\nexport const LAZY_FEATURE_CONFIG: Record<string, { chunkId: string; load: () => 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::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 → ./archiving-dashboards.module\n 'BaseResourceComponent::ArchiveConfigResource': loadNgDashboardsArchivingDashboardsModule,\n 'BaseResourceComponent::ArchiveRunsResource': loadNgDashboardsArchivingDashboardsModule,\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::GridWidthLabInspector': 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::TabStripLabInspector': 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::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-dashboards → ./workflows-dashboards.module\n 'BaseDashboard::WorkflowsDashboard': loadNgDashboardsWorkflowsDashboardsModule,\n 'BaseResourceComponent::WorkflowRunsResource': loadNgDashboardsWorkflowsDashboardsModule,\n 'BaseResourceComponent::WorkflowsResource': loadNgDashboardsWorkflowsDashboardsModule,\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 = 118;\n"]}
@@ -20,10 +20,13 @@ export declare class CommandPaletteComponent implements OnInit, OnDestroy {
20
20
  private cdr;
21
21
  private destroy$;
22
22
  SearchInput: ElementRef<HTMLInputElement>;
23
+ PaletteModal?: ElementRef<HTMLElement>;
23
24
  AppSelected: EventEmitter<string>;
24
25
  KnowledgeSearchRequested: EventEmitter<string>;
25
26
  IsOpen: boolean;
26
27
  SearchQuery: string;
28
+ /** The element focus came from, so closing can hand it back (WCAG 2.4.3). */
29
+ private invoker;
27
30
  AllApps: BaseApplication[];
28
31
  FilteredApps: BaseApplication[];
29
32
  SelectedIndex: number;
@@ -39,6 +42,16 @@ export declare class CommandPaletteComponent implements OnInit, OnDestroy {
39
42
  * Called when command palette closes
40
43
  */
41
44
  private onClose;
45
+ /**
46
+ * Focusable descendants of the modal, in DOM order — the trap's cycle.
47
+ */
48
+ private focusableInModal;
49
+ /**
50
+ * Keep Tab inside the dialog (WCAG 2.4.3 / 2.1.2). `aria-modal` tells a screen reader the
51
+ * rest of the page is inert but does NOT stop Tab, so without this a keyboard user tabs
52
+ * straight out of an open palette into the page behind it and cannot see where they are.
53
+ */
54
+ private trapTab;
42
55
  /**
43
56
  * Handle search query change
44
57
  */
@@ -1 +1 @@
1
- {"version":3,"file":"command-palette.component.d.ts","sourceRoot":"","sources":["../../../src/lib/command-palette/command-palette.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAa,UAAU,EAAgB,iBAAiB,EAAU,YAAY,EAAE,MAAM,eAAe,CAAC;AAG3I,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;AAElE;;;;;;;;;;;GAWG;AACH,qBAMa,uBAAwB,YAAW,MAAM,EAAE,SAAS;IAe7D,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAhBb,OAAO,CAAC,QAAQ,CAAuB;IAEb,WAAW,EAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC3D,WAAW,uBAA8B;IACzC,wBAAwB,uBAA8B;IAEhE,MAAM,UAAS;IACf,WAAW,SAAM;IACjB,OAAO,EAAE,eAAe,EAAE,CAAM;IAChC,YAAY,EAAE,eAAe,EAAE,CAAM;IACrC,aAAa,SAAK;IAClB,YAAY,UAAS;gBAGX,OAAO,EAAE,qBAAqB,EAC9B,UAAU,EAAE,kBAAkB,EAC9B,GAAG,EAAE,iBAAiB;IAGhC,QAAQ,IAAI,IAAI;IAqBhB,WAAW,IAAI,IAAI;IAKnB;;OAEG;IACH,OAAO,CAAC,MAAM;IAiBd;;OAEG;IACH,OAAO,CAAC,OAAO;IAMf;;OAEG;IACH,cAAc,IAAI,IAAI;IAKtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAQrC;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAO1B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IAEH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAyCzC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;yCAxOb,uBAAuB;2CAAvB,uBAAuB;CAgPnC"}
1
+ {"version":3,"file":"command-palette.component.d.ts","sourceRoot":"","sources":["../../../src/lib/command-palette/command-palette.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAa,UAAU,EAAgB,iBAAiB,EAAU,YAAY,EAAE,MAAM,eAAe,CAAC;AAG3I,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;AAElE;;;;;;;;;;;GAWG;AACH,qBAMa,uBAAwB,YAAW,MAAM,EAAE,SAAS;IAkB7D,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAnBb,OAAO,CAAC,QAAQ,CAAuB;IAEb,WAAW,EAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC1C,YAAY,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACxD,WAAW,uBAA8B;IACzC,wBAAwB,uBAA8B;IAEhE,MAAM,UAAS;IACf,WAAW,SAAM;IACjB,6EAA6E;IAC7E,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,EAAE,eAAe,EAAE,CAAM;IAChC,YAAY,EAAE,eAAe,EAAE,CAAM;IACrC,aAAa,SAAK;IAClB,YAAY,UAAS;gBAGX,OAAO,EAAE,qBAAqB,EAC9B,UAAU,EAAE,kBAAkB,EAC9B,GAAG,EAAE,iBAAiB;IAGhC,QAAQ,IAAI,IAAI;IAqBhB,WAAW,IAAI,IAAI;IAKnB;;OAEG;IACH,OAAO,CAAC,MAAM;IAsBd;;OAEG;IACH,OAAO,CAAC,OAAO;IAef;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;;;OAIG;IACH,OAAO,CAAC,OAAO;IAoBf;;OAEG;IACH,cAAc,IAAI,IAAI;IAKtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAQrC;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAO1B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IAEH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAgDzC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;yCAzSb,uBAAuB;2CAAvB,uBAAuB;CAiTnC"}
@@ -8,14 +8,15 @@ import * as i3 from "@angular/forms";
8
8
  import * as i4 from "@memberjunction/ng-ui-components";
9
9
  import * as i5 from "@memberjunction/ng-shared-generic";
10
10
  const _c0 = ["searchInput"];
11
+ const _c1 = ["paletteModal"];
11
12
  function CommandPaletteComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
12
13
  const _r1 = i0.ɵɵgetCurrentView();
13
- i0.ɵɵelementStart(0, "div", 3);
14
+ i0.ɵɵelementStart(0, "div", 4);
14
15
  i0.ɵɵlistener("click", function CommandPaletteComponent_Conditional_0_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Close()); });
15
16
  i0.ɵɵelementEnd();
16
17
  } }
17
- function CommandPaletteComponent_Conditional_1_For_7_Conditional_5_Template(rf, ctx) { if (rf & 1) {
18
- i0.ɵɵelementStart(0, "div", 15);
18
+ function CommandPaletteComponent_Conditional_1_For_8_Conditional_5_Template(rf, ctx) { if (rf & 1) {
19
+ i0.ɵɵelementStart(0, "div", 16);
19
20
  i0.ɵɵtext(1);
20
21
  i0.ɵɵelementEnd();
21
22
  } if (rf & 2) {
@@ -23,15 +24,15 @@ function CommandPaletteComponent_Conditional_1_For_7_Conditional_5_Template(rf,
23
24
  i0.ɵɵadvance();
24
25
  i0.ɵɵtextInterpolate(app_r5.Description);
25
26
  } }
26
- function CommandPaletteComponent_Conditional_1_For_7_Template(rf, ctx) { if (rf & 1) {
27
+ function CommandPaletteComponent_Conditional_1_For_8_Template(rf, ctx) { if (rf & 1) {
27
28
  const _r4 = i0.ɵɵgetCurrentView();
28
- i0.ɵɵelementStart(0, "div", 11);
29
- i0.ɵɵlistener("click", function CommandPaletteComponent_Conditional_1_For_7_Template_div_click_0_listener() { const app_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SelectApp(app_r5)); });
30
- i0.ɵɵelement(1, "i", 12);
31
- i0.ɵɵelementStart(2, "div", 13)(3, "div", 14);
29
+ i0.ɵɵelementStart(0, "div", 12);
30
+ i0.ɵɵlistener("click", function CommandPaletteComponent_Conditional_1_For_8_Template_div_click_0_listener() { const app_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SelectApp(app_r5)); });
31
+ i0.ɵɵelement(1, "i", 13);
32
+ i0.ɵɵelementStart(2, "div", 14)(3, "div", 15);
32
33
  i0.ɵɵtext(4);
33
34
  i0.ɵɵelementEnd();
34
- i0.ɵɵconditionalCreate(5, CommandPaletteComponent_Conditional_1_For_7_Conditional_5_Template, 2, 1, "div", 15);
35
+ i0.ɵɵconditionalCreate(5, CommandPaletteComponent_Conditional_1_For_8_Conditional_5_Template, 2, 1, "div", 16);
35
36
  i0.ɵɵelementEnd()();
36
37
  } if (rf & 2) {
37
38
  const app_r5 = ctx.$implicit;
@@ -47,21 +48,21 @@ function CommandPaletteComponent_Conditional_1_For_7_Template(rf, ctx) { if (rf
47
48
  i0.ɵɵadvance();
48
49
  i0.ɵɵconditional(app_r5.Description ? 5 : -1);
49
50
  } }
50
- function CommandPaletteComponent_Conditional_1_Conditional_8_Template(rf, ctx) { if (rf & 1) {
51
+ function CommandPaletteComponent_Conditional_1_Conditional_9_Template(rf, ctx) { if (rf & 1) {
51
52
  const _r7 = i0.ɵɵgetCurrentView();
52
- i0.ɵɵelementStart(0, "div", 16)(1, "span", 17);
53
+ i0.ɵɵelementStart(0, "div", 17)(1, "span", 18);
53
54
  i0.ɵɵtext(2, "Knowledge Search");
54
55
  i0.ɵɵelementEnd()();
55
- i0.ɵɵelementStart(3, "div", 18);
56
- i0.ɵɵlistener("click", function CommandPaletteComponent_Conditional_1_Conditional_8_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SearchKnowledgeHub()); });
57
- i0.ɵɵelement(4, "i", 19);
58
- i0.ɵɵelementStart(5, "div", 13)(6, "div", 14);
56
+ i0.ɵɵelementStart(3, "div", 19);
57
+ i0.ɵɵlistener("click", function CommandPaletteComponent_Conditional_1_Conditional_9_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SearchKnowledgeHub()); });
58
+ i0.ɵɵelement(4, "i", 20);
59
+ i0.ɵɵelementStart(5, "div", 14)(6, "div", 15);
59
60
  i0.ɵɵtext(7, "Search Knowledge Hub");
60
61
  i0.ɵɵelementEnd();
61
- i0.ɵɵelementStart(8, "div", 15);
62
+ i0.ɵɵelementStart(8, "div", 16);
62
63
  i0.ɵɵtext(9);
63
64
  i0.ɵɵelementEnd()();
64
- i0.ɵɵelementStart(10, "kbd", 20);
65
+ i0.ɵɵelementStart(10, "kbd", 21);
65
66
  i0.ɵɵtext(11, "Enter");
66
67
  i0.ɵɵelementEnd()();
67
68
  } if (rf & 2) {
@@ -71,12 +72,12 @@ function CommandPaletteComponent_Conditional_1_Conditional_8_Template(rf, ctx) {
71
72
  i0.ɵɵadvance(6);
72
73
  i0.ɵɵtextInterpolate1("Search \"", ctx_r1.SearchQuery, "\" across entities, documents, and content");
73
74
  } }
74
- function CommandPaletteComponent_Conditional_1_Conditional_9_Template(rf, ctx) { if (rf & 1) {
75
- i0.ɵɵelement(0, "mj-empty-state", 9);
76
- } }
77
75
  function CommandPaletteComponent_Conditional_1_Conditional_10_Template(rf, ctx) { if (rf & 1) {
78
- i0.ɵɵelementStart(0, "div", 10);
79
- i0.ɵɵelement(1, "mj-loading", 21);
76
+ i0.ɵɵelement(0, "mj-empty-state", 10);
77
+ } }
78
+ function CommandPaletteComponent_Conditional_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
79
+ i0.ɵɵelementStart(0, "div", 11);
80
+ i0.ɵɵelement(1, "mj-loading", 22);
80
81
  i0.ɵɵelementEnd();
81
82
  } if (rf & 2) {
82
83
  i0.ɵɵadvance();
@@ -84,31 +85,31 @@ function CommandPaletteComponent_Conditional_1_Conditional_10_Template(rf, ctx)
84
85
  } }
85
86
  function CommandPaletteComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
86
87
  const _r3 = i0.ɵɵgetCurrentView();
87
- i0.ɵɵelementStart(0, "div", 2)(1, "div", 4);
88
- i0.ɵɵelement(2, "i", 5);
89
- i0.ɵɵelementStart(3, "input", 6, 0);
90
- i0.ɵɵtwoWayListener("ngModelChange", function CommandPaletteComponent_Conditional_1_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.SearchQuery, $event) || (ctx_r1.SearchQuery = $event); return i0.ɵɵresetView($event); });
91
- i0.ɵɵlistener("input", function CommandPaletteComponent_Conditional_1_Template_input_input_3_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnSearchChange()); });
88
+ i0.ɵɵelementStart(0, "div", 3, 0)(2, "div", 5);
89
+ i0.ɵɵelement(3, "i", 6);
90
+ i0.ɵɵelementStart(4, "input", 7, 1);
91
+ i0.ɵɵtwoWayListener("ngModelChange", function CommandPaletteComponent_Conditional_1_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.SearchQuery, $event) || (ctx_r1.SearchQuery = $event); return i0.ɵɵresetView($event); });
92
+ i0.ɵɵlistener("input", function CommandPaletteComponent_Conditional_1_Template_input_input_4_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnSearchChange()); });
92
93
  i0.ɵɵelementEnd()();
93
- i0.ɵɵelementStart(5, "div", 7);
94
- i0.ɵɵrepeaterCreate(6, CommandPaletteComponent_Conditional_1_For_7_Template, 6, 9, "div", 8, i0.ɵɵrepeaterTrackByIdentity);
95
- i0.ɵɵconditionalCreate(8, CommandPaletteComponent_Conditional_1_Conditional_8_Template, 12, 3);
96
- i0.ɵɵconditionalCreate(9, CommandPaletteComponent_Conditional_1_Conditional_9_Template, 1, 0, "mj-empty-state", 9);
94
+ i0.ɵɵelementStart(6, "div", 8);
95
+ i0.ɵɵrepeaterCreate(7, CommandPaletteComponent_Conditional_1_For_8_Template, 6, 9, "div", 9, i0.ɵɵrepeaterTrackByIdentity);
96
+ i0.ɵɵconditionalCreate(9, CommandPaletteComponent_Conditional_1_Conditional_9_Template, 12, 3);
97
+ i0.ɵɵconditionalCreate(10, CommandPaletteComponent_Conditional_1_Conditional_10_Template, 1, 0, "mj-empty-state", 10);
97
98
  i0.ɵɵelementEnd();
98
- i0.ɵɵconditionalCreate(10, CommandPaletteComponent_Conditional_1_Conditional_10_Template, 2, 1, "div", 10);
99
+ i0.ɵɵconditionalCreate(11, CommandPaletteComponent_Conditional_1_Conditional_11_Template, 2, 1, "div", 11);
99
100
  i0.ɵɵelementEnd();
100
101
  } if (rf & 2) {
101
102
  const ctx_r1 = i0.ɵɵnextContext();
102
- i0.ɵɵadvance(3);
103
+ i0.ɵɵadvance(4);
103
104
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.SearchQuery);
104
105
  i0.ɵɵadvance(3);
105
106
  i0.ɵɵrepeater(ctx_r1.FilteredApps);
106
107
  i0.ɵɵadvance(2);
107
- i0.ɵɵconditional(ctx_r1.SearchQuery.trim().length > 0 ? 8 : -1);
108
+ i0.ɵɵconditional(ctx_r1.SearchQuery.trim().length > 0 ? 9 : -1);
108
109
  i0.ɵɵadvance();
109
- i0.ɵɵconditional(ctx_r1.FilteredApps.length === 0 && ctx_r1.SearchQuery ? 9 : -1);
110
+ i0.ɵɵconditional(ctx_r1.FilteredApps.length === 0 && ctx_r1.SearchQuery ? 10 : -1);
110
111
  i0.ɵɵadvance();
111
- i0.ɵɵconditional(ctx_r1.IsNavigating ? 10 : -1);
112
+ i0.ɵɵconditional(ctx_r1.IsNavigating ? 11 : -1);
112
113
  } }
113
114
  /**
114
115
  * Command Palette Component
@@ -128,10 +129,13 @@ export class CommandPaletteComponent {
128
129
  cdr;
129
130
  destroy$ = new Subject();
130
131
  SearchInput;
132
+ PaletteModal;
131
133
  AppSelected = new EventEmitter();
132
134
  KnowledgeSearchRequested = new EventEmitter();
133
135
  IsOpen = false;
134
136
  SearchQuery = '';
137
+ /** The element focus came from, so closing can hand it back (WCAG 2.4.3). */
138
+ invoker = null;
135
139
  AllApps = [];
136
140
  FilteredApps = [];
137
141
  SelectedIndex = 0;
@@ -167,6 +171,10 @@ export class CommandPaletteComponent {
167
171
  * Called when command palette opens
168
172
  */
169
173
  onOpen() {
174
+ // Remember where focus came from BEFORE we take it, so Close() can hand it back.
175
+ // The palette opens from a global Cmd+K, so the invoker is whatever had focus.
176
+ const active = document.activeElement;
177
+ this.invoker = active instanceof HTMLElement && active !== document.body ? active : null;
170
178
  // Reset state
171
179
  this.SearchQuery = '';
172
180
  this.SelectedIndex = 0;
@@ -187,6 +195,52 @@ export class CommandPaletteComponent {
187
195
  this.SearchQuery = '';
188
196
  this.SelectedIndex = 0;
189
197
  this.IsNavigating = false;
198
+ // Return focus to the invoker. Guarded on the invoker still being in the document —
199
+ // selecting an app tears down the tab the invoker lived in, and focusing a detached
200
+ // node silently drops focus to <body>, which is the very thing this prevents.
201
+ const invoker = this.invoker;
202
+ this.invoker = null;
203
+ if (invoker && invoker.isConnected) {
204
+ invoker.focus();
205
+ }
206
+ }
207
+ /**
208
+ * Focusable descendants of the modal, in DOM order — the trap's cycle.
209
+ */
210
+ focusableInModal() {
211
+ const modal = this.PaletteModal?.nativeElement;
212
+ if (!modal) {
213
+ return [];
214
+ }
215
+ // No visibility filter is needed or wanted here: the entire modal lives inside an
216
+ // `@if (IsOpen)`, so everything this matches is genuinely rendered. (An `offsetParent`
217
+ // check would be actively wrong — the modal is positioned, and offsetParent is null for
218
+ // fixed-position subtrees in some engines and for everything under jsdom.)
219
+ const selector = 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';
220
+ return Array.from(modal.querySelectorAll(selector));
221
+ }
222
+ /**
223
+ * Keep Tab inside the dialog (WCAG 2.4.3 / 2.1.2). `aria-modal` tells a screen reader the
224
+ * rest of the page is inert but does NOT stop Tab, so without this a keyboard user tabs
225
+ * straight out of an open palette into the page behind it and cannot see where they are.
226
+ */
227
+ trapTab(event) {
228
+ const focusable = this.focusableInModal();
229
+ if (focusable.length === 0) {
230
+ event.preventDefault();
231
+ return;
232
+ }
233
+ const first = focusable[0];
234
+ const last = focusable[focusable.length - 1];
235
+ const active = document.activeElement;
236
+ if (event.shiftKey && (active === first || !active || !this.PaletteModal?.nativeElement.contains(active))) {
237
+ event.preventDefault();
238
+ last.focus();
239
+ }
240
+ else if (!event.shiftKey && (active === last || !active || !this.PaletteModal?.nativeElement.contains(active))) {
241
+ event.preventDefault();
242
+ first.focus();
243
+ }
190
244
  }
191
245
  /**
192
246
  * Handle search query change
@@ -285,6 +339,12 @@ export class CommandPaletteComponent {
285
339
  HandleKeyDown(event) {
286
340
  if (!this.IsOpen)
287
341
  return;
342
+ // Tab is handled first: the INPUT guard below would otherwise let Tab fall through to
343
+ // the browser and walk focus out of the dialog.
344
+ if (event.key === 'Tab') {
345
+ this.trapTab(event);
346
+ return;
347
+ }
288
348
  // Skip if user is typing in input (except for navigation keys)
289
349
  const target = event.target;
290
350
  const navigationKeys = ['Escape', 'Enter', 'ArrowUp', 'ArrowDown'];
@@ -339,15 +399,16 @@ export class CommandPaletteComponent {
339
399
  }
340
400
  static ɵfac = function CommandPaletteComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CommandPaletteComponent)(i0.ɵɵdirectiveInject(i1.CommandPaletteService), i0.ɵɵdirectiveInject(i2.ApplicationManager), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
341
401
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CommandPaletteComponent, selectors: [["mj-command-palette"]], viewQuery: function CommandPaletteComponent_Query(rf, ctx) { if (rf & 1) {
342
- i0.ɵɵviewQuery(_c0, 5);
402
+ i0.ɵɵviewQuery(_c0, 5)(_c1, 5);
343
403
  } if (rf & 2) {
344
404
  let _t;
345
405
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.SearchInput = _t.first);
406
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.PaletteModal = _t.first);
346
407
  } }, hostBindings: function CommandPaletteComponent_HostBindings(rf, ctx) { if (rf & 1) {
347
408
  i0.ɵɵlistener("keydown", function CommandPaletteComponent_keydown_HostBindingHandler($event) { return ctx.HandleKeyDown($event); }, i0.ɵɵresolveDocument);
348
- } }, outputs: { AppSelected: "AppSelected", KnowledgeSearchRequested: "KnowledgeSearchRequested" }, standalone: false, decls: 2, vars: 2, consts: [["searchInput", ""], ["role", "presentation", "aria-hidden", "true", 1, "command-palette-backdrop"], ["role", "dialog", "aria-label", "Search applications", "aria-modal", "true", 1, "command-palette-modal"], ["role", "presentation", "aria-hidden", "true", 1, "command-palette-backdrop", 3, "click"], [1, "search-container"], ["aria-hidden", "true", 1, "fa-solid", "fa-search", "search-icon"], ["type", "text", "placeholder", "Search applications...", "autocomplete", "off", "spellcheck", "false", "aria-label", "Search applications", 1, "search-input", 3, "ngModelChange", "input", "ngModel"], ["role", "listbox", "aria-label", "Application results", 1, "results-list"], ["role", "option", 1, "result-item", 3, "selected"], ["Variant", "no-results", "Size", "compact", "Icon", "fa-solid fa-magnifying-glass", "Title", "No applications found", "Message", "Try a different search term or search the Knowledge Hub", "role", "status", "aria-live", "polite"], ["role", "status", "aria-live", "assertive", "aria-label", "Navigating to application", 1, "loading-overlay"], ["role", "option", 1, "result-item", 3, "click"], ["aria-hidden", "true", 1, "result-icon"], [1, "result-info"], [1, "result-name"], [1, "result-description"], [1, "results-section-divider"], [1, "section-label"], ["role", "option", 1, "result-item", "result-item-action", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-brain", "result-icon", "result-icon-knowledge"], [1, "result-kbd"], ["size", "small", 3, "showText"]], template: function CommandPaletteComponent_Template(rf, ctx) { if (rf & 1) {
349
- i0.ɵɵconditionalCreate(0, CommandPaletteComponent_Conditional_0_Template, 1, 0, "div", 1);
350
- i0.ɵɵconditionalCreate(1, CommandPaletteComponent_Conditional_1_Template, 11, 4, "div", 2);
409
+ } }, outputs: { AppSelected: "AppSelected", KnowledgeSearchRequested: "KnowledgeSearchRequested" }, standalone: false, decls: 2, vars: 2, consts: [["paletteModal", ""], ["searchInput", ""], ["role", "presentation", "aria-hidden", "true", 1, "command-palette-backdrop"], ["role", "dialog", "aria-label", "Search applications", "aria-modal", "true", 1, "command-palette-modal"], ["role", "presentation", "aria-hidden", "true", 1, "command-palette-backdrop", 3, "click"], [1, "search-container"], ["aria-hidden", "true", 1, "fa-solid", "fa-search", "search-icon"], ["type", "text", "placeholder", "Search applications...", "autocomplete", "off", "spellcheck", "false", "aria-label", "Search applications", 1, "search-input", 3, "ngModelChange", "input", "ngModel"], ["role", "listbox", "aria-label", "Application results", 1, "results-list"], ["role", "option", 1, "result-item", 3, "selected"], ["Variant", "no-results", "Size", "compact", "Icon", "fa-solid fa-magnifying-glass", "Title", "No applications found", "Message", "Try a different search term or search the Knowledge Hub", "role", "status", "aria-live", "polite"], ["role", "status", "aria-live", "assertive", "aria-label", "Navigating to application", 1, "loading-overlay"], ["role", "option", 1, "result-item", 3, "click"], ["aria-hidden", "true", 1, "result-icon"], [1, "result-info"], [1, "result-name"], [1, "result-description"], [1, "results-section-divider"], [1, "section-label"], ["role", "option", 1, "result-item", "result-item-action", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-brain", "result-icon", "result-icon-knowledge"], [1, "result-kbd"], ["size", "small", 3, "showText"]], template: function CommandPaletteComponent_Template(rf, ctx) { if (rf & 1) {
410
+ i0.ɵɵconditionalCreate(0, CommandPaletteComponent_Conditional_0_Template, 1, 0, "div", 2);
411
+ i0.ɵɵconditionalCreate(1, CommandPaletteComponent_Conditional_1_Template, 12, 4, "div", 3);
351
412
  } if (rf & 2) {
352
413
  i0.ɵɵconditional(ctx.IsOpen ? 0 : -1);
353
414
  i0.ɵɵadvance();
@@ -356,10 +417,13 @@ export class CommandPaletteComponent {
356
417
  }
357
418
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CommandPaletteComponent, [{
358
419
  type: Component,
359
- args: [{ standalone: false, selector: 'mj-command-palette', template: "<!-- Backdrop -->\n@if (IsOpen) {\n <div class=\"command-palette-backdrop\"\n (click)=\"Close()\"\n role=\"presentation\"\n aria-hidden=\"true\">\n </div>\n}\n\n<!-- Modal -->\n@if (IsOpen) {\n <div class=\"command-palette-modal\"\n role=\"dialog\"\n aria-label=\"Search applications\"\n aria-modal=\"true\">\n <!-- Search Input -->\n <div class=\"search-container\">\n <i class=\"fa-solid fa-search search-icon\" aria-hidden=\"true\"></i>\n <input\n #searchInput\n type=\"text\"\n [(ngModel)]=\"SearchQuery\"\n (input)=\"OnSearchChange()\"\n placeholder=\"Search applications...\"\n class=\"search-input\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n aria-label=\"Search applications\">\n </div>\n <!-- Results List -->\n <div class=\"results-list\" role=\"listbox\" aria-label=\"Application results\">\n <!-- All Apps -->\n @for (app of FilteredApps; track app; let i = $index) {\n <div\n class=\"result-item\"\n [class.selected]=\"i === SelectedIndex\"\n (click)=\"SelectApp(app)\"\n role=\"option\"\n [attr.aria-selected]=\"i === SelectedIndex\">\n <i [class]=\"app.Icon\"\n [style.color]=\"app.GetColor()\"\n class=\"result-icon\"\n aria-hidden=\"true\"></i>\n <div class=\"result-info\">\n <div class=\"result-name\">{{ app.Name }}</div>\n @if (app.Description) {\n <div class=\"result-description\">{{ app.Description }}</div>\n }\n </div>\n </div>\n }\n <!-- Search Knowledge Hub Action -->\n @if (SearchQuery.trim().length > 0) {\n <div class=\"results-section-divider\">\n <span class=\"section-label\">Knowledge Search</span>\n </div>\n <div\n class=\"result-item result-item-action\"\n [class.selected]=\"FilteredApps.length === SelectedIndex\"\n (click)=\"SearchKnowledgeHub()\"\n role=\"option\">\n <i class=\"fa-solid fa-brain result-icon result-icon-knowledge\" aria-hidden=\"true\"></i>\n <div class=\"result-info\">\n <div class=\"result-name\">Search Knowledge Hub</div>\n <div class=\"result-description\">Search \"{{ SearchQuery }}\" across entities, documents, and content</div>\n </div>\n <kbd class=\"result-kbd\">Enter</kbd>\n </div>\n }\n <!-- Empty State -->\n @if (FilteredApps.length === 0 && SearchQuery) {\n <mj-empty-state\n Variant=\"no-results\"\n Size=\"compact\"\n Icon=\"fa-solid fa-magnifying-glass\"\n Title=\"No applications found\"\n Message=\"Try a different search term or search the Knowledge Hub\"\n role=\"status\"\n aria-live=\"polite\" />\n }\n </div>\n <!-- Loading State Overlay -->\n @if (IsNavigating) {\n <div class=\"loading-overlay\" role=\"status\" aria-live=\"assertive\" aria-label=\"Navigating to application\">\n <mj-loading size=\"small\" [showText]=\"false\"></mj-loading>\n </div>\n }\n </div>\n}\n", styles: ["/* Backdrop with blur effect */\n.command-palette-backdrop {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.4);\n backdrop-filter: blur(3px);\n z-index: 10000;\n animation: fadeIn 0.15s ease-out;\n}\n\n/* Modal - centered, Notion-style */\n.command-palette-modal {\n position: fixed;\n top: 20%;\n left: 50%;\n transform: translateX(-50%);\n width: 90%;\n max-width: 640px;\n max-height: 500px;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n overflow: hidden;\n z-index: 10001;\n animation: slideIn 0.2s ease-out;\n display: flex;\n flex-direction: column;\n}\n\n/* Search Container */\n.search-container {\n display: flex;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.search-icon {\n font-size: 18px;\n color: var(--mj-text-disabled);\n margin-right: 12px;\n}\n\n.search-input {\n flex: 1;\n border: none;\n outline: none;\n font-size: 16px;\n padding: 8px 0;\n color: var(--mj-text-primary);\n background: transparent;\n}\n\n.search-input::placeholder {\n color: var(--mj-text-disabled);\n}\n\n/* Results List */\n.results-list {\n overflow-y: auto;\n max-height: 400px;\n flex: 1;\n}\n\n/* Section Header (for \"Recent\") */\n.section-header {\n padding: 12px 16px 8px 16px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Result Item */\n.result-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.1s ease-out;\n border-radius: 0;\n}\n\n.result-item:hover,\n.result-item.selected {\n background: var(--mj-bg-surface-card);\n}\n\n.result-item.selected {\n position: relative;\n}\n\n.result-item.selected::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 3px;\n background: var(--mj-brand-primary);\n}\n\n.result-icon {\n font-size: 20px;\n width: 24px;\n text-align: center;\n flex-shrink: 0;\n}\n\n.result-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.result-name {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.result-description {\n font-size: 12px;\n color: var(--mj-text-disabled);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Knowledge Search Section */\n.results-section-divider {\n padding: 6px 16px;\n border-top: 1px solid var(--mj-border-subtle);\n margin-top: 4px;\n}\n\n.section-label {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n.result-item-action {\n border-top: none;\n}\n\n.result-icon-knowledge {\n color: var(--mj-brand-primary);\n}\n\n.result-kbd {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 4px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n font-size: 11px;\n font-family: inherit;\n flex-shrink: 0;\n}\n\n/* Loading Overlay */\n.loading-overlay {\n position: absolute;\n inset: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 95%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n animation: fadeIn 0.15s ease-out;\n}\n\n/* Animations */\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes slideIn {\n from {\n opacity: 0;\n transform: translateX(-50%) translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n}\n\n/* Scrollbar Styling (Webkit browsers) */\n.results-list::-webkit-scrollbar {\n width: 8px;\n}\n\n.results-list::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.results-list::-webkit-scrollbar-thumb {\n background: var(--mj-border-default);\n border-radius: 4px;\n}\n\n.results-list::-webkit-scrollbar-thumb:hover {\n background: var(--mj-border-strong);\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .command-palette-modal {\n width: 95%;\n max-width: none;\n top: 10%;\n }\n\n .search-input {\n font-size: 14px;\n }\n\n .result-name {\n font-size: 13px;\n }\n\n .result-description {\n font-size: 11px;\n }\n}\n"] }]
420
+ args: [{ standalone: false, selector: 'mj-command-palette', template: "<!-- Backdrop -->\n@if (IsOpen) {\n <div class=\"command-palette-backdrop\"\n (click)=\"Close()\"\n role=\"presentation\"\n aria-hidden=\"true\">\n </div>\n}\n\n<!-- Modal -->\n@if (IsOpen) {\n <div class=\"command-palette-modal\"\n #paletteModal\n role=\"dialog\"\n aria-label=\"Search applications\"\n aria-modal=\"true\">\n <!-- Search Input -->\n <div class=\"search-container\">\n <i class=\"fa-solid fa-search search-icon\" aria-hidden=\"true\"></i>\n <input\n #searchInput\n type=\"text\"\n [(ngModel)]=\"SearchQuery\"\n (input)=\"OnSearchChange()\"\n placeholder=\"Search applications...\"\n class=\"search-input\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n aria-label=\"Search applications\">\n </div>\n <!-- Results List -->\n <div class=\"results-list\" role=\"listbox\" aria-label=\"Application results\">\n <!-- All Apps -->\n @for (app of FilteredApps; track app; let i = $index) {\n <div\n class=\"result-item\"\n [class.selected]=\"i === SelectedIndex\"\n (click)=\"SelectApp(app)\"\n role=\"option\"\n [attr.aria-selected]=\"i === SelectedIndex\">\n <i [class]=\"app.Icon\"\n [style.color]=\"app.GetColor()\"\n class=\"result-icon\"\n aria-hidden=\"true\"></i>\n <div class=\"result-info\">\n <div class=\"result-name\">{{ app.Name }}</div>\n @if (app.Description) {\n <div class=\"result-description\">{{ app.Description }}</div>\n }\n </div>\n </div>\n }\n <!-- Search Knowledge Hub Action -->\n @if (SearchQuery.trim().length > 0) {\n <div class=\"results-section-divider\">\n <span class=\"section-label\">Knowledge Search</span>\n </div>\n <div\n class=\"result-item result-item-action\"\n [class.selected]=\"FilteredApps.length === SelectedIndex\"\n (click)=\"SearchKnowledgeHub()\"\n role=\"option\">\n <i class=\"fa-solid fa-brain result-icon result-icon-knowledge\" aria-hidden=\"true\"></i>\n <div class=\"result-info\">\n <div class=\"result-name\">Search Knowledge Hub</div>\n <div class=\"result-description\">Search \"{{ SearchQuery }}\" across entities, documents, and content</div>\n </div>\n <kbd class=\"result-kbd\">Enter</kbd>\n </div>\n }\n <!-- Empty State -->\n @if (FilteredApps.length === 0 && SearchQuery) {\n <mj-empty-state\n Variant=\"no-results\"\n Size=\"compact\"\n Icon=\"fa-solid fa-magnifying-glass\"\n Title=\"No applications found\"\n Message=\"Try a different search term or search the Knowledge Hub\"\n role=\"status\"\n aria-live=\"polite\" />\n }\n </div>\n <!-- Loading State Overlay -->\n @if (IsNavigating) {\n <div class=\"loading-overlay\" role=\"status\" aria-live=\"assertive\" aria-label=\"Navigating to application\">\n <mj-loading size=\"small\" [showText]=\"false\"></mj-loading>\n </div>\n }\n </div>\n}\n", styles: ["/* Backdrop with blur effect */\n.command-palette-backdrop {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.4);\n backdrop-filter: blur(3px);\n z-index: 10000;\n animation: fadeIn 0.15s ease-out;\n}\n\n/* Modal - centered, Notion-style */\n.command-palette-modal {\n position: fixed;\n top: 20%;\n left: 50%;\n transform: translateX(-50%);\n width: 90%;\n max-width: 640px;\n max-height: 500px;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n overflow: hidden;\n z-index: 10001;\n animation: slideIn 0.2s ease-out;\n display: flex;\n flex-direction: column;\n}\n\n/* Search Container */\n.search-container {\n display: flex;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n\n.search-icon {\n font-size: 18px;\n color: var(--mj-text-disabled);\n margin-right: 12px;\n}\n\n.search-input {\n flex: 1;\n border: none;\n outline: none;\n font-size: 16px;\n padding: 8px 0;\n color: var(--mj-text-primary);\n background: transparent;\n}\n\n.search-input::placeholder {\n color: var(--mj-text-disabled);\n}\n\n/* Results List */\n.results-list {\n overflow-y: auto;\n max-height: 400px;\n flex: 1;\n}\n\n/* Section Header (for \"Recent\") */\n.section-header {\n padding: 12px 16px 8px 16px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Result Item */\n.result-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.1s ease-out;\n border-radius: 0;\n}\n\n.result-item:hover,\n.result-item.selected {\n background: var(--mj-bg-surface-card);\n}\n\n.result-item.selected {\n position: relative;\n}\n\n.result-item.selected::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 3px;\n background: var(--mj-brand-primary);\n}\n\n.result-icon {\n font-size: 20px;\n width: 24px;\n text-align: center;\n flex-shrink: 0;\n}\n\n.result-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.result-name {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.result-description {\n font-size: 12px;\n color: var(--mj-text-disabled);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Knowledge Search Section */\n.results-section-divider {\n padding: 6px 16px;\n border-top: 1px solid var(--mj-border-subtle);\n margin-top: 4px;\n}\n\n.section-label {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n.result-item-action {\n border-top: none;\n}\n\n.result-icon-knowledge {\n color: var(--mj-brand-primary);\n}\n\n.result-kbd {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 4px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n font-size: 11px;\n font-family: inherit;\n flex-shrink: 0;\n}\n\n/* Loading Overlay */\n.loading-overlay {\n position: absolute;\n inset: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 95%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n animation: fadeIn 0.15s ease-out;\n}\n\n/* Animations */\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes slideIn {\n from {\n opacity: 0;\n transform: translateX(-50%) translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n}\n\n/* Scrollbar Styling (Webkit browsers) */\n.results-list::-webkit-scrollbar {\n width: 8px;\n}\n\n.results-list::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.results-list::-webkit-scrollbar-thumb {\n background: var(--mj-border-default);\n border-radius: 4px;\n}\n\n.results-list::-webkit-scrollbar-thumb:hover {\n background: var(--mj-border-strong);\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .command-palette-modal {\n width: 95%;\n max-width: none;\n top: 10%;\n }\n\n .search-input {\n font-size: 14px;\n }\n\n .result-name {\n font-size: 13px;\n }\n\n .result-description {\n font-size: 11px;\n }\n}\n"] }]
360
421
  }], () => [{ type: i1.CommandPaletteService }, { type: i2.ApplicationManager }, { type: i0.ChangeDetectorRef }], { SearchInput: [{
361
422
  type: ViewChild,
362
423
  args: ['searchInput']
424
+ }], PaletteModal: [{
425
+ type: ViewChild,
426
+ args: ['paletteModal']
363
427
  }], AppSelected: [{
364
428
  type: Output
365
429
  }], KnowledgeSearchRequested: [{