@memberjunction/ng-dashboards 5.22.0 → 5.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -0
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +364 -362
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.js +2 -2
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +947 -64
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +7645 -430
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +285 -6
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +2454 -277
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +191 -197
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.js +9 -8
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +305 -299
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +319 -313
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +20 -2
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +419 -232
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.js +10 -12
- package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.js +13 -19
- package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.js +12 -14
- package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.js +61 -68
- package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.js +10 -11
- package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
- package/dist/Actions/components/actions-list-view.component.js +82 -96
- package/dist/Actions/components/actions-list-view.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +130 -134
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/categories-list-view.component.js +40 -46
- package/dist/Actions/components/categories-list-view.component.js.map +1 -1
- package/dist/Actions/components/code-management.component.js +2 -2
- package/dist/Actions/components/code-management.component.js.map +1 -1
- package/dist/Actions/components/entity-integration.component.js +2 -2
- package/dist/Actions/components/entity-integration.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +127 -132
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/executions-list-view.component.js +2 -2
- package/dist/Actions/components/executions-list-view.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.js +11 -17
- package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +5 -11
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-list-item.component.js +8 -10
- package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-toolbar.component.js +112 -133
- package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-tree-panel.component.js +63 -83
- package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.js +17 -21
- package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.js +17 -21
- package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
- package/dist/Actions/components/scheduled-actions.component.js +2 -2
- package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
- package/dist/Actions/components/security-permissions.component.js +2 -2
- package/dist/Actions/components/security-permissions.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +13 -5
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +168 -145
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts +4 -5
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js +197 -200
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts +5 -7
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +142 -148
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/browser/component-browser.component.js +153 -166
- package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +15 -20
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +16 -21
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/requirements-editor.component.js +18 -23
- package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/spec-editor.component.js +25 -30
- package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +10 -11
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +24 -35
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/text-import-dialog.component.js +15 -17
- package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +7 -6
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +6 -5
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +7 -6
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js +9 -9
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +17 -17
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.js +4 -4
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +1 -0
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +5 -4
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +247 -259
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.d.ts.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +1 -0
- package/dist/Integration/components/overview/overview.component.js.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.js +1 -0
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.d.ts.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.js +1 -0
- package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
- package/dist/Integration/components/widgets/integration-card.component.js +7 -9
- package/dist/Integration/components/widgets/integration-card.component.js.map +1 -1
- package/dist/Integration/integration.module.d.ts +6 -10
- package/dist/Integration/integration.module.d.ts.map +1 -1
- package/dist/Integration/integration.module.js +12 -20
- package/dist/Integration/integration.module.js.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts +411 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +4266 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +140 -0
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +780 -0
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +8 -2
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +246 -195
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +75 -0
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +601 -0
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts +93 -12
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js +637 -107
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/index.d.ts +3 -0
- package/dist/KnowledgeHub/index.d.ts.map +1 -1
- package/dist/KnowledgeHub/index.js +3 -0
- package/dist/KnowledgeHub/index.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +9 -7
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +5 -4
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +10 -9
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.js +141 -132
- package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-log-detail-panel.component.js +4 -4
- package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +141 -128
- package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-test-tool-dialog.component.js +210 -218
- package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +2 -2
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/MCP/mcp.module.d.ts +6 -9
- package/dist/MCP/mcp.module.d.ts.map +1 -1
- package/dist/MCP/mcp.module.js +20 -22
- package/dist/MCP/mcp.module.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +5 -4
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +6 -5
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +93 -92
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +9 -10
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/__tests__/analytics-resource.test.d.ts +2 -0
- package/dist/__tests__/analytics-resource.test.d.ts.map +1 -0
- package/dist/__tests__/analytics-resource.test.js +181 -0
- package/dist/__tests__/analytics-resource.test.js.map +1 -0
- package/dist/__tests__/scheduling.test.d.ts +2 -0
- package/dist/__tests__/scheduling.test.d.ts.map +1 -0
- package/dist/__tests__/scheduling.test.js +205 -0
- package/dist/__tests__/scheduling.test.js.map +1 -0
- package/dist/actions-dashboards.module.d.ts +8 -13
- package/dist/actions-dashboards.module.d.ts.map +1 -1
- package/dist/actions-dashboards.module.js +6 -27
- package/dist/actions-dashboards.module.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +20 -20
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +43 -44
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +4 -8
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +0 -19
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/component-studio-dashboards.module.d.ts +7 -11
- package/dist/component-studio-dashboards.module.d.ts.map +1 -1
- package/dist/component-studio-dashboards.module.js +22 -34
- package/dist/component-studio-dashboards.module.js.map +1 -1
- package/dist/core-dashboards.module.d.ts +12 -18
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +15 -31
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/credentials-dashboards.module.d.ts +5 -8
- package/dist/credentials-dashboards.module.d.ts.map +1 -1
- package/dist/credentials-dashboards.module.js +3 -19
- package/dist/credentials-dashboards.module.js.map +1 -1
- package/dist/data-explorer-dashboards.module.d.ts +7 -13
- package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
- package/dist/data-explorer-dashboards.module.js +0 -27
- package/dist/data-explorer-dashboards.module.js.map +1 -1
- package/dist/lists-dashboards.module.d.ts +5 -8
- package/dist/lists-dashboards.module.d.ts.map +1 -1
- package/dist/lists-dashboards.module.js +3 -19
- package/dist/lists-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +2 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +2 -0
- package/dist/public-api.js.map +1 -1
- package/dist/scheduling-dashboards.module.d.ts +6 -10
- package/dist/scheduling-dashboards.module.d.ts.map +1 -1
- package/dist/scheduling-dashboards.module.js +3 -23
- package/dist/scheduling-dashboards.module.js.map +1 -1
- package/dist/shared/entity-field-display.d.ts +44 -0
- package/dist/shared/entity-field-display.d.ts.map +1 -0
- package/dist/shared/entity-field-display.js +118 -0
- package/dist/shared/entity-field-display.js.map +1 -0
- package/dist/testing-dashboards.module.d.ts +7 -13
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +0 -27
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +48 -55
|
@@ -9,19 +9,17 @@ import { Metadata, RunView, CompositeKey } from '@memberjunction/core';
|
|
|
9
9
|
import { UUIDsEqual } from '@memberjunction/global';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
import * as i1 from "@angular/forms";
|
|
12
|
-
import * as i2 from "@
|
|
13
|
-
import * as i3 from "@
|
|
14
|
-
import * as i4 from "@progress/kendo-angular-dropdowns";
|
|
15
|
-
import * as i5 from "@progress/kendo-angular-inputs";
|
|
16
|
-
import * as i6 from "@memberjunction/ng-credentials";
|
|
12
|
+
import * as i2 from "@memberjunction/ng-ui-components";
|
|
13
|
+
import * as i3 from "@memberjunction/ng-credentials";
|
|
17
14
|
const _c0 = ["credentialDialog"];
|
|
18
15
|
const _c1 = () => ({ Name: "Select a server...", ID: "" });
|
|
19
|
-
const _c2 = () =>
|
|
20
|
-
const _c3 = () =>
|
|
21
|
-
const _c4 = () => ({ Name: "
|
|
16
|
+
const _c2 = () => ({ standalone: true });
|
|
17
|
+
const _c3 = () => ["Active", "Inactive"];
|
|
18
|
+
const _c4 = () => ({ Name: "Global (all companies)", ID: "" });
|
|
19
|
+
const _c5 = () => ({ Name: "No credential (anonymous)", ID: "" });
|
|
22
20
|
function MCPConnectionDialogComponent_Conditional_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
-
i0.ɵɵelementStart(0, "div",
|
|
24
|
-
i0.ɵɵelement(1, "i",
|
|
21
|
+
i0.ɵɵelementStart(0, "div", 6);
|
|
22
|
+
i0.ɵɵelement(1, "i", 44);
|
|
25
23
|
i0.ɵɵtext(2);
|
|
26
24
|
i0.ɵɵelementEnd();
|
|
27
25
|
} if (rf & 2) {
|
|
@@ -30,7 +28,7 @@ function MCPConnectionDialogComponent_Conditional_0_Conditional_2_Template(rf, c
|
|
|
30
28
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.ErrorMessage, " ");
|
|
31
29
|
} }
|
|
32
30
|
function MCPConnectionDialogComponent_Conditional_0_ng_template_13_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
33
|
-
i0.ɵɵelementStart(0, "span",
|
|
31
|
+
i0.ɵɵelementStart(0, "span", 47);
|
|
34
32
|
i0.ɵɵtext(1);
|
|
35
33
|
i0.ɵɵelementEnd();
|
|
36
34
|
} if (rf & 2) {
|
|
@@ -39,10 +37,10 @@ function MCPConnectionDialogComponent_Conditional_0_ng_template_13_Conditional_3
|
|
|
39
37
|
i0.ɵɵtextInterpolate(dataItem_r3.TransportType);
|
|
40
38
|
} }
|
|
41
39
|
function MCPConnectionDialogComponent_Conditional_0_ng_template_13_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
-
i0.ɵɵelementStart(0, "div",
|
|
40
|
+
i0.ɵɵelementStart(0, "div", 45)(1, "span", 46);
|
|
43
41
|
i0.ɵɵtext(2);
|
|
44
42
|
i0.ɵɵelementEnd();
|
|
45
|
-
i0.ɵɵconditionalCreate(3, MCPConnectionDialogComponent_Conditional_0_ng_template_13_Conditional_3_Template, 2, 1, "span",
|
|
43
|
+
i0.ɵɵconditionalCreate(3, MCPConnectionDialogComponent_Conditional_0_ng_template_13_Conditional_3_Template, 2, 1, "span", 47);
|
|
46
44
|
i0.ɵɵelementEnd();
|
|
47
45
|
} if (rf & 2) {
|
|
48
46
|
const dataItem_r3 = ctx.$implicit;
|
|
@@ -51,203 +49,214 @@ function MCPConnectionDialogComponent_Conditional_0_ng_template_13_Template(rf,
|
|
|
51
49
|
i0.ɵɵadvance();
|
|
52
50
|
i0.ɵɵconditional(dataItem_r3.TransportType ? 3 : -1);
|
|
53
51
|
} }
|
|
54
|
-
function
|
|
52
|
+
function MCPConnectionDialogComponent_Conditional_0_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
55
53
|
i0.ɵɵelementStart(0, "span", 13);
|
|
56
54
|
i0.ɵɵtext(1, "Server selection is required");
|
|
57
55
|
i0.ɵɵelementEnd();
|
|
58
56
|
} }
|
|
59
|
-
function
|
|
57
|
+
function MCPConnectionDialogComponent_Conditional_0_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
60
58
|
i0.ɵɵelementStart(0, "span", 13);
|
|
61
59
|
i0.ɵɵtext(1, "Name is required");
|
|
62
60
|
i0.ɵɵelementEnd();
|
|
63
61
|
} }
|
|
64
|
-
function
|
|
65
|
-
i0.ɵɵelementStart(0, "div",
|
|
66
|
-
i0.ɵɵelement(1, "i",
|
|
62
|
+
function MCPConnectionDialogComponent_Conditional_0_Conditional_44_Template(rf, ctx) { if (rf & 1) {
|
|
63
|
+
i0.ɵɵelementStart(0, "div", 24);
|
|
64
|
+
i0.ɵɵelement(1, "i", 42);
|
|
67
65
|
i0.ɵɵtext(2, " Loading credentials... ");
|
|
68
66
|
i0.ɵɵelementEnd();
|
|
69
67
|
} }
|
|
70
|
-
function
|
|
68
|
+
function MCPConnectionDialogComponent_Conditional_0_Conditional_45_Template(rf, ctx) { if (rf & 1) {
|
|
71
69
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
72
|
-
i0.ɵɵelementStart(0, "div",
|
|
73
|
-
i0.ɵɵ
|
|
74
|
-
i0.ɵɵ
|
|
75
|
-
i0.ɵɵ
|
|
76
|
-
i0.ɵɵ
|
|
70
|
+
i0.ɵɵelementStart(0, "div", 48)(1, "mj-dropdown", 12);
|
|
71
|
+
i0.ɵɵlistener("ValueChange", function MCPConnectionDialogComponent_Conditional_0_Conditional_45_Template_mj_dropdown_ValueChange_1_listener($event) { let tmp_4_0; i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((tmp_4_0 = ctx_r1.connectionForm.get("CredentialID")) == null ? null : tmp_4_0.setValue($event)); });
|
|
72
|
+
i0.ɵɵelementEnd();
|
|
73
|
+
i0.ɵɵelementStart(2, "button", 49);
|
|
74
|
+
i0.ɵɵlistener("click", function MCPConnectionDialogComponent_Conditional_0_Conditional_45_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openCredentialDialog()); });
|
|
75
|
+
i0.ɵɵelement(3, "i", 50);
|
|
77
76
|
i0.ɵɵtext(4, " New ");
|
|
78
77
|
i0.ɵɵelementEnd()();
|
|
79
|
-
i0.ɵɵelementStart(5, "span",
|
|
78
|
+
i0.ɵɵelementStart(5, "span", 21);
|
|
80
79
|
i0.ɵɵtext(6, "Select an existing credential or create a new one");
|
|
81
80
|
i0.ɵɵelementEnd();
|
|
82
81
|
} if (rf & 2) {
|
|
82
|
+
let tmp_7_0;
|
|
83
83
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
84
84
|
i0.ɵɵadvance();
|
|
85
|
-
i0.ɵɵproperty("
|
|
85
|
+
i0.ɵɵproperty("Data", ctx_r1.credentials)("ValuePrimitive", true)("DefaultItem", i0.ɵɵpureFunction0(5, _c5))("ngModelOptions", i0.ɵɵpureFunction0(6, _c2))("ngModel", (tmp_7_0 = ctx_r1.connectionForm.get("CredentialID")) == null ? null : tmp_7_0.value);
|
|
86
86
|
} }
|
|
87
|
-
function
|
|
88
|
-
i0.ɵɵelement(0, "i",
|
|
87
|
+
function MCPConnectionDialogComponent_Conditional_0_Conditional_103_Template(rf, ctx) { if (rf & 1) {
|
|
88
|
+
i0.ɵɵelement(0, "i", 42);
|
|
89
89
|
} }
|
|
90
90
|
function MCPConnectionDialogComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
91
91
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
92
|
-
i0.ɵɵelementStart(0, "
|
|
93
|
-
i0.ɵɵlistener("
|
|
94
|
-
i0.ɵɵelementStart(1, "form",
|
|
95
|
-
i0.ɵɵconditionalCreate(2, MCPConnectionDialogComponent_Conditional_0_Conditional_2_Template, 3, 1, "div",
|
|
96
|
-
i0.ɵɵelementStart(3, "div",
|
|
97
|
-
i0.ɵɵelement(5, "i",
|
|
92
|
+
i0.ɵɵelementStart(0, "mj-dialog", 4);
|
|
93
|
+
i0.ɵɵlistener("Close", function MCPConnectionDialogComponent_Conditional_0_Template_mj_dialog_Close_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancel()); });
|
|
94
|
+
i0.ɵɵelementStart(1, "form", 5);
|
|
95
|
+
i0.ɵɵconditionalCreate(2, MCPConnectionDialogComponent_Conditional_0_Conditional_2_Template, 3, 1, "div", 6);
|
|
96
|
+
i0.ɵɵelementStart(3, "div", 7)(4, "h3");
|
|
97
|
+
i0.ɵɵelement(5, "i", 8);
|
|
98
98
|
i0.ɵɵtext(6, " Basic Information");
|
|
99
99
|
i0.ɵɵelementEnd();
|
|
100
|
-
i0.ɵɵelementStart(7, "div",
|
|
100
|
+
i0.ɵɵelementStart(7, "div", 9)(8, "label", 10);
|
|
101
101
|
i0.ɵɵtext(9, "MCP Server ");
|
|
102
|
-
i0.ɵɵelementStart(10, "span",
|
|
102
|
+
i0.ɵɵelementStart(10, "span", 11);
|
|
103
103
|
i0.ɵɵtext(11, "*");
|
|
104
104
|
i0.ɵɵelementEnd()();
|
|
105
|
-
i0.ɵɵelementStart(12, "
|
|
106
|
-
i0.ɵɵlistener("
|
|
107
|
-
i0.ɵɵtemplate(13, MCPConnectionDialogComponent_Conditional_0_ng_template_13_Template, 4, 2, "ng-template",
|
|
105
|
+
i0.ɵɵelementStart(12, "mj-dropdown", 12);
|
|
106
|
+
i0.ɵɵlistener("ValueChange", function MCPConnectionDialogComponent_Conditional_0_Template_mj_dropdown_ValueChange_12_listener($event) { let tmp_3_0; i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); (tmp_3_0 = ctx_r1.connectionForm.get("MCPServerID")) == null ? null : tmp_3_0.setValue($event); return i0.ɵɵresetView(ctx_r1.onServerChange()); });
|
|
107
|
+
i0.ɵɵtemplate(13, MCPConnectionDialogComponent_Conditional_0_ng_template_13_Template, 4, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
108
108
|
i0.ɵɵelementEnd();
|
|
109
|
-
i0.ɵɵconditionalCreate(
|
|
109
|
+
i0.ɵɵconditionalCreate(15, MCPConnectionDialogComponent_Conditional_0_Conditional_15_Template, 2, 0, "span", 13);
|
|
110
110
|
i0.ɵɵelementEnd();
|
|
111
|
-
i0.ɵɵelementStart(
|
|
112
|
-
i0.ɵɵtext(
|
|
113
|
-
i0.ɵɵelementStart(
|
|
114
|
-
i0.ɵɵtext(
|
|
111
|
+
i0.ɵɵelementStart(16, "div", 9)(17, "label", 14);
|
|
112
|
+
i0.ɵɵtext(18, "Connection Name ");
|
|
113
|
+
i0.ɵɵelementStart(19, "span", 11);
|
|
114
|
+
i0.ɵɵtext(20, "*");
|
|
115
115
|
i0.ɵɵelementEnd()();
|
|
116
|
-
i0.ɵɵelement(
|
|
117
|
-
i0.ɵɵconditionalCreate(
|
|
116
|
+
i0.ɵɵelement(21, "input", 15);
|
|
117
|
+
i0.ɵɵconditionalCreate(22, MCPConnectionDialogComponent_Conditional_0_Conditional_22_Template, 2, 0, "span", 13);
|
|
118
118
|
i0.ɵɵelementEnd();
|
|
119
|
-
i0.ɵɵelementStart(
|
|
120
|
-
i0.ɵɵtext(
|
|
119
|
+
i0.ɵɵelementStart(23, "div", 9)(24, "label", 16);
|
|
120
|
+
i0.ɵɵtext(25, "Description");
|
|
121
121
|
i0.ɵɵelementEnd();
|
|
122
|
-
i0.ɵɵelement(
|
|
122
|
+
i0.ɵɵelement(26, "textarea", 17);
|
|
123
123
|
i0.ɵɵelementEnd();
|
|
124
|
-
i0.ɵɵelementStart(
|
|
125
|
-
i0.ɵɵtext(
|
|
124
|
+
i0.ɵɵelementStart(27, "div", 9)(28, "label", 18);
|
|
125
|
+
i0.ɵɵtext(29, "Status");
|
|
126
126
|
i0.ɵɵelementEnd();
|
|
127
|
-
i0.ɵɵ
|
|
127
|
+
i0.ɵɵelementStart(30, "mj-dropdown", 19);
|
|
128
|
+
i0.ɵɵlistener("ValueChange", function MCPConnectionDialogComponent_Conditional_0_Template_mj_dropdown_ValueChange_30_listener($event) { let tmp_3_0; i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView((tmp_3_0 = ctx_r1.connectionForm.get("Status")) == null ? null : tmp_3_0.setValue($event)); });
|
|
129
|
+
i0.ɵɵelementEnd()();
|
|
130
|
+
i0.ɵɵelementStart(31, "div", 9)(32, "label", 20);
|
|
131
|
+
i0.ɵɵtext(33, "Company");
|
|
128
132
|
i0.ɵɵelementEnd();
|
|
129
|
-
i0.ɵɵelementStart(
|
|
130
|
-
i0.ɵɵ
|
|
133
|
+
i0.ɵɵelementStart(34, "mj-dropdown", 12);
|
|
134
|
+
i0.ɵɵlistener("ValueChange", function MCPConnectionDialogComponent_Conditional_0_Template_mj_dropdown_ValueChange_34_listener($event) { let tmp_3_0; i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView((tmp_3_0 = ctx_r1.connectionForm.get("CompanyID")) == null ? null : tmp_3_0.setValue($event)); });
|
|
131
135
|
i0.ɵɵelementEnd();
|
|
132
|
-
i0.ɵɵ
|
|
133
|
-
i0.ɵɵ
|
|
134
|
-
i0.ɵɵtext(35, "Leave as Global to make this connection available to all companies");
|
|
136
|
+
i0.ɵɵelementStart(35, "span", 21);
|
|
137
|
+
i0.ɵɵtext(36, "Leave as Global to make this connection available to all companies");
|
|
135
138
|
i0.ɵɵelementEnd()()();
|
|
136
|
-
i0.ɵɵelementStart(
|
|
137
|
-
i0.ɵɵelement(
|
|
138
|
-
i0.ɵɵtext(
|
|
139
|
+
i0.ɵɵelementStart(37, "div", 7)(38, "h3");
|
|
140
|
+
i0.ɵɵelement(39, "i", 22);
|
|
141
|
+
i0.ɵɵtext(40, " Authentication");
|
|
139
142
|
i0.ɵɵelementEnd();
|
|
140
|
-
i0.ɵɵelementStart(
|
|
141
|
-
i0.ɵɵtext(
|
|
143
|
+
i0.ɵɵelementStart(41, "div", 9)(42, "label", 23);
|
|
144
|
+
i0.ɵɵtext(43, "Credential");
|
|
142
145
|
i0.ɵɵelementEnd();
|
|
143
|
-
i0.ɵɵconditionalCreate(
|
|
146
|
+
i0.ɵɵconditionalCreate(44, MCPConnectionDialogComponent_Conditional_0_Conditional_44_Template, 3, 0, "div", 24)(45, MCPConnectionDialogComponent_Conditional_0_Conditional_45_Template, 7, 7);
|
|
144
147
|
i0.ɵɵelementEnd();
|
|
145
|
-
i0.ɵɵelementStart(
|
|
146
|
-
i0.ɵɵtext(
|
|
148
|
+
i0.ɵɵelementStart(46, "div", 9)(47, "label", 25);
|
|
149
|
+
i0.ɵɵtext(48, "Custom Header Name");
|
|
147
150
|
i0.ɵɵelementEnd();
|
|
148
|
-
i0.ɵɵelement(
|
|
149
|
-
i0.ɵɵelementStart(
|
|
150
|
-
i0.ɵɵtext(
|
|
151
|
+
i0.ɵɵelement(49, "input", 26);
|
|
152
|
+
i0.ɵɵelementStart(50, "span", 21);
|
|
153
|
+
i0.ɵɵtext(51, "Override the default header name for API key authentication");
|
|
151
154
|
i0.ɵɵelementEnd()()();
|
|
152
|
-
i0.ɵɵelementStart(
|
|
153
|
-
i0.ɵɵelement(
|
|
154
|
-
i0.ɵɵtext(
|
|
155
|
+
i0.ɵɵelementStart(52, "div", 7)(53, "h3");
|
|
156
|
+
i0.ɵɵelement(54, "i", 27);
|
|
157
|
+
i0.ɵɵtext(55, " Behavior");
|
|
155
158
|
i0.ɵɵelementEnd();
|
|
156
|
-
i0.ɵɵelementStart(
|
|
157
|
-
i0.ɵɵelement(
|
|
158
|
-
i0.ɵɵelementStart(
|
|
159
|
-
i0.ɵɵtext(
|
|
159
|
+
i0.ɵɵelementStart(56, "div", 28)(57, "label", 29);
|
|
160
|
+
i0.ɵɵelement(58, "input", 30);
|
|
161
|
+
i0.ɵɵelementStart(59, "span");
|
|
162
|
+
i0.ɵɵtext(60, "Auto-sync tools on connect");
|
|
160
163
|
i0.ɵɵelementEnd()();
|
|
161
|
-
i0.ɵɵelementStart(
|
|
162
|
-
i0.ɵɵtext(
|
|
164
|
+
i0.ɵɵelementStart(61, "span", 21);
|
|
165
|
+
i0.ɵɵtext(62, "Automatically discover and sync available tools when connecting");
|
|
163
166
|
i0.ɵɵelementEnd()()();
|
|
164
|
-
i0.ɵɵelementStart(
|
|
165
|
-
i0.ɵɵelement(
|
|
166
|
-
i0.ɵɵtext(
|
|
167
|
+
i0.ɵɵelementStart(63, "div", 7)(64, "h3");
|
|
168
|
+
i0.ɵɵelement(65, "i", 31);
|
|
169
|
+
i0.ɵɵtext(66, " Logging");
|
|
167
170
|
i0.ɵɵelementEnd();
|
|
168
|
-
i0.ɵɵelementStart(
|
|
169
|
-
i0.ɵɵelement(
|
|
170
|
-
i0.ɵɵelementStart(
|
|
171
|
-
i0.ɵɵtext(
|
|
171
|
+
i0.ɵɵelementStart(67, "div", 28)(68, "label", 29);
|
|
172
|
+
i0.ɵɵelement(69, "input", 32);
|
|
173
|
+
i0.ɵɵelementStart(70, "span");
|
|
174
|
+
i0.ɵɵtext(71, "Enable tool call logging");
|
|
172
175
|
i0.ɵɵelementEnd()();
|
|
173
|
-
i0.ɵɵelementStart(
|
|
174
|
-
i0.ɵɵtext(
|
|
176
|
+
i0.ɵɵelementStart(72, "span", 21);
|
|
177
|
+
i0.ɵɵtext(73, "Log all tool executions to the database");
|
|
175
178
|
i0.ɵɵelementEnd()();
|
|
176
|
-
i0.ɵɵelementStart(
|
|
177
|
-
i0.ɵɵelement(
|
|
178
|
-
i0.ɵɵelementStart(
|
|
179
|
-
i0.ɵɵtext(
|
|
179
|
+
i0.ɵɵelementStart(74, "div", 33)(75, "div", 28)(76, "label", 29);
|
|
180
|
+
i0.ɵɵelement(77, "input", 34);
|
|
181
|
+
i0.ɵɵelementStart(78, "span");
|
|
182
|
+
i0.ɵɵtext(79, "Log input parameters");
|
|
180
183
|
i0.ɵɵelementEnd()()();
|
|
181
|
-
i0.ɵɵelementStart(
|
|
182
|
-
i0.ɵɵelement(
|
|
183
|
-
i0.ɵɵelementStart(
|
|
184
|
-
i0.ɵɵtext(
|
|
184
|
+
i0.ɵɵelementStart(80, "div", 28)(81, "label", 29);
|
|
185
|
+
i0.ɵɵelement(82, "input", 35);
|
|
186
|
+
i0.ɵɵelementStart(83, "span");
|
|
187
|
+
i0.ɵɵtext(84, "Log output content");
|
|
185
188
|
i0.ɵɵelementEnd()()();
|
|
186
|
-
i0.ɵɵelementStart(
|
|
187
|
-
i0.ɵɵtext(
|
|
189
|
+
i0.ɵɵelementStart(85, "div", 9)(86, "label", 36);
|
|
190
|
+
i0.ɵɵtext(87, "Max Output Log Size (bytes)");
|
|
191
|
+
i0.ɵɵelementEnd();
|
|
192
|
+
i0.ɵɵelementStart(88, "mj-numeric-input", 37);
|
|
193
|
+
i0.ɵɵlistener("ngModelChange", function MCPConnectionDialogComponent_Conditional_0_Template_mj_numeric_input_ngModelChange_88_listener($event) { let tmp_3_0; i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView((tmp_3_0 = ctx_r1.connectionForm.get("MaxOutputLogSize")) == null ? null : tmp_3_0.setValue($event)); });
|
|
188
194
|
i0.ɵɵelementEnd();
|
|
189
|
-
i0.ɵɵ
|
|
190
|
-
i0.ɵɵ
|
|
191
|
-
i0.ɵɵtext(89, "Maximum size of output content to log (0 = unlimited, max 10MB)");
|
|
195
|
+
i0.ɵɵelementStart(89, "span", 21);
|
|
196
|
+
i0.ɵɵtext(90, "Maximum size of output content to log (0 = unlimited, max 10MB)");
|
|
192
197
|
i0.ɵɵelementEnd()()()();
|
|
193
|
-
i0.ɵɵelementStart(
|
|
194
|
-
i0.ɵɵelement(
|
|
195
|
-
i0.ɵɵtext(
|
|
198
|
+
i0.ɵɵelementStart(91, "div", 7)(92, "h3");
|
|
199
|
+
i0.ɵɵelement(93, "i", 38);
|
|
200
|
+
i0.ɵɵtext(94, " Advanced");
|
|
196
201
|
i0.ɵɵelementEnd();
|
|
197
|
-
i0.ɵɵelementStart(
|
|
198
|
-
i0.ɵɵtext(
|
|
202
|
+
i0.ɵɵelementStart(95, "div", 9)(96, "label", 39);
|
|
203
|
+
i0.ɵɵtext(97, "Environment Variables (JSON)");
|
|
199
204
|
i0.ɵɵelementEnd();
|
|
200
|
-
i0.ɵɵelement(
|
|
201
|
-
i0.ɵɵelementStart(
|
|
202
|
-
i0.ɵɵtext(
|
|
205
|
+
i0.ɵɵelement(98, "textarea", 40);
|
|
206
|
+
i0.ɵɵelementStart(99, "span", 21);
|
|
207
|
+
i0.ɵɵtext(100, "Additional environment variables for Stdio transport (JSON object)");
|
|
203
208
|
i0.ɵɵelementEnd()()()();
|
|
204
|
-
i0.ɵɵelementStart(
|
|
205
|
-
i0.ɵɵlistener("click", function
|
|
206
|
-
i0.ɵɵconditionalCreate(
|
|
207
|
-
i0.ɵɵtext(
|
|
209
|
+
i0.ɵɵelementStart(101, "mj-dialog-actions")(102, "button", 41);
|
|
210
|
+
i0.ɵɵlistener("click", function MCPConnectionDialogComponent_Conditional_0_Template_button_click_102_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.save()); });
|
|
211
|
+
i0.ɵɵconditionalCreate(103, MCPConnectionDialogComponent_Conditional_0_Conditional_103_Template, 1, 0, "i", 42);
|
|
212
|
+
i0.ɵɵtext(104);
|
|
208
213
|
i0.ɵɵelementEnd();
|
|
209
|
-
i0.ɵɵelementStart(
|
|
210
|
-
i0.ɵɵlistener("click", function
|
|
211
|
-
i0.ɵɵtext(
|
|
214
|
+
i0.ɵɵelementStart(105, "button", 43);
|
|
215
|
+
i0.ɵɵlistener("click", function MCPConnectionDialogComponent_Conditional_0_Template_button_click_105_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancel()); });
|
|
216
|
+
i0.ɵɵtext(106, "Cancel");
|
|
212
217
|
i0.ɵɵelementEnd()()();
|
|
213
218
|
} if (rf & 2) {
|
|
214
|
-
let
|
|
219
|
+
let tmp_11_0;
|
|
220
|
+
let tmp_17_0;
|
|
221
|
+
let tmp_22_0;
|
|
222
|
+
let tmp_24_0;
|
|
223
|
+
let tmp_29_0;
|
|
215
224
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
216
|
-
i0.ɵɵproperty("
|
|
225
|
+
i0.ɵɵproperty("Visible", true)("Title", ctx_r1.DialogTitle)("Width", 600);
|
|
217
226
|
i0.ɵɵadvance();
|
|
218
227
|
i0.ɵɵproperty("formGroup", ctx_r1.connectionForm);
|
|
219
228
|
i0.ɵɵadvance();
|
|
220
229
|
i0.ɵɵconditional(ctx_r1.ErrorMessage ? 2 : -1);
|
|
221
230
|
i0.ɵɵadvance(10);
|
|
222
|
-
i0.ɵɵproperty("
|
|
223
|
-
i0.ɵɵadvance(
|
|
224
|
-
i0.ɵɵconditional(ctx_r1.hasError("MCPServerID", "required") ?
|
|
231
|
+
i0.ɵɵproperty("Data", ctx_r1.ActiveServers)("ValuePrimitive", true)("DefaultItem", i0.ɵɵpureFunction0(33, _c1))("ngModelOptions", i0.ɵɵpureFunction0(34, _c2))("ngModel", (tmp_11_0 = ctx_r1.connectionForm.get("MCPServerID")) == null ? null : tmp_11_0.value);
|
|
232
|
+
i0.ɵɵadvance(3);
|
|
233
|
+
i0.ɵɵconditional(ctx_r1.hasError("MCPServerID", "required") ? 15 : -1);
|
|
225
234
|
i0.ɵɵadvance(7);
|
|
226
|
-
i0.ɵɵconditional(ctx_r1.hasError("Name", "required") ?
|
|
235
|
+
i0.ɵɵconditional(ctx_r1.hasError("Name", "required") ? 22 : -1);
|
|
227
236
|
i0.ɵɵadvance(4);
|
|
228
237
|
i0.ɵɵproperty("rows", 3);
|
|
229
238
|
i0.ɵɵadvance(4);
|
|
230
|
-
i0.ɵɵproperty("
|
|
239
|
+
i0.ɵɵproperty("Data", i0.ɵɵpureFunction0(35, _c3))("ngModelOptions", i0.ɵɵpureFunction0(36, _c2))("ngModel", (tmp_17_0 = ctx_r1.connectionForm.get("Status")) == null ? null : tmp_17_0.value);
|
|
231
240
|
i0.ɵɵadvance(4);
|
|
232
|
-
i0.ɵɵproperty("
|
|
241
|
+
i0.ɵɵproperty("Data", ctx_r1.companies)("ValuePrimitive", true)("DefaultItem", i0.ɵɵpureFunction0(37, _c4))("ngModelOptions", i0.ɵɵpureFunction0(38, _c2))("ngModel", (tmp_22_0 = ctx_r1.connectionForm.get("CompanyID")) == null ? null : tmp_22_0.value);
|
|
233
242
|
i0.ɵɵadvance(10);
|
|
234
|
-
i0.ɵɵconditional(ctx_r1.IsLoadingDropdowns ?
|
|
243
|
+
i0.ɵɵconditional(ctx_r1.IsLoadingDropdowns ? 44 : 45);
|
|
235
244
|
i0.ɵɵadvance(30);
|
|
236
|
-
i0.ɵɵclassProp("disabled", !((
|
|
245
|
+
i0.ɵɵclassProp("disabled", !((tmp_24_0 = ctx_r1.connectionForm.get("LogToolCalls")) == null ? null : tmp_24_0.value));
|
|
237
246
|
i0.ɵɵadvance(14);
|
|
238
|
-
i0.ɵɵproperty("
|
|
247
|
+
i0.ɵɵproperty("Min", 0)("Max", 10485760)("Step", 10240)("ngModelOptions", i0.ɵɵpureFunction0(39, _c2))("ngModel", (tmp_29_0 = ctx_r1.connectionForm.get("MaxOutputLogSize")) == null ? null : tmp_29_0.value);
|
|
239
248
|
i0.ɵɵadvance(10);
|
|
240
249
|
i0.ɵɵproperty("rows", 3);
|
|
241
250
|
i0.ɵɵadvance(4);
|
|
242
251
|
i0.ɵɵproperty("disabled", ctx_r1.IsSaving);
|
|
243
252
|
i0.ɵɵadvance();
|
|
244
|
-
i0.ɵɵconditional(ctx_r1.IsSaving ?
|
|
253
|
+
i0.ɵɵconditional(ctx_r1.IsSaving ? 103 : -1);
|
|
245
254
|
i0.ɵɵadvance();
|
|
246
255
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.IsEditMode ? "Update" : "Create", " ");
|
|
247
256
|
} }
|
|
248
257
|
function MCPConnectionDialogComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
249
258
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
250
|
-
i0.ɵɵelementStart(0, "mj-credential-dialog",
|
|
259
|
+
i0.ɵɵelementStart(0, "mj-credential-dialog", 51, 1);
|
|
251
260
|
i0.ɵɵlistener("close", function MCPConnectionDialogComponent_Conditional_1_Template_mj_credential_dialog_close_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onCredentialDialogClose($event)); });
|
|
252
261
|
i0.ɵɵelementEnd();
|
|
253
262
|
} if (rf & 2) {
|
|
@@ -496,18 +505,18 @@ export class MCPConnectionDialogComponent {
|
|
|
496
505
|
} if (rf & 2) {
|
|
497
506
|
let _t;
|
|
498
507
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.credentialDialog = _t.first);
|
|
499
|
-
} }, inputs: { connection: "connection", servers: "servers", visible: "visible" }, outputs: { close: "close" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 2, vars: 2, consts: [["credentialDialog", ""], [3, "
|
|
500
|
-
i0.ɵɵconditionalCreate(0, MCPConnectionDialogComponent_Conditional_0_Template,
|
|
501
|
-
i0.ɵɵconditionalCreate(1, MCPConnectionDialogComponent_Conditional_1_Template, 2, 1, "mj-credential-dialog",
|
|
508
|
+
} }, inputs: { connection: "connection", servers: "servers", visible: "visible" }, outputs: { close: "close" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 2, vars: 2, consts: [["mjDropdownItem", ""], ["credentialDialog", ""], [3, "Visible", "Title", "Width"], [3, "Visible"], [3, "Close", "Visible", "Title", "Width"], [1, "connection-form", 3, "formGroup"], [1, "error-banner"], [1, "form-section"], [1, "fa-solid", "fa-info-circle"], [1, "form-group"], ["for", "server"], [1, "required"], ["TextField", "Name", "ValueField", "ID", 3, "ValueChange", "Data", "ValuePrimitive", "DefaultItem", "ngModelOptions", "ngModel"], [1, "error-text"], ["for", "name"], ["id", "name", "formControlName", "Name", "placeholder", "e.g., Production GitHub Connection", 1, "mj-input"], ["for", "description"], ["id", "description", "formControlName", "Description", "placeholder", "Optional description of this connection", 1, "mj-textarea", 3, "rows"], ["for", "status"], [3, "ValueChange", "Data", "ngModelOptions", "ngModel"], ["for", "company"], [1, "hint"], [1, "fa-solid", "fa-key"], ["for", "credential"], [1, "loading-credentials"], ["for", "customHeader"], ["id", "customHeader", "formControlName", "CustomHeaderName", "placeholder", "e.g., X-Custom-API-Key", 1, "mj-input"], [1, "fa-solid", "fa-sliders"], [1, "checkbox-group"], [1, "checkbox-label"], ["type", "checkbox", "formControlName", "AutoSyncTools", 1, "mj-checkbox"], [1, "fa-solid", "fa-file-lines"], ["type", "checkbox", "formControlName", "LogToolCalls", 1, "mj-checkbox"], [1, "logging-options"], ["type", "checkbox", "formControlName", "LogInputParameters", 1, "mj-checkbox"], ["type", "checkbox", "formControlName", "LogOutputContent", 1, "mj-checkbox"], ["for", "maxOutputSize"], [3, "ngModelChange", "Min", "Max", "Step", "ngModelOptions", "ngModel"], [1, "fa-solid", "fa-gear"], ["for", "envVars"], ["id", "envVars", "formControlName", "EnvironmentVars", "placeholder", "{\"VAR_NAME\": \"value\"}", 1, "mj-textarea", 3, "rows"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], ["mjButton", "", 3, "click"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "server-option"], [1, "server-name"], [1, "server-transport"], [1, "credential-row"], ["mjButton", "", "type", "button", "variant", "outline", "title", "Create New Credential", 3, "click"], [1, "fa-solid", "fa-plus"], [3, "close", "Visible"]], template: function MCPConnectionDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
509
|
+
i0.ɵɵconditionalCreate(0, MCPConnectionDialogComponent_Conditional_0_Template, 107, 40, "mj-dialog", 2);
|
|
510
|
+
i0.ɵɵconditionalCreate(1, MCPConnectionDialogComponent_Conditional_1_Template, 2, 1, "mj-credential-dialog", 3);
|
|
502
511
|
} if (rf & 2) {
|
|
503
512
|
i0.ɵɵconditional(ctx.visible ? 0 : -1);
|
|
504
513
|
i0.ɵɵadvance();
|
|
505
514
|
i0.ɵɵconditional(ctx.ShowCredentialDialog ? 1 : -1);
|
|
506
|
-
} }, dependencies: [i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.CheckboxControlValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, i2.
|
|
515
|
+
} }, dependencies: [i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.CheckboxControlValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.NgModel, i1.FormGroupDirective, i1.FormControlName, i2.MJButtonDirective, i2.MJDialogComponent, i2.MJDialogActionsComponent, i2.MJDropdownComponent, i2.MJNumericInputComponent, i3.CredentialDialogComponent], styles: [".connection-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.error-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-error);\n border-radius: 6px;\n color: var(--mj-status-error);\n font-size: 14px;\n}\n\n.form-section[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 16px;\n}\n\n.form-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.form-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.form-group[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n}\n\n.form-group[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.form-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.form-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] .required[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.form-group[_ngcontent-%COMP%] input[_ngcontent-%COMP%], \n.form-group[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.form-group[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%] {\n display: block;\n margin-top: 4px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n}\n\n.form-group[_ngcontent-%COMP%] .error-text[_ngcontent-%COMP%] {\n display: block;\n margin-top: 4px;\n font-size: 12px;\n color: var(--mj-status-error);\n}\n\n.server-option[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n}\n\n.server-name[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.server-transport[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n padding: 2px 8px;\n background: var(--mj-bg-surface-card);\n border-radius: 4px;\n}\n\n.loading-credentials[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n color: var(--mj-text-muted);\n font-size: 14px;\n}\n\n.credential-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.credential-row[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n.checkbox-group[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.checkbox-group[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.checkbox-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n font-size: 14px;\n}\n\n.checkbox-group[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%] {\n display: block;\n margin-top: 4px;\n margin-left: 24px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n}\n\n.logging-options[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding: 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n transition: opacity 0.2s ease;\n}\n\n.logging-options.disabled[_ngcontent-%COMP%] {\n opacity: 0.5;\n pointer-events: none;\n}"] });
|
|
507
516
|
}
|
|
508
517
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MCPConnectionDialogComponent, [{
|
|
509
518
|
type: Component,
|
|
510
|
-
args: [{ standalone: false, selector: 'mj-mcp-connection-dialog', template: "@if (visible) {\n <kendo-dialog\n [title]=\"DialogTitle\"\n (close)=\"cancel()\"\n [width]=\"600\"\n [minWidth]=\"400\">\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 <kendo-dropdownlist\n id=\"server\"\n formControlName=\"MCPServerID\"\n [data]=\"ActiveServers\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"{ Name: 'Select a server...', ID: '' }\"\n (valueChange)=\"onServerChange()\">\n <ng-template kendoDropDownListItemTemplate 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 </kendo-dropdownlist>\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 kendoTextBox\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 kendoTextArea\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 <kendo-dropdownlist\n id=\"status\"\n formControlName=\"Status\"\n [data]=\"['Active', 'Inactive']\"\n [valuePrimitive]=\"true\">\n </kendo-dropdownlist>\n </div>\n <div class=\"form-group\">\n <label for=\"company\">Company</label>\n <kendo-dropdownlist\n id=\"company\"\n formControlName=\"CompanyID\"\n [data]=\"companies\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"{ Name: 'Global (all companies)', ID: '' }\">\n </kendo-dropdownlist>\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 <kendo-dropdownlist\n id=\"credential\"\n formControlName=\"CredentialID\"\n [data]=\"credentials\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"{ Name: 'No credential (anonymous)', ID: '' }\">\n </kendo-dropdownlist>\n <button kendoButton\n type=\"button\"\n fillMode=\"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 kendoTextBox\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\" kendoCheckBox 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\" kendoCheckBox 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\" kendoCheckBox 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\" kendoCheckBox 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 <kendo-numerictextbox\n id=\"maxOutputSize\"\n formControlName=\"MaxOutputLogSize\"\n [min]=\"0\"\n [max]=\"10485760\"\n [step]=\"10240\"\n [format]=\"'n0'\">\n </kendo-numerictextbox>\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 kendoTextArea\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 <kendo-dialog-actions>\n <button kendoButton (click)=\"save()\" themeColor=\"primary\" [disabled]=\"IsSaving\">\n @if (IsSaving) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n {{ IsEditMode ? 'Update' : 'Create' }}\n </button>\n <button kendoButton (click)=\"cancel()\">Cancel</button>\n </kendo-dialog-actions>\n </kendo-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", styles: [".connection-form {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.error-banner {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-error);\n border-radius: 6px;\n color: var(--mj-status-error);\n font-size: 14px;\n}\n\n.form-section {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 16px;\n}\n\n.form-section h3 {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.form-section h3 i {\n color: var(--mj-brand-primary);\n}\n\n.form-group {\n margin-bottom: 16px;\n}\n\n.form-group:last-child {\n margin-bottom: 0;\n}\n\n.form-group label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.form-group label .required {\n color: var(--mj-status-error);\n}\n\n.form-group input,\n.form-group textarea {\n width: 100%;\n}\n\n.form-group .hint {\n display: block;\n margin-top: 4px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n}\n\n.form-group .error-text {\n display: block;\n margin-top: 4px;\n font-size: 12px;\n color: var(--mj-status-error);\n}\n\n.server-option {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n}\n\n.server-name {\n font-weight: 500;\n}\n\n.server-transport {\n font-size: 12px;\n color: var(--mj-text-muted);\n padding: 2px 8px;\n background: var(--mj-bg-surface-card);\n border-radius: 4px;\n}\n\n.loading-credentials {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n color: var(--mj-text-muted);\n font-size: 14px;\n}\n\n.credential-row {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.credential-row kendo-dropdownlist {\n flex: 1;\n}\n\n.credential-row button {\n white-space: nowrap;\n}\n\n.checkbox-group {\n margin-bottom: 12px;\n}\n\n.checkbox-group:last-child {\n margin-bottom: 0;\n}\n\n.checkbox-label {\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n font-size: 14px;\n}\n\n.checkbox-group .hint {\n display: block;\n margin-top: 4px;\n margin-left: 24px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n}\n\n.logging-options {\n margin-top: 16px;\n padding: 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n transition: opacity 0.2s ease;\n}\n\n.logging-options.disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n\n/* Kendo overrides */\n:host ::ng-deep .k-dialog-actions {\n padding: 16px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n:host ::ng-deep .k-dialog-content {\n padding: 20px;\n max-height: 70vh;\n overflow-y: auto;\n}\n\n:host ::ng-deep .k-textbox,\n:host ::ng-deep .k-textarea,\n:host ::ng-deep .k-numerictextbox,\n:host ::ng-deep .k-dropdownlist {\n width: 100%;\n}\n"] }]
|
|
519
|
+
args: [{ standalone: false, selector: 'mj-mcp-connection-dialog', template: "@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", styles: [".connection-form {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.error-banner {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-error);\n border-radius: 6px;\n color: var(--mj-status-error);\n font-size: 14px;\n}\n\n.form-section {\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 16px;\n}\n\n.form-section h3 {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.form-section h3 i {\n color: var(--mj-brand-primary);\n}\n\n.form-group {\n margin-bottom: 16px;\n}\n\n.form-group:last-child {\n margin-bottom: 0;\n}\n\n.form-group label {\n display: block;\n margin-bottom: 6px;\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.form-group label .required {\n color: var(--mj-status-error);\n}\n\n.form-group input,\n.form-group textarea {\n width: 100%;\n}\n\n.form-group .hint {\n display: block;\n margin-top: 4px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n}\n\n.form-group .error-text {\n display: block;\n margin-top: 4px;\n font-size: 12px;\n color: var(--mj-status-error);\n}\n\n.server-option {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n}\n\n.server-name {\n font-weight: 500;\n}\n\n.server-transport {\n font-size: 12px;\n color: var(--mj-text-muted);\n padding: 2px 8px;\n background: var(--mj-bg-surface-card);\n border-radius: 4px;\n}\n\n.loading-credentials {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n color: var(--mj-text-muted);\n font-size: 14px;\n}\n\n.credential-row {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.credential-row button {\n white-space: nowrap;\n}\n\n.checkbox-group {\n margin-bottom: 12px;\n}\n\n.checkbox-group:last-child {\n margin-bottom: 0;\n}\n\n.checkbox-label {\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n font-size: 14px;\n}\n\n.checkbox-group .hint {\n display: block;\n margin-top: 4px;\n margin-left: 24px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n}\n\n.logging-options {\n margin-top: 16px;\n padding: 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 6px;\n transition: opacity 0.2s ease;\n}\n\n.logging-options.disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n\n"] }]
|
|
511
520
|
}], () => [{ type: i1.FormBuilder }, { type: i0.ChangeDetectorRef }], { credentialDialog: [{
|
|
512
521
|
type: ViewChild,
|
|
513
522
|
args: ['credentialDialog']
|