@memberjunction/ng-dashboards 5.35.0 → 5.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AI/components/agents/agent-configuration.component.js +3 -3
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +22 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.js +157 -137
- package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +28 -0
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +2075 -2068
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.js +4 -4
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +3 -3
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +15 -0
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +1411 -1424
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.d.ts +12 -8
- package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.js +329 -371
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +137 -142
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +111 -116
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Admin/admin-data-schema.component.js +13 -65
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +13 -65
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +13 -65
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +13 -65
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/Admin/base-admin-container.component.d.ts +9 -7
- package/dist/Admin/base-admin-container.component.d.ts.map +1 -1
- package/dist/Admin/base-admin-container.component.js +26 -17
- package/dist/Admin/base-admin-container.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +74 -67
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
- package/dist/Communication/communication-new-message-resource.component.d.ts +93 -0
- package/dist/Communication/communication-new-message-resource.component.d.ts.map +1 -0
- package/dist/Communication/communication-new-message-resource.component.js +661 -0
- package/dist/Communication/communication-new-message-resource.component.js.map +1 -0
- package/dist/Credentials/components/credentials-categories-resource.component.js +152 -159
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +151 -155
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +20 -21
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.d.ts +2 -0
- package/dist/DatabaseDesigner/components/entity-list.component.d.ts.map +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +131 -125
- package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js +7 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/DevTools/app-state-inspector.component.d.ts +5 -0
- package/dist/DevTools/app-state-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/app-state-inspector.component.js +46 -72
- package/dist/DevTools/app-state-inspector.component.js.map +1 -1
- package/dist/DevTools/class-registry.component.js +88 -100
- package/dist/DevTools/class-registry.component.js.map +1 -1
- package/dist/DevTools/event-monitor.component.js +158 -168
- package/dist/DevTools/event-monitor.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.js +257 -264
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/DevTools/layout-inspector.component.d.ts +5 -0
- package/dist/DevTools/layout-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/layout-inspector.component.js +46 -64
- package/dist/DevTools/layout-inspector.component.js.map +1 -1
- package/dist/DevTools/lazy-module-status.component.js +75 -84
- package/dist/DevTools/lazy-module-status.component.js.map +1 -1
- package/dist/DevTools/settings-explorer.component.js +76 -85
- package/dist/DevTools/settings-explorer.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +2 -0
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +7 -3
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +97 -99
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +842 -855
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.js +502 -517
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.js +78 -89
- package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts +5 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +1120 -1128
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +11 -0
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +606 -661
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +102 -0
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +1179 -504
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts +133 -3
- package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +1527 -327
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-shared-with-me-resource.component.d.ts +29 -0
- package/dist/Lists/components/lists-shared-with-me-resource.component.d.ts.map +1 -0
- package/dist/Lists/components/lists-shared-with-me-resource.component.js +77 -0
- package/dist/Lists/components/lists-shared-with-me-resource.component.js.map +1 -0
- package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts +6 -0
- package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js +35 -7
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
- package/dist/Lists/index.d.ts +1 -0
- package/dist/Lists/index.d.ts.map +1 -1
- package/dist/Lists/index.js +1 -0
- package/dist/Lists/index.js.map +1 -1
- package/dist/Lists/services/list-set-operations.service.d.ts +93 -2
- package/dist/Lists/services/list-set-operations.service.d.ts.map +1 -1
- package/dist/Lists/services/list-set-operations.service.js +236 -10
- package/dist/Lists/services/list-set-operations.service.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +19 -19
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +58 -60
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +13 -3
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +1007 -1252
- package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +31 -6
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +543 -629
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +50 -49
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +1 -1
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +16 -1
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +9 -7
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +13 -4
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/core-dashboards.module.d.ts +1 -1
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +16 -1
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/lists-dashboards.module.d.ts +10 -9
- package/dist/lists-dashboards.module.d.ts.map +1 -1
- package/dist/lists-dashboards.module.js +13 -2
- package/dist/lists-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +1 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +1 -0
- package/dist/public-api.js.map +1 -1
- package/dist/testing-dashboards.module.d.ts +1 -1
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +13 -1
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +53 -52
|
@@ -25,23 +25,23 @@ function TestingDashboardComponent_Conditional_3_Template(rf, ctx) { if (rf & 1)
|
|
|
25
25
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
26
26
|
i0.ɵɵproperty("Count", ctx_r0.ActiveRuns.length);
|
|
27
27
|
} }
|
|
28
|
-
function
|
|
29
|
-
i0.ɵɵelementStart(0, "div",
|
|
30
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
28
|
+
function TestingDashboardComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
+
i0.ɵɵelementStart(0, "div", 7);
|
|
30
|
+
i0.ɵɵelement(1, "mj-loading", 9);
|
|
31
31
|
i0.ɵɵelementEnd();
|
|
32
32
|
} }
|
|
33
|
-
function
|
|
33
|
+
function TestingDashboardComponent_Conditional_10_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
34
34
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
35
|
-
i0.ɵɵelementStart(0, "div",
|
|
36
|
-
i0.ɵɵelement(1, "i",
|
|
37
|
-
i0.ɵɵelementStart(2, "span",
|
|
35
|
+
i0.ɵɵelementStart(0, "div", 10);
|
|
36
|
+
i0.ɵɵelement(1, "i", 13);
|
|
37
|
+
i0.ɵɵelementStart(2, "span", 14);
|
|
38
38
|
i0.ɵɵtext(3);
|
|
39
39
|
i0.ɵɵelementEnd();
|
|
40
|
-
i0.ɵɵelementStart(4, "span",
|
|
40
|
+
i0.ɵɵelementStart(4, "span", 15);
|
|
41
41
|
i0.ɵɵtext(5);
|
|
42
42
|
i0.ɵɵelementEnd();
|
|
43
|
-
i0.ɵɵelementStart(6, "button",
|
|
44
|
-
i0.ɵɵlistener("click", function
|
|
43
|
+
i0.ɵɵelementStart(6, "button", 16);
|
|
44
|
+
i0.ɵɵlistener("click", function TestingDashboardComponent_Conditional_10_Conditional_0_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.OnViewActiveRun(ctx_r0.ActiveRuns[0])); });
|
|
45
45
|
i0.ɵɵtext(7, "View");
|
|
46
46
|
i0.ɵɵelementEnd()();
|
|
47
47
|
} if (rf & 2) {
|
|
@@ -51,49 +51,49 @@ function TestingDashboardComponent_Conditional_9_Conditional_0_Template(rf, ctx)
|
|
|
51
51
|
i0.ɵɵadvance(2);
|
|
52
52
|
i0.ɵɵtextInterpolate2("", ctx_r0.ActiveRuns[0].TestName, " \u2014 ", ctx_r0.ActiveRuns[0].Progress, "%");
|
|
53
53
|
} }
|
|
54
|
-
function
|
|
54
|
+
function TestingDashboardComponent_Conditional_10_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
55
55
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
56
|
-
i0.ɵɵelementStart(0, "app-testing-dashboard-tab",
|
|
57
|
-
i0.ɵɵlistener("stateChange", function
|
|
56
|
+
i0.ɵɵelementStart(0, "app-testing-dashboard-tab", 17);
|
|
57
|
+
i0.ɵɵlistener("stateChange", function TestingDashboardComponent_Conditional_10_Conditional_2_Template_app_testing_dashboard_tab_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onDashboardStateChange($event)); });
|
|
58
58
|
i0.ɵɵelementEnd();
|
|
59
59
|
} if (rf & 2) {
|
|
60
60
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
61
61
|
i0.ɵɵproperty("initialState", ctx_r0.dashboardState)("HideToolbar", true);
|
|
62
62
|
} }
|
|
63
|
-
function
|
|
63
|
+
function TestingDashboardComponent_Conditional_10_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
64
64
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
65
|
-
i0.ɵɵelementStart(0, "app-testing-runs",
|
|
66
|
-
i0.ɵɵlistener("stateChange", function
|
|
65
|
+
i0.ɵɵelementStart(0, "app-testing-runs", 17);
|
|
66
|
+
i0.ɵɵlistener("stateChange", function TestingDashboardComponent_Conditional_10_Conditional_3_Template_app_testing_runs_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onRunsStateChange($event)); });
|
|
67
67
|
i0.ɵɵelementEnd();
|
|
68
68
|
} if (rf & 2) {
|
|
69
69
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
70
70
|
i0.ɵɵproperty("initialState", ctx_r0.runsState)("HideToolbar", true);
|
|
71
71
|
} }
|
|
72
|
-
function
|
|
72
|
+
function TestingDashboardComponent_Conditional_10_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
73
73
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
74
|
-
i0.ɵɵelementStart(0, "app-testing-analytics",
|
|
75
|
-
i0.ɵɵlistener("stateChange", function
|
|
74
|
+
i0.ɵɵelementStart(0, "app-testing-analytics", 17);
|
|
75
|
+
i0.ɵɵlistener("stateChange", function TestingDashboardComponent_Conditional_10_Conditional_4_Template_app_testing_analytics_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onAnalyticsStateChange($event)); });
|
|
76
76
|
i0.ɵɵelementEnd();
|
|
77
77
|
} if (rf & 2) {
|
|
78
78
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
79
79
|
i0.ɵɵproperty("initialState", ctx_r0.analyticsState)("HideToolbar", true);
|
|
80
80
|
} }
|
|
81
|
-
function
|
|
81
|
+
function TestingDashboardComponent_Conditional_10_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
82
82
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
83
|
-
i0.ɵɵelementStart(0, "app-testing-review",
|
|
84
|
-
i0.ɵɵlistener("stateChange", function
|
|
83
|
+
i0.ɵɵelementStart(0, "app-testing-review", 17);
|
|
84
|
+
i0.ɵɵlistener("stateChange", function TestingDashboardComponent_Conditional_10_Conditional_5_Template_app_testing_review_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onReviewStateChange($event)); });
|
|
85
85
|
i0.ɵɵelementEnd();
|
|
86
86
|
} if (rf & 2) {
|
|
87
87
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
88
88
|
i0.ɵɵproperty("initialState", ctx_r0.reviewState)("HideToolbar", true);
|
|
89
89
|
} }
|
|
90
|
-
function
|
|
91
|
-
i0.ɵɵconditionalCreate(0,
|
|
92
|
-
i0.ɵɵelementStart(1, "div",
|
|
93
|
-
i0.ɵɵconditionalCreate(2,
|
|
94
|
-
i0.ɵɵconditionalCreate(3,
|
|
95
|
-
i0.ɵɵconditionalCreate(4,
|
|
96
|
-
i0.ɵɵconditionalCreate(5,
|
|
90
|
+
function TestingDashboardComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
91
|
+
i0.ɵɵconditionalCreate(0, TestingDashboardComponent_Conditional_10_Conditional_0_Template, 8, 4, "div", 10);
|
|
92
|
+
i0.ɵɵelementStart(1, "div", 11);
|
|
93
|
+
i0.ɵɵconditionalCreate(2, TestingDashboardComponent_Conditional_10_Conditional_2_Template, 1, 2, "app-testing-dashboard-tab", 12);
|
|
94
|
+
i0.ɵɵconditionalCreate(3, TestingDashboardComponent_Conditional_10_Conditional_3_Template, 1, 2, "app-testing-runs", 12);
|
|
95
|
+
i0.ɵɵconditionalCreate(4, TestingDashboardComponent_Conditional_10_Conditional_4_Template, 1, 2, "app-testing-analytics", 12);
|
|
96
|
+
i0.ɵɵconditionalCreate(5, TestingDashboardComponent_Conditional_10_Conditional_5_Template, 1, 2, "app-testing-review", 12);
|
|
97
97
|
i0.ɵɵelementEnd();
|
|
98
98
|
} if (rf & 2) {
|
|
99
99
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -107,12 +107,12 @@ function TestingDashboardComponent_Conditional_9_Template(rf, ctx) { if (rf & 1)
|
|
|
107
107
|
i0.ɵɵadvance();
|
|
108
108
|
i0.ɵɵconditional(ctx_r0.activeTab === "review" && ctx_r0.hasVisited("review") ? 5 : -1);
|
|
109
109
|
} }
|
|
110
|
-
function
|
|
110
|
+
function TestingDashboardComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
111
111
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
112
|
-
i0.ɵɵelementStart(0, "mj-slide-panel",
|
|
113
|
-
i0.ɵɵlistener("Closed", function
|
|
114
|
-
i0.ɵɵelementStart(1, "app-test-run-dialog",
|
|
115
|
-
i0.ɵɵlistener("PanelClose", function
|
|
112
|
+
i0.ɵɵelementStart(0, "mj-slide-panel", 18);
|
|
113
|
+
i0.ɵɵlistener("Closed", function TestingDashboardComponent_Conditional_11_Template_mj_slide_panel_Closed_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnPanelClosed()); });
|
|
114
|
+
i0.ɵɵelementStart(1, "app-test-run-dialog", 19);
|
|
115
|
+
i0.ɵɵlistener("PanelClose", function TestingDashboardComponent_Conditional_11_Template_app_test_run_dialog_PanelClose_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnPanelClosed()); });
|
|
116
116
|
i0.ɵɵelementEnd()();
|
|
117
117
|
} if (rf & 2) {
|
|
118
118
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -299,34 +299,35 @@ let TestingDashboardComponent = class TestingDashboardComponent extends BaseDash
|
|
|
299
299
|
});
|
|
300
300
|
}
|
|
301
301
|
static ɵfac = function TestingDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TestingDashboardComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.TestingDialogService), i0.ɵɵdirectiveInject(i1.TestingExecutionService), i0.ɵɵdirectiveInject(i2.TestingInstrumentationService)); };
|
|
302
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingDashboardComponent, selectors: [["mj-testing-dashboard"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
302
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingDashboardComponent, selectors: [["mj-testing-dashboard"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 12, vars: 7, consts: [["Title", "Testing", "Icon", "fa-solid fa-vial-circle-check", "Subtitle", "Evaluate AI agents, workflows, and system components"], ["meta", ""], ["Icon", "fa-solid fa-spinner fa-spin", "Label", "running", "Variant", "running", 3, "Count"], ["actions", ""], ["toolbar", ""], [3, "TabChange", "Tabs", "ActiveKey"], [3, "Flex"], [1, "loading-container"], ["Mode", "slide", 3, "Title", "Resizable"], ["text", "Loading Testing Dashboard...", "size", "large"], [1, "active-runs-banner"], [1, "dashboard-content"], [3, "initialState", "HideToolbar"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "active-runs-count"], [1, "active-runs-detail"], [1, "active-runs-view-btn", 3, "click"], [3, "stateChange", "initialState", "HideToolbar"], ["Mode", "slide", 3, "Closed", "Title", "Resizable"], [3, "PanelClose", "PanelMode", "selectedTestId", "selectedSuiteId", "runMode"]], template: function TestingDashboardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
303
303
|
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 0)(2, "div", 1);
|
|
304
304
|
i0.ɵɵconditionalCreate(3, TestingDashboardComponent_Conditional_3_Template, 1, 1, "mj-stat-badge", 2);
|
|
305
305
|
i0.ɵɵelementEnd();
|
|
306
|
-
i0.ɵɵelementStart(4, "div", 3)
|
|
307
|
-
i0.ɵɵ
|
|
306
|
+
i0.ɵɵelementStart(4, "div", 3);
|
|
307
|
+
i0.ɵɵelement(5, "app-evaluation-mode-toggle");
|
|
308
308
|
i0.ɵɵelementEnd();
|
|
309
|
-
i0.ɵɵ
|
|
310
|
-
i0.ɵɵ
|
|
311
|
-
i0.ɵɵ
|
|
312
|
-
i0.ɵɵ
|
|
313
|
-
i0.ɵɵconditionalCreate(9, TestingDashboardComponent_Conditional_9_Template,
|
|
309
|
+
i0.ɵɵelementStart(6, "div", 4)(7, "mj-tab-nav", 5);
|
|
310
|
+
i0.ɵɵlistener("TabChange", function TestingDashboardComponent_Template_mj_tab_nav_TabChange_7_listener($event) { return ctx.onTabChange($event); });
|
|
311
|
+
i0.ɵɵelementEnd()()();
|
|
312
|
+
i0.ɵɵelementStart(8, "mj-page-body", 6);
|
|
313
|
+
i0.ɵɵconditionalCreate(9, TestingDashboardComponent_Conditional_9_Template, 2, 0, "div", 7);
|
|
314
|
+
i0.ɵɵconditionalCreate(10, TestingDashboardComponent_Conditional_10_Template, 6, 5);
|
|
314
315
|
i0.ɵɵelementEnd();
|
|
315
|
-
i0.ɵɵconditionalCreate(
|
|
316
|
+
i0.ɵɵconditionalCreate(11, TestingDashboardComponent_Conditional_11_Template, 2, 6, "mj-slide-panel", 8);
|
|
316
317
|
i0.ɵɵelementEnd();
|
|
317
318
|
} if (rf & 2) {
|
|
318
319
|
i0.ɵɵadvance(3);
|
|
319
320
|
i0.ɵɵconditional(ctx.ActiveRuns.length > 0 ? 3 : -1);
|
|
320
|
-
i0.ɵɵadvance(
|
|
321
|
+
i0.ɵɵadvance(4);
|
|
321
322
|
i0.ɵɵproperty("Tabs", ctx.Tabs)("ActiveKey", ctx.activeTab);
|
|
322
|
-
i0.ɵɵadvance(
|
|
323
|
+
i0.ɵɵadvance();
|
|
323
324
|
i0.ɵɵproperty("Flex", true);
|
|
324
325
|
i0.ɵɵadvance();
|
|
325
|
-
i0.ɵɵconditional(ctx.isLoading ?
|
|
326
|
+
i0.ɵɵconditional(ctx.isLoading ? 9 : -1);
|
|
326
327
|
i0.ɵɵadvance();
|
|
327
|
-
i0.ɵɵconditional(!ctx.isLoading ?
|
|
328
|
+
i0.ɵɵconditional(!ctx.isLoading ? 10 : -1);
|
|
328
329
|
i0.ɵɵadvance();
|
|
329
|
-
i0.ɵɵconditional(ctx.testingDialogService.IsPanelOpen ?
|
|
330
|
+
i0.ɵɵconditional(ctx.testingDialogService.IsPanelOpen ? 11 : -1);
|
|
330
331
|
} }, dependencies: [i3.MJPageHeaderComponent, i3.MJPageLayoutComponent, i3.MJPageBodyComponent, i3.MJTabNavComponent, i3.MJStatBadgeComponent, i1.TestRunDialogComponent, i1.EvaluationModeToggleComponent, i4.MjSlidePanelComponent, i5.LoadingComponent, i6.TestingDashboardTabComponent, i7.TestingRunsComponent, i8.TestingAnalyticsComponent, i9.TestingReviewComponent], styles: ["\n\n\n\n\n\n\n\n.loading-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n background: var(--mj-bg-surface);\n backdrop-filter: blur(8px);\n}\n\n.loading-content[_ngcontent-%COMP%] {\n text-align: center;\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n}\n\n.spinner-ring[_ngcontent-%COMP%] {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 64px;\n height: 64px;\n margin: 8px;\n border: 8px solid var(--mj-brand-primary);\n border-radius: 50%;\n animation: _ngcontent-%COMP%_spinner-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: var(--mj-brand-primary) transparent transparent transparent;\n}\n\n.spinner-ring[_ngcontent-%COMP%]:nth-child(1) {\n animation-delay: -0.45s;\n}\n\n.spinner-ring[_ngcontent-%COMP%]:nth-child(2) {\n animation-delay: -0.3s;\n}\n\n.spinner-ring[_ngcontent-%COMP%]:nth-child(3) {\n animation-delay: -0.15s;\n}\n\n@keyframes _ngcontent-%COMP%_spinner-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.loading-text[_ngcontent-%COMP%] {\n margin-top: 20px;\n font-size: 16px;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.dashboard-content[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n\n\n.active-runs-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 20px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-bottom: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-border-default));\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.active-runs-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.active-runs-count[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n\n.active-runs-detail[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.active-runs-view-btn[_ngcontent-%COMP%] {\n padding: 4px 14px;\n border: 1px solid var(--mj-brand-primary);\n border-radius: 6px;\n background: transparent;\n color: var(--mj-brand-primary);\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n white-space: nowrap;\n transition: background 0.2s;\n}\n\n.active-runs-view-btn[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n}\n\n\n\n@media (max-width: 768px) {\n .testing-dashboard-nav[_ngcontent-%COMP%] {\n padding: 0 8px;\n overflow-x: auto;\n }\n\n .nav-item[_ngcontent-%COMP%] {\n padding: 12px 16px;\n gap: 8px;\n }\n\n .nav-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-size: 11px;\n }\n\n .nav-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .active-runs-banner[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n padding: 8px 12px;\n gap: 6px;\n }\n\n .active-runs-detail[_ngcontent-%COMP%] {\n width: 100%;\n order: 3;\n }\n}\n\n@media (max-width: 480px) {\n .nav-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n display: none;\n }\n\n .nav-item[_ngcontent-%COMP%] {\n padding: 12px 14px;\n }\n}"], changeDetection: 0 });
|
|
331
332
|
};
|
|
332
333
|
TestingDashboardComponent = __decorate([
|
|
@@ -335,7 +336,7 @@ TestingDashboardComponent = __decorate([
|
|
|
335
336
|
export { TestingDashboardComponent };
|
|
336
337
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestingDashboardComponent, [{
|
|
337
338
|
type: Component,
|
|
338
|
-
args: [{ standalone: false, selector: 'mj-testing-dashboard', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mj-page-layout>\n <mj-page-header\n Title=\"Testing\"\n Icon=\"fa-solid fa-vial-circle-check\"\n Subtitle=\"Evaluate AI agents, workflows, and system components\">\n <div meta>\n @if (ActiveRuns.length > 0) {\n <mj-stat-badge\n Icon=\"fa-solid fa-spinner fa-spin\"\n [Count]=\"ActiveRuns.length\"\n Label=\"running\"\n Variant=\"running\">\n </mj-stat-badge>\n }\n </div>\n <div actions>\n <mj-tab-nav\n [Tabs]=\"Tabs\"\n [ActiveKey]=\"activeTab\"\n (TabChange)=\"onTabChange($any($event))\">\n </mj-tab-nav>\n
|
|
339
|
+
args: [{ standalone: false, selector: 'mj-testing-dashboard', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mj-page-layout>\n <mj-page-header\n Title=\"Testing\"\n Icon=\"fa-solid fa-vial-circle-check\"\n Subtitle=\"Evaluate AI agents, workflows, and system components\">\n <div meta>\n @if (ActiveRuns.length > 0) {\n <mj-stat-badge\n Icon=\"fa-solid fa-spinner fa-spin\"\n [Count]=\"ActiveRuns.length\"\n Label=\"running\"\n Variant=\"running\">\n </mj-stat-badge>\n }\n </div>\n <div actions>\n <app-evaluation-mode-toggle></app-evaluation-mode-toggle>\n </div>\n <div toolbar>\n <mj-tab-nav\n [Tabs]=\"Tabs\"\n [ActiveKey]=\"activeTab\"\n (TabChange)=\"onTabChange($any($event))\">\n </mj-tab-nav>\n </div>\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\">\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading Testing Dashboard...\" size=\"large\"></mj-loading>\n </div>\n }\n\n @if (!isLoading) {\n <!-- Active Runs Banner (in-body so it doesn't crowd the page-header) -->\n @if (ActiveRuns.length > 0) {\n <div class=\"active-runs-banner\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span class=\"active-runs-count\">{{ ActiveRuns.length }} test{{ ActiveRuns.length === 1 ? '' : 's' }} running</span>\n <span class=\"active-runs-detail\">{{ ActiveRuns[0].TestName }} — {{ ActiveRuns[0].Progress }}%</span>\n <button class=\"active-runs-view-btn\" (click)=\"OnViewActiveRun(ActiveRuns[0])\">View</button>\n </div>\n }\n\n <div class=\"dashboard-content\">\n @if (activeTab === 'dashboard' && hasVisited('dashboard')) {\n <app-testing-dashboard-tab\n [initialState]=\"dashboardState\"\n [HideToolbar]=\"true\"\n (stateChange)=\"onDashboardStateChange($event)\"\n ></app-testing-dashboard-tab>\n }\n\n @if (activeTab === 'runs' && hasVisited('runs')) {\n <app-testing-runs\n [initialState]=\"runsState\"\n [HideToolbar]=\"true\"\n (stateChange)=\"onRunsStateChange($event)\"\n ></app-testing-runs>\n }\n\n @if (activeTab === 'analytics' && hasVisited('analytics')) {\n <app-testing-analytics\n [initialState]=\"analyticsState\"\n [HideToolbar]=\"true\"\n (stateChange)=\"onAnalyticsStateChange($event)\"\n ></app-testing-analytics>\n }\n\n @if (activeTab === 'review' && hasVisited('review')) {\n <app-testing-review\n [initialState]=\"reviewState\"\n [HideToolbar]=\"true\"\n (stateChange)=\"onReviewStateChange($event)\"\n ></app-testing-review>\n }\n </div>\n }\n </mj-page-body>\n\n <!-- Slide Panel for Test Execution -->\n @if (testingDialogService.IsPanelOpen) {\n <mj-slide-panel\n Mode=\"slide\"\n [Title]=\"testingDialogService.PanelOptions?.testId ? 'Test Execution' : 'Run Test'\"\n [Resizable]=\"true\"\n (Closed)=\"OnPanelClosed()\">\n <app-test-run-dialog\n [PanelMode]=\"true\"\n [selectedTestId]=\"testingDialogService.PanelOptions?.testId ?? null\"\n [selectedSuiteId]=\"testingDialogService.PanelOptions?.suiteId ?? null\"\n [runMode]=\"testingDialogService.PanelOptions?.mode ?? 'test'\"\n (PanelClose)=\"OnPanelClosed()\">\n </app-test-run-dialog>\n </mj-slide-panel>\n }\n</mj-page-layout>\n", styles: ["/* ============================================\n Testing Dashboard - Premium Design System\n Based on AI Dashboard patterns\n ============================================ */\n\n/* Loading State */\n.loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n background: var(--mj-bg-surface);\n backdrop-filter: blur(8px);\n}\n\n.loading-content {\n text-align: center;\n}\n\n.loading-spinner {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n}\n\n.spinner-ring {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 64px;\n height: 64px;\n margin: 8px;\n border: 8px solid var(--mj-brand-primary);\n border-radius: 50%;\n animation: spinner-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: var(--mj-brand-primary) transparent transparent transparent;\n}\n\n.spinner-ring:nth-child(1) {\n animation-delay: -0.45s;\n}\n\n.spinner-ring:nth-child(2) {\n animation-delay: -0.3s;\n}\n\n.spinner-ring:nth-child(3) {\n animation-delay: -0.15s;\n}\n\n@keyframes spinner-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.loading-text {\n margin-top: 20px;\n font-size: 16px;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n.dashboard-content {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n/* Active Runs Banner */\n.active-runs-banner {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 20px;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border-bottom: 1px solid color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-border-default));\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.active-runs-banner i {\n color: var(--mj-brand-primary);\n}\n\n.active-runs-count {\n font-weight: 600;\n}\n\n.active-runs-detail {\n color: var(--mj-text-secondary);\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.active-runs-view-btn {\n padding: 4px 14px;\n border: 1px solid var(--mj-brand-primary);\n border-radius: 6px;\n background: transparent;\n color: var(--mj-brand-primary);\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n white-space: nowrap;\n transition: background 0.2s;\n}\n\n.active-runs-view-btn:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n .testing-dashboard-nav {\n padding: 0 8px;\n overflow-x: auto;\n }\n\n .nav-item {\n padding: 12px 16px;\n gap: 8px;\n }\n\n .nav-item span {\n font-size: 11px;\n }\n\n .nav-item i {\n font-size: 18px;\n }\n\n .active-runs-banner {\n flex-wrap: wrap;\n padding: 8px 12px;\n gap: 6px;\n }\n\n .active-runs-detail {\n width: 100%;\n order: 3;\n }\n}\n\n@media (max-width: 480px) {\n .nav-item span {\n display: none;\n }\n\n .nav-item {\n padding: 12px 14px;\n }\n}\n"] }]
|
|
339
340
|
}], () => [{ type: i0.ChangeDetectorRef }, { type: i1.TestingDialogService }, { type: i1.TestingExecutionService }, { type: i2.TestingInstrumentationService }], null); })();
|
|
340
341
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingDashboardComponent, { className: "TestingDashboardComponent", filePath: "src/Testing/testing-dashboard.component.ts", lineNumber: 27 }); })();
|
|
341
342
|
//# sourceMappingURL=testing-dashboard.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing-dashboard.component.js","sourceRoot":"","sources":["../../src/Testing/testing-dashboard.component.ts","../../src/Testing/testing-dashboard.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, AfterViewInit, OnDestroy, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\nimport { BaseDashboard } from '@memberjunction/ng-shared';\nimport { RegisterClass } from '@memberjunction/global';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { TestingDialogService, TestingExecutionService, ActiveRun } from '@memberjunction/ng-testing';\nimport { TabConfig } from '@memberjunction/ng-ui-components';\nimport { TestingInstrumentationService } from './services/testing-instrumentation.service';\n\ninterface TestingDashboardState {\n activeTab: string;\n dashboardState: Record<string, unknown>;\n runsState: Record<string, unknown>;\n analyticsState: Record<string, unknown>;\n reviewState: Record<string, unknown>;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-testing-dashboard',\n templateUrl: './testing-dashboard.component.html',\n styleUrls: ['./testing-dashboard.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n@RegisterClass(BaseDashboard, 'TestingDashboard')\nexport class TestingDashboardComponent extends BaseDashboard implements AfterViewInit, OnDestroy {\n\n public isLoading = false;\n public activeTab = 'dashboard';\n public selectedIndex = 0;\n\n // Active test runs from execution service\n public ActiveRuns: ActiveRun[] = [];\n\n // Component states\n public dashboardState: Record<string, unknown> | null = null;\n public runsState: Record<string, unknown> | null = null;\n public analyticsState: Record<string, unknown> | null = null;\n public reviewState: Record<string, unknown> | null = null;\n\n // Track visited tabs for lazy loading\n private visitedTabs = new Set<string>();\n\n // Navigation items\n public navigationItems: string[] = ['dashboard', 'runs', 'analytics', 'review'];\n\n public navigationConfig = [\n { text: 'Dashboard', icon: 'fa-solid fa-gauge-high', selected: false },\n { text: 'Runs', icon: 'fa-solid fa-play-circle', selected: false },\n { text: 'Analytics', icon: 'fa-solid fa-chart-bar', selected: false },\n { text: 'Review', icon: 'fa-solid fa-clipboard-check', selected: false }\n ];\n\n public get Tabs(): TabConfig[] {\n return [\n { key: 'dashboard', label: 'Dashboard', icon: 'fa-solid fa-gauge-high' },\n {\n key: 'runs',\n label: 'Runs',\n icon: 'fa-solid fa-play-circle',\n badge: this.ActiveRuns.length > 0 ? this.ActiveRuns.length : null,\n badgeVariant: this.ActiveRuns.length > 0 ? 'warning' : 'default'\n },\n { key: 'analytics', label: 'Analytics', icon: 'fa-solid fa-chart-bar' },\n { key: 'review', label: 'Review', icon: 'fa-solid fa-clipboard-check' }\n ];\n }\n\n private stateChangeSubject = new Subject<TestingDashboardState>();\n protected override destroy$ = new Subject<void>();\n\n constructor(\n private cdr: ChangeDetectorRef,\n public testingDialogService: TestingDialogService,\n private executionService: TestingExecutionService,\n private instrumentationService: TestingInstrumentationService\n ) {\n super();\n this.setupStateManagement();\n this.updateNavigationSelection();\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Testing';\n }\n\n ngAfterViewInit(): void {\n this.visitedTabs.add(this.activeTab);\n this.updateNavigationSelection();\n this.emitStateChange();\n\n this.executionService.ActiveRuns$.pipe(\n takeUntil(this.destroy$)\n ).subscribe(runs => {\n this.ActiveRuns = runs;\n this.cdr.markForCheck();\n });\n\n this.testingDialogService.PanelStateChanged$.pipe(\n takeUntil(this.destroy$)\n ).subscribe((isOpen) => {\n console.log('[TestingDashboard] PanelStateChanged$:', isOpen, 'IsPanelOpen:', this.testingDialogService.IsPanelOpen);\n this.cdr.detectChanges();\n });\n\n this.cdr.detectChanges();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroy$.next();\n this.destroy$.complete();\n this.stateChangeSubject.complete();\n }\n\n public onTabChange(tabId: string): void {\n this.activeTab = tabId;\n const index = this.navigationItems.indexOf(tabId);\n this.selectedIndex = index >= 0 ? index : 0;\n this.updateNavigationSelection();\n this.visitedTabs.add(tabId);\n this.emitStateChange();\n this.cdr.markForCheck();\n }\n\n public hasVisited(tabId: string): boolean {\n return this.visitedTabs.has(tabId);\n }\n\n private setupStateManagement(): void {\n this.stateChangeSubject.pipe(\n debounceTime(50)\n ).subscribe(state => {\n this.UserStateChanged.emit(state);\n });\n }\n\n private emitStateChange(): void {\n const state: TestingDashboardState = {\n activeTab: this.activeTab,\n dashboardState: (this.dashboardState || {}) as Record<string, unknown>,\n runsState: (this.runsState || {}) as Record<string, unknown>,\n analyticsState: (this.analyticsState || {}) as Record<string, unknown>,\n reviewState: (this.reviewState || {}) as Record<string, unknown>\n };\n\n this.stateChangeSubject.next(state);\n }\n\n public onDashboardStateChange(state: Record<string, unknown>): void {\n this.dashboardState = state;\n this.emitStateChange();\n }\n\n public onRunsStateChange(state: Record<string, unknown>): void {\n this.runsState = state;\n this.emitStateChange();\n }\n\n public onAnalyticsStateChange(state: Record<string, unknown>): void {\n this.analyticsState = state;\n this.emitStateChange();\n }\n\n public onReviewStateChange(state: Record<string, unknown>): void {\n this.reviewState = state;\n this.emitStateChange();\n }\n\n public loadUserState(state: Partial<TestingDashboardState>): void {\n if (state.activeTab) {\n this.activeTab = state.activeTab;\n const index = this.navigationItems.indexOf(state.activeTab);\n this.selectedIndex = index >= 0 ? index : 0;\n this.visitedTabs.add(state.activeTab);\n this.updateNavigationSelection();\n }\n\n if (state.dashboardState) this.dashboardState = state.dashboardState;\n if (state.runsState) this.runsState = state.runsState;\n if (state.analyticsState) this.analyticsState = state.analyticsState;\n if (state.reviewState) this.reviewState = state.reviewState;\n\n this.cdr.markForCheck();\n }\n\n initDashboard(): void {\n try {\n this.isLoading = true;\n this.instrumentationService.Provider = this.ProviderToUse;\n } catch (error) {\n console.error('Error initializing Testing dashboard:', error);\n this.Error.emit(new Error('Failed to initialize Testing dashboard. Please try again.'));\n } finally {\n this.isLoading = false;\n }\n }\n\n loadData(): void {\n if (this.Config?.userState) {\n setTimeout(() => {\n if (this.Config?.userState) {\n this.loadUserState(this.Config.userState);\n }\n }, 0);\n }\n\n this.NotifyLoadComplete();\n }\n\n public getCurrentTabLabel(): string {\n const tabIndex = this.navigationItems.indexOf(this.activeTab);\n return tabIndex >= 0 ? this.navigationConfig[tabIndex].text : 'Testing Dashboard';\n }\n\n public OnPanelClosed(): void {\n this.testingDialogService.ClosePanel();\n this.cdr.markForCheck();\n }\n\n public OnViewActiveRun(run: ActiveRun): void {\n this.testingDialogService.OpenTestPanel(run.TestId);\n this.cdr.markForCheck();\n }\n\n public OnViewRunningTestFromTab(testId: string): void {\n this.testingDialogService.OpenTestPanel(testId);\n this.cdr.detectChanges();\n }\n\n private updateNavigationSelection(): void {\n this.navigationConfig.forEach((item, index) => {\n item.selected = this.navigationItems[index] === this.activeTab;\n });\n }\n}\n","<mj-page-layout>\n <mj-page-header\n Title=\"Testing\"\n Icon=\"fa-solid fa-vial-circle-check\"\n Subtitle=\"Evaluate AI agents, workflows, and system components\">\n <div meta>\n @if (ActiveRuns.length > 0) {\n <mj-stat-badge\n Icon=\"fa-solid fa-spinner fa-spin\"\n [Count]=\"ActiveRuns.length\"\n Label=\"running\"\n Variant=\"running\">\n </mj-stat-badge>\n }\n </div>\n <div actions>\n <mj-tab-nav\n [Tabs]=\"Tabs\"\n [ActiveKey]=\"activeTab\"\n (TabChange)=\"onTabChange($any($event))\">\n </mj-tab-nav>\n <app-evaluation-mode-toggle></app-evaluation-mode-toggle>\n </div>\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\">\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading Testing Dashboard...\" size=\"large\"></mj-loading>\n </div>\n }\n\n @if (!isLoading) {\n <!-- Active Runs Banner (in-body so it doesn't crowd the page-header) -->\n @if (ActiveRuns.length > 0) {\n <div class=\"active-runs-banner\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span class=\"active-runs-count\">{{ ActiveRuns.length }} test{{ ActiveRuns.length === 1 ? '' : 's' }} running</span>\n <span class=\"active-runs-detail\">{{ ActiveRuns[0].TestName }} — {{ ActiveRuns[0].Progress }}%</span>\n <button class=\"active-runs-view-btn\" (click)=\"OnViewActiveRun(ActiveRuns[0])\">View</button>\n </div>\n }\n\n <div class=\"dashboard-content\">\n @if (activeTab === 'dashboard' && hasVisited('dashboard')) {\n <app-testing-dashboard-tab\n [initialState]=\"dashboardState\"\n [HideToolbar]=\"true\"\n (stateChange)=\"onDashboardStateChange($event)\"\n ></app-testing-dashboard-tab>\n }\n\n @if (activeTab === 'runs' && hasVisited('runs')) {\n <app-testing-runs\n [initialState]=\"runsState\"\n [HideToolbar]=\"true\"\n (stateChange)=\"onRunsStateChange($event)\"\n ></app-testing-runs>\n }\n\n @if (activeTab === 'analytics' && hasVisited('analytics')) {\n <app-testing-analytics\n [initialState]=\"analyticsState\"\n [HideToolbar]=\"true\"\n (stateChange)=\"onAnalyticsStateChange($event)\"\n ></app-testing-analytics>\n }\n\n @if (activeTab === 'review' && hasVisited('review')) {\n <app-testing-review\n [initialState]=\"reviewState\"\n [HideToolbar]=\"true\"\n (stateChange)=\"onReviewStateChange($event)\"\n ></app-testing-review>\n }\n </div>\n }\n </mj-page-body>\n\n <!-- Slide Panel for Test Execution -->\n @if (testingDialogService.IsPanelOpen) {\n <mj-slide-panel\n Mode=\"slide\"\n [Title]=\"testingDialogService.PanelOptions?.testId ? 'Test Execution' : 'Run Test'\"\n [Resizable]=\"true\"\n (Closed)=\"OnPanelClosed()\">\n <app-test-run-dialog\n [PanelMode]=\"true\"\n [selectedTestId]=\"testingDialogService.PanelOptions?.testId ?? null\"\n [selectedSuiteId]=\"testingDialogService.PanelOptions?.suiteId ?? null\"\n [runMode]=\"testingDialogService.PanelOptions?.mode ?? 'test'\"\n (PanelClose)=\"OnPanelClosed()\">\n </app-test-run-dialog>\n </mj-slide-panel>\n }\n</mj-page-layout>\n"]}
|
|
1
|
+
{"version":3,"file":"testing-dashboard.component.js","sourceRoot":"","sources":["../../src/Testing/testing-dashboard.component.ts","../../src/Testing/testing-dashboard.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, AfterViewInit, OnDestroy, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\nimport { BaseDashboard } from '@memberjunction/ng-shared';\nimport { RegisterClass } from '@memberjunction/global';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { TestingDialogService, TestingExecutionService, ActiveRun } from '@memberjunction/ng-testing';\nimport { TabConfig } from '@memberjunction/ng-ui-components';\nimport { TestingInstrumentationService } from './services/testing-instrumentation.service';\n\ninterface TestingDashboardState {\n activeTab: string;\n dashboardState: Record<string, unknown>;\n runsState: Record<string, unknown>;\n analyticsState: Record<string, unknown>;\n reviewState: Record<string, unknown>;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-testing-dashboard',\n templateUrl: './testing-dashboard.component.html',\n styleUrls: ['./testing-dashboard.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n@RegisterClass(BaseDashboard, 'TestingDashboard')\nexport class TestingDashboardComponent extends BaseDashboard implements AfterViewInit, OnDestroy {\n\n public isLoading = false;\n public activeTab = 'dashboard';\n public selectedIndex = 0;\n\n // Active test runs from execution service\n public ActiveRuns: ActiveRun[] = [];\n\n // Component states\n public dashboardState: Record<string, unknown> | null = null;\n public runsState: Record<string, unknown> | null = null;\n public analyticsState: Record<string, unknown> | null = null;\n public reviewState: Record<string, unknown> | null = null;\n\n // Track visited tabs for lazy loading\n private visitedTabs = new Set<string>();\n\n // Navigation items\n public navigationItems: string[] = ['dashboard', 'runs', 'analytics', 'review'];\n\n public navigationConfig = [\n { text: 'Dashboard', icon: 'fa-solid fa-gauge-high', selected: false },\n { text: 'Runs', icon: 'fa-solid fa-play-circle', selected: false },\n { text: 'Analytics', icon: 'fa-solid fa-chart-bar', selected: false },\n { text: 'Review', icon: 'fa-solid fa-clipboard-check', selected: false }\n ];\n\n public get Tabs(): TabConfig[] {\n return [\n { key: 'dashboard', label: 'Dashboard', icon: 'fa-solid fa-gauge-high' },\n {\n key: 'runs',\n label: 'Runs',\n icon: 'fa-solid fa-play-circle',\n badge: this.ActiveRuns.length > 0 ? this.ActiveRuns.length : null,\n badgeVariant: this.ActiveRuns.length > 0 ? 'warning' : 'default'\n },\n { key: 'analytics', label: 'Analytics', icon: 'fa-solid fa-chart-bar' },\n { key: 'review', label: 'Review', icon: 'fa-solid fa-clipboard-check' }\n ];\n }\n\n private stateChangeSubject = new Subject<TestingDashboardState>();\n protected override destroy$ = new Subject<void>();\n\n constructor(\n private cdr: ChangeDetectorRef,\n public testingDialogService: TestingDialogService,\n private executionService: TestingExecutionService,\n private instrumentationService: TestingInstrumentationService\n ) {\n super();\n this.setupStateManagement();\n this.updateNavigationSelection();\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Testing';\n }\n\n ngAfterViewInit(): void {\n this.visitedTabs.add(this.activeTab);\n this.updateNavigationSelection();\n this.emitStateChange();\n\n this.executionService.ActiveRuns$.pipe(\n takeUntil(this.destroy$)\n ).subscribe(runs => {\n this.ActiveRuns = runs;\n this.cdr.markForCheck();\n });\n\n this.testingDialogService.PanelStateChanged$.pipe(\n takeUntil(this.destroy$)\n ).subscribe((isOpen) => {\n console.log('[TestingDashboard] PanelStateChanged$:', isOpen, 'IsPanelOpen:', this.testingDialogService.IsPanelOpen);\n this.cdr.detectChanges();\n });\n\n this.cdr.detectChanges();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroy$.next();\n this.destroy$.complete();\n this.stateChangeSubject.complete();\n }\n\n public onTabChange(tabId: string): void {\n this.activeTab = tabId;\n const index = this.navigationItems.indexOf(tabId);\n this.selectedIndex = index >= 0 ? index : 0;\n this.updateNavigationSelection();\n this.visitedTabs.add(tabId);\n this.emitStateChange();\n this.cdr.markForCheck();\n }\n\n public hasVisited(tabId: string): boolean {\n return this.visitedTabs.has(tabId);\n }\n\n private setupStateManagement(): void {\n this.stateChangeSubject.pipe(\n debounceTime(50)\n ).subscribe(state => {\n this.UserStateChanged.emit(state);\n });\n }\n\n private emitStateChange(): void {\n const state: TestingDashboardState = {\n activeTab: this.activeTab,\n dashboardState: (this.dashboardState || {}) as Record<string, unknown>,\n runsState: (this.runsState || {}) as Record<string, unknown>,\n analyticsState: (this.analyticsState || {}) as Record<string, unknown>,\n reviewState: (this.reviewState || {}) as Record<string, unknown>\n };\n\n this.stateChangeSubject.next(state);\n }\n\n public onDashboardStateChange(state: Record<string, unknown>): void {\n this.dashboardState = state;\n this.emitStateChange();\n }\n\n public onRunsStateChange(state: Record<string, unknown>): void {\n this.runsState = state;\n this.emitStateChange();\n }\n\n public onAnalyticsStateChange(state: Record<string, unknown>): void {\n this.analyticsState = state;\n this.emitStateChange();\n }\n\n public onReviewStateChange(state: Record<string, unknown>): void {\n this.reviewState = state;\n this.emitStateChange();\n }\n\n public loadUserState(state: Partial<TestingDashboardState>): void {\n if (state.activeTab) {\n this.activeTab = state.activeTab;\n const index = this.navigationItems.indexOf(state.activeTab);\n this.selectedIndex = index >= 0 ? index : 0;\n this.visitedTabs.add(state.activeTab);\n this.updateNavigationSelection();\n }\n\n if (state.dashboardState) this.dashboardState = state.dashboardState;\n if (state.runsState) this.runsState = state.runsState;\n if (state.analyticsState) this.analyticsState = state.analyticsState;\n if (state.reviewState) this.reviewState = state.reviewState;\n\n this.cdr.markForCheck();\n }\n\n initDashboard(): void {\n try {\n this.isLoading = true;\n this.instrumentationService.Provider = this.ProviderToUse;\n } catch (error) {\n console.error('Error initializing Testing dashboard:', error);\n this.Error.emit(new Error('Failed to initialize Testing dashboard. Please try again.'));\n } finally {\n this.isLoading = false;\n }\n }\n\n loadData(): void {\n if (this.Config?.userState) {\n setTimeout(() => {\n if (this.Config?.userState) {\n this.loadUserState(this.Config.userState);\n }\n }, 0);\n }\n\n this.NotifyLoadComplete();\n }\n\n public getCurrentTabLabel(): string {\n const tabIndex = this.navigationItems.indexOf(this.activeTab);\n return tabIndex >= 0 ? this.navigationConfig[tabIndex].text : 'Testing Dashboard';\n }\n\n public OnPanelClosed(): void {\n this.testingDialogService.ClosePanel();\n this.cdr.markForCheck();\n }\n\n public OnViewActiveRun(run: ActiveRun): void {\n this.testingDialogService.OpenTestPanel(run.TestId);\n this.cdr.markForCheck();\n }\n\n public OnViewRunningTestFromTab(testId: string): void {\n this.testingDialogService.OpenTestPanel(testId);\n this.cdr.detectChanges();\n }\n\n private updateNavigationSelection(): void {\n this.navigationConfig.forEach((item, index) => {\n item.selected = this.navigationItems[index] === this.activeTab;\n });\n }\n}\n","<mj-page-layout>\n <mj-page-header\n Title=\"Testing\"\n Icon=\"fa-solid fa-vial-circle-check\"\n Subtitle=\"Evaluate AI agents, workflows, and system components\">\n <div meta>\n @if (ActiveRuns.length > 0) {\n <mj-stat-badge\n Icon=\"fa-solid fa-spinner fa-spin\"\n [Count]=\"ActiveRuns.length\"\n Label=\"running\"\n Variant=\"running\">\n </mj-stat-badge>\n }\n </div>\n <div actions>\n <app-evaluation-mode-toggle></app-evaluation-mode-toggle>\n </div>\n <div toolbar>\n <mj-tab-nav\n [Tabs]=\"Tabs\"\n [ActiveKey]=\"activeTab\"\n (TabChange)=\"onTabChange($any($event))\">\n </mj-tab-nav>\n </div>\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\">\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading Testing Dashboard...\" size=\"large\"></mj-loading>\n </div>\n }\n\n @if (!isLoading) {\n <!-- Active Runs Banner (in-body so it doesn't crowd the page-header) -->\n @if (ActiveRuns.length > 0) {\n <div class=\"active-runs-banner\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span class=\"active-runs-count\">{{ ActiveRuns.length }} test{{ ActiveRuns.length === 1 ? '' : 's' }} running</span>\n <span class=\"active-runs-detail\">{{ ActiveRuns[0].TestName }} — {{ ActiveRuns[0].Progress }}%</span>\n <button class=\"active-runs-view-btn\" (click)=\"OnViewActiveRun(ActiveRuns[0])\">View</button>\n </div>\n }\n\n <div class=\"dashboard-content\">\n @if (activeTab === 'dashboard' && hasVisited('dashboard')) {\n <app-testing-dashboard-tab\n [initialState]=\"dashboardState\"\n [HideToolbar]=\"true\"\n (stateChange)=\"onDashboardStateChange($event)\"\n ></app-testing-dashboard-tab>\n }\n\n @if (activeTab === 'runs' && hasVisited('runs')) {\n <app-testing-runs\n [initialState]=\"runsState\"\n [HideToolbar]=\"true\"\n (stateChange)=\"onRunsStateChange($event)\"\n ></app-testing-runs>\n }\n\n @if (activeTab === 'analytics' && hasVisited('analytics')) {\n <app-testing-analytics\n [initialState]=\"analyticsState\"\n [HideToolbar]=\"true\"\n (stateChange)=\"onAnalyticsStateChange($event)\"\n ></app-testing-analytics>\n }\n\n @if (activeTab === 'review' && hasVisited('review')) {\n <app-testing-review\n [initialState]=\"reviewState\"\n [HideToolbar]=\"true\"\n (stateChange)=\"onReviewStateChange($event)\"\n ></app-testing-review>\n }\n </div>\n }\n </mj-page-body>\n\n <!-- Slide Panel for Test Execution -->\n @if (testingDialogService.IsPanelOpen) {\n <mj-slide-panel\n Mode=\"slide\"\n [Title]=\"testingDialogService.PanelOptions?.testId ? 'Test Execution' : 'Run Test'\"\n [Resizable]=\"true\"\n (Closed)=\"OnPanelClosed()\">\n <app-test-run-dialog\n [PanelMode]=\"true\"\n [selectedTestId]=\"testingDialogService.PanelOptions?.testId ?? null\"\n [selectedSuiteId]=\"testingDialogService.PanelOptions?.suiteId ?? null\"\n [runMode]=\"testingDialogService.PanelOptions?.mode ?? 'test'\"\n (PanelClose)=\"OnPanelClosed()\">\n </app-test-run-dialog>\n </mj-slide-panel>\n }\n</mj-page-layout>\n"]}
|
|
@@ -52,7 +52,7 @@ import * as i46 from "@memberjunction/ng-word-cloud";
|
|
|
52
52
|
export declare class AIDashboardsModule {
|
|
53
53
|
constructor();
|
|
54
54
|
static ɵfac: i0.ɵɵFactoryDeclaration<AIDashboardsModule, never>;
|
|
55
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AIDashboardsModule, [typeof i1.ModelManagementComponent, typeof i2.PromptManagementComponent, typeof i3.AgentConfigurationComponent, typeof i4.AgentEditorComponent, typeof i5.ExecutionMonitoringComponent, typeof i6.SystemConfigurationComponent, typeof i7.ModelPromptPriorityMatrixComponent, typeof i8.PromptVersionControlComponent, typeof i9.LiveExecutionWidgetComponent, typeof i10.PerformanceHeatmapComponent, typeof i11.AgentRequestsResourceComponent, typeof i12.AutotaggingPipelineResourceComponent, typeof i13.TagsResourceComponent, typeof i14.DuplicateDetectionResourceComponent, typeof i15.VectorManagementResourceComponent, typeof i16.KnowledgeConfigResourceComponent, typeof i17.SearchResultDetailComponent, typeof i18.ClusterVisualizationResourceComponent, typeof i19.SchedulingResourceComponent, typeof i20.AnalyticsResourceComponent, typeof i21.AIAnalyticsResourceComponent, typeof i22.AnalyticsFilterBarComponent, typeof i23.AnalyticsExecutiveSummaryComponent, typeof i24.AnalyticsPromptRunsComponent, typeof i25.AnalyticsAgentRunsComponent, typeof i26.AnalyticsModelPerformanceComponent, typeof i27.AnalyticsCostBudgetComponent, typeof i28.AnalyticsErrorAnalysisComponent, typeof i29.AnalyticsUsagePatternsComponent, typeof i30.AIOverviewHubComponent], [typeof i31.CommonModule, typeof i32.FormsModule, typeof i32.ReactiveFormsModule, typeof i33.AngularSplitModule, typeof i34.ContainerDirectivesModule, typeof i35.CodeEditorModule, typeof i36.SharedGenericModule, typeof i37.AgentsModule, typeof i38.AgentRequestsModule, typeof i39.NgTreesModule, typeof i40.SharedDashboardWidgetsModule, typeof i41.SharedPipesModule, typeof i42.SearchModule, typeof i43.MJButtonDirective, typeof i43.MJComboboxComponent, typeof i43.MJDropdownComponent, typeof i43.MJPageHeaderComponent, typeof i43.MJPageLayoutComponent, typeof i43.MJPageBodyComponent, typeof i43.MJFilterPopoverComponent, typeof i43.MJPageSearchComponent, typeof i43.MJFilterPanelComponent, typeof i43.MJFilterFieldComponent, typeof i43.MJFilterChipComponent, typeof i43.MJViewToggleComponent, typeof i43.MJStatBadgeComponent, typeof i43.MJRefreshButtonComponent, typeof i44.ClusteringModule, typeof i45.SchedulingModule, typeof i46.MJWordCloudComponent], [typeof i1.ModelManagementComponent, typeof i2.PromptManagementComponent, typeof i3.AgentConfigurationComponent, typeof i5.ExecutionMonitoringComponent, typeof i6.SystemConfigurationComponent, typeof i9.LiveExecutionWidgetComponent, typeof i10.PerformanceHeatmapComponent, typeof i11.AgentRequestsResourceComponent, typeof i12.AutotaggingPipelineResourceComponent, typeof i13.TagsResourceComponent, typeof i14.DuplicateDetectionResourceComponent, typeof i15.VectorManagementResourceComponent, typeof i16.KnowledgeConfigResourceComponent, typeof i17.SearchResultDetailComponent, typeof i18.ClusterVisualizationResourceComponent, typeof i19.SchedulingResourceComponent, typeof i20.AnalyticsResourceComponent, typeof i21.AIAnalyticsResourceComponent, typeof i22.AnalyticsFilterBarComponent, typeof i23.AnalyticsExecutiveSummaryComponent, typeof i24.AnalyticsPromptRunsComponent, typeof i25.AnalyticsAgentRunsComponent, typeof i26.AnalyticsModelPerformanceComponent, typeof i27.AnalyticsCostBudgetComponent, typeof i28.AnalyticsErrorAnalysisComponent, typeof i29.AnalyticsUsagePatternsComponent, typeof i30.AIOverviewHubComponent, typeof i40.SharedDashboardWidgetsModule]>;
|
|
55
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AIDashboardsModule, [typeof i1.ModelManagementComponent, typeof i2.PromptManagementComponent, typeof i3.AgentConfigurationComponent, typeof i4.AgentEditorComponent, typeof i5.ExecutionMonitoringComponent, typeof i6.SystemConfigurationComponent, typeof i7.ModelPromptPriorityMatrixComponent, typeof i8.PromptVersionControlComponent, typeof i9.LiveExecutionWidgetComponent, typeof i10.PerformanceHeatmapComponent, typeof i11.AgentRequestsResourceComponent, typeof i12.AutotaggingPipelineResourceComponent, typeof i13.TagsResourceComponent, typeof i14.DuplicateDetectionResourceComponent, typeof i15.VectorManagementResourceComponent, typeof i16.KnowledgeConfigResourceComponent, typeof i17.SearchResultDetailComponent, typeof i18.ClusterVisualizationResourceComponent, typeof i19.SchedulingResourceComponent, typeof i20.AnalyticsResourceComponent, typeof i21.AIAnalyticsResourceComponent, typeof i22.AnalyticsFilterBarComponent, typeof i23.AnalyticsExecutiveSummaryComponent, typeof i24.AnalyticsPromptRunsComponent, typeof i25.AnalyticsAgentRunsComponent, typeof i26.AnalyticsModelPerformanceComponent, typeof i27.AnalyticsCostBudgetComponent, typeof i28.AnalyticsErrorAnalysisComponent, typeof i29.AnalyticsUsagePatternsComponent, typeof i30.AIOverviewHubComponent], [typeof i31.CommonModule, typeof i32.FormsModule, typeof i32.ReactiveFormsModule, typeof i33.AngularSplitModule, typeof i34.ContainerDirectivesModule, typeof i35.CodeEditorModule, typeof i36.SharedGenericModule, typeof i37.AgentsModule, typeof i38.AgentRequestsModule, typeof i39.NgTreesModule, typeof i40.SharedDashboardWidgetsModule, typeof i41.SharedPipesModule, typeof i42.SearchModule, typeof i43.MJButtonDirective, typeof i43.MJComboboxComponent, typeof i43.MJDropdownComponent, typeof i43.MJPageHeaderComponent, typeof i43.MJPageLayoutComponent, typeof i43.MJPageBodyComponent, typeof i43.MJPageHeaderInteriorComponent, typeof i43.MJPageBodyInteriorComponent, typeof i43.MJLeftNavComponent, typeof i43.MJLeftNavContentComponent, typeof i43.MJFilterPopoverComponent, typeof i43.MJPageSearchComponent, typeof i43.MJFilterPanelComponent, typeof i43.MJFilterFieldComponent, typeof i43.MJFilterChipComponent, typeof i43.MJTabNavComponent, typeof i43.MJViewToggleComponent, typeof i43.MJStatBadgeComponent, typeof i43.MJRefreshButtonComponent, typeof i44.ClusteringModule, typeof i45.SchedulingModule, typeof i46.MJWordCloudComponent], [typeof i1.ModelManagementComponent, typeof i2.PromptManagementComponent, typeof i3.AgentConfigurationComponent, typeof i5.ExecutionMonitoringComponent, typeof i6.SystemConfigurationComponent, typeof i9.LiveExecutionWidgetComponent, typeof i10.PerformanceHeatmapComponent, typeof i11.AgentRequestsResourceComponent, typeof i12.AutotaggingPipelineResourceComponent, typeof i13.TagsResourceComponent, typeof i14.DuplicateDetectionResourceComponent, typeof i15.VectorManagementResourceComponent, typeof i16.KnowledgeConfigResourceComponent, typeof i17.SearchResultDetailComponent, typeof i18.ClusterVisualizationResourceComponent, typeof i19.SchedulingResourceComponent, typeof i20.AnalyticsResourceComponent, typeof i21.AIAnalyticsResourceComponent, typeof i22.AnalyticsFilterBarComponent, typeof i23.AnalyticsExecutiveSummaryComponent, typeof i24.AnalyticsPromptRunsComponent, typeof i25.AnalyticsAgentRunsComponent, typeof i26.AnalyticsModelPerformanceComponent, typeof i27.AnalyticsCostBudgetComponent, typeof i28.AnalyticsErrorAnalysisComponent, typeof i29.AnalyticsUsagePatternsComponent, typeof i30.AIOverviewHubComponent, typeof i40.SharedDashboardWidgetsModule]>;
|
|
56
56
|
static ɵinj: i0.ɵɵInjectorDeclaration<AIDashboardsModule>;
|
|
57
57
|
}
|
|
58
58
|
//# sourceMappingURL=ai-dashboards.module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-dashboards.module.d.ts","sourceRoot":"","sources":["../src/ai-dashboards.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEA;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"ai-dashboards.module.d.ts","sourceRoot":"","sources":["../src/ai-dashboards.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEA;;;GAGG;AACH,qBAwGa,kBAAkB;;yCAAlB,kBAAkB;0CAAlB,kBAAkB;0CAAlB,kBAAkB;CAiB9B"}
|
|
@@ -11,7 +11,7 @@ import { NgTreesModule } from '@memberjunction/ng-trees';
|
|
|
11
11
|
import { SharedDashboardWidgetsModule } from './shared/shared-dashboard-widgets.module';
|
|
12
12
|
import { SharedPipesModule } from './shared/shared-pipes.module';
|
|
13
13
|
import { SearchModule } from '@memberjunction/ng-search';
|
|
14
|
-
import { MJButtonDirective, MJComboboxComponent, MJDropdownComponent, MJPageHeaderComponent, MJPageLayoutComponent, MJPageBodyComponent, MJFilterPopoverComponent, MJPageSearchComponent, MJFilterPanelComponent, MJFilterFieldComponent, MJFilterChipComponent, MJViewToggleComponent, MJStatBadgeComponent, MJRefreshButtonComponent } from '@memberjunction/ng-ui-components';
|
|
14
|
+
import { MJButtonDirective, MJComboboxComponent, MJDropdownComponent, MJPageHeaderComponent, MJPageLayoutComponent, MJPageBodyComponent, MJPageHeaderInteriorComponent, MJPageBodyInteriorComponent, MJFilterPopoverComponent, MJPageSearchComponent, MJFilterPanelComponent, MJFilterFieldComponent, MJFilterChipComponent, MJTabNavComponent, MJViewToggleComponent, MJStatBadgeComponent, MJRefreshButtonComponent, MJLeftNavComponent, MJLeftNavContentComponent } from '@memberjunction/ng-ui-components';
|
|
15
15
|
// AI Components
|
|
16
16
|
import { ModelManagementComponent } from './AI/components/models/model-management.component';
|
|
17
17
|
import { PromptManagementComponent } from './AI/components/prompts/prompt-management.component';
|
|
@@ -94,11 +94,16 @@ export class AIDashboardsModule {
|
|
|
94
94
|
MJPageHeaderComponent,
|
|
95
95
|
MJPageLayoutComponent,
|
|
96
96
|
MJPageBodyComponent,
|
|
97
|
+
MJPageHeaderInteriorComponent,
|
|
98
|
+
MJPageBodyInteriorComponent,
|
|
99
|
+
MJLeftNavComponent,
|
|
100
|
+
MJLeftNavContentComponent,
|
|
97
101
|
MJFilterPopoverComponent,
|
|
98
102
|
MJPageSearchComponent,
|
|
99
103
|
MJFilterPanelComponent,
|
|
100
104
|
MJFilterFieldComponent,
|
|
101
105
|
MJFilterChipComponent,
|
|
106
|
+
MJTabNavComponent,
|
|
102
107
|
MJViewToggleComponent,
|
|
103
108
|
MJStatBadgeComponent,
|
|
104
109
|
MJRefreshButtonComponent,
|
|
@@ -161,11 +166,16 @@ export class AIDashboardsModule {
|
|
|
161
166
|
MJPageHeaderComponent,
|
|
162
167
|
MJPageLayoutComponent,
|
|
163
168
|
MJPageBodyComponent,
|
|
169
|
+
MJPageHeaderInteriorComponent,
|
|
170
|
+
MJPageBodyInteriorComponent,
|
|
171
|
+
MJLeftNavComponent,
|
|
172
|
+
MJLeftNavContentComponent,
|
|
164
173
|
MJFilterPopoverComponent,
|
|
165
174
|
MJPageSearchComponent,
|
|
166
175
|
MJFilterPanelComponent,
|
|
167
176
|
MJFilterFieldComponent,
|
|
168
177
|
MJFilterChipComponent,
|
|
178
|
+
MJTabNavComponent,
|
|
169
179
|
MJViewToggleComponent,
|
|
170
180
|
MJStatBadgeComponent,
|
|
171
181
|
MJRefreshButtonComponent,
|
|
@@ -256,11 +266,16 @@ export class AIDashboardsModule {
|
|
|
256
266
|
MJPageHeaderComponent,
|
|
257
267
|
MJPageLayoutComponent,
|
|
258
268
|
MJPageBodyComponent,
|
|
269
|
+
MJPageHeaderInteriorComponent,
|
|
270
|
+
MJPageBodyInteriorComponent,
|
|
271
|
+
MJLeftNavComponent,
|
|
272
|
+
MJLeftNavContentComponent,
|
|
259
273
|
MJFilterPopoverComponent,
|
|
260
274
|
MJPageSearchComponent,
|
|
261
275
|
MJFilterPanelComponent,
|
|
262
276
|
MJFilterFieldComponent,
|
|
263
277
|
MJFilterChipComponent,
|
|
278
|
+
MJTabNavComponent,
|
|
264
279
|
MJViewToggleComponent,
|
|
265
280
|
MJStatBadgeComponent,
|
|
266
281
|
MJRefreshButtonComponent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-dashboards.module.js","sourceRoot":"","sources":["../src/ai-dashboards.module.ts"],"names":[],"mappings":"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","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AngularSplitModule } from 'angular-split';\nimport { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';\nimport { CodeEditorModule } from '@memberjunction/ng-code-editor';\nimport { SharedGenericModule } from '@memberjunction/ng-shared-generic';\nimport { AgentsModule } from '@memberjunction/ng-agents';\nimport { AgentRequestsModule } from '@memberjunction/ng-agent-requests';\nimport { NgTreesModule } from '@memberjunction/ng-trees';\nimport { SharedDashboardWidgetsModule } from './shared/shared-dashboard-widgets.module';\nimport { SharedPipesModule } from './shared/shared-pipes.module';\nimport { SearchModule } from '@memberjunction/ng-search';\nimport { MJButtonDirective, MJComboboxComponent, MJDropdownComponent, MJPageHeaderComponent, MJPageLayoutComponent, MJPageBodyComponent, MJFilterPopoverComponent, MJPageSearchComponent, MJFilterPanelComponent, MJFilterFieldComponent, MJFilterChipComponent, MJViewToggleComponent, MJStatBadgeComponent, MJRefreshButtonComponent } from '@memberjunction/ng-ui-components';\n\n// AI Components\nimport { ModelManagementComponent } from './AI/components/models/model-management.component';\nimport { PromptManagementComponent } from './AI/components/prompts/prompt-management.component';\nimport { AgentConfigurationComponent } from './AI/components/agents/agent-configuration.component';\nimport { AgentEditorComponent } from './AI/components/agents/agent-editor.component';\nimport { ExecutionMonitoringComponent } from './AI/components/execution-monitoring.component';\nimport { SystemConfigurationComponent } from './AI/components/system/system-configuration.component';\nimport { ModelPromptPriorityMatrixComponent } from './AI/components/prompts/model-prompt-priority-matrix.component';\nimport { PromptVersionControlComponent } from './AI/components/prompts/prompt-version-control.component';\n// AI Instrumentation Widgets (KPICard and TimeSeriesChart are in SharedDashboardWidgetsModule)\nimport { LiveExecutionWidgetComponent } from './AI/components/widgets/live-execution-widget.component';\nimport { PerformanceHeatmapComponent } from './AI/components/charts/performance-heatmap.component';\nimport { AgentRequestsResourceComponent } from './AI/components/requests/agent-requests-resource.component';\nimport { AutotaggingPipelineResourceComponent } from './AI/components/autotagging/autotagging-pipeline-resource.component';\nimport { TagsResourceComponent, LoadTagsResource } from './AI/components/tags/tags-resource.component';\nimport { DuplicateDetectionResourceComponent } from './AI/components/duplicates/duplicate-detection-resource.component';\nimport { VectorManagementResourceComponent } from './AI/components/vectors/vector-management-resource.component';\nimport { AIInstrumentationService } from './AI/services/ai-instrumentation.service';\nimport { AIAnalyticsResourceComponent, LoadAIAnalyticsResource } from './AI/components/analytics/ai-analytics-resource.component';\nimport { AnalyticsFilterBarComponent } from './AI/components/analytics/analytics-filter-bar.component';\nimport { AnalyticsExecutiveSummaryComponent, LoadAnalyticsExecutiveSummary } from './AI/components/analytics/executive-summary/executive-summary.component';\nimport { AnalyticsPromptRunsComponent, LoadAnalyticsPromptRuns } from './AI/components/analytics/prompt-runs/prompt-run-analysis.component';\nimport { AnalyticsAgentRunsComponent, LoadAnalyticsAgentRuns } from './AI/components/analytics/agent-runs/agent-run-analysis.component';\nimport { AnalyticsModelPerformanceComponent, LoadAnalyticsModelPerformance } from './AI/components/analytics/model-performance/model-performance.component';\nimport { AnalyticsCostBudgetComponent, LoadAnalyticsCostBudget } from './AI/components/analytics/cost-budget/cost-budget.component';\nimport { AnalyticsErrorAnalysisComponent, LoadAnalyticsErrorAnalysis } from './AI/components/analytics/error-analysis/error-analysis.component';\nimport { AnalyticsUsagePatternsComponent, LoadAnalyticsUsagePatterns } from './AI/components/analytics/usage-patterns/usage-patterns.component';\n\n// AI Overview Hub\nimport { AIOverviewHubComponent, LoadAIOverviewHub } from './AI/components/overview/ai-overview-hub.component';\n\n// Knowledge Hub components\nimport {\n KnowledgeConfigResourceComponent,\n LoadKnowledgeConfigResource\n} from './KnowledgeHub/components/config/knowledge-config-resource.component';\nimport { SearchResultDetailComponent } from './KnowledgeHub/components/results-detail/search-result-detail.component';\nimport {\n ClusterVisualizationResourceComponent,\n LoadClusterVisualizationResource\n} from './KnowledgeHub/components/clusters/cluster-visualization-resource.component';\nimport {\n SchedulingResourceComponent,\n LoadSchedulingResource\n} from './KnowledgeHub/components/scheduling/scheduling-resource.component';\nimport {\n AnalyticsResourceComponent,\n LoadAnalyticsResource\n} from './KnowledgeHub/components/analytics/analytics-resource.component';\nimport { ClusteringModule } from '@memberjunction/ng-clustering';\nimport { SchedulingModule } from '@memberjunction/ng-scheduling';\nimport { MJWordCloudComponent } from '@memberjunction/ng-word-cloud';\n\n/**\n * AIDashboardsModule — AI feature area: models, prompts, agents,\n * execution monitoring, system configuration, and instrumentation widgets.\n */\n@NgModule({\n declarations: [\n ModelManagementComponent,\n PromptManagementComponent,\n AgentConfigurationComponent,\n AgentEditorComponent,\n ExecutionMonitoringComponent,\n SystemConfigurationComponent,\n ModelPromptPriorityMatrixComponent,\n PromptVersionControlComponent,\n LiveExecutionWidgetComponent,\n PerformanceHeatmapComponent,\n AgentRequestsResourceComponent,\n AutotaggingPipelineResourceComponent,\n TagsResourceComponent,\n DuplicateDetectionResourceComponent,\n VectorManagementResourceComponent,\n KnowledgeConfigResourceComponent,\n SearchResultDetailComponent,\n ClusterVisualizationResourceComponent,\n SchedulingResourceComponent,\n AnalyticsResourceComponent,\n AIAnalyticsResourceComponent,\n AnalyticsFilterBarComponent,\n AnalyticsExecutiveSummaryComponent,\n AnalyticsPromptRunsComponent,\n AnalyticsAgentRunsComponent,\n AnalyticsModelPerformanceComponent,\n AnalyticsCostBudgetComponent,\n AnalyticsErrorAnalysisComponent,\n AnalyticsUsagePatternsComponent,\n AIOverviewHubComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n AngularSplitModule,\n ContainerDirectivesModule,\n CodeEditorModule,\n SharedGenericModule,\n AgentsModule,\n AgentRequestsModule,\n NgTreesModule,\n SharedDashboardWidgetsModule,\n SharedPipesModule,\n SearchModule,\n MJButtonDirective,\n MJComboboxComponent,\n MJDropdownComponent,\n MJPageHeaderComponent,\n MJPageLayoutComponent,\n MJPageBodyComponent,\n MJFilterPopoverComponent,\n MJPageSearchComponent,\n MJFilterPanelComponent,\n MJFilterFieldComponent,\n MJFilterChipComponent,\n MJViewToggleComponent,\n MJStatBadgeComponent,\n MJRefreshButtonComponent,\n ClusteringModule,\n SchedulingModule,\n MJWordCloudComponent\n ],\n providers: [\n AIInstrumentationService\n ],\n exports: [\n ModelManagementComponent,\n PromptManagementComponent,\n AgentConfigurationComponent,\n ExecutionMonitoringComponent,\n SystemConfigurationComponent,\n LiveExecutionWidgetComponent,\n PerformanceHeatmapComponent,\n AgentRequestsResourceComponent,\n AutotaggingPipelineResourceComponent,\n TagsResourceComponent,\n DuplicateDetectionResourceComponent,\n VectorManagementResourceComponent,\n KnowledgeConfigResourceComponent,\n SearchResultDetailComponent,\n ClusterVisualizationResourceComponent,\n SchedulingResourceComponent,\n AnalyticsResourceComponent,\n AIAnalyticsResourceComponent,\n AnalyticsFilterBarComponent,\n AnalyticsExecutiveSummaryComponent,\n AnalyticsPromptRunsComponent,\n AnalyticsAgentRunsComponent,\n AnalyticsModelPerformanceComponent,\n AnalyticsCostBudgetComponent,\n AnalyticsErrorAnalysisComponent,\n AnalyticsUsagePatternsComponent,\n AIOverviewHubComponent,\n SharedDashboardWidgetsModule\n ]\n})\nexport class AIDashboardsModule {\n constructor() {\n // Ensure tree-shaking prevention loaders are called\n LoadTagsResource();\n LoadClusterVisualizationResource();\n LoadSchedulingResource();\n LoadAnalyticsResource();\n LoadAIAnalyticsResource();\n LoadAnalyticsExecutiveSummary();\n LoadAnalyticsPromptRuns();\n LoadAnalyticsAgentRuns();\n LoadAnalyticsModelPerformance();\n LoadAnalyticsCostBudget();\n LoadAnalyticsErrorAnalysis();\n LoadAnalyticsUsagePatterns();\n LoadAIOverviewHub();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ai-dashboards.module.js","sourceRoot":"","sources":["../src/ai-dashboards.module.ts"],"names":[],"mappings":"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","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AngularSplitModule } from 'angular-split';\nimport { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';\nimport { CodeEditorModule } from '@memberjunction/ng-code-editor';\nimport { SharedGenericModule } from '@memberjunction/ng-shared-generic';\nimport { AgentsModule } from '@memberjunction/ng-agents';\nimport { AgentRequestsModule } from '@memberjunction/ng-agent-requests';\nimport { NgTreesModule } from '@memberjunction/ng-trees';\nimport { SharedDashboardWidgetsModule } from './shared/shared-dashboard-widgets.module';\nimport { SharedPipesModule } from './shared/shared-pipes.module';\nimport { SearchModule } from '@memberjunction/ng-search';\nimport { MJButtonDirective, MJComboboxComponent, MJDropdownComponent, MJPageHeaderComponent, MJPageLayoutComponent, MJPageBodyComponent, MJPageHeaderInteriorComponent, MJPageBodyInteriorComponent, MJFilterPopoverComponent, MJPageSearchComponent, MJFilterPanelComponent, MJFilterFieldComponent, MJFilterChipComponent, MJTabNavComponent, MJViewToggleComponent, MJStatBadgeComponent, MJRefreshButtonComponent, MJLeftNavComponent, MJLeftNavContentComponent } from '@memberjunction/ng-ui-components';\n\n// AI Components\nimport { ModelManagementComponent } from './AI/components/models/model-management.component';\nimport { PromptManagementComponent } from './AI/components/prompts/prompt-management.component';\nimport { AgentConfigurationComponent } from './AI/components/agents/agent-configuration.component';\nimport { AgentEditorComponent } from './AI/components/agents/agent-editor.component';\nimport { ExecutionMonitoringComponent } from './AI/components/execution-monitoring.component';\nimport { SystemConfigurationComponent } from './AI/components/system/system-configuration.component';\nimport { ModelPromptPriorityMatrixComponent } from './AI/components/prompts/model-prompt-priority-matrix.component';\nimport { PromptVersionControlComponent } from './AI/components/prompts/prompt-version-control.component';\n// AI Instrumentation Widgets (KPICard and TimeSeriesChart are in SharedDashboardWidgetsModule)\nimport { LiveExecutionWidgetComponent } from './AI/components/widgets/live-execution-widget.component';\nimport { PerformanceHeatmapComponent } from './AI/components/charts/performance-heatmap.component';\nimport { AgentRequestsResourceComponent } from './AI/components/requests/agent-requests-resource.component';\nimport { AutotaggingPipelineResourceComponent } from './AI/components/autotagging/autotagging-pipeline-resource.component';\nimport { TagsResourceComponent, LoadTagsResource } from './AI/components/tags/tags-resource.component';\nimport { DuplicateDetectionResourceComponent } from './AI/components/duplicates/duplicate-detection-resource.component';\nimport { VectorManagementResourceComponent } from './AI/components/vectors/vector-management-resource.component';\nimport { AIInstrumentationService } from './AI/services/ai-instrumentation.service';\nimport { AIAnalyticsResourceComponent, LoadAIAnalyticsResource } from './AI/components/analytics/ai-analytics-resource.component';\nimport { AnalyticsFilterBarComponent } from './AI/components/analytics/analytics-filter-bar.component';\nimport { AnalyticsExecutiveSummaryComponent, LoadAnalyticsExecutiveSummary } from './AI/components/analytics/executive-summary/executive-summary.component';\nimport { AnalyticsPromptRunsComponent, LoadAnalyticsPromptRuns } from './AI/components/analytics/prompt-runs/prompt-run-analysis.component';\nimport { AnalyticsAgentRunsComponent, LoadAnalyticsAgentRuns } from './AI/components/analytics/agent-runs/agent-run-analysis.component';\nimport { AnalyticsModelPerformanceComponent, LoadAnalyticsModelPerformance } from './AI/components/analytics/model-performance/model-performance.component';\nimport { AnalyticsCostBudgetComponent, LoadAnalyticsCostBudget } from './AI/components/analytics/cost-budget/cost-budget.component';\nimport { AnalyticsErrorAnalysisComponent, LoadAnalyticsErrorAnalysis } from './AI/components/analytics/error-analysis/error-analysis.component';\nimport { AnalyticsUsagePatternsComponent, LoadAnalyticsUsagePatterns } from './AI/components/analytics/usage-patterns/usage-patterns.component';\n\n// AI Overview Hub\nimport { AIOverviewHubComponent, LoadAIOverviewHub } from './AI/components/overview/ai-overview-hub.component';\n\n// Knowledge Hub components\nimport {\n KnowledgeConfigResourceComponent,\n LoadKnowledgeConfigResource\n} from './KnowledgeHub/components/config/knowledge-config-resource.component';\nimport { SearchResultDetailComponent } from './KnowledgeHub/components/results-detail/search-result-detail.component';\nimport {\n ClusterVisualizationResourceComponent,\n LoadClusterVisualizationResource\n} from './KnowledgeHub/components/clusters/cluster-visualization-resource.component';\nimport {\n SchedulingResourceComponent,\n LoadSchedulingResource\n} from './KnowledgeHub/components/scheduling/scheduling-resource.component';\nimport {\n AnalyticsResourceComponent,\n LoadAnalyticsResource\n} from './KnowledgeHub/components/analytics/analytics-resource.component';\nimport { ClusteringModule } from '@memberjunction/ng-clustering';\nimport { SchedulingModule } from '@memberjunction/ng-scheduling';\nimport { MJWordCloudComponent } from '@memberjunction/ng-word-cloud';\n\n/**\n * AIDashboardsModule — AI feature area: models, prompts, agents,\n * execution monitoring, system configuration, and instrumentation widgets.\n */\n@NgModule({\n declarations: [\n ModelManagementComponent,\n PromptManagementComponent,\n AgentConfigurationComponent,\n AgentEditorComponent,\n ExecutionMonitoringComponent,\n SystemConfigurationComponent,\n ModelPromptPriorityMatrixComponent,\n PromptVersionControlComponent,\n LiveExecutionWidgetComponent,\n PerformanceHeatmapComponent,\n AgentRequestsResourceComponent,\n AutotaggingPipelineResourceComponent,\n TagsResourceComponent,\n DuplicateDetectionResourceComponent,\n VectorManagementResourceComponent,\n KnowledgeConfigResourceComponent,\n SearchResultDetailComponent,\n ClusterVisualizationResourceComponent,\n SchedulingResourceComponent,\n AnalyticsResourceComponent,\n AIAnalyticsResourceComponent,\n AnalyticsFilterBarComponent,\n AnalyticsExecutiveSummaryComponent,\n AnalyticsPromptRunsComponent,\n AnalyticsAgentRunsComponent,\n AnalyticsModelPerformanceComponent,\n AnalyticsCostBudgetComponent,\n AnalyticsErrorAnalysisComponent,\n AnalyticsUsagePatternsComponent,\n AIOverviewHubComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n AngularSplitModule,\n ContainerDirectivesModule,\n CodeEditorModule,\n SharedGenericModule,\n AgentsModule,\n AgentRequestsModule,\n NgTreesModule,\n SharedDashboardWidgetsModule,\n SharedPipesModule,\n SearchModule,\n MJButtonDirective,\n MJComboboxComponent,\n MJDropdownComponent,\n MJPageHeaderComponent,\n MJPageLayoutComponent,\n MJPageBodyComponent,\n MJPageHeaderInteriorComponent,\n MJPageBodyInteriorComponent,\n MJLeftNavComponent,\n MJLeftNavContentComponent,\n MJFilterPopoverComponent,\n MJPageSearchComponent,\n MJFilterPanelComponent,\n MJFilterFieldComponent,\n MJFilterChipComponent,\n MJTabNavComponent,\n MJViewToggleComponent,\n MJStatBadgeComponent,\n MJRefreshButtonComponent,\n ClusteringModule,\n SchedulingModule,\n MJWordCloudComponent\n ],\n providers: [\n AIInstrumentationService\n ],\n exports: [\n ModelManagementComponent,\n PromptManagementComponent,\n AgentConfigurationComponent,\n ExecutionMonitoringComponent,\n SystemConfigurationComponent,\n LiveExecutionWidgetComponent,\n PerformanceHeatmapComponent,\n AgentRequestsResourceComponent,\n AutotaggingPipelineResourceComponent,\n TagsResourceComponent,\n DuplicateDetectionResourceComponent,\n VectorManagementResourceComponent,\n KnowledgeConfigResourceComponent,\n SearchResultDetailComponent,\n ClusterVisualizationResourceComponent,\n SchedulingResourceComponent,\n AnalyticsResourceComponent,\n AIAnalyticsResourceComponent,\n AnalyticsFilterBarComponent,\n AnalyticsExecutiveSummaryComponent,\n AnalyticsPromptRunsComponent,\n AnalyticsAgentRunsComponent,\n AnalyticsModelPerformanceComponent,\n AnalyticsCostBudgetComponent,\n AnalyticsErrorAnalysisComponent,\n AnalyticsUsagePatternsComponent,\n AIOverviewHubComponent,\n SharedDashboardWidgetsModule\n ]\n})\nexport class AIDashboardsModule {\n constructor() {\n // Ensure tree-shaking prevention loaders are called\n LoadTagsResource();\n LoadClusterVisualizationResource();\n LoadSchedulingResource();\n LoadAnalyticsResource();\n LoadAIAnalyticsResource();\n LoadAnalyticsExecutiveSummary();\n LoadAnalyticsPromptRuns();\n LoadAnalyticsAgentRuns();\n LoadAnalyticsModelPerformance();\n LoadAnalyticsCostBudget();\n LoadAnalyticsErrorAnalysis();\n LoadAnalyticsUsagePatterns();\n LoadAIOverviewHub();\n }\n}\n"]}
|
|
@@ -5,19 +5,21 @@ import * as i3 from "./Communication/communication-logs-resource.component";
|
|
|
5
5
|
import * as i4 from "./Communication/communication-providers-resource.component";
|
|
6
6
|
import * as i5 from "./Communication/communication-runs-resource.component";
|
|
7
7
|
import * as i6 from "./Communication/communication-templates-resource.component";
|
|
8
|
-
import * as i7 from "
|
|
9
|
-
import * as i8 from "@angular/
|
|
10
|
-
import * as i9 from "@
|
|
11
|
-
import * as i10 from "@memberjunction/ng-
|
|
12
|
-
import * as i11 from "
|
|
13
|
-
import * as i12 from "
|
|
8
|
+
import * as i7 from "./Communication/communication-new-message-resource.component";
|
|
9
|
+
import * as i8 from "@angular/common";
|
|
10
|
+
import * as i9 from "@angular/forms";
|
|
11
|
+
import * as i10 from "@memberjunction/ng-container-directives";
|
|
12
|
+
import * as i11 from "@memberjunction/ng-shared-generic";
|
|
13
|
+
import * as i12 from "./shared/shared-dashboard-widgets.module";
|
|
14
|
+
import * as i13 from "@memberjunction/ng-list-management";
|
|
15
|
+
import * as i14 from "@memberjunction/ng-ui-components";
|
|
14
16
|
/**
|
|
15
17
|
* CommunicationDashboardsModule — Communication feature area: dashboard,
|
|
16
18
|
* monitor, logs, providers, runs, and templates.
|
|
17
19
|
*/
|
|
18
20
|
export declare class CommunicationDashboardsModule {
|
|
19
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<CommunicationDashboardsModule, never>;
|
|
20
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<CommunicationDashboardsModule, [typeof i1.CommunicationDashboardComponent, typeof i2.CommunicationMonitorResourceComponent, typeof i3.CommunicationLogsResourceComponent, typeof i4.CommunicationProvidersResourceComponent, typeof i5.CommunicationRunsResourceComponent, typeof i6.CommunicationTemplatesResourceComponent], [typeof
|
|
22
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CommunicationDashboardsModule, [typeof i1.CommunicationDashboardComponent, typeof i2.CommunicationMonitorResourceComponent, typeof i3.CommunicationLogsResourceComponent, typeof i4.CommunicationProvidersResourceComponent, typeof i5.CommunicationRunsResourceComponent, typeof i6.CommunicationTemplatesResourceComponent, typeof i7.CommunicationsNewMessageResource], [typeof i8.CommonModule, typeof i9.FormsModule, typeof i9.ReactiveFormsModule, typeof i10.ContainerDirectivesModule, typeof i11.SharedGenericModule, typeof i12.SharedDashboardWidgetsModule, typeof i13.ListManagementModule, typeof i14.MJButtonDirective, typeof i14.MJPageHeaderComponent, typeof i14.MJPageLayoutComponent, typeof i14.MJPageBodyComponent, typeof i14.MJPageSearchComponent, typeof i14.MJFilterChipComponent, typeof i14.MJRefreshButtonComponent], [typeof i1.CommunicationDashboardComponent, typeof i2.CommunicationMonitorResourceComponent, typeof i3.CommunicationLogsResourceComponent, typeof i4.CommunicationProvidersResourceComponent, typeof i5.CommunicationRunsResourceComponent, typeof i6.CommunicationTemplatesResourceComponent, typeof i7.CommunicationsNewMessageResource]>;
|
|
21
23
|
static ɵinj: i0.ɵɵInjectorDeclaration<CommunicationDashboardsModule>;
|
|
22
24
|
}
|
|
23
25
|
//# sourceMappingURL=communication-dashboards.module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"communication-dashboards.module.d.ts","sourceRoot":"","sources":["../src/communication-dashboards.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"communication-dashboards.module.d.ts","sourceRoot":"","sources":["../src/communication-dashboards.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAkBA;;;GAGG;AACH,qBAoCa,6BAA6B;yCAA7B,6BAA6B;0CAA7B,6BAA6B;0CAA7B,6BAA6B;CAAI"}
|