@memberjunction/ng-dashboards 5.28.0 → 5.29.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.
Files changed (47) hide show
  1. package/dist/Archiving/components/archive-config-resource.component.d.ts +20 -0
  2. package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -0
  3. package/dist/Archiving/components/archive-config-resource.component.js +46 -0
  4. package/dist/Archiving/components/archive-config-resource.component.js.map +1 -0
  5. package/dist/Archiving/components/archive-runs-resource.component.d.ts +20 -0
  6. package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -0
  7. package/dist/Archiving/components/archive-runs-resource.component.js +46 -0
  8. package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -0
  9. package/dist/MCP/components/mcp-connection-dialog.component.js +1 -1
  10. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
  11. package/dist/MCP/mcp-dashboard.component.d.ts +170 -0
  12. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  13. package/dist/MCP/mcp-dashboard.component.js +2471 -679
  14. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  15. package/dist/MCP/mcp-filter-panel.component.d.ts +16 -1
  16. package/dist/MCP/mcp-filter-panel.component.d.ts.map +1 -1
  17. package/dist/MCP/mcp-filter-panel.component.js +187 -60
  18. package/dist/MCP/mcp-filter-panel.component.js.map +1 -1
  19. package/dist/MCP/mcp-resource.component.d.ts +0 -9
  20. package/dist/MCP/mcp-resource.component.d.ts.map +1 -1
  21. package/dist/MCP/mcp-resource.component.js +1 -10
  22. package/dist/MCP/mcp-resource.component.js.map +1 -1
  23. package/dist/MCP/mcp.module.d.ts +7 -6
  24. package/dist/MCP/mcp.module.d.ts.map +1 -1
  25. package/dist/MCP/mcp.module.js +4 -8
  26. package/dist/MCP/mcp.module.js.map +1 -1
  27. package/dist/QueryBrowser/query-browser-resource.component.d.ts +13 -3
  28. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  29. package/dist/QueryBrowser/query-browser-resource.component.js +186 -139
  30. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  31. package/dist/archiving-dashboards.module.d.ts +19 -0
  32. package/dist/archiving-dashboards.module.d.ts.map +1 -0
  33. package/dist/archiving-dashboards.module.js +52 -0
  34. package/dist/archiving-dashboards.module.js.map +1 -0
  35. package/dist/core-dashboards.module.d.ts +3 -2
  36. package/dist/core-dashboards.module.d.ts.map +1 -1
  37. package/dist/core-dashboards.module.js +4 -0
  38. package/dist/core-dashboards.module.js.map +1 -1
  39. package/dist/module.d.ts +13 -12
  40. package/dist/module.d.ts.map +1 -1
  41. package/dist/module.js +7 -0
  42. package/dist/module.js.map +1 -1
  43. package/dist/public-api.d.ts +3 -0
  44. package/dist/public-api.d.ts.map +1 -1
  45. package/dist/public-api.js +4 -0
  46. package/dist/public-api.js.map +1 -1
  47. package/package.json +51 -48
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @fileoverview Archive Configuration Resource Component
3
+ *
4
+ * Dashboard resource wrapper for the "Configuration" tab in the Archiving application.
5
+ * Delegates all rendering to the reusable mj-archive-config-admin component from
6
+ * @memberjunction/ng-archive-manager.
7
+ */
8
+ import { AfterViewInit } from '@angular/core';
9
+ import { ResourceData } from '@memberjunction/core-entities';
10
+ import { BaseResourceComponent } from '@memberjunction/ng-shared';
11
+ import * as i0 from "@angular/core";
12
+ export declare class ArchiveConfigResourceComponent extends BaseResourceComponent implements AfterViewInit {
13
+ ngAfterViewInit(): void;
14
+ GetResourceDisplayName(_data: ResourceData): Promise<string>;
15
+ GetResourceIconClass(_data: ResourceData): Promise<string>;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<ArchiveConfigResourceComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<ArchiveConfigResourceComponent, "app-archive-config-resource", never, {}, {}, never, never, false, never>;
18
+ }
19
+ export declare function LoadArchiveConfigResource(): void;
20
+ //# sourceMappingURL=archive-config-resource.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive-config-resource.component.d.ts","sourceRoot":"","sources":["../../../src/Archiving/components/archive-config-resource.component.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAa,aAAa,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;AAElE,qBAOa,8BAA+B,SAAQ,qBAAsB,YAAW,aAAa;IAC9F,eAAe,IAAI,IAAI;IAIjB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5D,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;yCATvD,8BAA8B;2CAA9B,8BAA8B;CAY1C;AAED,wBAAgB,yBAAyB,SAExC"}
@@ -0,0 +1,46 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ /**
8
+ * @fileoverview Archive Configuration Resource Component
9
+ *
10
+ * Dashboard resource wrapper for the "Configuration" tab in the Archiving application.
11
+ * Delegates all rendering to the reusable mj-archive-config-admin component from
12
+ * @memberjunction/ng-archive-manager.
13
+ */
14
+ import { Component } from '@angular/core';
15
+ import { RegisterClass } from '@memberjunction/global';
16
+ import { BaseResourceComponent } from '@memberjunction/ng-shared';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "@memberjunction/ng-archive-manager";
19
+ let ArchiveConfigResourceComponent = class ArchiveConfigResourceComponent extends BaseResourceComponent {
20
+ ngAfterViewInit() {
21
+ this.NotifyLoadComplete();
22
+ }
23
+ async GetResourceDisplayName(_data) {
24
+ return 'Archive Configuration';
25
+ }
26
+ async GetResourceIconClass(_data) {
27
+ return 'fa-solid fa-sliders';
28
+ }
29
+ static ɵfac = /*@__PURE__*/ (() => { let ɵArchiveConfigResourceComponent_BaseFactory; return function ArchiveConfigResourceComponent_Factory(__ngFactoryType__) { return (ɵArchiveConfigResourceComponent_BaseFactory || (ɵArchiveConfigResourceComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ArchiveConfigResourceComponent)))(__ngFactoryType__ || ArchiveConfigResourceComponent); }; })();
30
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArchiveConfigResourceComponent, selectors: [["app-archive-config-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 0, template: function ArchiveConfigResourceComponent_Template(rf, ctx) { if (rf & 1) {
31
+ i0.ɵɵelement(0, "mj-archive-config-admin");
32
+ } }, dependencies: [i1.ArchiveConfigAdminComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; width: 100%; overflow: auto; }"] });
33
+ };
34
+ ArchiveConfigResourceComponent = __decorate([
35
+ RegisterClass(BaseResourceComponent, 'ArchiveConfigResource')
36
+ ], ArchiveConfigResourceComponent);
37
+ export { ArchiveConfigResourceComponent };
38
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArchiveConfigResourceComponent, [{
39
+ type: Component,
40
+ args: [{ standalone: false, selector: 'app-archive-config-resource', template: `<mj-archive-config-admin></mj-archive-config-admin>`, styles: [":host { display: block; height: 100%; width: 100%; overflow: auto; }"] }]
41
+ }], null, null); })();
42
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ArchiveConfigResourceComponent, { className: "ArchiveConfigResourceComponent", filePath: "src/Archiving/components/archive-config-resource.component.ts", lineNumber: 21 }); })();
43
+ export function LoadArchiveConfigResource() {
44
+ // Prevents tree-shaking
45
+ }
46
+ //# sourceMappingURL=archive-config-resource.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive-config-resource.component.js","sourceRoot":"","sources":["../../../src/Archiving/components/archive-config-resource.component.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAiB,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;;AAS3D,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,qBAAqB;IACrE,eAAe;QACX,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,KAAmB;QAC5C,OAAO,uBAAuB,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAAmB;QAC1C,OAAO,qBAAqB,CAAC;IACjC,CAAC;qSAXQ,8BAA8B,yBAA9B,8BAA8B;6DAA9B,8BAA8B;YAH5B,0CAAmD;;;AAGrD,8BAA8B;IAP1C,aAAa,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;GAOjD,8BAA8B,CAY1C;;iFAZY,8BAA8B;cAN1C,SAAS;6BACM,KAAK,YACP,6BAA6B,YAC7B,qDAAqD;;kFAGtD,8BAA8B;AAc3C,MAAM,UAAU,yBAAyB;IACrC,wBAAwB;AAC5B,CAAC","sourcesContent":["/**\n * @fileoverview Archive Configuration Resource Component\n *\n * Dashboard resource wrapper for the \"Configuration\" tab in the Archiving application.\n * Delegates all rendering to the reusable mj-archive-config-admin component from\n * @memberjunction/ng-archive-manager.\n */\n\nimport { Component, AfterViewInit } from '@angular/core';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\n\n@RegisterClass(BaseResourceComponent, 'ArchiveConfigResource')\n@Component({\n standalone: false,\n selector: 'app-archive-config-resource',\n template: `<mj-archive-config-admin></mj-archive-config-admin>`,\n styles: [`:host { display: block; height: 100%; width: 100%; overflow: auto; }`],\n})\nexport class ArchiveConfigResourceComponent extends BaseResourceComponent implements AfterViewInit {\n ngAfterViewInit(): void {\n this.NotifyLoadComplete();\n }\n\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Archive Configuration';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-sliders';\n }\n}\n\nexport function LoadArchiveConfigResource() {\n // Prevents tree-shaking\n}\n"]}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @fileoverview Archive Runs Resource Component
3
+ *
4
+ * Dashboard resource wrapper for the "Run History" tab in the Archiving application.
5
+ * Delegates all rendering to the reusable mj-archive-run-viewer component from
6
+ * @memberjunction/ng-archive-manager.
7
+ */
8
+ import { AfterViewInit } from '@angular/core';
9
+ import { ResourceData } from '@memberjunction/core-entities';
10
+ import { BaseResourceComponent } from '@memberjunction/ng-shared';
11
+ import * as i0 from "@angular/core";
12
+ export declare class ArchiveRunsResourceComponent extends BaseResourceComponent implements AfterViewInit {
13
+ ngAfterViewInit(): void;
14
+ GetResourceDisplayName(_data: ResourceData): Promise<string>;
15
+ GetResourceIconClass(_data: ResourceData): Promise<string>;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<ArchiveRunsResourceComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<ArchiveRunsResourceComponent, "app-archive-runs-resource", never, {}, {}, never, never, false, never>;
18
+ }
19
+ export declare function LoadArchiveRunsResource(): void;
20
+ //# sourceMappingURL=archive-runs-resource.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive-runs-resource.component.d.ts","sourceRoot":"","sources":["../../../src/Archiving/components/archive-runs-resource.component.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAa,aAAa,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;AAElE,qBAOa,4BAA6B,SAAQ,qBAAsB,YAAW,aAAa;IAC5F,eAAe,IAAI,IAAI;IAIjB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5D,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;yCATvD,4BAA4B;2CAA5B,4BAA4B;CAYxC;AAED,wBAAgB,uBAAuB,SAEtC"}
@@ -0,0 +1,46 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ /**
8
+ * @fileoverview Archive Runs Resource Component
9
+ *
10
+ * Dashboard resource wrapper for the "Run History" tab in the Archiving application.
11
+ * Delegates all rendering to the reusable mj-archive-run-viewer component from
12
+ * @memberjunction/ng-archive-manager.
13
+ */
14
+ import { Component } from '@angular/core';
15
+ import { RegisterClass } from '@memberjunction/global';
16
+ import { BaseResourceComponent } from '@memberjunction/ng-shared';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "@memberjunction/ng-archive-manager";
19
+ let ArchiveRunsResourceComponent = class ArchiveRunsResourceComponent extends BaseResourceComponent {
20
+ ngAfterViewInit() {
21
+ this.NotifyLoadComplete();
22
+ }
23
+ async GetResourceDisplayName(_data) {
24
+ return 'Archive Run History';
25
+ }
26
+ async GetResourceIconClass(_data) {
27
+ return 'fa-solid fa-clock-rotate-left';
28
+ }
29
+ static ɵfac = /*@__PURE__*/ (() => { let ɵArchiveRunsResourceComponent_BaseFactory; return function ArchiveRunsResourceComponent_Factory(__ngFactoryType__) { return (ɵArchiveRunsResourceComponent_BaseFactory || (ɵArchiveRunsResourceComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ArchiveRunsResourceComponent)))(__ngFactoryType__ || ArchiveRunsResourceComponent); }; })();
30
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArchiveRunsResourceComponent, selectors: [["app-archive-runs-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 0, template: function ArchiveRunsResourceComponent_Template(rf, ctx) { if (rf & 1) {
31
+ i0.ɵɵelement(0, "mj-archive-run-viewer");
32
+ } }, dependencies: [i1.ArchiveRunViewerComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; width: 100%; overflow: auto; }"] });
33
+ };
34
+ ArchiveRunsResourceComponent = __decorate([
35
+ RegisterClass(BaseResourceComponent, 'ArchiveRunsResource')
36
+ ], ArchiveRunsResourceComponent);
37
+ export { ArchiveRunsResourceComponent };
38
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArchiveRunsResourceComponent, [{
39
+ type: Component,
40
+ args: [{ standalone: false, selector: 'app-archive-runs-resource', template: `<mj-archive-run-viewer></mj-archive-run-viewer>`, styles: [":host { display: block; height: 100%; width: 100%; overflow: auto; }"] }]
41
+ }], null, null); })();
42
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ArchiveRunsResourceComponent, { className: "ArchiveRunsResourceComponent", filePath: "src/Archiving/components/archive-runs-resource.component.ts", lineNumber: 21 }); })();
43
+ export function LoadArchiveRunsResource() {
44
+ // Prevents tree-shaking
45
+ }
46
+ //# sourceMappingURL=archive-runs-resource.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive-runs-resource.component.js","sourceRoot":"","sources":["../../../src/Archiving/components/archive-runs-resource.component.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAiB,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;;AAS3D,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,qBAAqB;IACnE,eAAe;QACX,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,KAAmB;QAC5C,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAAmB;QAC1C,OAAO,+BAA+B,CAAC;IAC3C,CAAC;6RAXQ,4BAA4B,yBAA5B,4BAA4B;6DAA5B,4BAA4B;YAH1B,wCAA+C;;;AAGjD,4BAA4B;IAPxC,aAAa,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;GAO/C,4BAA4B,CAYxC;;iFAZY,4BAA4B;cANxC,SAAS;6BACM,KAAK,YACP,2BAA2B,YAC3B,iDAAiD;;kFAGlD,4BAA4B;AAczC,MAAM,UAAU,uBAAuB;IACnC,wBAAwB;AAC5B,CAAC","sourcesContent":["/**\n * @fileoverview Archive Runs Resource Component\n *\n * Dashboard resource wrapper for the \"Run History\" tab in the Archiving application.\n * Delegates all rendering to the reusable mj-archive-run-viewer component from\n * @memberjunction/ng-archive-manager.\n */\n\nimport { Component, AfterViewInit } from '@angular/core';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\n\n@RegisterClass(BaseResourceComponent, 'ArchiveRunsResource')\n@Component({\n standalone: false,\n selector: 'app-archive-runs-resource',\n template: `<mj-archive-run-viewer></mj-archive-run-viewer>`,\n styles: [`:host { display: block; height: 100%; width: 100%; overflow: auto; }`],\n})\nexport class ArchiveRunsResourceComponent extends BaseResourceComponent implements AfterViewInit {\n ngAfterViewInit(): void {\n this.NotifyLoadComplete();\n }\n\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Archive Run History';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-clock-rotate-left';\n }\n}\n\nexport function LoadArchiveRunsResource() {\n // Prevents tree-shaking\n}\n"]}
@@ -330,7 +330,7 @@ export class MCPConnectionDialogComponent {
330
330
  Name: this.connection.Name,
331
331
  Description: this.connection.Description ?? '',
332
332
  CompanyID: this.connection.CompanyID ?? '',
333
- CredentialID: '', // Would need to load from entity
333
+ CredentialID: this.connection.CredentialID ?? '',
334
334
  AutoSyncTools: this.connection.AutoSyncTools,
335
335
  LogToolCalls: this.connection.LogToolCalls,
336
336
  LogInputParameters: true,
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-connection-dialog.component.js","sourceRoot":"","sources":["../../../src/MCP/components/mcp-connection-dialog.component.ts","../../../src/MCP/components/mcp-connection-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview MCP Connection Dialog Component\n *\n * Dialog for creating and editing MCP server connections.\n */\n\nimport { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Metadata, RunView, CompositeKey } from '@memberjunction/core';\nimport { MJMCPServerConnectionEntity, MJCredentialTypeEntity } from '@memberjunction/core-entities';\nimport { MCPConnectionData, MCPServerData } from '../mcp-dashboard.component';\nimport { CredentialDialogComponent, CredentialDialogResult } from '@memberjunction/ng-credentials';\nimport { UUIDsEqual } from '@memberjunction/global';\n\n/**\n * Dialog result interface\n */\nexport interface ConnectionDialogResult {\n saved: boolean;\n connection?: MCPConnectionData;\n}\n\n/**\n * MCP Connection Dialog Component\n */\n@Component({\n standalone: false,\n selector: 'mj-mcp-connection-dialog',\n templateUrl: './mcp-connection-dialog.component.html',\n styleUrls: ['./mcp-connection-dialog.component.css']\n})\nexport class MCPConnectionDialogComponent implements OnInit, OnChanges {\n\n @ViewChild('credentialDialog') credentialDialog!: CredentialDialogComponent;\n\n @Input() connection: MCPConnectionData | null = null;\n @Input() servers: MCPServerData[] = [];\n @Input() visible = false;\n @Output() close = new EventEmitter<ConnectionDialogResult>();\n\n public connectionForm: FormGroup;\n public credentials: Array<{ ID: string; Name: string }> = [];\n public companies: Array<{ ID: string; Name: string }> = [];\n public credentialTypes: MJCredentialTypeEntity[] = [];\n public IsSaving = false;\n public IsLoadingDropdowns = false;\n public ErrorMessage: string | null = null;\n public ShowCredentialDialog = false;\n\n public get IsEditMode(): boolean {\n return !!this.connection?.ID;\n }\n\n public get DialogTitle(): string {\n return this.IsEditMode ? 'Edit Connection' : 'Add Connection';\n }\n\n public get ActiveServers(): MCPServerData[] {\n return this.servers.filter(s => s.Status === 'Active');\n }\n\n constructor(\n private fb: FormBuilder,\n private cdr: ChangeDetectorRef\n ) {\n this.connectionForm = this.createForm();\n }\n\n ngOnInit(): void {\n this.loadDropdownData();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['connection'] || changes['visible']) {\n if (this.visible) {\n this.initializeForm();\n }\n }\n }\n\n private createForm(): FormGroup {\n return this.fb.group({\n MCPServerID: ['', Validators.required],\n Name: ['', [Validators.required, Validators.maxLength(200)]],\n Description: ['', Validators.maxLength(2000)],\n CompanyID: [''],\n CredentialID: [''],\n AutoSyncTools: [true],\n LogToolCalls: [true],\n LogInputParameters: [true],\n LogOutputContent: [true],\n MaxOutputLogSize: [102400, [Validators.min(0), Validators.max(10485760)]],\n CustomHeaderName: [''],\n EnvironmentVars: [''],\n Status: ['Active']\n });\n }\n\n private initializeForm(): void {\n if (this.connection) {\n this.connectionForm.patchValue({\n MCPServerID: this.connection.MCPServerID,\n Name: this.connection.Name,\n Description: this.connection.Description ?? '',\n CompanyID: this.connection.CompanyID ?? '',\n CredentialID: '', // Would need to load from entity\n AutoSyncTools: this.connection.AutoSyncTools,\n LogToolCalls: this.connection.LogToolCalls,\n LogInputParameters: true,\n LogOutputContent: true,\n MaxOutputLogSize: 102400,\n CustomHeaderName: '',\n EnvironmentVars: '',\n Status: this.connection.Status\n });\n } else {\n this.connectionForm.reset({\n MCPServerID: '',\n Name: '',\n Description: '',\n CompanyID: '',\n CredentialID: '',\n AutoSyncTools: true,\n LogToolCalls: true,\n LogInputParameters: true,\n LogOutputContent: true,\n MaxOutputLogSize: 102400,\n CustomHeaderName: '',\n EnvironmentVars: '',\n Status: 'Active'\n });\n }\n this.ErrorMessage = null;\n this.cdr.detectChanges();\n }\n\n private async loadDropdownData(): Promise<void> {\n this.IsLoadingDropdowns = true;\n try {\n const rv = new RunView();\n // Load credentials, credential types, and companies in parallel\n const [credResult, typeResult, companyResult] = await rv.RunViews([\n {\n EntityName: 'MJ: Credentials',\n Fields: ['ID', 'Name'],\n OrderBy: 'Name',\n ResultType: 'simple'\n },\n {\n EntityName: 'MJ: Credential Types',\n OrderBy: 'Category, Name',\n ResultType: 'entity_object'\n },\n {\n EntityName: 'MJ: Companies',\n Fields: ['ID', 'Name'],\n OrderBy: 'Name',\n ResultType: 'simple'\n }\n ]);\n\n if (credResult.Success) {\n this.credentials = credResult.Results as Array<{ ID: string; Name: string }> || [];\n }\n if (typeResult.Success) {\n this.credentialTypes = typeResult.Results as MJCredentialTypeEntity[] || [];\n }\n if (companyResult.Success) {\n this.companies = companyResult.Results as Array<{ ID: string; Name: string }> || [];\n }\n } catch (error) {\n console.error('Failed to load dropdown data:', error);\n } finally {\n this.IsLoadingDropdowns = false;\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Opens the credential creation dialog\n */\n public openCredentialDialog(): void {\n this.ShowCredentialDialog = true;\n this.cdr.detectChanges();\n }\n\n /**\n * Handles the credential dialog close event\n */\n public onCredentialDialogClose(result: CredentialDialogResult): void {\n this.ShowCredentialDialog = false;\n\n if (result.success && result.credential) {\n // Add the new credential to the list and select it\n this.credentials.push({\n ID: result.credential.ID,\n Name: result.credential.Name\n });\n // Sort credentials by name\n this.credentials.sort((a, b) => a.Name.localeCompare(b.Name));\n // Select the new credential\n this.connectionForm.patchValue({\n CredentialID: result.credential.ID\n });\n }\n\n this.cdr.detectChanges();\n }\n\n public onServerChange(): void {\n const serverId = this.connectionForm.get('MCPServerID')?.value;\n const server = this.servers.find(s => UUIDsEqual(s.ID, serverId));\n if (server && !this.connectionForm.get('Name')?.value) {\n // Auto-fill name based on server\n this.connectionForm.patchValue({\n Name: `${server.Name} Connection`\n });\n }\n }\n\n public async save(): Promise<void> {\n if (this.connectionForm.invalid) {\n this.connectionForm.markAllAsTouched();\n return;\n }\n\n this.IsSaving = true;\n this.ErrorMessage = null;\n this.cdr.detectChanges();\n\n try {\n const md = new Metadata();\n const entity = await md.GetEntityObject<MJMCPServerConnectionEntity>('MJ: MCP Server Connections');\n\n if (this.IsEditMode && this.connection) {\n await entity.InnerLoad(new CompositeKey([{ FieldName: 'ID', Value: this.connection.ID }]));\n } else {\n entity.NewRecord();\n }\n\n // Apply form values\n const formValue = this.connectionForm.value;\n entity.MCPServerID = formValue.MCPServerID;\n entity.Name = formValue.Name;\n entity.Description = formValue.Description || null;\n entity.CompanyID = formValue.CompanyID || null;\n entity.CredentialID = formValue.CredentialID || null;\n entity.AutoSyncTools = formValue.AutoSyncTools;\n entity.LogToolCalls = formValue.LogToolCalls;\n entity.LogInputParameters = formValue.LogInputParameters;\n entity.LogOutputContent = formValue.LogOutputContent;\n entity.MaxOutputLogSize = formValue.MaxOutputLogSize || 102400;\n entity.CustomHeaderName = formValue.CustomHeaderName || null;\n entity.EnvironmentVars = formValue.EnvironmentVars || null;\n entity.Status = formValue.Status;\n\n const saved = await entity.Save();\n if (!saved) {\n // Use CompleteMessage for full error details, fall back to Message\n const errorMessage = entity.LatestResult?.CompleteMessage || entity.LatestResult?.Message || 'Unknown error';\n console.error('MCP Connection save failed:', errorMessage, entity.LatestResult);\n throw new Error(errorMessage);\n }\n\n this.close.emit({ saved: true });\n\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : String(error);\n this.ErrorMessage = `Failed to save: ${errorMsg}`;\n console.error('MCP Connection save error:', errorMsg);\n this.cdr.detectChanges();\n } finally {\n this.IsSaving = false;\n this.cdr.detectChanges();\n }\n }\n\n public cancel(): void {\n this.close.emit({ saved: false });\n }\n\n public hasError(controlName: string, errorType: string): boolean {\n const control = this.connectionForm.get(controlName);\n return control?.hasError(errorType) && control?.touched || false;\n }\n}\n","@if (visible) {\n <mj-dialog\n [Visible]=\"true\"\n [Title]=\"DialogTitle\"\n (Close)=\"cancel()\"\n [Width]=\"600\">\n <form [formGroup]=\"connectionForm\" class=\"connection-form\">\n <!-- Error Message -->\n @if (ErrorMessage) {\n <div class=\"error-banner\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ ErrorMessage }}\n </div>\n }\n <!-- Basic Info Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-info-circle\"></i> Basic Information</h3>\n <div class=\"form-group\">\n <label for=\"server\">MCP Server <span class=\"required\">*</span></label>\n <mj-dropdown\n [Data]=\"ActiveServers\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n [DefaultItem]=\"{ Name: 'Select a server...', ID: '' }\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"connectionForm.get('MCPServerID')?.value\"\n (ValueChange)=\"connectionForm.get('MCPServerID')?.setValue($any($event)); onServerChange()\">\n <ng-template #mjDropdownItem let-dataItem>\n <div class=\"server-option\">\n <span class=\"server-name\">{{ dataItem.Name }}</span>\n @if (dataItem.TransportType) {\n <span class=\"server-transport\">{{ dataItem.TransportType }}</span>\n }\n </div>\n </ng-template>\n </mj-dropdown>\n @if (hasError('MCPServerID', 'required')) {\n <span class=\"error-text\">Server selection is required</span>\n }\n </div>\n <div class=\"form-group\">\n <label for=\"name\">Connection Name <span class=\"required\">*</span></label>\n <input class=\"mj-input\"\n id=\"name\"\n formControlName=\"Name\"\n placeholder=\"e.g., Production GitHub Connection\" />\n @if (hasError('Name', 'required')) {\n <span class=\"error-text\">Name is required</span>\n }\n </div>\n <div class=\"form-group\">\n <label for=\"description\">Description</label>\n <textarea class=\"mj-textarea\"\n id=\"description\"\n formControlName=\"Description\"\n placeholder=\"Optional description of this connection\"\n [rows]=\"3\"></textarea>\n </div>\n <div class=\"form-group\">\n <label for=\"status\">Status</label>\n <mj-dropdown\n [Data]=\"['Active', 'Inactive']\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"connectionForm.get('Status')?.value\"\n (ValueChange)=\"connectionForm.get('Status')?.setValue($any($event))\">\n </mj-dropdown>\n </div>\n <div class=\"form-group\">\n <label for=\"company\">Company</label>\n <mj-dropdown\n [Data]=\"companies\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n [DefaultItem]=\"{ Name: 'Global (all companies)', ID: '' }\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"connectionForm.get('CompanyID')?.value\"\n (ValueChange)=\"connectionForm.get('CompanyID')?.setValue($any($event))\">\n </mj-dropdown>\n <span class=\"hint\">Leave as Global to make this connection available to all companies</span>\n </div>\n </div>\n <!-- Authentication Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-key\"></i> Authentication</h3>\n <div class=\"form-group\">\n <label for=\"credential\">Credential</label>\n @if (IsLoadingDropdowns) {\n <div class=\"loading-credentials\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Loading credentials...\n </div>\n } @else {\n <div class=\"credential-row\">\n <mj-dropdown\n [Data]=\"credentials\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n [DefaultItem]=\"{ Name: 'No credential (anonymous)', ID: '' }\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"connectionForm.get('CredentialID')?.value\"\n (ValueChange)=\"connectionForm.get('CredentialID')?.setValue($any($event))\">\n </mj-dropdown>\n <button mjButton\n type=\"button\"\n variant=\"outline\"\n (click)=\"openCredentialDialog()\"\n title=\"Create New Credential\">\n <i class=\"fa-solid fa-plus\"></i>\n New\n </button>\n </div>\n <span class=\"hint\">Select an existing credential or create a new one</span>\n }\n </div>\n <div class=\"form-group\">\n <label for=\"customHeader\">Custom Header Name</label>\n <input class=\"mj-input\"\n id=\"customHeader\"\n formControlName=\"CustomHeaderName\"\n placeholder=\"e.g., X-Custom-API-Key\" />\n <span class=\"hint\">Override the default header name for API key authentication</span>\n </div>\n </div>\n <!-- Behavior Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-sliders\"></i> Behavior</h3>\n <div class=\"checkbox-group\">\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" class=\"mj-checkbox\" formControlName=\"AutoSyncTools\" />\n <span>Auto-sync tools on connect</span>\n </label>\n <span class=\"hint\">Automatically discover and sync available tools when connecting</span>\n </div>\n </div>\n <!-- Logging Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-file-lines\"></i> Logging</h3>\n <div class=\"checkbox-group\">\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" class=\"mj-checkbox\" formControlName=\"LogToolCalls\" />\n <span>Enable tool call logging</span>\n </label>\n <span class=\"hint\">Log all tool executions to the database</span>\n </div>\n <div class=\"logging-options\" [class.disabled]=\"!connectionForm.get('LogToolCalls')?.value\">\n <div class=\"checkbox-group\">\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" class=\"mj-checkbox\" formControlName=\"LogInputParameters\" />\n <span>Log input parameters</span>\n </label>\n </div>\n <div class=\"checkbox-group\">\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" class=\"mj-checkbox\" formControlName=\"LogOutputContent\" />\n <span>Log output content</span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"maxOutputSize\">Max Output Log Size (bytes)</label>\n <mj-numeric-input\n [Min]=\"0\"\n [Max]=\"10485760\"\n [Step]=\"10240\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"connectionForm.get('MaxOutputLogSize')?.value\"\n (ngModelChange)=\"connectionForm.get('MaxOutputLogSize')?.setValue($event)\">\n </mj-numeric-input>\n <span class=\"hint\">Maximum size of output content to log (0 = unlimited, max 10MB)</span>\n </div>\n </div>\n </div>\n <!-- Advanced Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-gear\"></i> Advanced</h3>\n <div class=\"form-group\">\n <label for=\"envVars\">Environment Variables (JSON)</label>\n <textarea class=\"mj-textarea\"\n id=\"envVars\"\n formControlName=\"EnvironmentVars\"\n placeholder='{\"VAR_NAME\": \"value\"}'\n [rows]=\"3\"></textarea>\n <span class=\"hint\">Additional environment variables for Stdio transport (JSON object)</span>\n </div>\n </div>\n </form>\n <mj-dialog-actions>\n <button mjButton variant=\"primary\" (click)=\"save()\" [disabled]=\"IsSaving\">\n @if (IsSaving) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n {{ IsEditMode ? 'Update' : 'Create' }}\n </button>\n <button mjButton (click)=\"cancel()\">Cancel</button>\n </mj-dialog-actions>\n </mj-dialog>\n}\n\n<!-- Credential Creation Dialog -->\n@if (ShowCredentialDialog) {\n <mj-credential-dialog\n #credentialDialog\n [Visible]=\"ShowCredentialDialog\"\n (close)=\"onCredentialDialogClose($event)\">\n </mj-credential-dialog>\n}\n"]}
1
+ {"version":3,"file":"mcp-connection-dialog.component.js","sourceRoot":"","sources":["../../../src/MCP/components/mcp-connection-dialog.component.ts","../../../src/MCP/components/mcp-connection-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview MCP Connection Dialog Component\n *\n * Dialog for creating and editing MCP server connections.\n */\n\nimport { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Metadata, RunView, CompositeKey } from '@memberjunction/core';\nimport { MJMCPServerConnectionEntity, MJCredentialTypeEntity } from '@memberjunction/core-entities';\nimport { MCPConnectionData, MCPServerData } from '../mcp-dashboard.component';\nimport { CredentialDialogComponent, CredentialDialogResult } from '@memberjunction/ng-credentials';\nimport { UUIDsEqual } from '@memberjunction/global';\n\n/**\n * Dialog result interface\n */\nexport interface ConnectionDialogResult {\n saved: boolean;\n connection?: MCPConnectionData;\n}\n\n/**\n * MCP Connection Dialog Component\n */\n@Component({\n standalone: false,\n selector: 'mj-mcp-connection-dialog',\n templateUrl: './mcp-connection-dialog.component.html',\n styleUrls: ['./mcp-connection-dialog.component.css']\n})\nexport class MCPConnectionDialogComponent implements OnInit, OnChanges {\n\n @ViewChild('credentialDialog') credentialDialog!: CredentialDialogComponent;\n\n @Input() connection: MCPConnectionData | null = null;\n @Input() servers: MCPServerData[] = [];\n @Input() visible = false;\n @Output() close = new EventEmitter<ConnectionDialogResult>();\n\n public connectionForm: FormGroup;\n public credentials: Array<{ ID: string; Name: string }> = [];\n public companies: Array<{ ID: string; Name: string }> = [];\n public credentialTypes: MJCredentialTypeEntity[] = [];\n public IsSaving = false;\n public IsLoadingDropdowns = false;\n public ErrorMessage: string | null = null;\n public ShowCredentialDialog = false;\n\n public get IsEditMode(): boolean {\n return !!this.connection?.ID;\n }\n\n public get DialogTitle(): string {\n return this.IsEditMode ? 'Edit Connection' : 'Add Connection';\n }\n\n public get ActiveServers(): MCPServerData[] {\n return this.servers.filter(s => s.Status === 'Active');\n }\n\n constructor(\n private fb: FormBuilder,\n private cdr: ChangeDetectorRef\n ) {\n this.connectionForm = this.createForm();\n }\n\n ngOnInit(): void {\n this.loadDropdownData();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['connection'] || changes['visible']) {\n if (this.visible) {\n this.initializeForm();\n }\n }\n }\n\n private createForm(): FormGroup {\n return this.fb.group({\n MCPServerID: ['', Validators.required],\n Name: ['', [Validators.required, Validators.maxLength(200)]],\n Description: ['', Validators.maxLength(2000)],\n CompanyID: [''],\n CredentialID: [''],\n AutoSyncTools: [true],\n LogToolCalls: [true],\n LogInputParameters: [true],\n LogOutputContent: [true],\n MaxOutputLogSize: [102400, [Validators.min(0), Validators.max(10485760)]],\n CustomHeaderName: [''],\n EnvironmentVars: [''],\n Status: ['Active']\n });\n }\n\n private initializeForm(): void {\n if (this.connection) {\n this.connectionForm.patchValue({\n MCPServerID: this.connection.MCPServerID,\n Name: this.connection.Name,\n Description: this.connection.Description ?? '',\n CompanyID: this.connection.CompanyID ?? '',\n CredentialID: this.connection.CredentialID ?? '',\n AutoSyncTools: this.connection.AutoSyncTools,\n LogToolCalls: this.connection.LogToolCalls,\n LogInputParameters: true,\n LogOutputContent: true,\n MaxOutputLogSize: 102400,\n CustomHeaderName: '',\n EnvironmentVars: '',\n Status: this.connection.Status\n });\n } else {\n this.connectionForm.reset({\n MCPServerID: '',\n Name: '',\n Description: '',\n CompanyID: '',\n CredentialID: '',\n AutoSyncTools: true,\n LogToolCalls: true,\n LogInputParameters: true,\n LogOutputContent: true,\n MaxOutputLogSize: 102400,\n CustomHeaderName: '',\n EnvironmentVars: '',\n Status: 'Active'\n });\n }\n this.ErrorMessage = null;\n this.cdr.detectChanges();\n }\n\n private async loadDropdownData(): Promise<void> {\n this.IsLoadingDropdowns = true;\n try {\n const rv = new RunView();\n // Load credentials, credential types, and companies in parallel\n const [credResult, typeResult, companyResult] = await rv.RunViews([\n {\n EntityName: 'MJ: Credentials',\n Fields: ['ID', 'Name'],\n OrderBy: 'Name',\n ResultType: 'simple'\n },\n {\n EntityName: 'MJ: Credential Types',\n OrderBy: 'Category, Name',\n ResultType: 'entity_object'\n },\n {\n EntityName: 'MJ: Companies',\n Fields: ['ID', 'Name'],\n OrderBy: 'Name',\n ResultType: 'simple'\n }\n ]);\n\n if (credResult.Success) {\n this.credentials = credResult.Results as Array<{ ID: string; Name: string }> || [];\n }\n if (typeResult.Success) {\n this.credentialTypes = typeResult.Results as MJCredentialTypeEntity[] || [];\n }\n if (companyResult.Success) {\n this.companies = companyResult.Results as Array<{ ID: string; Name: string }> || [];\n }\n } catch (error) {\n console.error('Failed to load dropdown data:', error);\n } finally {\n this.IsLoadingDropdowns = false;\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Opens the credential creation dialog\n */\n public openCredentialDialog(): void {\n this.ShowCredentialDialog = true;\n this.cdr.detectChanges();\n }\n\n /**\n * Handles the credential dialog close event\n */\n public onCredentialDialogClose(result: CredentialDialogResult): void {\n this.ShowCredentialDialog = false;\n\n if (result.success && result.credential) {\n // Add the new credential to the list and select it\n this.credentials.push({\n ID: result.credential.ID,\n Name: result.credential.Name\n });\n // Sort credentials by name\n this.credentials.sort((a, b) => a.Name.localeCompare(b.Name));\n // Select the new credential\n this.connectionForm.patchValue({\n CredentialID: result.credential.ID\n });\n }\n\n this.cdr.detectChanges();\n }\n\n public onServerChange(): void {\n const serverId = this.connectionForm.get('MCPServerID')?.value;\n const server = this.servers.find(s => UUIDsEqual(s.ID, serverId));\n if (server && !this.connectionForm.get('Name')?.value) {\n // Auto-fill name based on server\n this.connectionForm.patchValue({\n Name: `${server.Name} Connection`\n });\n }\n }\n\n public async save(): Promise<void> {\n if (this.connectionForm.invalid) {\n this.connectionForm.markAllAsTouched();\n return;\n }\n\n this.IsSaving = true;\n this.ErrorMessage = null;\n this.cdr.detectChanges();\n\n try {\n const md = new Metadata();\n const entity = await md.GetEntityObject<MJMCPServerConnectionEntity>('MJ: MCP Server Connections');\n\n if (this.IsEditMode && this.connection) {\n await entity.InnerLoad(new CompositeKey([{ FieldName: 'ID', Value: this.connection.ID }]));\n } else {\n entity.NewRecord();\n }\n\n // Apply form values\n const formValue = this.connectionForm.value;\n entity.MCPServerID = formValue.MCPServerID;\n entity.Name = formValue.Name;\n entity.Description = formValue.Description || null;\n entity.CompanyID = formValue.CompanyID || null;\n entity.CredentialID = formValue.CredentialID || null;\n entity.AutoSyncTools = formValue.AutoSyncTools;\n entity.LogToolCalls = formValue.LogToolCalls;\n entity.LogInputParameters = formValue.LogInputParameters;\n entity.LogOutputContent = formValue.LogOutputContent;\n entity.MaxOutputLogSize = formValue.MaxOutputLogSize || 102400;\n entity.CustomHeaderName = formValue.CustomHeaderName || null;\n entity.EnvironmentVars = formValue.EnvironmentVars || null;\n entity.Status = formValue.Status;\n\n const saved = await entity.Save();\n if (!saved) {\n // Use CompleteMessage for full error details, fall back to Message\n const errorMessage = entity.LatestResult?.CompleteMessage || entity.LatestResult?.Message || 'Unknown error';\n console.error('MCP Connection save failed:', errorMessage, entity.LatestResult);\n throw new Error(errorMessage);\n }\n\n this.close.emit({ saved: true });\n\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : String(error);\n this.ErrorMessage = `Failed to save: ${errorMsg}`;\n console.error('MCP Connection save error:', errorMsg);\n this.cdr.detectChanges();\n } finally {\n this.IsSaving = false;\n this.cdr.detectChanges();\n }\n }\n\n public cancel(): void {\n this.close.emit({ saved: false });\n }\n\n public hasError(controlName: string, errorType: string): boolean {\n const control = this.connectionForm.get(controlName);\n return control?.hasError(errorType) && control?.touched || false;\n }\n}\n","@if (visible) {\n <mj-dialog\n [Visible]=\"true\"\n [Title]=\"DialogTitle\"\n (Close)=\"cancel()\"\n [Width]=\"600\">\n <form [formGroup]=\"connectionForm\" class=\"connection-form\">\n <!-- Error Message -->\n @if (ErrorMessage) {\n <div class=\"error-banner\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ ErrorMessage }}\n </div>\n }\n <!-- Basic Info Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-info-circle\"></i> Basic Information</h3>\n <div class=\"form-group\">\n <label for=\"server\">MCP Server <span class=\"required\">*</span></label>\n <mj-dropdown\n [Data]=\"ActiveServers\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n [DefaultItem]=\"{ Name: 'Select a server...', ID: '' }\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"connectionForm.get('MCPServerID')?.value\"\n (ValueChange)=\"connectionForm.get('MCPServerID')?.setValue($any($event)); onServerChange()\">\n <ng-template #mjDropdownItem let-dataItem>\n <div class=\"server-option\">\n <span class=\"server-name\">{{ dataItem.Name }}</span>\n @if (dataItem.TransportType) {\n <span class=\"server-transport\">{{ dataItem.TransportType }}</span>\n }\n </div>\n </ng-template>\n </mj-dropdown>\n @if (hasError('MCPServerID', 'required')) {\n <span class=\"error-text\">Server selection is required</span>\n }\n </div>\n <div class=\"form-group\">\n <label for=\"name\">Connection Name <span class=\"required\">*</span></label>\n <input class=\"mj-input\"\n id=\"name\"\n formControlName=\"Name\"\n placeholder=\"e.g., Production GitHub Connection\" />\n @if (hasError('Name', 'required')) {\n <span class=\"error-text\">Name is required</span>\n }\n </div>\n <div class=\"form-group\">\n <label for=\"description\">Description</label>\n <textarea class=\"mj-textarea\"\n id=\"description\"\n formControlName=\"Description\"\n placeholder=\"Optional description of this connection\"\n [rows]=\"3\"></textarea>\n </div>\n <div class=\"form-group\">\n <label for=\"status\">Status</label>\n <mj-dropdown\n [Data]=\"['Active', 'Inactive']\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"connectionForm.get('Status')?.value\"\n (ValueChange)=\"connectionForm.get('Status')?.setValue($any($event))\">\n </mj-dropdown>\n </div>\n <div class=\"form-group\">\n <label for=\"company\">Company</label>\n <mj-dropdown\n [Data]=\"companies\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n [DefaultItem]=\"{ Name: 'Global (all companies)', ID: '' }\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"connectionForm.get('CompanyID')?.value\"\n (ValueChange)=\"connectionForm.get('CompanyID')?.setValue($any($event))\">\n </mj-dropdown>\n <span class=\"hint\">Leave as Global to make this connection available to all companies</span>\n </div>\n </div>\n <!-- Authentication Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-key\"></i> Authentication</h3>\n <div class=\"form-group\">\n <label for=\"credential\">Credential</label>\n @if (IsLoadingDropdowns) {\n <div class=\"loading-credentials\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Loading credentials...\n </div>\n } @else {\n <div class=\"credential-row\">\n <mj-dropdown\n [Data]=\"credentials\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n [DefaultItem]=\"{ Name: 'No credential (anonymous)', ID: '' }\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"connectionForm.get('CredentialID')?.value\"\n (ValueChange)=\"connectionForm.get('CredentialID')?.setValue($any($event))\">\n </mj-dropdown>\n <button mjButton\n type=\"button\"\n variant=\"outline\"\n (click)=\"openCredentialDialog()\"\n title=\"Create New Credential\">\n <i class=\"fa-solid fa-plus\"></i>\n New\n </button>\n </div>\n <span class=\"hint\">Select an existing credential or create a new one</span>\n }\n </div>\n <div class=\"form-group\">\n <label for=\"customHeader\">Custom Header Name</label>\n <input class=\"mj-input\"\n id=\"customHeader\"\n formControlName=\"CustomHeaderName\"\n placeholder=\"e.g., X-Custom-API-Key\" />\n <span class=\"hint\">Override the default header name for API key authentication</span>\n </div>\n </div>\n <!-- Behavior Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-sliders\"></i> Behavior</h3>\n <div class=\"checkbox-group\">\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" class=\"mj-checkbox\" formControlName=\"AutoSyncTools\" />\n <span>Auto-sync tools on connect</span>\n </label>\n <span class=\"hint\">Automatically discover and sync available tools when connecting</span>\n </div>\n </div>\n <!-- Logging Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-file-lines\"></i> Logging</h3>\n <div class=\"checkbox-group\">\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" class=\"mj-checkbox\" formControlName=\"LogToolCalls\" />\n <span>Enable tool call logging</span>\n </label>\n <span class=\"hint\">Log all tool executions to the database</span>\n </div>\n <div class=\"logging-options\" [class.disabled]=\"!connectionForm.get('LogToolCalls')?.value\">\n <div class=\"checkbox-group\">\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" class=\"mj-checkbox\" formControlName=\"LogInputParameters\" />\n <span>Log input parameters</span>\n </label>\n </div>\n <div class=\"checkbox-group\">\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" class=\"mj-checkbox\" formControlName=\"LogOutputContent\" />\n <span>Log output content</span>\n </label>\n </div>\n <div class=\"form-group\">\n <label for=\"maxOutputSize\">Max Output Log Size (bytes)</label>\n <mj-numeric-input\n [Min]=\"0\"\n [Max]=\"10485760\"\n [Step]=\"10240\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"connectionForm.get('MaxOutputLogSize')?.value\"\n (ngModelChange)=\"connectionForm.get('MaxOutputLogSize')?.setValue($event)\">\n </mj-numeric-input>\n <span class=\"hint\">Maximum size of output content to log (0 = unlimited, max 10MB)</span>\n </div>\n </div>\n </div>\n <!-- Advanced Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-gear\"></i> Advanced</h3>\n <div class=\"form-group\">\n <label for=\"envVars\">Environment Variables (JSON)</label>\n <textarea class=\"mj-textarea\"\n id=\"envVars\"\n formControlName=\"EnvironmentVars\"\n placeholder='{\"VAR_NAME\": \"value\"}'\n [rows]=\"3\"></textarea>\n <span class=\"hint\">Additional environment variables for Stdio transport (JSON object)</span>\n </div>\n </div>\n </form>\n <mj-dialog-actions>\n <button mjButton variant=\"primary\" (click)=\"save()\" [disabled]=\"IsSaving\">\n @if (IsSaving) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n {{ IsEditMode ? 'Update' : 'Create' }}\n </button>\n <button mjButton (click)=\"cancel()\">Cancel</button>\n </mj-dialog-actions>\n </mj-dialog>\n}\n\n<!-- Credential Creation Dialog -->\n@if (ShowCredentialDialog) {\n <mj-credential-dialog\n #credentialDialog\n [Visible]=\"ShowCredentialDialog\"\n (close)=\"onCredentialDialogClose($event)\">\n </mj-credential-dialog>\n}\n"]}
@@ -49,6 +49,7 @@ export interface MCPConnectionData {
49
49
  Description: string | null;
50
50
  Status: string;
51
51
  CompanyID: string | null;
52
+ CredentialID: string | null;
52
53
  AutoSyncTools: boolean;
53
54
  LogToolCalls: boolean;
54
55
  LastConnectedAt: Date | null;
@@ -77,6 +78,19 @@ export interface MCPServerGroup {
77
78
  tools: MCPToolData[];
78
79
  expanded: boolean;
79
80
  }
81
+ /**
82
+ * MCP tool summary returned by paginated GraphQL query (Part 3.2 scale path).
83
+ * Omits heavy fields like InputSchema so thousands of rows stay light.
84
+ */
85
+ export interface MCPToolSummary {
86
+ ID: string;
87
+ MCPServerID: string;
88
+ ToolName: string;
89
+ ToolTitle: string | null;
90
+ ToolDescription: string | null;
91
+ Status: string;
92
+ ServerName: string | null;
93
+ }
80
94
  /**
81
95
  * Tools view mode
82
96
  */
@@ -114,6 +128,14 @@ export interface MCPDashboardFilters {
114
128
  connectionStatus: string;
115
129
  toolStatus: string;
116
130
  logStatus: string;
131
+ /** Part 3.3 — tools tab server filter (ID of selected server, or 'all') */
132
+ toolsServer?: string;
133
+ /** Part 3.3 — tools tab category filter (derived from snake_case ToolName prefix, or 'all') */
134
+ toolsCategory?: string;
135
+ /** Part 3.6 — restrict Tools tab to favorited tools only */
136
+ favoritesOnly?: boolean;
137
+ /** Part 3.3 — restrict Tools tab to tools that appear in recent execution logs */
138
+ recentOnly?: boolean;
117
139
  }
118
140
  /**
119
141
  * Dashboard statistics
@@ -132,6 +154,14 @@ export interface MCPDashboardStats {
132
154
  * Active tab type
133
155
  */
134
156
  export type MCPDashboardTab = 'servers' | 'connections' | 'tools' | 'logs';
157
+ /** Parameter config for the inline test tool form */
158
+ interface TestParamConfig {
159
+ name: string;
160
+ type: string;
161
+ description: string;
162
+ required: boolean;
163
+ enumValues: unknown[];
164
+ }
135
165
  /**
136
166
  * MCP Management Dashboard Component
137
167
  *
@@ -156,6 +186,32 @@ export declare class MCPDashboardComponent extends BaseDashboard implements OnIn
156
186
  filteredConnections: MCPConnectionData[];
157
187
  filteredTools: MCPToolData[];
158
188
  filteredLogs: MCPExecutionLogData[];
189
+ /** Part 3.2 — paginated tools (scales to thousands). Appended as user scrolls. */
190
+ pagedTools: MCPToolSummary[];
191
+ toolsTotalCount: number;
192
+ toolsLoading: boolean;
193
+ toolsSkip: number;
194
+ toolsPageSize: number;
195
+ useScalablePagination: boolean;
196
+ /** Part 3.6 — favorited tool IDs for the current user. */
197
+ favoritedToolIDs: Set<string>;
198
+ /** Part 3.5 — Test dialog search string for tool combobox-style filter */
199
+ TestToolSearch: string;
200
+ /** Part 3.3 — derived data for the filter panel */
201
+ toolsAvailableServers: Array<{
202
+ ID: string;
203
+ Name: string;
204
+ }>;
205
+ toolsAvailableCategories: Array<{
206
+ category: string;
207
+ count: number;
208
+ }>;
209
+ /** Part 3.4 — tool counts from GetMCPToolCounts (global, respects search) */
210
+ toolsGlobalCount: number;
211
+ /** Per-server tool count map used for "(N tools)" badge on group headers */
212
+ toolCountByServer: Record<string, number>;
213
+ /** Part 3.4 — auto-collapse threshold for server groups */
214
+ readonly AUTO_COLLAPSE_THRESHOLD = 100;
159
215
  stats: MCPDashboardStats;
160
216
  ActiveTab: MCPDashboardTab;
161
217
  IsLoading: boolean;
@@ -166,9 +222,53 @@ export declare class MCPDashboardComponent extends BaseDashboard implements OnIn
166
222
  ShowTestToolDialog: boolean;
167
223
  EditingServer: MCPServerData | null;
168
224
  EditingConnection: MCPConnectionData | null;
225
+ ServerForm: {
226
+ Name: string;
227
+ Description: string;
228
+ TransportType: string;
229
+ ServerURL: string;
230
+ Command: string;
231
+ DefaultAuthType: string;
232
+ Status: string;
233
+ RateLimitPerMinute: number | null;
234
+ RateLimitPerHour: number | null;
235
+ RequestTimeoutMs: number;
236
+ };
237
+ ServerFormSaving: boolean;
238
+ ServerFormError: string | null;
239
+ readonly TransportTypes: {
240
+ value: string;
241
+ label: string;
242
+ }[];
243
+ readonly AuthTypes: {
244
+ value: string;
245
+ label: string;
246
+ }[];
247
+ ConnectionForm: {
248
+ MCPServerID: string;
249
+ Name: string;
250
+ Description: string;
251
+ BearerToken: string;
252
+ Status: string;
253
+ };
254
+ ConnectionFormSaving: boolean;
255
+ ConnectionFormError: string | null;
256
+ TestStep: 'select' | 'configure' | 'results';
169
257
  TestToolServerID: string | null;
170
258
  TestToolConnectionID: string | null;
171
259
  TestToolID: string | null;
260
+ TestFilteredConnections: MCPConnectionData[];
261
+ TestFilteredTools: MCPToolData[];
262
+ TestSelectedTool: MCPToolData | null;
263
+ TestParamConfigs: TestParamConfig[];
264
+ TestParamValues: Record<string, string>;
265
+ TestIsExecuting: boolean;
266
+ TestExecutionResult: {
267
+ Success: boolean;
268
+ ErrorMessage?: string;
269
+ Result?: string;
270
+ DurationMs?: number;
271
+ } | null;
172
272
  ShowLogDetailPanel: boolean;
173
273
  SelectedLog: MCPExecutionLogData | null;
174
274
  ExpandedServerID: string | null;
@@ -253,6 +353,16 @@ export declare class MCPDashboardComponent extends BaseDashboard implements OnIn
253
353
  * Handle filter changes from the filter panel component
254
354
  */
255
355
  onFiltersChange(filters: MCPDashboardFilters): void;
356
+ /** Inlined filter panel — single-field update helper */
357
+ onFilterFieldChange(field: keyof MCPDashboardFilters, value: unknown): void;
358
+ /** Count of non-default filter dimensions, used for "Filters (N)" badge */
359
+ activeFilterCount(): number;
360
+ /** Derive category list (snake_case prefix) + counts from the currently loaded tools. */
361
+ computeCategoriesFromTools(): Array<{
362
+ category: string;
363
+ count: number;
364
+ }>;
365
+ resetAllFilters(): void;
256
366
  /**
257
367
  * Get the current filtered count based on active tab
258
368
  */
@@ -288,7 +398,11 @@ export declare class MCPDashboardComponent extends BaseDashboard implements OnIn
288
398
  onServerDialogClose(result: {
289
399
  saved: boolean;
290
400
  }): Promise<void>;
401
+ cancelServerForm(): void;
402
+ saveServerForm(): Promise<void>;
291
403
  createConnection(): void;
404
+ cancelConnectionForm(): void;
405
+ saveConnectionForm(): Promise<void>;
292
406
  editConnection(connection: MCPConnectionData): void;
293
407
  deleteConnection(connection: MCPConnectionData): Promise<void>;
294
408
  onConnectionDialogClose(result: {
@@ -334,6 +448,61 @@ export declare class MCPDashboardComponent extends BaseDashboard implements OnIn
334
448
  * Close Test Tool dialog
335
449
  */
336
450
  onTestToolDialogClose(): void;
451
+ private testUpdateFilteredLists;
452
+ onTestServerChange(value: string): void;
453
+ onTestConnectionChange(value: string): void;
454
+ onTestToolSelectChange(value: string): void;
455
+ get TestCanProceed(): boolean;
456
+ testProceedToConfig(): void;
457
+ private testParseSchema;
458
+ testSetParam(name: string, value: string): void;
459
+ get TestIsValid(): boolean;
460
+ testExecuteTool(): Promise<void>;
461
+ testGoBack(): void;
462
+ testRunAgain(): void;
463
+ testCloseDialog(): void;
464
+ formatTestResult(result: unknown): string;
465
+ /**
466
+ * Part 3.2 — loads a page of tools via the paginated resolver.
467
+ * Uses the same GraphQLDataProvider + gql pattern as testExecuteTool above.
468
+ */
469
+ loadToolsPage(reset?: boolean): Promise<void>;
470
+ onToolsScrolledIndexChange(index: number): void;
471
+ /** Native-scroll infinite-load: triggers next page when user nears the bottom */
472
+ onToolsScrollNative(event: Event): void;
473
+ toggleScalableMode(enabled: boolean): void;
474
+ /**
475
+ * Part 3.4 — fetch global + per-server + per-category counts (used for badges
476
+ * and to populate the category filter dropdown). Respects current search filter.
477
+ */
478
+ loadToolCounts(): Promise<void>;
479
+ /** Part 3.4 — returns tool count for a server (falls back to ServerGroups length for legacy view) */
480
+ getServerToolCount(serverID: string): number;
481
+ trackPagedTool(_index: number, tool: MCPToolSummary): string;
482
+ /** Part 3.6 — Scale mode display. When a client-side filter (Favorites/Recently-used) is active,
483
+ * bypass server pagination and filter the fully-loaded local `this.tools` list so the filter
484
+ * considers ALL tools, not just the current 50-row page. */
485
+ get visiblePagedTools(): MCPToolSummary[];
486
+ /** Scale-mode denominator. In bypass-pagination mode (favorites/recent filters), the user
487
+ * sees the fully filtered local list, so the "of N" reflects that filtered total.
488
+ * Otherwise we show the server-side total for the current query. */
489
+ scaleDenominator(): number;
490
+ /** Part 3.5 — recently used tool IDs derived from execution logs (dedup, max 5) */
491
+ get TestRecentToolIDs(): string[];
492
+ /** Part 3.5 — Test dialog combobox: filtered tools with recent-first ordering */
493
+ get TestComboboxTools(): MCPToolData[];
494
+ isRecentTestTool(toolID: string): boolean;
495
+ onTestToolSearchChange(value: string): void;
496
+ pickTestTool(toolID: string): void;
497
+ /**
498
+ * Part 3.6 — load the current user's favorited tool IDs.
499
+ */
500
+ loadFavorites(): Promise<void>;
501
+ isFavorited(toolID: string): boolean;
502
+ /** Part 3.3 — set of tool IDs seen in recent execution logs (last N unique). */
503
+ recentToolIDSet(): Set<string>;
504
+ toggleFavorite(toolID: string, event?: Event): Promise<void>;
505
+ formatLogJson(value: string | null | undefined): string;
337
506
  /**
338
507
  * Parse and return input schema as formatted JSON
339
508
  */
@@ -444,4 +613,5 @@ export declare class MCPDashboardComponent extends BaseDashboard implements OnIn
444
613
  static ɵfac: i0.ɵɵFactoryDeclaration<MCPDashboardComponent, never>;
445
614
  static ɵcmp: i0.ɵɵComponentDeclaration<MCPDashboardComponent, "mj-mcp-dashboard", never, {}, {}, never, never, false, never>;
446
615
  }
616
+ export {};
447
617
  //# sourceMappingURL=mcp-dashboard.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/MCP/mcp-dashboard.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/MCP/mcp-dashboard.component.ts"],"names":[],"mappings":"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"}