@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
|
@@ -8,14 +8,12 @@ import { Validators } from '@angular/forms';
|
|
|
8
8
|
import { Metadata, CompositeKey } from '@memberjunction/core';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@angular/forms";
|
|
11
|
-
import * as i2 from "@
|
|
12
|
-
import * as i3 from "@progress/kendo-angular-dialog";
|
|
13
|
-
import * as i4 from "@progress/kendo-angular-dropdowns";
|
|
14
|
-
import * as i5 from "@progress/kendo-angular-inputs";
|
|
11
|
+
import * as i2 from "@memberjunction/ng-ui-components";
|
|
15
12
|
const _c0 = () => ["Active", "Inactive"];
|
|
13
|
+
const _c1 = () => ({ standalone: true });
|
|
16
14
|
function MCPServerDialogComponent_Conditional_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
17
|
-
i0.ɵɵelementStart(0, "div",
|
|
18
|
-
i0.ɵɵelement(1, "i",
|
|
15
|
+
i0.ɵɵelementStart(0, "div", 4);
|
|
16
|
+
i0.ɵɵelement(1, "i", 34);
|
|
19
17
|
i0.ɵɵtext(2);
|
|
20
18
|
i0.ɵɵelementEnd();
|
|
21
19
|
} if (rf & 2) {
|
|
@@ -24,15 +22,15 @@ function MCPServerDialogComponent_Conditional_0_Conditional_2_Template(rf, ctx)
|
|
|
24
22
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.ErrorMessage, " ");
|
|
25
23
|
} }
|
|
26
24
|
function MCPServerDialogComponent_Conditional_0_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
-
i0.ɵɵelementStart(0, "span",
|
|
25
|
+
i0.ɵɵelementStart(0, "span", 11);
|
|
28
26
|
i0.ɵɵtext(1, "Name is required");
|
|
29
27
|
i0.ɵɵelementEnd();
|
|
30
28
|
} }
|
|
31
29
|
function MCPServerDialogComponent_Conditional_0_ng_template_32_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
-
i0.ɵɵelementStart(0, "div",
|
|
30
|
+
i0.ɵɵelementStart(0, "div", 35)(1, "span", 36);
|
|
33
31
|
i0.ɵɵtext(2);
|
|
34
32
|
i0.ɵɵelementEnd();
|
|
35
|
-
i0.ɵɵelementStart(3, "span",
|
|
33
|
+
i0.ɵɵelementStart(3, "span", 37);
|
|
36
34
|
i0.ɵɵtext(4);
|
|
37
35
|
i0.ɵɵelementEnd()();
|
|
38
36
|
} if (rf & 2) {
|
|
@@ -42,44 +40,44 @@ function MCPServerDialogComponent_Conditional_0_ng_template_32_Template(rf, ctx)
|
|
|
42
40
|
i0.ɵɵadvance(2);
|
|
43
41
|
i0.ɵɵtextInterpolate(dataItem_r3.description);
|
|
44
42
|
} }
|
|
45
|
-
function
|
|
46
|
-
i0.ɵɵelementStart(0, "span",
|
|
43
|
+
function MCPServerDialogComponent_Conditional_0_Conditional_34_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
44
|
+
i0.ɵɵelementStart(0, "span", 11);
|
|
47
45
|
i0.ɵɵtext(1, "Server URL is required for this transport type");
|
|
48
46
|
i0.ɵɵelementEnd();
|
|
49
47
|
} }
|
|
50
|
-
function
|
|
51
|
-
i0.ɵɵelementStart(0, "div",
|
|
48
|
+
function MCPServerDialogComponent_Conditional_0_Conditional_34_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
+
i0.ɵɵelementStart(0, "div", 7)(1, "label", 38);
|
|
52
50
|
i0.ɵɵtext(2, "Server URL ");
|
|
53
|
-
i0.ɵɵelementStart(3, "span",
|
|
51
|
+
i0.ɵɵelementStart(3, "span", 9);
|
|
54
52
|
i0.ɵɵtext(4, "*");
|
|
55
53
|
i0.ɵɵelementEnd()();
|
|
56
|
-
i0.ɵɵelement(5, "input",
|
|
57
|
-
i0.ɵɵconditionalCreate(6,
|
|
54
|
+
i0.ɵɵelement(5, "input", 39);
|
|
55
|
+
i0.ɵɵconditionalCreate(6, MCPServerDialogComponent_Conditional_0_Conditional_34_Conditional_6_Template, 2, 0, "span", 11);
|
|
58
56
|
i0.ɵɵelementEnd();
|
|
59
57
|
} if (rf & 2) {
|
|
60
58
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
61
59
|
i0.ɵɵadvance(6);
|
|
62
60
|
i0.ɵɵconditional(ctx_r1.hasError("ServerURL", "required") ? 6 : -1);
|
|
63
61
|
} }
|
|
64
|
-
function
|
|
65
|
-
i0.ɵɵelementStart(0, "span",
|
|
62
|
+
function MCPServerDialogComponent_Conditional_0_Conditional_35_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
63
|
+
i0.ɵɵelementStart(0, "span", 11);
|
|
66
64
|
i0.ɵɵtext(1, "Command is required for Stdio transport");
|
|
67
65
|
i0.ɵɵelementEnd();
|
|
68
66
|
} }
|
|
69
|
-
function
|
|
70
|
-
i0.ɵɵelementStart(0, "div",
|
|
67
|
+
function MCPServerDialogComponent_Conditional_0_Conditional_35_Template(rf, ctx) { if (rf & 1) {
|
|
68
|
+
i0.ɵɵelementStart(0, "div", 7)(1, "label", 40);
|
|
71
69
|
i0.ɵɵtext(2, "Command ");
|
|
72
|
-
i0.ɵɵelementStart(3, "span",
|
|
70
|
+
i0.ɵɵelementStart(3, "span", 9);
|
|
73
71
|
i0.ɵɵtext(4, "*");
|
|
74
72
|
i0.ɵɵelementEnd()();
|
|
75
|
-
i0.ɵɵelement(5, "input",
|
|
76
|
-
i0.ɵɵconditionalCreate(6,
|
|
73
|
+
i0.ɵɵelement(5, "input", 41);
|
|
74
|
+
i0.ɵɵconditionalCreate(6, MCPServerDialogComponent_Conditional_0_Conditional_35_Conditional_6_Template, 2, 0, "span", 11);
|
|
77
75
|
i0.ɵɵelementEnd();
|
|
78
|
-
i0.ɵɵelementStart(7, "div",
|
|
76
|
+
i0.ɵɵelementStart(7, "div", 7)(8, "label", 42);
|
|
79
77
|
i0.ɵɵtext(9, "Command Arguments (JSON array)");
|
|
80
78
|
i0.ɵɵelementEnd();
|
|
81
|
-
i0.ɵɵelement(10, "input",
|
|
82
|
-
i0.ɵɵelementStart(11, "span",
|
|
79
|
+
i0.ɵɵelement(10, "input", 43);
|
|
80
|
+
i0.ɵɵelementStart(11, "span", 30);
|
|
83
81
|
i0.ɵɵtext(12, "JSON array of command line arguments");
|
|
84
82
|
i0.ɵɵelementEnd()();
|
|
85
83
|
} if (rf & 2) {
|
|
@@ -87,11 +85,11 @@ function MCPServerDialogComponent_Conditional_0_Conditional_34_Template(rf, ctx)
|
|
|
87
85
|
i0.ɵɵadvance(6);
|
|
88
86
|
i0.ɵɵconditional(ctx_r1.hasError("Command", "required") ? 6 : -1);
|
|
89
87
|
} }
|
|
90
|
-
function
|
|
91
|
-
i0.ɵɵelementStart(0, "div",
|
|
88
|
+
function MCPServerDialogComponent_Conditional_0_ng_template_44_Template(rf, ctx) { if (rf & 1) {
|
|
89
|
+
i0.ɵɵelementStart(0, "div", 44)(1, "span", 45);
|
|
92
90
|
i0.ɵɵtext(2);
|
|
93
91
|
i0.ɵɵelementEnd();
|
|
94
|
-
i0.ɵɵelementStart(3, "span",
|
|
92
|
+
i0.ɵɵelementStart(3, "span", 46);
|
|
95
93
|
i0.ɵɵtext(4);
|
|
96
94
|
i0.ɵɵelementEnd()();
|
|
97
95
|
} if (rf & 2) {
|
|
@@ -101,157 +99,172 @@ function MCPServerDialogComponent_Conditional_0_ng_template_43_Template(rf, ctx)
|
|
|
101
99
|
i0.ɵɵadvance(2);
|
|
102
100
|
i0.ɵɵtextInterpolate(dataItem_r4.description);
|
|
103
101
|
} }
|
|
104
|
-
function
|
|
105
|
-
i0.ɵɵelementStart(0, "span",
|
|
102
|
+
function MCPServerDialogComponent_Conditional_0_Conditional_46_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
103
|
+
i0.ɵɵelementStart(0, "span", 11);
|
|
106
104
|
i0.ɵɵtext(1, "OAuth Issuer URL is required for OAuth 2.0 authentication");
|
|
107
105
|
i0.ɵɵelementEnd();
|
|
108
106
|
} }
|
|
109
|
-
function
|
|
110
|
-
i0.ɵɵ
|
|
111
|
-
i0.ɵɵ
|
|
107
|
+
function MCPServerDialogComponent_Conditional_0_Conditional_46_Template(rf, ctx) { if (rf & 1) {
|
|
108
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
109
|
+
i0.ɵɵelementStart(0, "div", 21)(1, "h3");
|
|
110
|
+
i0.ɵɵelement(2, "i", 47);
|
|
112
111
|
i0.ɵɵtext(3, " OAuth 2.0 Configuration");
|
|
113
112
|
i0.ɵɵelementEnd();
|
|
114
|
-
i0.ɵɵelementStart(4, "div",
|
|
113
|
+
i0.ɵɵelementStart(4, "div", 7)(5, "label", 48);
|
|
115
114
|
i0.ɵɵtext(6, "OAuth Issuer URL ");
|
|
116
|
-
i0.ɵɵelementStart(7, "span",
|
|
115
|
+
i0.ɵɵelementStart(7, "span", 9);
|
|
117
116
|
i0.ɵɵtext(8, "*");
|
|
118
117
|
i0.ɵɵelementEnd()();
|
|
119
|
-
i0.ɵɵelement(9, "input",
|
|
120
|
-
i0.ɵɵconditionalCreate(10,
|
|
121
|
-
i0.ɵɵelementStart(11, "span",
|
|
118
|
+
i0.ɵɵelement(9, "input", 49);
|
|
119
|
+
i0.ɵɵconditionalCreate(10, MCPServerDialogComponent_Conditional_0_Conditional_46_Conditional_10_Template, 2, 0, "span", 11);
|
|
120
|
+
i0.ɵɵelementStart(11, "span", 30);
|
|
122
121
|
i0.ɵɵtext(12, "The authorization server's issuer URL (e.g., https://login.microsoftonline.com/tenant-id or https://your-domain.auth0.com)");
|
|
123
122
|
i0.ɵɵelementEnd()();
|
|
124
|
-
i0.ɵɵelementStart(13, "div",
|
|
123
|
+
i0.ɵɵelementStart(13, "div", 7)(14, "label", 50);
|
|
125
124
|
i0.ɵɵtext(15, "OAuth Scopes");
|
|
126
125
|
i0.ɵɵelementEnd();
|
|
127
|
-
i0.ɵɵelement(16, "input",
|
|
128
|
-
i0.ɵɵelementStart(17, "span",
|
|
126
|
+
i0.ɵɵelement(16, "input", 51);
|
|
127
|
+
i0.ɵɵelementStart(17, "span", 30);
|
|
129
128
|
i0.ɵɵtext(18, "Space-separated list of OAuth scopes to request");
|
|
130
129
|
i0.ɵɵelementEnd()();
|
|
131
|
-
i0.ɵɵelementStart(19, "div",
|
|
130
|
+
i0.ɵɵelementStart(19, "div", 7)(20, "label", 52);
|
|
132
131
|
i0.ɵɵtext(21, "Metadata Cache TTL (minutes)");
|
|
133
132
|
i0.ɵɵelementEnd();
|
|
134
|
-
i0.ɵɵ
|
|
135
|
-
i0.ɵɵ
|
|
133
|
+
i0.ɵɵelementStart(22, "mj-numeric-input", 53);
|
|
134
|
+
i0.ɵɵlistener("ngModelChange", function MCPServerDialogComponent_Conditional_0_Conditional_46_Template_mj_numeric_input_ngModelChange_22_listener($event) { let tmp_5_0; i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((tmp_5_0 = ctx_r1.serverForm.get("OAuthMetadataCacheTTLMinutes")) == null ? null : tmp_5_0.setValue($event)); });
|
|
135
|
+
i0.ɵɵelementEnd();
|
|
136
|
+
i0.ɵɵelementStart(23, "span", 30);
|
|
136
137
|
i0.ɵɵtext(24, "How long to cache OAuth metadata (default: 1440 minutes = 24 hours)");
|
|
137
138
|
i0.ɵɵelementEnd()();
|
|
138
|
-
i0.ɵɵelementStart(25, "div",
|
|
139
|
+
i0.ɵɵelementStart(25, "div", 54)(26, "h4");
|
|
139
140
|
i0.ɵɵtext(27, "Pre-configured Client (Optional)");
|
|
140
141
|
i0.ɵɵelementEnd();
|
|
141
|
-
i0.ɵɵelementStart(28, "p",
|
|
142
|
+
i0.ɵɵelementStart(28, "p", 55);
|
|
142
143
|
i0.ɵɵtext(29, "Leave blank to use Dynamic Client Registration (DCR). If the auth server doesn't support DCR, configure your client credentials here.");
|
|
143
144
|
i0.ɵɵelementEnd();
|
|
144
|
-
i0.ɵɵelementStart(30, "div",
|
|
145
|
+
i0.ɵɵelementStart(30, "div", 7)(31, "label", 56);
|
|
145
146
|
i0.ɵɵtext(32, "Client ID");
|
|
146
147
|
i0.ɵɵelementEnd();
|
|
147
|
-
i0.ɵɵelement(33, "input",
|
|
148
|
+
i0.ɵɵelement(33, "input", 57);
|
|
148
149
|
i0.ɵɵelementEnd();
|
|
149
|
-
i0.ɵɵelementStart(34, "div",
|
|
150
|
+
i0.ɵɵelementStart(34, "div", 7)(35, "label", 58);
|
|
150
151
|
i0.ɵɵtext(36, "Client Secret");
|
|
151
152
|
i0.ɵɵelementEnd();
|
|
152
|
-
i0.ɵɵelement(37, "input",
|
|
153
|
-
i0.ɵɵelementStart(38, "span",
|
|
153
|
+
i0.ɵɵelement(37, "input", 59);
|
|
154
|
+
i0.ɵɵelementStart(38, "span", 30);
|
|
154
155
|
i0.ɵɵtext(39, "The secret will be encrypted before storage");
|
|
155
156
|
i0.ɵɵelementEnd()()()();
|
|
156
157
|
} if (rf & 2) {
|
|
158
|
+
let tmp_7_0;
|
|
157
159
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
158
160
|
i0.ɵɵadvance(10);
|
|
159
161
|
i0.ɵɵconditional(ctx_r1.hasError("OAuthIssuerURL", "required") ? 10 : -1);
|
|
160
162
|
i0.ɵɵadvance(12);
|
|
161
|
-
i0.ɵɵproperty("
|
|
163
|
+
i0.ɵɵproperty("Min", 5)("ngModelOptions", i0.ɵɵpureFunction0(4, _c1))("ngModel", (tmp_7_0 = ctx_r1.serverForm.get("OAuthMetadataCacheTTLMinutes")) == null ? null : tmp_7_0.value);
|
|
162
164
|
} }
|
|
163
|
-
function
|
|
164
|
-
i0.ɵɵelement(0, "i",
|
|
165
|
+
function MCPServerDialogComponent_Conditional_0_Conditional_68_Template(rf, ctx) { if (rf & 1) {
|
|
166
|
+
i0.ɵɵelement(0, "i", 32);
|
|
165
167
|
} }
|
|
166
168
|
function MCPServerDialogComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
167
169
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
168
|
-
i0.ɵɵelementStart(0, "
|
|
169
|
-
i0.ɵɵlistener("
|
|
170
|
-
i0.ɵɵelementStart(1, "form",
|
|
171
|
-
i0.ɵɵconditionalCreate(2, MCPServerDialogComponent_Conditional_0_Conditional_2_Template, 3, 1, "div",
|
|
172
|
-
i0.ɵɵelementStart(3, "div",
|
|
173
|
-
i0.ɵɵelement(5, "i",
|
|
170
|
+
i0.ɵɵelementStart(0, "mj-dialog", 2);
|
|
171
|
+
i0.ɵɵlistener("Close", function MCPServerDialogComponent_Conditional_0_Template_mj_dialog_Close_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancel()); });
|
|
172
|
+
i0.ɵɵelementStart(1, "form", 3);
|
|
173
|
+
i0.ɵɵconditionalCreate(2, MCPServerDialogComponent_Conditional_0_Conditional_2_Template, 3, 1, "div", 4);
|
|
174
|
+
i0.ɵɵelementStart(3, "div", 5)(4, "h3");
|
|
175
|
+
i0.ɵɵelement(5, "i", 6);
|
|
174
176
|
i0.ɵɵtext(6, " Basic Information");
|
|
175
177
|
i0.ɵɵelementEnd();
|
|
176
|
-
i0.ɵɵelementStart(7, "div",
|
|
178
|
+
i0.ɵɵelementStart(7, "div", 7)(8, "label", 8);
|
|
177
179
|
i0.ɵɵtext(9, "Name ");
|
|
178
|
-
i0.ɵɵelementStart(10, "span",
|
|
180
|
+
i0.ɵɵelementStart(10, "span", 9);
|
|
179
181
|
i0.ɵɵtext(11, "*");
|
|
180
182
|
i0.ɵɵelementEnd()();
|
|
181
|
-
i0.ɵɵelement(12, "input",
|
|
182
|
-
i0.ɵɵconditionalCreate(13, MCPServerDialogComponent_Conditional_0_Conditional_13_Template, 2, 0, "span",
|
|
183
|
+
i0.ɵɵelement(12, "input", 10);
|
|
184
|
+
i0.ɵɵconditionalCreate(13, MCPServerDialogComponent_Conditional_0_Conditional_13_Template, 2, 0, "span", 11);
|
|
183
185
|
i0.ɵɵelementEnd();
|
|
184
|
-
i0.ɵɵelementStart(14, "div",
|
|
186
|
+
i0.ɵɵelementStart(14, "div", 7)(15, "label", 12);
|
|
185
187
|
i0.ɵɵtext(16, "Description");
|
|
186
188
|
i0.ɵɵelementEnd();
|
|
187
|
-
i0.ɵɵelement(17, "textarea",
|
|
189
|
+
i0.ɵɵelement(17, "textarea", 13);
|
|
188
190
|
i0.ɵɵelementEnd();
|
|
189
|
-
i0.ɵɵelementStart(18, "div",
|
|
191
|
+
i0.ɵɵelementStart(18, "div", 7)(19, "label", 14);
|
|
190
192
|
i0.ɵɵtext(20, "Status");
|
|
191
193
|
i0.ɵɵelementEnd();
|
|
192
|
-
i0.ɵɵ
|
|
193
|
-
i0.ɵɵ
|
|
194
|
-
i0.ɵɵ
|
|
195
|
-
i0.ɵɵ
|
|
194
|
+
i0.ɵɵelementStart(21, "mj-dropdown", 15);
|
|
195
|
+
i0.ɵɵlistener("ValueChange", function MCPServerDialogComponent_Conditional_0_Template_mj_dropdown_ValueChange_21_listener($event) { let tmp_4_0; i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView((tmp_4_0 = ctx_r1.serverForm.get("Status")) == null ? null : tmp_4_0.setValue($event)); });
|
|
196
|
+
i0.ɵɵelementEnd()()();
|
|
197
|
+
i0.ɵɵelementStart(22, "div", 5)(23, "h3");
|
|
198
|
+
i0.ɵɵelement(24, "i", 16);
|
|
196
199
|
i0.ɵɵtext(25, " Transport Configuration");
|
|
197
200
|
i0.ɵɵelementEnd();
|
|
198
|
-
i0.ɵɵelementStart(26, "div",
|
|
201
|
+
i0.ɵɵelementStart(26, "div", 7)(27, "label", 17);
|
|
199
202
|
i0.ɵɵtext(28, "Transport Type ");
|
|
200
|
-
i0.ɵɵelementStart(29, "span",
|
|
203
|
+
i0.ɵɵelementStart(29, "span", 9);
|
|
201
204
|
i0.ɵɵtext(30, "*");
|
|
202
205
|
i0.ɵɵelementEnd()();
|
|
203
|
-
i0.ɵɵelementStart(31, "
|
|
204
|
-
i0.ɵɵlistener("
|
|
205
|
-
i0.ɵɵtemplate(32, MCPServerDialogComponent_Conditional_0_ng_template_32_Template, 5, 2, "ng-template",
|
|
206
|
+
i0.ɵɵelementStart(31, "mj-dropdown", 18);
|
|
207
|
+
i0.ɵɵlistener("ValueChange", function MCPServerDialogComponent_Conditional_0_Template_mj_dropdown_ValueChange_31_listener($event) { let tmp_4_0; i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); (tmp_4_0 = ctx_r1.serverForm.get("TransportType")) == null ? null : tmp_4_0.setValue($event); return i0.ɵɵresetView(ctx_r1.onTransportTypeChange()); });
|
|
208
|
+
i0.ɵɵtemplate(32, MCPServerDialogComponent_Conditional_0_ng_template_32_Template, 5, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
206
209
|
i0.ɵɵelementEnd()();
|
|
207
|
-
i0.ɵɵconditionalCreate(
|
|
208
|
-
i0.ɵɵconditionalCreate(
|
|
210
|
+
i0.ɵɵconditionalCreate(34, MCPServerDialogComponent_Conditional_0_Conditional_34_Template, 7, 1, "div", 7);
|
|
211
|
+
i0.ɵɵconditionalCreate(35, MCPServerDialogComponent_Conditional_0_Conditional_35_Template, 13, 1);
|
|
209
212
|
i0.ɵɵelementEnd();
|
|
210
|
-
i0.ɵɵelementStart(
|
|
211
|
-
i0.ɵɵelement(
|
|
212
|
-
i0.ɵɵtext(
|
|
213
|
+
i0.ɵɵelementStart(36, "div", 5)(37, "h3");
|
|
214
|
+
i0.ɵɵelement(38, "i", 19);
|
|
215
|
+
i0.ɵɵtext(39, " Authentication");
|
|
213
216
|
i0.ɵɵelementEnd();
|
|
214
|
-
i0.ɵɵelementStart(
|
|
215
|
-
i0.ɵɵtext(
|
|
217
|
+
i0.ɵɵelementStart(40, "div", 7)(41, "label", 20);
|
|
218
|
+
i0.ɵɵtext(42, "Default Auth Type");
|
|
216
219
|
i0.ɵɵelementEnd();
|
|
217
|
-
i0.ɵɵelementStart(
|
|
218
|
-
i0.ɵɵlistener("
|
|
219
|
-
i0.ɵɵtemplate(
|
|
220
|
+
i0.ɵɵelementStart(43, "mj-dropdown", 18);
|
|
221
|
+
i0.ɵɵlistener("ValueChange", function MCPServerDialogComponent_Conditional_0_Template_mj_dropdown_ValueChange_43_listener($event) { let tmp_4_0; i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); (tmp_4_0 = ctx_r1.serverForm.get("DefaultAuthType")) == null ? null : tmp_4_0.setValue($event); return i0.ɵɵresetView(ctx_r1.onAuthTypeChange()); });
|
|
222
|
+
i0.ɵɵtemplate(44, MCPServerDialogComponent_Conditional_0_ng_template_44_Template, 5, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
220
223
|
i0.ɵɵelementEnd()()();
|
|
221
|
-
i0.ɵɵconditionalCreate(
|
|
222
|
-
i0.ɵɵelementStart(
|
|
223
|
-
i0.ɵɵelement(
|
|
224
|
-
i0.ɵɵtext(
|
|
224
|
+
i0.ɵɵconditionalCreate(46, MCPServerDialogComponent_Conditional_0_Conditional_46_Template, 40, 5, "div", 21);
|
|
225
|
+
i0.ɵɵelementStart(47, "div", 5)(48, "h3");
|
|
226
|
+
i0.ɵɵelement(49, "i", 22);
|
|
227
|
+
i0.ɵɵtext(50, " Rate Limiting");
|
|
225
228
|
i0.ɵɵelementEnd();
|
|
226
|
-
i0.ɵɵelementStart(
|
|
227
|
-
i0.ɵɵtext(
|
|
229
|
+
i0.ɵɵelementStart(51, "div", 23)(52, "div", 24)(53, "label", 25);
|
|
230
|
+
i0.ɵɵtext(54, "Requests per Minute");
|
|
228
231
|
i0.ɵɵelementEnd();
|
|
229
|
-
i0.ɵɵ
|
|
232
|
+
i0.ɵɵelementStart(55, "mj-numeric-input", 26);
|
|
233
|
+
i0.ɵɵlistener("ngModelChange", function MCPServerDialogComponent_Conditional_0_Template_mj_numeric_input_ngModelChange_55_listener($event) { let tmp_4_0; i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView((tmp_4_0 = ctx_r1.serverForm.get("RateLimitPerMinute")) == null ? null : tmp_4_0.setValue($event)); });
|
|
234
|
+
i0.ɵɵelementEnd()();
|
|
235
|
+
i0.ɵɵelementStart(56, "div", 24)(57, "label", 27);
|
|
236
|
+
i0.ɵɵtext(58, "Requests per Hour");
|
|
230
237
|
i0.ɵɵelementEnd();
|
|
231
|
-
i0.ɵɵelementStart(
|
|
232
|
-
i0.ɵɵ
|
|
238
|
+
i0.ɵɵelementStart(59, "mj-numeric-input", 26);
|
|
239
|
+
i0.ɵɵlistener("ngModelChange", function MCPServerDialogComponent_Conditional_0_Template_mj_numeric_input_ngModelChange_59_listener($event) { let tmp_4_0; i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView((tmp_4_0 = ctx_r1.serverForm.get("RateLimitPerHour")) == null ? null : tmp_4_0.setValue($event)); });
|
|
240
|
+
i0.ɵɵelementEnd()()();
|
|
241
|
+
i0.ɵɵelementStart(60, "div", 7)(61, "label", 28);
|
|
242
|
+
i0.ɵɵtext(62, "Request Timeout (ms)");
|
|
233
243
|
i0.ɵɵelementEnd();
|
|
234
|
-
i0.ɵɵ
|
|
235
|
-
i0.ɵɵ
|
|
236
|
-
i0.ɵɵelementStart(58, "div", 6)(59, "label", 30);
|
|
237
|
-
i0.ɵɵtext(60, "Request Timeout (ms)");
|
|
244
|
+
i0.ɵɵelementStart(63, "mj-numeric-input", 29);
|
|
245
|
+
i0.ɵɵlistener("ngModelChange", function MCPServerDialogComponent_Conditional_0_Template_mj_numeric_input_ngModelChange_63_listener($event) { let tmp_4_0; i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView((tmp_4_0 = ctx_r1.serverForm.get("RequestTimeoutMs")) == null ? null : tmp_4_0.setValue($event)); });
|
|
238
246
|
i0.ɵɵelementEnd();
|
|
239
|
-
i0.ɵɵ
|
|
240
|
-
i0.ɵɵ
|
|
241
|
-
i0.ɵɵtext(63, "Timeout for individual tool calls (1000-600000ms)");
|
|
247
|
+
i0.ɵɵelementStart(64, "span", 30);
|
|
248
|
+
i0.ɵɵtext(65, "Timeout for individual tool calls (1000-600000ms)");
|
|
242
249
|
i0.ɵɵelementEnd()()()();
|
|
243
|
-
i0.ɵɵelementStart(
|
|
244
|
-
i0.ɵɵlistener("click", function
|
|
245
|
-
i0.ɵɵconditionalCreate(
|
|
246
|
-
i0.ɵɵtext(
|
|
247
|
-
i0.ɵɵelementEnd();
|
|
248
|
-
i0.ɵɵelementStart(
|
|
249
|
-
i0.ɵɵlistener("click", function
|
|
250
|
-
i0.ɵɵtext(
|
|
250
|
+
i0.ɵɵelementStart(66, "mj-dialog-actions")(67, "button", 31);
|
|
251
|
+
i0.ɵɵlistener("click", function MCPServerDialogComponent_Conditional_0_Template_button_click_67_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.save()); });
|
|
252
|
+
i0.ɵɵconditionalCreate(68, MCPServerDialogComponent_Conditional_0_Conditional_68_Template, 1, 0, "i", 32);
|
|
253
|
+
i0.ɵɵtext(69);
|
|
254
|
+
i0.ɵɵelementEnd();
|
|
255
|
+
i0.ɵɵelementStart(70, "button", 33);
|
|
256
|
+
i0.ɵɵlistener("click", function MCPServerDialogComponent_Conditional_0_Template_button_click_70_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancel()); });
|
|
257
|
+
i0.ɵɵtext(71, "Cancel");
|
|
251
258
|
i0.ɵɵelementEnd()()();
|
|
252
259
|
} if (rf & 2) {
|
|
260
|
+
let tmp_12_0;
|
|
261
|
+
let tmp_16_0;
|
|
262
|
+
let tmp_22_0;
|
|
263
|
+
let tmp_26_0;
|
|
264
|
+
let tmp_29_0;
|
|
265
|
+
let tmp_34_0;
|
|
253
266
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
254
|
-
i0.ɵɵproperty("
|
|
267
|
+
i0.ɵɵproperty("Visible", true)("Title", ctx_r1.DialogTitle)("Width", 600);
|
|
255
268
|
i0.ɵɵadvance();
|
|
256
269
|
i0.ɵɵproperty("formGroup", ctx_r1.serverForm);
|
|
257
270
|
i0.ɵɵadvance();
|
|
@@ -261,27 +274,27 @@ function MCPServerDialogComponent_Conditional_0_Template(rf, ctx) { if (rf & 1)
|
|
|
261
274
|
i0.ɵɵadvance(4);
|
|
262
275
|
i0.ɵɵproperty("rows", 3);
|
|
263
276
|
i0.ɵɵadvance(4);
|
|
264
|
-
i0.ɵɵproperty("
|
|
277
|
+
i0.ɵɵproperty("Data", i0.ɵɵpureFunction0(35, _c0))("ngModelOptions", i0.ɵɵpureFunction0(36, _c1))("ngModel", (tmp_12_0 = ctx_r1.serverForm.get("Status")) == null ? null : tmp_12_0.value);
|
|
265
278
|
i0.ɵɵadvance(10);
|
|
266
|
-
i0.ɵɵproperty("
|
|
267
|
-
i0.ɵɵadvance(
|
|
268
|
-
i0.ɵɵconditional(ctx_r1.RequiresURL ?
|
|
279
|
+
i0.ɵɵproperty("Data", ctx_r1.transportTypes)("ValuePrimitive", true)("ngModelOptions", i0.ɵɵpureFunction0(37, _c1))("ngModel", (tmp_16_0 = ctx_r1.serverForm.get("TransportType")) == null ? null : tmp_16_0.value);
|
|
280
|
+
i0.ɵɵadvance(3);
|
|
281
|
+
i0.ɵɵconditional(ctx_r1.RequiresURL ? 34 : -1);
|
|
269
282
|
i0.ɵɵadvance();
|
|
270
|
-
i0.ɵɵconditional(ctx_r1.RequiresCommand ?
|
|
283
|
+
i0.ɵɵconditional(ctx_r1.RequiresCommand ? 35 : -1);
|
|
271
284
|
i0.ɵɵadvance(8);
|
|
272
|
-
i0.ɵɵproperty("
|
|
273
|
-
i0.ɵɵadvance(
|
|
274
|
-
i0.ɵɵconditional(ctx_r1.IsOAuth2 ?
|
|
285
|
+
i0.ɵɵproperty("Data", ctx_r1.authTypes)("ValuePrimitive", true)("ngModelOptions", i0.ɵɵpureFunction0(38, _c1))("ngModel", (tmp_22_0 = ctx_r1.serverForm.get("DefaultAuthType")) == null ? null : tmp_22_0.value);
|
|
286
|
+
i0.ɵɵadvance(3);
|
|
287
|
+
i0.ɵɵconditional(ctx_r1.IsOAuth2 ? 46 : -1);
|
|
275
288
|
i0.ɵɵadvance(9);
|
|
276
|
-
i0.ɵɵproperty("
|
|
289
|
+
i0.ɵɵproperty("Min", 0)("ngModelOptions", i0.ɵɵpureFunction0(39, _c1))("ngModel", (tmp_26_0 = ctx_r1.serverForm.get("RateLimitPerMinute")) == null ? null : tmp_26_0.value);
|
|
277
290
|
i0.ɵɵadvance(4);
|
|
278
|
-
i0.ɵɵproperty("
|
|
291
|
+
i0.ɵɵproperty("Min", 0)("ngModelOptions", i0.ɵɵpureFunction0(40, _c1))("ngModel", (tmp_29_0 = ctx_r1.serverForm.get("RateLimitPerHour")) == null ? null : tmp_29_0.value);
|
|
279
292
|
i0.ɵɵadvance(4);
|
|
280
|
-
i0.ɵɵproperty("
|
|
293
|
+
i0.ɵɵproperty("Min", 1000)("Max", 600000)("Step", 1000)("ngModelOptions", i0.ɵɵpureFunction0(41, _c1))("ngModel", (tmp_34_0 = ctx_r1.serverForm.get("RequestTimeoutMs")) == null ? null : tmp_34_0.value);
|
|
281
294
|
i0.ɵɵadvance(4);
|
|
282
295
|
i0.ɵɵproperty("disabled", ctx_r1.IsSaving);
|
|
283
296
|
i0.ɵɵadvance();
|
|
284
|
-
i0.ɵɵconditional(ctx_r1.IsSaving ?
|
|
297
|
+
i0.ɵɵconditional(ctx_r1.IsSaving ? 68 : -1);
|
|
285
298
|
i0.ɵɵadvance();
|
|
286
299
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.IsEditMode ? "Update" : "Create", " ");
|
|
287
300
|
} }
|
|
@@ -526,15 +539,15 @@ export class MCPServerDialogComponent {
|
|
|
526
539
|
return control?.hasError(errorType) && control?.touched || false;
|
|
527
540
|
}
|
|
528
541
|
static ɵfac = function MCPServerDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MCPServerDialogComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
529
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MCPServerDialogComponent, selectors: [["mj-mcp-server-dialog"]], inputs: { server: "server", visible: "visible" }, outputs: { close: "close" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[3, "
|
|
530
|
-
i0.ɵɵconditionalCreate(0, MCPServerDialogComponent_Conditional_0_Template,
|
|
542
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MCPServerDialogComponent, selectors: [["mj-mcp-server-dialog"]], inputs: { server: "server", visible: "visible" }, outputs: { close: "close" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["mjDropdownItem", ""], [3, "Visible", "Title", "Width"], [3, "Close", "Visible", "Title", "Width"], [1, "server-form", 3, "formGroup"], [1, "error-banner"], [1, "form-section"], [1, "fa-solid", "fa-info-circle"], [1, "form-group"], ["for", "name"], [1, "required"], ["id", "name", "formControlName", "Name", "placeholder", "e.g., GitHub MCP Server", 1, "mj-input"], [1, "error-text"], ["for", "description"], ["id", "description", "formControlName", "Description", "placeholder", "Optional description of this server", 1, "mj-textarea", 3, "rows"], ["for", "status"], [3, "ValueChange", "Data", "ngModelOptions", "ngModel"], [1, "fa-solid", "fa-network-wired"], ["for", "transportType"], ["TextField", "label", "ValueField", "value", 3, "ValueChange", "Data", "ValuePrimitive", "ngModelOptions", "ngModel"], [1, "fa-solid", "fa-shield-halved"], ["for", "authType"], [1, "form-section", "oauth-section"], [1, "fa-solid", "fa-gauge-high"], [1, "form-row"], [1, "form-group", "half"], ["for", "rateLimitMinute"], ["Placeholder", "No limit", 3, "ngModelChange", "Min", "ngModelOptions", "ngModel"], ["for", "rateLimitHour"], ["for", "requestTimeout"], [3, "ngModelChange", "Min", "Max", "Step", "ngModelOptions", "ngModel"], [1, "hint"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], ["mjButton", "", 3, "click"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "transport-option"], [1, "transport-label"], [1, "transport-desc"], ["for", "serverUrl"], ["id", "serverUrl", "formControlName", "ServerURL", "placeholder", "https://api.example.com/mcp", 1, "mj-input"], ["for", "command"], ["id", "command", "formControlName", "Command", "placeholder", "e.g., npx or /usr/local/bin/mcp-server", 1, "mj-input"], ["for", "commandArgs"], ["id", "commandArgs", "formControlName", "CommandArgs", "placeholder", "[\"arg1\", \"arg2\"]", 1, "mj-input"], [1, "auth-option"], [1, "auth-label"], [1, "auth-desc"], [1, "fa-solid", "fa-key"], ["for", "oauthIssuerUrl"], ["id", "oauthIssuerUrl", "formControlName", "OAuthIssuerURL", "placeholder", "https://auth.example.com", 1, "mj-input"], ["for", "oauthScopes"], ["id", "oauthScopes", "formControlName", "OAuthScopes", "placeholder", "openid profile email", 1, "mj-input"], ["for", "oauthCacheTtl"], ["Placeholder", "1440", 3, "ngModelChange", "Min", "ngModelOptions", "ngModel"], [1, "oauth-client-section"], [1, "section-hint"], ["for", "oauthClientId"], ["id", "oauthClientId", "formControlName", "OAuthClientID", "placeholder", "your-client-id", 1, "mj-input"], ["for", "oauthClientSecret"], ["id", "oauthClientSecret", "formControlName", "OAuthClientSecretEncrypted", "type", "password", "placeholder", "your-client-secret", 1, "mj-input"]], template: function MCPServerDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
543
|
+
i0.ɵɵconditionalCreate(0, MCPServerDialogComponent_Conditional_0_Template, 72, 42, "mj-dialog", 1);
|
|
531
544
|
} if (rf & 2) {
|
|
532
545
|
i0.ɵɵconditional(ctx.visible ? 0 : -1);
|
|
533
|
-
} }, dependencies: [i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, i2.
|
|
546
|
+
} }, dependencies: [i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.NgModel, i1.FormGroupDirective, i1.FormControlName, i2.MJButtonDirective, i2.MJDialogComponent, i2.MJDialogActionsComponent, i2.MJDropdownComponent, i2.MJNumericInputComponent], styles: [".server-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.form-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n}\n\n.form-group.half[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.transport-option[_ngcontent-%COMP%], \n.auth-option[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n padding: 4px 0;\n}\n\n.transport-label[_ngcontent-%COMP%], \n.auth-label[_ngcontent-%COMP%] {\n font-weight: 500;\n font-size: 14px;\n}\n\n.transport-desc[_ngcontent-%COMP%], \n.auth-desc[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n\n\n.oauth-section[_ngcontent-%COMP%] {\n background-color: color-mix(in srgb, var(--mj-brand-primary) 4%, transparent);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.oauth-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n}\n\n.oauth-client-section[_ngcontent-%COMP%] {\n margin-top: 20px;\n padding-top: 16px;\n border-top: 1px dashed var(--mj-border-strong);\n}\n\n.oauth-client-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.section-hint[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n\n\n[_nghost-%COMP%] .k-dialog-actions {\n padding: 16px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n[_nghost-%COMP%] .k-dialog-content {\n padding: 20px;\n max-height: 70vh;\n overflow-y: auto;\n}\n\n[_nghost-%COMP%] .k-textbox, \n[_nghost-%COMP%] .k-textarea, \n[_nghost-%COMP%] .k-numerictextbox, \n[_nghost-%COMP%] .k-dropdownlist {\n width: 100%;\n}"] });
|
|
534
547
|
}
|
|
535
548
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MCPServerDialogComponent, [{
|
|
536
549
|
type: Component,
|
|
537
|
-
args: [{ standalone: false, selector: 'mj-mcp-server-dialog', template: "@if (visible) {\n <kendo-dialog\n [title]=\"DialogTitle\"\n (close)=\"cancel()\"\n [width]=\"600\"\n [minWidth]=\"400\">\n <form [formGroup]=\"serverForm\" class=\"server-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=\"name\">Name <span class=\"required\">*</span></label>\n <input kendoTextBox\n id=\"name\"\n formControlName=\"Name\"\n placeholder=\"e.g., GitHub MCP Server\" />\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 server\"\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>\n <!-- Transport Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-network-wired\"></i> Transport Configuration</h3>\n <div class=\"form-group\">\n <label for=\"transportType\">Transport Type <span class=\"required\">*</span></label>\n <kendo-dropdownlist\n id=\"transportType\"\n formControlName=\"TransportType\"\n [data]=\"transportTypes\"\n textField=\"label\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n (valueChange)=\"onTransportTypeChange()\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"transport-option\">\n <span class=\"transport-label\">{{ dataItem.label }}</span>\n <span class=\"transport-desc\">{{ dataItem.description }}</span>\n </div>\n </ng-template>\n </kendo-dropdownlist>\n </div>\n @if (RequiresURL) {\n <div class=\"form-group\">\n <label for=\"serverUrl\">Server URL <span class=\"required\">*</span></label>\n <input kendoTextBox\n id=\"serverUrl\"\n formControlName=\"ServerURL\"\n placeholder=\"https://api.example.com/mcp\" />\n @if (hasError('ServerURL', 'required')) {\n <span class=\"error-text\">Server URL is required for this transport type</span>\n }\n </div>\n }\n @if (RequiresCommand) {\n <div class=\"form-group\">\n <label for=\"command\">Command <span class=\"required\">*</span></label>\n <input kendoTextBox\n id=\"command\"\n formControlName=\"Command\"\n placeholder=\"e.g., npx or /usr/local/bin/mcp-server\" />\n @if (hasError('Command', 'required')) {\n <span class=\"error-text\">Command is required for Stdio transport</span>\n }\n </div>\n <div class=\"form-group\">\n <label for=\"commandArgs\">Command Arguments (JSON array)</label>\n <input kendoTextBox\n id=\"commandArgs\"\n formControlName=\"CommandArgs\"\n placeholder='[\"arg1\", \"arg2\"]' />\n <span class=\"hint\">JSON array of command line arguments</span>\n </div>\n }\n </div>\n <!-- Authentication Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-shield-halved\"></i> Authentication</h3>\n <div class=\"form-group\">\n <label for=\"authType\">Default Auth Type</label>\n <kendo-dropdownlist\n id=\"authType\"\n formControlName=\"DefaultAuthType\"\n [data]=\"authTypes\"\n textField=\"label\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n (valueChange)=\"onAuthTypeChange()\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"auth-option\">\n <span class=\"auth-label\">{{ dataItem.label }}</span>\n <span class=\"auth-desc\">{{ dataItem.description }}</span>\n </div>\n </ng-template>\n </kendo-dropdownlist>\n </div>\n </div>\n <!-- OAuth 2.0 Configuration Section (only shown when OAuth2 is selected) -->\n @if (IsOAuth2) {\n <div class=\"form-section oauth-section\">\n <h3><i class=\"fa-solid fa-key\"></i> OAuth 2.0 Configuration</h3>\n <div class=\"form-group\">\n <label for=\"oauthIssuerUrl\">OAuth Issuer URL <span class=\"required\">*</span></label>\n <input kendoTextBox\n id=\"oauthIssuerUrl\"\n formControlName=\"OAuthIssuerURL\"\n placeholder=\"https://auth.example.com\" />\n @if (hasError('OAuthIssuerURL', 'required')) {\n <span class=\"error-text\">OAuth Issuer URL is required for OAuth 2.0 authentication</span>\n }\n <span class=\"hint\">The authorization server's issuer URL (e.g., https://login.microsoftonline.com/tenant-id or https://your-domain.auth0.com)</span>\n </div>\n <div class=\"form-group\">\n <label for=\"oauthScopes\">OAuth Scopes</label>\n <input kendoTextBox\n id=\"oauthScopes\"\n formControlName=\"OAuthScopes\"\n placeholder=\"openid profile email\" />\n <span class=\"hint\">Space-separated list of OAuth scopes to request</span>\n </div>\n <div class=\"form-group\">\n <label for=\"oauthCacheTtl\">Metadata Cache TTL (minutes)</label>\n <kendo-numerictextbox\n id=\"oauthCacheTtl\"\n formControlName=\"OAuthMetadataCacheTTLMinutes\"\n [min]=\"5\"\n [format]=\"'n0'\"\n placeholder=\"1440\">\n </kendo-numerictextbox>\n <span class=\"hint\">How long to cache OAuth metadata (default: 1440 minutes = 24 hours)</span>\n </div>\n <div class=\"oauth-client-section\">\n <h4>Pre-configured Client (Optional)</h4>\n <p class=\"section-hint\">Leave blank to use Dynamic Client Registration (DCR). If the auth server doesn't support DCR, configure your client credentials here.</p>\n <div class=\"form-group\">\n <label for=\"oauthClientId\">Client ID</label>\n <input kendoTextBox\n id=\"oauthClientId\"\n formControlName=\"OAuthClientID\"\n placeholder=\"your-client-id\" />\n </div>\n <div class=\"form-group\">\n <label for=\"oauthClientSecret\">Client Secret</label>\n <input kendoTextBox\n id=\"oauthClientSecret\"\n formControlName=\"OAuthClientSecretEncrypted\"\n type=\"password\"\n placeholder=\"your-client-secret\" />\n <span class=\"hint\">The secret will be encrypted before storage</span>\n </div>\n </div>\n </div>\n }\n <!-- Rate Limiting Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-gauge-high\"></i> Rate Limiting</h3>\n <div class=\"form-row\">\n <div class=\"form-group half\">\n <label for=\"rateLimitMinute\">Requests per Minute</label>\n <kendo-numerictextbox\n id=\"rateLimitMinute\"\n formControlName=\"RateLimitPerMinute\"\n [min]=\"0\"\n [format]=\"'n0'\"\n placeholder=\"No limit\">\n </kendo-numerictextbox>\n </div>\n <div class=\"form-group half\">\n <label for=\"rateLimitHour\">Requests per Hour</label>\n <kendo-numerictextbox\n id=\"rateLimitHour\"\n formControlName=\"RateLimitPerHour\"\n [min]=\"0\"\n [format]=\"'n0'\"\n placeholder=\"No limit\">\n </kendo-numerictextbox>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"requestTimeout\">Request Timeout (ms)</label>\n <kendo-numerictextbox\n id=\"requestTimeout\"\n formControlName=\"RequestTimeoutMs\"\n [min]=\"1000\"\n [max]=\"600000\"\n [step]=\"1000\"\n [format]=\"'n0'\">\n </kendo-numerictextbox>\n <span class=\"hint\">Timeout for individual tool calls (1000-600000ms)</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", styles: [".server-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.form-row {\n display: flex;\n gap: 16px;\n}\n\n.form-group.half {\n flex: 1;\n}\n\n.transport-option,\n.auth-option {\n display: flex;\n flex-direction: column;\n padding: 4px 0;\n}\n\n.transport-label,\n.auth-label {\n font-weight: 500;\n font-size: 14px;\n}\n\n.transport-desc,\n.auth-desc {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n/* OAuth Section Styles */\n.oauth-section {\n background-color: color-mix(in srgb, var(--mj-brand-primary) 4%, transparent);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.oauth-section h3 i {\n color: var(--mj-status-warning);\n}\n\n.oauth-client-section {\n margin-top: 20px;\n padding-top: 16px;\n border-top: 1px dashed var(--mj-border-strong);\n}\n\n.oauth-client-section h4 {\n margin: 0 0 8px 0;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.section-hint {\n margin: 0 0 16px 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n font-style: italic;\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"] }]
|
|
550
|
+
args: [{ standalone: false, selector: 'mj-mcp-server-dialog', template: "@if (visible) {\n <mj-dialog\n [Visible]=\"true\"\n [Title]=\"DialogTitle\"\n (Close)=\"cancel()\"\n [Width]=\"600\">\n <form [formGroup]=\"serverForm\" class=\"server-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=\"name\">Name <span class=\"required\">*</span></label>\n <input class=\"mj-input\"\n id=\"name\"\n formControlName=\"Name\"\n placeholder=\"e.g., GitHub MCP Server\" />\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 server\"\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]=\"serverForm.get('Status')?.value\"\n (ValueChange)=\"serverForm.get('Status')?.setValue($any($event))\">\n </mj-dropdown>\n </div>\n </div>\n <!-- Transport Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-network-wired\"></i> Transport Configuration</h3>\n <div class=\"form-group\">\n <label for=\"transportType\">Transport Type <span class=\"required\">*</span></label>\n <mj-dropdown\n [Data]=\"transportTypes\"\n TextField=\"label\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"serverForm.get('TransportType')?.value\"\n (ValueChange)=\"serverForm.get('TransportType')?.setValue($any($event)); onTransportTypeChange()\">\n <ng-template #mjDropdownItem let-dataItem>\n <div class=\"transport-option\">\n <span class=\"transport-label\">{{ dataItem.label }}</span>\n <span class=\"transport-desc\">{{ dataItem.description }}</span>\n </div>\n </ng-template>\n </mj-dropdown>\n </div>\n @if (RequiresURL) {\n <div class=\"form-group\">\n <label for=\"serverUrl\">Server URL <span class=\"required\">*</span></label>\n <input class=\"mj-input\"\n id=\"serverUrl\"\n formControlName=\"ServerURL\"\n placeholder=\"https://api.example.com/mcp\" />\n @if (hasError('ServerURL', 'required')) {\n <span class=\"error-text\">Server URL is required for this transport type</span>\n }\n </div>\n }\n @if (RequiresCommand) {\n <div class=\"form-group\">\n <label for=\"command\">Command <span class=\"required\">*</span></label>\n <input class=\"mj-input\"\n id=\"command\"\n formControlName=\"Command\"\n placeholder=\"e.g., npx or /usr/local/bin/mcp-server\" />\n @if (hasError('Command', 'required')) {\n <span class=\"error-text\">Command is required for Stdio transport</span>\n }\n </div>\n <div class=\"form-group\">\n <label for=\"commandArgs\">Command Arguments (JSON array)</label>\n <input class=\"mj-input\"\n id=\"commandArgs\"\n formControlName=\"CommandArgs\"\n placeholder='[\"arg1\", \"arg2\"]' />\n <span class=\"hint\">JSON array of command line arguments</span>\n </div>\n }\n </div>\n <!-- Authentication Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-shield-halved\"></i> Authentication</h3>\n <div class=\"form-group\">\n <label for=\"authType\">Default Auth Type</label>\n <mj-dropdown\n [Data]=\"authTypes\"\n TextField=\"label\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"serverForm.get('DefaultAuthType')?.value\"\n (ValueChange)=\"serverForm.get('DefaultAuthType')?.setValue($any($event)); onAuthTypeChange()\">\n <ng-template #mjDropdownItem let-dataItem>\n <div class=\"auth-option\">\n <span class=\"auth-label\">{{ dataItem.label }}</span>\n <span class=\"auth-desc\">{{ dataItem.description }}</span>\n </div>\n </ng-template>\n </mj-dropdown>\n </div>\n </div>\n <!-- OAuth 2.0 Configuration Section -->\n @if (IsOAuth2) {\n <div class=\"form-section oauth-section\">\n <h3><i class=\"fa-solid fa-key\"></i> OAuth 2.0 Configuration</h3>\n <div class=\"form-group\">\n <label for=\"oauthIssuerUrl\">OAuth Issuer URL <span class=\"required\">*</span></label>\n <input class=\"mj-input\"\n id=\"oauthIssuerUrl\"\n formControlName=\"OAuthIssuerURL\"\n placeholder=\"https://auth.example.com\" />\n @if (hasError('OAuthIssuerURL', 'required')) {\n <span class=\"error-text\">OAuth Issuer URL is required for OAuth 2.0 authentication</span>\n }\n <span class=\"hint\">The authorization server's issuer URL (e.g., https://login.microsoftonline.com/tenant-id or https://your-domain.auth0.com)</span>\n </div>\n <div class=\"form-group\">\n <label for=\"oauthScopes\">OAuth Scopes</label>\n <input class=\"mj-input\"\n id=\"oauthScopes\"\n formControlName=\"OAuthScopes\"\n placeholder=\"openid profile email\" />\n <span class=\"hint\">Space-separated list of OAuth scopes to request</span>\n </div>\n <div class=\"form-group\">\n <label for=\"oauthCacheTtl\">Metadata Cache TTL (minutes)</label>\n <mj-numeric-input\n [Min]=\"5\"\n Placeholder=\"1440\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"serverForm.get('OAuthMetadataCacheTTLMinutes')?.value\"\n (ngModelChange)=\"serverForm.get('OAuthMetadataCacheTTLMinutes')?.setValue($event)\">\n </mj-numeric-input>\n <span class=\"hint\">How long to cache OAuth metadata (default: 1440 minutes = 24 hours)</span>\n </div>\n <div class=\"oauth-client-section\">\n <h4>Pre-configured Client (Optional)</h4>\n <p class=\"section-hint\">Leave blank to use Dynamic Client Registration (DCR). If the auth server doesn't support DCR, configure your client credentials here.</p>\n <div class=\"form-group\">\n <label for=\"oauthClientId\">Client ID</label>\n <input class=\"mj-input\"\n id=\"oauthClientId\"\n formControlName=\"OAuthClientID\"\n placeholder=\"your-client-id\" />\n </div>\n <div class=\"form-group\">\n <label for=\"oauthClientSecret\">Client Secret</label>\n <input class=\"mj-input\"\n id=\"oauthClientSecret\"\n formControlName=\"OAuthClientSecretEncrypted\"\n type=\"password\"\n placeholder=\"your-client-secret\" />\n <span class=\"hint\">The secret will be encrypted before storage</span>\n </div>\n </div>\n </div>\n }\n <!-- Rate Limiting Section -->\n <div class=\"form-section\">\n <h3><i class=\"fa-solid fa-gauge-high\"></i> Rate Limiting</h3>\n <div class=\"form-row\">\n <div class=\"form-group half\">\n <label for=\"rateLimitMinute\">Requests per Minute</label>\n <mj-numeric-input\n [Min]=\"0\"\n Placeholder=\"No limit\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"serverForm.get('RateLimitPerMinute')?.value\"\n (ngModelChange)=\"serverForm.get('RateLimitPerMinute')?.setValue($event)\">\n </mj-numeric-input>\n </div>\n <div class=\"form-group half\">\n <label for=\"rateLimitHour\">Requests per Hour</label>\n <mj-numeric-input\n [Min]=\"0\"\n Placeholder=\"No limit\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"serverForm.get('RateLimitPerHour')?.value\"\n (ngModelChange)=\"serverForm.get('RateLimitPerHour')?.setValue($event)\">\n </mj-numeric-input>\n </div>\n </div>\n <div class=\"form-group\">\n <label for=\"requestTimeout\">Request Timeout (ms)</label>\n <mj-numeric-input\n [Min]=\"1000\"\n [Max]=\"600000\"\n [Step]=\"1000\"\n [ngModelOptions]=\"{standalone: true}\" [ngModel]=\"serverForm.get('RequestTimeoutMs')?.value\"\n (ngModelChange)=\"serverForm.get('RequestTimeoutMs')?.setValue($event)\">\n </mj-numeric-input>\n <span class=\"hint\">Timeout for individual tool calls (1000-600000ms)</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", styles: [".server-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.form-row {\n display: flex;\n gap: 16px;\n}\n\n.form-group.half {\n flex: 1;\n}\n\n.transport-option,\n.auth-option {\n display: flex;\n flex-direction: column;\n padding: 4px 0;\n}\n\n.transport-label,\n.auth-label {\n font-weight: 500;\n font-size: 14px;\n}\n\n.transport-desc,\n.auth-desc {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n/* OAuth Section Styles */\n.oauth-section {\n background-color: color-mix(in srgb, var(--mj-brand-primary) 4%, transparent);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.oauth-section h3 i {\n color: var(--mj-status-warning);\n}\n\n.oauth-client-section {\n margin-top: 20px;\n padding-top: 16px;\n border-top: 1px dashed var(--mj-border-strong);\n}\n\n.oauth-client-section h4 {\n margin: 0 0 8px 0;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.section-hint {\n margin: 0 0 16px 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n font-style: italic;\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"] }]
|
|
538
551
|
}], () => [{ type: i1.FormBuilder }, { type: i0.ChangeDetectorRef }], { server: [{
|
|
539
552
|
type: Input
|
|
540
553
|
}], visible: [{
|