@memberjunction/ng-dashboards 2.49.0 → 2.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/AI/ai-dashboard.component.d.ts +4 -0
  2. package/dist/AI/ai-dashboard.component.d.ts.map +1 -1
  3. package/dist/AI/ai-dashboard.component.js +71 -23
  4. package/dist/AI/ai-dashboard.component.js.map +1 -1
  5. package/dist/AI/components/agents/agent-configuration.component.d.ts +18 -8
  6. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  7. package/dist/AI/components/agents/agent-configuration.component.js +338 -130
  8. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  9. package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
  10. package/dist/AI/components/agents/agent-editor.component.js +0 -5
  11. package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
  12. package/dist/AI/components/agents/agent-filter-panel.component.d.ts +16 -1
  13. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +1 -1
  14. package/dist/AI/components/agents/agent-filter-panel.component.js +124 -14
  15. package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
  16. package/dist/AI/components/charts/time-series-chart.component.d.ts +2 -0
  17. package/dist/AI/components/charts/time-series-chart.component.d.ts.map +1 -1
  18. package/dist/AI/components/charts/time-series-chart.component.js +56 -2
  19. package/dist/AI/components/charts/time-series-chart.component.js.map +1 -1
  20. package/dist/AI/components/execution-monitoring.component.d.ts +4 -7
  21. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  22. package/dist/AI/components/execution-monitoring.component.js +339 -368
  23. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  24. package/dist/AI/components/models/model-management-v2.component.d.ts +92 -0
  25. package/dist/AI/components/models/model-management-v2.component.d.ts.map +1 -0
  26. package/dist/AI/components/models/model-management-v2.component.js +1004 -0
  27. package/dist/AI/components/models/model-management-v2.component.js.map +1 -0
  28. package/dist/AI/components/prompts/prompt-management-v2.component.d.ts +66 -0
  29. package/dist/AI/components/prompts/prompt-management-v2.component.d.ts.map +1 -0
  30. package/dist/AI/components/prompts/prompt-management-v2.component.js +719 -0
  31. package/dist/AI/components/prompts/prompt-management-v2.component.js.map +1 -0
  32. package/dist/AI/services/ai-instrumentation.service.d.ts +7 -6
  33. package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
  34. package/dist/AI/services/ai-instrumentation.service.js +141 -147
  35. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  36. package/dist/Actions/actions-management-dashboard.component.js +8 -8
  37. package/dist/Actions/actions-management-dashboard.component.js.map +1 -1
  38. package/dist/Actions/components/actions-list-view.component.d.ts +0 -2
  39. package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
  40. package/dist/Actions/components/actions-list-view.component.js +37 -37
  41. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  42. package/dist/Actions/components/actions-overview.component.d.ts +7 -4
  43. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  44. package/dist/Actions/components/actions-overview.component.js +147 -90
  45. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  46. package/dist/Actions/components/categories-list-view.component.d.ts +23 -2
  47. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  48. package/dist/Actions/components/categories-list-view.component.js +283 -17
  49. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  50. package/dist/Actions/components/execution-monitoring.component.d.ts +0 -2
  51. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  52. package/dist/Actions/components/execution-monitoring.component.js +25 -37
  53. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  54. package/dist/module.d.ts +3 -3
  55. package/dist/module.js +6 -6
  56. package/dist/module.js.map +1 -1
  57. package/package.json +7 -6
  58. package/dist/AI/components/models/model-management.component.d.ts +0 -73
  59. package/dist/AI/components/models/model-management.component.d.ts.map +0 -1
  60. package/dist/AI/components/models/model-management.component.js +0 -643
  61. package/dist/AI/components/models/model-management.component.js.map +0 -1
  62. package/dist/AI/components/prompts/prompt-management.component.d.ts +0 -118
  63. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +0 -1
  64. package/dist/AI/components/prompts/prompt-management.component.js +0 -1351
  65. package/dist/AI/components/prompts/prompt-management.component.js.map +0 -1
@@ -13,10 +13,12 @@ export declare class AIDashboardComponent extends BaseDashboard implements After
13
13
  isLoading: boolean;
14
14
  activeTab: string;
15
15
  selectedIndex: number;
16
+ modelManagementState: any;
16
17
  promptManagementState: any;
17
18
  agentConfigurationState: any;
18
19
  systemConfigurationState: any;
19
20
  executionMonitoringState: any;
21
+ private visitedTabs;
20
22
  navigationItems: string[];
21
23
  get navigationConfig(): {
22
24
  text: string;
@@ -33,9 +35,11 @@ export declare class AIDashboardComponent extends BaseDashboard implements After
33
35
  ngAfterViewInit(): void;
34
36
  ngOnDestroy(): void;
35
37
  onTabChange(tabId: string): void;
38
+ hasVisited(tabId: string): boolean;
36
39
  onNavigationChange(event: any): void;
37
40
  private setupStateManagement;
38
41
  private emitStateChange;
42
+ onModelManagementStateChange(state: any): void;
39
43
  onPromptManagementStateChange(state: any): void;
40
44
  onAgentConfigurationStateChange(state: any): void;
41
45
  onSystemConfigurationStateChange(state: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/AI/ai-dashboard.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,aAAa,EAAE,SAAS,EAAa,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;;AAM1D,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,qBAAqB,EAAE,GAAG,CAAC;IAC3B,uBAAuB,EAAE,GAAG,CAAC;IAC7B,wBAAwB,EAAE,GAAG,CAAC;IAC9B,wBAAwB,EAAE,GAAG,CAAC;CAC/B;AAED,qBAMa,oBAAqB,SAAQ,aAAc,YAAW,aAAa,EAAE,SAAS;IAElF,SAAS,UAAS;IAClB,SAAS,SAAgB;IACzB,aAAa,SAAK;IAGlB,qBAAqB,EAAE,GAAG,CAAQ;IAClC,uBAAuB,EAAE,GAAG,CAAQ;IACpC,wBAAwB,EAAE,GAAG,CAAQ;IACrC,wBAAwB,EAAE,GAAG,CAAQ;IAGrC,eAAe,EAAE,MAAM,EAAE,CAA2D;IAE3F,IAAW,gBAAgB;;;;QAQ1B;IAED,IAAW,wBAAwB;;;;QAQlC;IAED,OAAO,CAAC,kBAAkB,CAAmC;;IAO7D,eAAe,IAAI,IAAI;IAKvB,WAAW,IAAI,IAAI;IAIZ,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMhC,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAU3C,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,eAAe;IAahB,6BAA6B,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAK/C,+BAA+B,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAKjD,gCAAgC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAKlD,gCAAgC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAKlD,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAsBrD,kBAAkB,CAAC,IAAI,EAAE;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,GAAG,KAAK,GAAG,IAAI;IAarF,aAAa,IAAI,IAAI;IAYrB,QAAQ,IAAI,IAAI;IAWT,kBAAkB,IAAI,MAAM;yCAvKxB,oBAAoB;2CAApB,oBAAoB;CA4KhC;AAED,wBAAgB,eAAe,SAE9B"}
1
+ {"version":3,"file":"ai-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/AI/ai-dashboard.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,aAAa,EAAE,SAAS,EAAa,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;;AAO1D,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,qBAAqB,EAAE,GAAG,CAAC;IAC3B,uBAAuB,EAAE,GAAG,CAAC;IAC7B,wBAAwB,EAAE,GAAG,CAAC;IAC9B,wBAAwB,EAAE,GAAG,CAAC;CAC/B;AAED,qBAMa,oBAAqB,SAAQ,aAAc,YAAW,aAAa,EAAE,SAAS;IAElF,SAAS,UAAS;IAClB,SAAS,SAAgB;IACzB,aAAa,SAAK;IAGlB,oBAAoB,EAAE,GAAG,CAAQ;IACjC,qBAAqB,EAAE,GAAG,CAAQ;IAClC,uBAAuB,EAAE,GAAG,CAAQ;IACpC,wBAAwB,EAAE,GAAG,CAAQ;IACrC,wBAAwB,EAAE,GAAG,CAAQ;IAG5C,OAAO,CAAC,WAAW,CAAqB;IAGjC,eAAe,EAAE,MAAM,EAAE,CAA2D;IAE3F,IAAW,gBAAgB;;;;QAQ1B;IAED,IAAW,wBAAwB;;;;QAQlC;IAED,OAAO,CAAC,kBAAkB,CAAmC;;IAO7D,eAAe,IAAI,IAAI;IAOvB,WAAW,IAAI,IAAI;IAIZ,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAiBhC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIlC,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAgB3C,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,eAAe;IAahB,4BAA4B,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAK9C,6BAA6B,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAK/C,+BAA+B,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAKjD,gCAAgC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAKlD,gCAAgC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAKlD,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAoCrD,kBAAkB,CAAC,IAAI,EAAE;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,GAAG,KAAK,GAAG,IAAI;IAarF,aAAa,IAAI,IAAI;IAYrB,QAAQ,IAAI,IAAI;IAgBT,kBAAkB,IAAI,MAAM;yCA1NxB,oBAAoB;2CAApB,oBAAoB;CA+NhC;AAED,wBAAgB,eAAe,SAE9B"}
@@ -10,10 +10,11 @@ import { RegisterClass } from '@memberjunction/global';
10
10
  import { CompositeKey } from '@memberjunction/core';
11
11
  import { Subject } from 'rxjs';
12
12
  import { debounceTime } from 'rxjs/operators';
13
+ import { SharedService } from '@memberjunction/ng-shared';
13
14
  import * as i0 from "@angular/core";
14
15
  import * as i1 from "@memberjunction/ng-container-directives";
15
- import * as i2 from "./components/models/model-management.component";
16
- import * as i3 from "./components/prompts/prompt-management.component";
16
+ import * as i2 from "./components/models/model-management-v2.component";
17
+ import * as i3 from "./components/prompts/prompt-management-v2.component";
17
18
  import * as i4 from "./components/agents/agent-configuration.component";
18
19
  import * as i5 from "./components/execution-monitoring.component";
19
20
  import * as i6 from "./components/system/system-configuration.component";
@@ -27,25 +28,31 @@ function AIDashboardComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
27
28
  } }
28
29
  function AIDashboardComponent_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
29
30
  const _r1 = i0.ɵɵgetCurrentView();
30
- i0.ɵɵelementStart(0, "app-model-management", 12);
31
- i0.ɵɵlistener("openEntityRecord", function AIDashboardComponent_Conditional_2_Conditional_2_Template_app_model_management_openEntityRecord_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onOpenEntityRecord($event)); });
31
+ i0.ɵɵelementStart(0, "app-model-management-v2", 12);
32
+ i0.ɵɵlistener("openEntityRecord", function AIDashboardComponent_Conditional_2_Conditional_2_Template_app_model_management_v2_openEntityRecord_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onOpenEntityRecord($event)); })("stateChange", function AIDashboardComponent_Conditional_2_Conditional_2_Template_app_model_management_v2_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onModelManagementStateChange($event)); });
32
33
  i0.ɵɵelementEnd();
34
+ } if (rf & 2) {
35
+ const ctx_r1 = i0.ɵɵnextContext(2);
36
+ i0.ɵɵproperty("initialState", ctx_r1.modelManagementState);
33
37
  } }
34
38
  function AIDashboardComponent_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
35
39
  const _r3 = i0.ɵɵgetCurrentView();
36
- i0.ɵɵelementStart(0, "app-prompt-management", 13);
37
- i0.ɵɵlistener("openEntityRecord", function AIDashboardComponent_Conditional_2_Conditional_3_Template_app_prompt_management_openEntityRecord_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onOpenEntityRecord($event)); })("stateChange", function AIDashboardComponent_Conditional_2_Conditional_3_Template_app_prompt_management_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onPromptManagementStateChange($event)); });
40
+ i0.ɵɵelementStart(0, "app-prompt-management-v2", 13);
41
+ i0.ɵɵlistener("openEntityRecord", function AIDashboardComponent_Conditional_2_Conditional_3_Template_app_prompt_management_v2_openEntityRecord_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onOpenEntityRecord($event)); })("stateChange", function AIDashboardComponent_Conditional_2_Conditional_3_Template_app_prompt_management_v2_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onPromptManagementStateChange($event)); });
38
42
  i0.ɵɵelementEnd();
39
43
  } }
40
44
  function AIDashboardComponent_Conditional_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
41
45
  const _r4 = i0.ɵɵgetCurrentView();
42
- i0.ɵɵelementStart(0, "app-agent-configuration", 13);
46
+ i0.ɵɵelementStart(0, "app-agent-configuration", 12);
43
47
  i0.ɵɵlistener("openEntityRecord", function AIDashboardComponent_Conditional_2_Conditional_4_Template_app_agent_configuration_openEntityRecord_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onOpenEntityRecord($event)); })("stateChange", function AIDashboardComponent_Conditional_2_Conditional_4_Template_app_agent_configuration_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onAgentConfigurationStateChange($event)); });
44
48
  i0.ɵɵelementEnd();
49
+ } if (rf & 2) {
50
+ const ctx_r1 = i0.ɵɵnextContext(2);
51
+ i0.ɵɵproperty("initialState", ctx_r1.agentConfigurationState);
45
52
  } }
46
53
  function AIDashboardComponent_Conditional_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
47
54
  const _r5 = i0.ɵɵgetCurrentView();
48
- i0.ɵɵelementStart(0, "app-execution-monitoring", 14);
55
+ i0.ɵɵelementStart(0, "app-execution-monitoring", 12);
49
56
  i0.ɵɵlistener("openEntityRecord", function AIDashboardComponent_Conditional_2_Conditional_5_Template_app_execution_monitoring_openEntityRecord_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onOpenEntityRecord($event)); })("stateChange", function AIDashboardComponent_Conditional_2_Conditional_5_Template_app_execution_monitoring_stateChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onExecutionMonitoringStateChange($event)); });
50
57
  i0.ɵɵelementEnd();
51
58
  } if (rf & 2) {
@@ -60,7 +67,7 @@ function AIDashboardComponent_Conditional_2_Conditional_6_Template(rf, ctx) { if
60
67
  } }
61
68
  function AIDashboardComponent_Conditional_2_For_9_Template(rf, ctx) { if (rf & 1) {
62
69
  const _r7 = i0.ɵɵgetCurrentView();
63
- i0.ɵɵelementStart(0, "div", 15);
70
+ i0.ɵɵelementStart(0, "div", 14);
64
71
  i0.ɵɵlistener("click", function AIDashboardComponent_Conditional_2_For_9_Template_div_click_0_listener() { const $index_r8 = i0.ɵɵrestoreView(_r7).$index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTabChange(ctx_r1.navigationItems[$index_r8])); });
65
72
  i0.ɵɵelement(1, "i");
66
73
  i0.ɵɵelementStart(2, "span");
@@ -76,7 +83,7 @@ function AIDashboardComponent_Conditional_2_For_9_Template(rf, ctx) { if (rf & 1
76
83
  } }
77
84
  function AIDashboardComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
78
85
  i0.ɵɵelementStart(0, "div", 2)(1, "div", 7);
79
- i0.ɵɵtemplate(2, AIDashboardComponent_Conditional_2_Conditional_2_Template, 1, 0, "app-model-management", 8)(3, AIDashboardComponent_Conditional_2_Conditional_3_Template, 1, 0, "app-prompt-management", 8)(4, AIDashboardComponent_Conditional_2_Conditional_4_Template, 1, 0, "app-agent-configuration", 8)(5, AIDashboardComponent_Conditional_2_Conditional_5_Template, 1, 1, "app-execution-monitoring", 9)(6, AIDashboardComponent_Conditional_2_Conditional_6_Template, 1, 0, "app-system-configuration", 8);
86
+ i0.ɵɵtemplate(2, AIDashboardComponent_Conditional_2_Conditional_2_Template, 1, 1, "app-model-management-v2", 8)(3, AIDashboardComponent_Conditional_2_Conditional_3_Template, 1, 0, "app-prompt-management-v2", 9)(4, AIDashboardComponent_Conditional_2_Conditional_4_Template, 1, 1, "app-agent-configuration", 8)(5, AIDashboardComponent_Conditional_2_Conditional_5_Template, 1, 1, "app-execution-monitoring", 8)(6, AIDashboardComponent_Conditional_2_Conditional_6_Template, 1, 0, "app-system-configuration", 9);
80
87
  i0.ɵɵelementEnd();
81
88
  i0.ɵɵelementStart(7, "div", 10);
82
89
  i0.ɵɵrepeaterCreate(8, AIDashboardComponent_Conditional_2_For_9_Template, 4, 5, "div", 11, i0.ɵɵrepeaterTrackByIndex);
@@ -84,15 +91,15 @@ function AIDashboardComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
84
91
  } if (rf & 2) {
85
92
  const ctx_r1 = i0.ɵɵnextContext();
86
93
  i0.ɵɵadvance(2);
87
- i0.ɵɵconditional(ctx_r1.activeTab === "models" ? 2 : -1);
94
+ i0.ɵɵconditional(ctx_r1.activeTab === "models" && ctx_r1.hasVisited("models") ? 2 : -1);
88
95
  i0.ɵɵadvance();
89
- i0.ɵɵconditional(ctx_r1.activeTab === "prompts" ? 3 : -1);
96
+ i0.ɵɵconditional(ctx_r1.activeTab === "prompts" && ctx_r1.hasVisited("prompts") ? 3 : -1);
90
97
  i0.ɵɵadvance();
91
- i0.ɵɵconditional(ctx_r1.activeTab === "agents" ? 4 : -1);
98
+ i0.ɵɵconditional(ctx_r1.activeTab === "agents" && ctx_r1.hasVisited("agents") ? 4 : -1);
92
99
  i0.ɵɵadvance();
93
- i0.ɵɵconditional(ctx_r1.activeTab === "monitoring" ? 5 : -1);
100
+ i0.ɵɵconditional(ctx_r1.activeTab === "monitoring" && ctx_r1.hasVisited("monitoring") ? 5 : -1);
94
101
  i0.ɵɵadvance();
95
- i0.ɵɵconditional(ctx_r1.activeTab === "config" ? 6 : -1);
102
+ i0.ɵɵconditional(ctx_r1.activeTab === "config" && ctx_r1.hasVisited("config") ? 6 : -1);
96
103
  i0.ɵɵadvance(2);
97
104
  i0.ɵɵrepeater(ctx_r1.navigationConfig);
98
105
  } }
@@ -101,10 +108,13 @@ let AIDashboardComponent = class AIDashboardComponent extends BaseDashboard {
101
108
  activeTab = 'monitoring'; // Default tab changed to monitoring
102
109
  selectedIndex = 0; // Track selected navigation index
103
110
  // Component states
111
+ modelManagementState = null;
104
112
  promptManagementState = null;
105
113
  agentConfigurationState = null;
106
114
  systemConfigurationState = null;
107
115
  executionMonitoringState = null;
116
+ // Track which tabs have been visited for lazy loading
117
+ visitedTabs = new Set();
108
118
  // Navigation items for bottom navigation - reordered with monitoring first
109
119
  navigationItems = ['monitoring', 'prompts', 'agents', 'models', 'config'];
110
120
  get navigationConfig() {
@@ -132,6 +142,8 @@ let AIDashboardComponent = class AIDashboardComponent extends BaseDashboard {
132
142
  }
133
143
  ngAfterViewInit() {
134
144
  // Initialize the dashboard after view init
145
+ // Mark the initial tab as visited
146
+ this.visitedTabs.add(this.activeTab);
135
147
  this.emitStateChange();
136
148
  }
137
149
  ngOnDestroy() {
@@ -139,9 +151,20 @@ let AIDashboardComponent = class AIDashboardComponent extends BaseDashboard {
139
151
  }
140
152
  onTabChange(tabId) {
141
153
  this.activeTab = tabId;
142
- this.selectedIndex = this.navigationItems.indexOf(tabId);
154
+ const index = this.navigationItems.indexOf(tabId);
155
+ // Defer selectedIndex update to avoid change detection issues
156
+ setTimeout(() => {
157
+ this.selectedIndex = index >= 0 ? index : 0;
158
+ // Invoke manual resize after tab change to fix rendering issues
159
+ // TODO: Remove this when resize issues are properly fixed
160
+ SharedService.Instance.InvokeManualResize();
161
+ }, 100); // Give a bit more time for the DOM to update
162
+ this.visitedTabs.add(tabId); // Mark tab as visited
143
163
  this.emitStateChange();
144
164
  }
165
+ hasVisited(tabId) {
166
+ return this.visitedTabs.has(tabId);
167
+ }
145
168
  onNavigationChange(event) {
146
169
  // Legacy method for Kendo navigation - kept for compatibility
147
170
  const index = event.index;
@@ -149,6 +172,11 @@ let AIDashboardComponent = class AIDashboardComponent extends BaseDashboard {
149
172
  this.selectedIndex = index;
150
173
  this.activeTab = this.navigationItems[index];
151
174
  this.emitStateChange();
175
+ // Invoke manual resize after navigation change
176
+ // TODO: Remove this when resize issues are properly fixed
177
+ setTimeout(() => {
178
+ SharedService.Instance.InvokeManualResize();
179
+ }, 100);
152
180
  }
153
181
  }
154
182
  setupStateManagement() {
@@ -160,7 +188,7 @@ let AIDashboardComponent = class AIDashboardComponent extends BaseDashboard {
160
188
  emitStateChange() {
161
189
  const state = {
162
190
  activeTab: this.activeTab,
163
- modelManagementState: {},
191
+ modelManagementState: this.modelManagementState || {},
164
192
  promptManagementState: this.promptManagementState || {},
165
193
  agentConfigurationState: this.agentConfigurationState || {},
166
194
  executionMonitoringState: this.executionMonitoringState || {},
@@ -168,6 +196,10 @@ let AIDashboardComponent = class AIDashboardComponent extends BaseDashboard {
168
196
  };
169
197
  this.stateChangeSubject.next(state);
170
198
  }
199
+ onModelManagementStateChange(state) {
200
+ this.modelManagementState = state;
201
+ this.emitStateChange();
202
+ }
171
203
  onPromptManagementStateChange(state) {
172
204
  this.promptManagementState = state;
173
205
  this.emitStateChange();
@@ -187,9 +219,19 @@ let AIDashboardComponent = class AIDashboardComponent extends BaseDashboard {
187
219
  loadUserState(state) {
188
220
  if (state.activeTab) {
189
221
  this.activeTab = state.activeTab;
190
- this.selectedIndex = this.navigationItems.indexOf(state.activeTab);
222
+ const index = this.navigationItems.indexOf(state.activeTab);
223
+ // Defer selectedIndex update to avoid change detection issues
224
+ setTimeout(() => {
225
+ // Ensure we don't set selectedIndex to -1
226
+ this.selectedIndex = index >= 0 ? index : 0;
227
+ });
228
+ // Mark the tab as visited
229
+ this.visitedTabs.add(state.activeTab);
191
230
  }
192
231
  // Store component states for when they're rendered
232
+ if (state.modelManagementState) {
233
+ this.modelManagementState = state.modelManagementState;
234
+ }
193
235
  if (state.executionMonitoringState) {
194
236
  this.executionMonitoringState = state.executionMonitoringState;
195
237
  }
@@ -202,6 +244,7 @@ let AIDashboardComponent = class AIDashboardComponent extends BaseDashboard {
202
244
  if (state.systemConfigurationState) {
203
245
  this.systemConfigurationState = state.systemConfigurationState;
204
246
  }
247
+ // No need for manual change detection with default strategy
205
248
  }
206
249
  // Handle entity record opening from sub-components
207
250
  onOpenEntityRecord(data) {
@@ -233,7 +276,12 @@ let AIDashboardComponent = class AIDashboardComponent extends BaseDashboard {
233
276
  // Load any initial data needed for the AI dashboard
234
277
  // Check if we have user state in the Config and apply it
235
278
  if (this.Config?.userState) {
236
- this.loadUserState(this.Config.userState);
279
+ // Wrap in setTimeout to avoid ExpressionChangedAfterItHasBeenCheckedError
280
+ setTimeout(() => {
281
+ if (this.Config?.userState) {
282
+ this.loadUserState(this.Config.userState);
283
+ }
284
+ }, 0);
237
285
  }
238
286
  // Emit loading complete event
239
287
  this.LoadingComplete.emit();
@@ -244,7 +292,7 @@ let AIDashboardComponent = class AIDashboardComponent extends BaseDashboard {
244
292
  return tabIndex >= 0 ? labels[tabIndex] : 'AI Administration';
245
293
  }
246
294
  static ɵfac = function AIDashboardComponent_Factory(t) { return new (t || AIDashboardComponent)(); };
247
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIDashboardComponent, selectors: [["mj-ai-dashboard"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 4, consts: [["mjFillContainer", "", 1, "ai-dashboard-container", 3, "rightMargin", "bottomMargin"], [1, "loading-container"], [1, "dashboard-content-wrapper"], [1, "loading-content"], [1, "loading-spinner"], [1, "spinner-ring"], [1, "loading-text"], [1, "dashboard-content"], ["mjFillContainer", ""], ["mjFillContainer", "", 3, "initialState"], [1, "ai-dashboard-nav"], [1, "nav-item", 3, "active"], ["mjFillContainer", "", 3, "openEntityRecord"], ["mjFillContainer", "", 3, "openEntityRecord", "stateChange"], ["mjFillContainer", "", 3, "openEntityRecord", "stateChange", "initialState"], [1, "nav-item", 3, "click"]], template: function AIDashboardComponent_Template(rf, ctx) { if (rf & 1) {
295
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIDashboardComponent, selectors: [["mj-ai-dashboard"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 4, consts: [["mjFillContainer", "", 1, "ai-dashboard-container", 3, "rightMargin", "bottomMargin"], [1, "loading-container"], [1, "dashboard-content-wrapper"], [1, "loading-content"], [1, "loading-spinner"], [1, "spinner-ring"], [1, "loading-text"], [1, "dashboard-content"], ["mjFillContainer", "", 3, "initialState"], ["mjFillContainer", ""], [1, "ai-dashboard-nav"], [1, "nav-item", 3, "active"], ["mjFillContainer", "", 3, "openEntityRecord", "stateChange", "initialState"], ["mjFillContainer", "", 3, "openEntityRecord", "stateChange"], [1, "nav-item", 3, "click"]], template: function AIDashboardComponent_Template(rf, ctx) { if (rf & 1) {
248
296
  i0.ɵɵelementStart(0, "div", 0);
249
297
  i0.ɵɵtemplate(1, AIDashboardComponent_Conditional_1_Template, 8, 0, "div", 1)(2, AIDashboardComponent_Conditional_2_Template, 10, 5, "div", 2);
250
298
  i0.ɵɵelementEnd();
@@ -254,7 +302,7 @@ let AIDashboardComponent = class AIDashboardComponent extends BaseDashboard {
254
302
  i0.ɵɵconditional(ctx.isLoading ? 1 : -1);
255
303
  i0.ɵɵadvance();
256
304
  i0.ɵɵconditional(!ctx.isLoading ? 2 : -1);
257
- } }, dependencies: [i1.FillContainer, i2.ModelManagementComponent, i3.PromptManagementComponent, i4.AgentConfigurationComponent, i5.ExecutionMonitoringComponent, i6.SystemConfigurationComponent], styles: [".ai-dashboard-container[_ngcontent-%COMP%] {\n overflow: hidden;\n padding: 4px;\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dashboard-header[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n \n .header-info {\n flex: 1;\n display: flex;\n align-items: center;\n }\n \n .current-tab-info {\n font-size: 12px;\n color: #2196f3;\n font-weight: 600;\n background: rgba(33, 150, 243, 0.1);\n padding: 4px 8px;\n border-radius: 4px;\n border: 1px solid rgba(33, 150, 243, 0.2);\n }\n \n .header-controls {\n display: flex;\n gap: 8px;\n \n .control-btn {\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: white;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n \n &:hover {\n background-color: #f0f0f0;\n border-color: #2196f3;\n }\n \n &.active {\n background-color: #2196f3;\n border-color: #2196f3;\n color: white;\n }\n \n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n \n &:hover {\n background-color: white;\n border-color: #ccc;\n }\n }\n \n .fa-solid {\n font-size: 14px;\n }\n }\n }\n}\n\n.loading-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: #fafafa;\n flex: 1;\n \n p {\n color: #666;\n font-size: 14px;\n }\n}\n\n.dashboard-content-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow: hidden;\n}\n\n.dashboard-content[_ngcontent-%COMP%] {\n overflow: hidden;\n flex: 1;\n}\n\n.ai-dashboard-nav[_ngcontent-%COMP%] {\n flex-shrink: 0;\n display: flex;\n background: white;\n border-top: 1px solid #e0e0e0;\n padding: 0;\n \n .nav-item {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 12px 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #666;\n font-size: 12px;\n border-right: 1px solid #e0e0e0;\n \n &:last-child {\n border-right: none;\n }\n \n &:hover {\n background-color: #f5f5f5;\n color: #2196f3;\n }\n \n &.active {\n background-color: #e3f2fd;\n color: #2196f3;\n font-weight: 600;\n \n i {\n color: #2196f3;\n }\n }\n \n i {\n font-size: 18px;\n margin-bottom: 4px;\n color: inherit;\n }\n \n span {\n font-size: 11px;\n text-align: center;\n line-height: 1.2;\n }\n }\n}\n\n.loading-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n position: relative;\n width: 60px;\n height: 60px;\n}\n\n.spinner-ring[_ngcontent-%COMP%] {\n position: absolute;\n width: 100%;\n height: 100%;\n border: 3px solid transparent;\n border-radius: 50%;\n animation: _ngcontent-%COMP%_spin 1.5s linear infinite;\n \n &:nth-child(1) {\n border-top-color: #2196f3;\n animation-delay: 0s;\n }\n \n &:nth-child(2) {\n border-top-color: #9c27b0;\n animation-delay: 0.3s;\n transform: scale(0.8);\n }\n \n &:nth-child(3) {\n border-top-color: #ff6b35;\n animation-delay: 0.6s;\n transform: scale(0.6);\n }\n}\n\n.loading-text[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #666;\n font-weight: 500;\n text-align: center;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}"] });
305
+ } }, dependencies: [i1.FillContainer, i2.ModelManagementV2Component, i3.PromptManagementV2Component, i4.AgentConfigurationComponent, i5.ExecutionMonitoringComponent, i6.SystemConfigurationComponent], styles: [".ai-dashboard-container[_ngcontent-%COMP%] {\n overflow: hidden;\n padding: 4px;\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dashboard-header[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n \n .header-info {\n flex: 1;\n display: flex;\n align-items: center;\n }\n \n .current-tab-info {\n font-size: 12px;\n color: #2196f3;\n font-weight: 600;\n background: rgba(33, 150, 243, 0.1);\n padding: 4px 8px;\n border-radius: 4px;\n border: 1px solid rgba(33, 150, 243, 0.2);\n }\n \n .header-controls {\n display: flex;\n gap: 8px;\n \n .control-btn {\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: white;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n \n &:hover {\n background-color: #f0f0f0;\n border-color: #2196f3;\n }\n \n &.active {\n background-color: #2196f3;\n border-color: #2196f3;\n color: white;\n }\n \n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n \n &:hover {\n background-color: white;\n border-color: #ccc;\n }\n }\n \n .fa-solid {\n font-size: 14px;\n }\n }\n }\n}\n\n.loading-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: #fafafa;\n flex: 1;\n \n p {\n color: #666;\n font-size: 14px;\n }\n}\n\n.dashboard-content-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow: hidden;\n}\n\n.dashboard-content[_ngcontent-%COMP%] {\n overflow: hidden;\n flex: 1;\n}\n\n.ai-dashboard-nav[_ngcontent-%COMP%] {\n flex-shrink: 0;\n display: flex;\n background: white;\n border-top: 1px solid #e0e0e0;\n padding: 0;\n \n .nav-item {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 12px 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #666;\n font-size: 12px;\n border-right: 1px solid #e0e0e0;\n \n &:last-child {\n border-right: none;\n }\n \n &:hover {\n background-color: #f5f5f5;\n color: #2196f3;\n }\n \n &.active {\n background-color: #e3f2fd;\n color: #2196f3;\n font-weight: 600;\n \n i {\n color: #2196f3;\n }\n }\n \n i {\n font-size: 18px;\n margin-bottom: 4px;\n color: inherit;\n }\n \n span {\n font-size: 11px;\n text-align: center;\n line-height: 1.2;\n }\n }\n}\n\n.loading-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n position: relative;\n width: 60px;\n height: 60px;\n}\n\n.spinner-ring[_ngcontent-%COMP%] {\n position: absolute;\n width: 100%;\n height: 100%;\n border: 3px solid transparent;\n border-radius: 50%;\n animation: _ngcontent-%COMP%_spin 1.5s linear infinite;\n \n &:nth-child(1) {\n border-top-color: #2196f3;\n animation-delay: 0s;\n }\n \n &:nth-child(2) {\n border-top-color: #9c27b0;\n animation-delay: 0.3s;\n transform: scale(0.8);\n }\n \n &:nth-child(3) {\n border-top-color: #ff6b35;\n animation-delay: 0.6s;\n transform: scale(0.6);\n }\n}\n\n.loading-text[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #666;\n font-weight: 500;\n text-align: center;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}"] });
258
306
  };
259
307
  AIDashboardComponent = __decorate([
260
308
  RegisterClass(BaseDashboard, 'AIDashboard')
@@ -262,9 +310,9 @@ AIDashboardComponent = __decorate([
262
310
  export { AIDashboardComponent };
263
311
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AIDashboardComponent, [{
264
312
  type: Component,
265
- args: [{ selector: 'mj-ai-dashboard', template: "<div class=\"ai-dashboard-container\" mjFillContainer [rightMargin]=\"8\" [bottomMargin]=\"8\">\n @if (isLoading) {\n <div class=\"loading-container\">\n <div class=\"loading-content\">\n <div class=\"loading-spinner\">\n <div class=\"spinner-ring\"></div>\n <div class=\"spinner-ring\"></div>\n <div class=\"spinner-ring\"></div>\n </div>\n <div class=\"loading-text\">Loading AI Dashboard...</div>\n </div>\n </div>\n }\n \n @if (!isLoading) {\n <div class=\"dashboard-content-wrapper\">\n <div class=\"dashboard-content\">\n @if (activeTab === 'models') {\n <app-model-management\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n mjFillContainer>\n </app-model-management>\n }\n \n @if (activeTab === 'prompts') {\n <app-prompt-management\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n (stateChange)=\"onPromptManagementStateChange($event)\"\n mjFillContainer>\n </app-prompt-management>\n }\n \n @if (activeTab === 'agents') {\n <app-agent-configuration\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n (stateChange)=\"onAgentConfigurationStateChange($event)\"\n mjFillContainer>\n </app-agent-configuration>\n }\n \n @if (activeTab === 'monitoring') {\n <app-execution-monitoring\n [initialState]=\"executionMonitoringState\"\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n (stateChange)=\"onExecutionMonitoringStateChange($event)\"\n mjFillContainer>\n </app-execution-monitoring>\n }\n \n @if (activeTab === 'config') {\n <app-system-configuration\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n (stateChange)=\"onSystemConfigurationStateChange($event)\"\n mjFillContainer>\n </app-system-configuration>\n }\n </div>\n \n <div class=\"ai-dashboard-nav\">\n @for (navItem of navigationConfig; track $index) {\n <div \n class=\"nav-item\"\n [class.active]=\"navItem.selected\"\n (click)=\"onTabChange(navigationItems[$index])\">\n <i [class]=\"navItem.icon\"></i>\n <span>{{ navItem.text }}</span>\n </div>\n }\n </div>\n </div>\n }\n</div>", styles: [".ai-dashboard-container {\n overflow: hidden;\n padding: 4px;\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dashboard-header {\n margin-bottom: 16px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n \n .header-info {\n flex: 1;\n display: flex;\n align-items: center;\n }\n \n .current-tab-info {\n font-size: 12px;\n color: #2196f3;\n font-weight: 600;\n background: rgba(33, 150, 243, 0.1);\n padding: 4px 8px;\n border-radius: 4px;\n border: 1px solid rgba(33, 150, 243, 0.2);\n }\n \n .header-controls {\n display: flex;\n gap: 8px;\n \n .control-btn {\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: white;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n \n &:hover {\n background-color: #f0f0f0;\n border-color: #2196f3;\n }\n \n &.active {\n background-color: #2196f3;\n border-color: #2196f3;\n color: white;\n }\n \n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n \n &:hover {\n background-color: white;\n border-color: #ccc;\n }\n }\n \n .fa-solid {\n font-size: 14px;\n }\n }\n }\n}\n\n.loading-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: #fafafa;\n flex: 1;\n \n p {\n color: #666;\n font-size: 14px;\n }\n}\n\n.dashboard-content-wrapper {\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow: hidden;\n}\n\n.dashboard-content {\n overflow: hidden;\n flex: 1;\n}\n\n.ai-dashboard-nav {\n flex-shrink: 0;\n display: flex;\n background: white;\n border-top: 1px solid #e0e0e0;\n padding: 0;\n \n .nav-item {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 12px 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #666;\n font-size: 12px;\n border-right: 1px solid #e0e0e0;\n \n &:last-child {\n border-right: none;\n }\n \n &:hover {\n background-color: #f5f5f5;\n color: #2196f3;\n }\n \n &.active {\n background-color: #e3f2fd;\n color: #2196f3;\n font-weight: 600;\n \n i {\n color: #2196f3;\n }\n }\n \n i {\n font-size: 18px;\n margin-bottom: 4px;\n color: inherit;\n }\n \n span {\n font-size: 11px;\n text-align: center;\n line-height: 1.2;\n }\n }\n}\n\n.loading-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.loading-spinner {\n position: relative;\n width: 60px;\n height: 60px;\n}\n\n.spinner-ring {\n position: absolute;\n width: 100%;\n height: 100%;\n border: 3px solid transparent;\n border-radius: 50%;\n animation: spin 1.5s linear infinite;\n \n &:nth-child(1) {\n border-top-color: #2196f3;\n animation-delay: 0s;\n }\n \n &:nth-child(2) {\n border-top-color: #9c27b0;\n animation-delay: 0.3s;\n transform: scale(0.8);\n }\n \n &:nth-child(3) {\n border-top-color: #ff6b35;\n animation-delay: 0.6s;\n transform: scale(0.6);\n }\n}\n\n.loading-text {\n font-size: 14px;\n color: #666;\n font-weight: 500;\n text-align: center;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}"] }]
313
+ args: [{ selector: 'mj-ai-dashboard', template: "<div class=\"ai-dashboard-container\" mjFillContainer [rightMargin]=\"8\" [bottomMargin]=\"8\">\n @if (isLoading) {\n <div class=\"loading-container\">\n <div class=\"loading-content\">\n <div class=\"loading-spinner\">\n <div class=\"spinner-ring\"></div>\n <div class=\"spinner-ring\"></div>\n <div class=\"spinner-ring\"></div>\n </div>\n <div class=\"loading-text\">Loading AI Dashboard...</div>\n </div>\n </div>\n }\n \n @if (!isLoading) {\n <div class=\"dashboard-content-wrapper\">\n <div class=\"dashboard-content\">\n @if (activeTab === 'models' && hasVisited('models')) {\n <app-model-management-v2\n [initialState]=\"modelManagementState\"\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n (stateChange)=\"onModelManagementStateChange($event)\"\n mjFillContainer>\n </app-model-management-v2>\n }\n \n @if (activeTab === 'prompts' && hasVisited('prompts')) {\n <app-prompt-management-v2\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n (stateChange)=\"onPromptManagementStateChange($event)\"\n mjFillContainer>\n </app-prompt-management-v2>\n }\n \n @if (activeTab === 'agents' && hasVisited('agents')) {\n <app-agent-configuration\n [initialState]=\"agentConfigurationState\"\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n (stateChange)=\"onAgentConfigurationStateChange($event)\"\n mjFillContainer>\n </app-agent-configuration>\n }\n \n @if (activeTab === 'monitoring' && hasVisited('monitoring')) {\n <app-execution-monitoring\n [initialState]=\"executionMonitoringState\"\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n (stateChange)=\"onExecutionMonitoringStateChange($event)\"\n mjFillContainer>\n </app-execution-monitoring>\n }\n \n @if (activeTab === 'config' && hasVisited('config')) {\n <app-system-configuration\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n (stateChange)=\"onSystemConfigurationStateChange($event)\"\n mjFillContainer>\n </app-system-configuration>\n }\n </div>\n \n <div class=\"ai-dashboard-nav\">\n @for (navItem of navigationConfig; track $index) {\n <div \n class=\"nav-item\"\n [class.active]=\"navItem.selected\"\n (click)=\"onTabChange(navigationItems[$index])\">\n <i [class]=\"navItem.icon\"></i>\n <span>{{ navItem.text }}</span>\n </div>\n }\n </div>\n </div>\n }\n</div>", styles: [".ai-dashboard-container {\n overflow: hidden;\n padding: 4px;\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dashboard-header {\n margin-bottom: 16px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n \n .header-info {\n flex: 1;\n display: flex;\n align-items: center;\n }\n \n .current-tab-info {\n font-size: 12px;\n color: #2196f3;\n font-weight: 600;\n background: rgba(33, 150, 243, 0.1);\n padding: 4px 8px;\n border-radius: 4px;\n border: 1px solid rgba(33, 150, 243, 0.2);\n }\n \n .header-controls {\n display: flex;\n gap: 8px;\n \n .control-btn {\n padding: 8px 12px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: white;\n cursor: pointer;\n font-size: 12px;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s;\n \n &:hover {\n background-color: #f0f0f0;\n border-color: #2196f3;\n }\n \n &.active {\n background-color: #2196f3;\n border-color: #2196f3;\n color: white;\n }\n \n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n \n &:hover {\n background-color: white;\n border-color: #ccc;\n }\n }\n \n .fa-solid {\n font-size: 14px;\n }\n }\n }\n}\n\n.loading-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: #fafafa;\n flex: 1;\n \n p {\n color: #666;\n font-size: 14px;\n }\n}\n\n.dashboard-content-wrapper {\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow: hidden;\n}\n\n.dashboard-content {\n overflow: hidden;\n flex: 1;\n}\n\n.ai-dashboard-nav {\n flex-shrink: 0;\n display: flex;\n background: white;\n border-top: 1px solid #e0e0e0;\n padding: 0;\n \n .nav-item {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 12px 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #666;\n font-size: 12px;\n border-right: 1px solid #e0e0e0;\n \n &:last-child {\n border-right: none;\n }\n \n &:hover {\n background-color: #f5f5f5;\n color: #2196f3;\n }\n \n &.active {\n background-color: #e3f2fd;\n color: #2196f3;\n font-weight: 600;\n \n i {\n color: #2196f3;\n }\n }\n \n i {\n font-size: 18px;\n margin-bottom: 4px;\n color: inherit;\n }\n \n span {\n font-size: 11px;\n text-align: center;\n line-height: 1.2;\n }\n }\n}\n\n.loading-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n}\n\n.loading-spinner {\n position: relative;\n width: 60px;\n height: 60px;\n}\n\n.spinner-ring {\n position: absolute;\n width: 100%;\n height: 100%;\n border: 3px solid transparent;\n border-radius: 50%;\n animation: spin 1.5s linear infinite;\n \n &:nth-child(1) {\n border-top-color: #2196f3;\n animation-delay: 0s;\n }\n \n &:nth-child(2) {\n border-top-color: #9c27b0;\n animation-delay: 0.3s;\n transform: scale(0.8);\n }\n \n &:nth-child(3) {\n border-top-color: #ff6b35;\n animation-delay: 0.6s;\n transform: scale(0.6);\n }\n}\n\n.loading-text {\n font-size: 14px;\n color: #666;\n font-weight: 500;\n text-align: center;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}"] }]
266
314
  }], () => [], null); })();
267
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIDashboardComponent, { className: "AIDashboardComponent", filePath: "src/AI/ai-dashboard.component.ts", lineNumber: 23 }); })();
315
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIDashboardComponent, { className: "AIDashboardComponent", filePath: "src/AI/ai-dashboard.component.ts", lineNumber: 24 }); })();
268
316
  export function LoadAIDashboard() {
269
317
  // Prevents tree-shaking
270
318
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ai-dashboard.component.js","sourceRoot":"","sources":["../../src/AI/ai-dashboard.component.ts","../../src/AI/ai-dashboard.component.html"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAuC,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;;;;;;;;;ICDtC,AADF,AADF,8BAA+B,aACA,aACE;IAG3B,AADA,AADA,yBAAgC,aACA,aACA;IAClC,iBAAM;IACN,8BAA0B;IAAA,uCAAuB;IAErD,AADE,AADmD,iBAAM,EACnD,EACF;;;;IAOA,gDAEkB;IADhB,iPAAoB,iCAA0B,KAAC;IAEjD,iBAAuB;;;;IAIvB,iDAGkB;IADhB,AADA,kPAAoB,iCAA0B,KAAC,2NAChC,4CAAqC,KAAC;IAEvD,iBAAwB;;;;IAIxB,mDAGkB;IADhB,AADA,oPAAoB,iCAA0B,KAAC,6NAChC,8CAAuC,KAAC;IAEzD,iBAA0B;;;;IAI1B,oDAIkB;IADhB,AADA,qPAAoB,iCAA0B,KAAC,8NAChC,+CAAwC,KAAC;IAE1D,iBAA2B;;;IAJzB,8DAAyC;;;;IAQ3C,oDAGkB;IADhB,AADA,qPAAoB,iCAA0B,KAAC,8NAChC,+CAAwC,KAAC;IAE1D,iBAA2B;;;;IAM3B,+BAGiD;IAA/C,qNAAS,qDAAoC,KAAC;IAC9C,oBAA8B;IAC9B,4BAAM;IAAA,YAAkB;IAC1B,AAD0B,iBAAO,EAC3B;;;IAJJ,6CAAiC;IAE9B,cAAsB;IAAtB,8BAAsB;IACnB,eAAkB;IAAlB,qCAAkB;;;IAjD9B,AADF,8BAAuC,aACN;IAiC7B,AATA,AARA,AARA,AAPA,4GAA8B,gGAOC,kGAQD,mGAQI,mGASJ;IAOhC,iBAAM;IAEN,+BAA8B;IAC5B,qHAQC;IAEL,AADE,iBAAM,EACF;;;IApDF,eAKC;IALD,wDAKC;IAED,cAMC;IAND,yDAMC;IAED,cAMC;IAND,wDAMC;IAED,cAOC;IAPD,4DAOC;IAED,cAMC;IAND,wDAMC;IAID,eAQC;IARD,sCAQC;;AD7CF,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,aAAa;IAE9C,SAAS,GAAG,KAAK,CAAC;IAClB,SAAS,GAAG,YAAY,CAAC,CAAC,oCAAoC;IAC9D,aAAa,GAAG,CAAC,CAAC,CAAC,kCAAkC;IAE5D,mBAAmB;IACZ,qBAAqB,GAAQ,IAAI,CAAC;IAClC,uBAAuB,GAAQ,IAAI,CAAC;IACpC,wBAAwB,GAAQ,IAAI,CAAC;IACrC,wBAAwB,GAAQ,IAAI,CAAC;IAE5C,2EAA2E;IACpE,eAAe,GAAa,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE3F,IAAW,gBAAgB;QACzB,OAAO;YACL,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,YAAY,EAAE;YAC9F,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAC7F,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;YACpF,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;YACxF,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;SACpF,CAAC;IACJ,CAAC;IAED,IAAW,wBAAwB;QACjC,OAAO;YACL,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,YAAY,EAAE;YAClF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAC5E,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;YACvE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;YACvE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;SACvE,CAAC;IACJ,CAAC;IAEO,kBAAkB,GAAG,IAAI,OAAO,EAAoB,CAAC;IAE7D;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,eAAe;QACb,2CAA2C;QAC3C,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,WAAW;QACT,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;IAEM,WAAW,CAAC,KAAa;QAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEM,kBAAkB,CAAC,KAAU;QAClC,8DAA8D;QAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YACtD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC1B,mCAAmC;QACnC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,YAAY,CAAC,EAAE,CAAC,CACjB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe;QACrB,MAAM,KAAK,GAAqB;YAC9B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,oBAAoB,EAAE,EAAE;YACxB,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,IAAI,EAAE;YACvD,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,IAAI,EAAE;YAC3D,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,IAAI,EAAE;YAC7D,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,IAAI,EAAE;SAC9D,CAAC;QAEF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAEM,6BAA6B,CAAC,KAAU;QAC7C,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEM,+BAA+B,CAAC,KAAU;QAC/C,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEM,gCAAgC,CAAC,KAAU;QAChD,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEM,gCAAgC,CAAC,KAAU;QAChD,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEM,aAAa,CAAC,KAAgC;QACnD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrE,CAAC;QAED,mDAAmD;QACnD,IAAI,KAAK,CAAC,wBAAwB,EAAE,CAAC;YACnC,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC,wBAAwB,CAAC;QACjE,CAAC;QACD,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;YAChC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC;QAC3D,CAAC;QACD,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;YAClC,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC,uBAAuB,CAAC;QAC/D,CAAC;QACD,IAAI,KAAK,CAAC,wBAAwB,EAAE,CAAC;YACnC,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC,wBAAwB,CAAC;QACjE,CAAC;IACH,CAAC;IAED,mDAAmD;IAC5C,kBAAkB,CAAC,IAAoD;QAC5E,qDAAqD;QACrD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,YAAY,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACnF,MAAM,UAAU,GAAG,IAA8C,CAAC;YAClE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACzF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBACzB,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,UAAU,EAAE,YAAY;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,aAAa;QACX,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,qCAAqC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;QACrF,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED,QAAQ;QACN,oDAAoD;QACpD,yDAAyD;QACzD,IAAI,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAEM,kBAAkB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpE,OAAO,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAChE,CAAC;8EA3KU,oBAAoB;6DAApB,oBAAoB;YCtBjC,8BAAyF;YAcvF,AAbA,6EAAiB,iEAaC;YAyDpB,iBAAM;;YAvEgE,AAAlB,+BAAiB,mBAAmB;YACtF,cAWC;YAXD,wCAWC;YAED,cAwDC;YAxDD,yCAwDC;;;ADhDU,oBAAoB;IADhC,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC;GAC/B,oBAAoB,CA4KhC;;iFA5KY,oBAAoB;cANhC,SAAS;2BACE,iBAAiB;;kFAKhB,oBAAoB;AA8KjC,MAAM,UAAU,eAAe;IAC7B,wBAAwB;AAC1B,CAAC"}
1
+ {"version":3,"file":"ai-dashboard.component.js","sourceRoot":"","sources":["../../src/AI/ai-dashboard.component.ts","../../src/AI/ai-dashboard.component.html"],"names":[],"mappings":"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"}
@@ -1,12 +1,16 @@
1
- import { EventEmitter, OnInit } from '@angular/core';
1
+ import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
2
2
  import { AIAgentEntity } from '@memberjunction/core-entities';
3
3
  import * as i0 from "@angular/core";
4
4
  interface AgentFilter {
5
5
  searchTerm: string;
6
+ agentType: string;
7
+ parentAgent: string;
8
+ status: string;
6
9
  executionMode: string;
7
10
  exposeAsAction: string;
8
11
  }
9
- export declare class AgentConfigurationComponent implements OnInit {
12
+ export declare class AgentConfigurationComponent implements OnInit, OnDestroy {
13
+ initialState: any;
10
14
  openEntityRecord: EventEmitter<{
11
15
  entityName: string;
12
16
  recordId: string;
@@ -14,12 +18,15 @@ export declare class AgentConfigurationComponent implements OnInit {
14
18
  stateChange: EventEmitter<any>;
15
19
  isLoading: boolean;
16
20
  filterPanelVisible: boolean;
17
- showEditor: boolean;
18
- selectedAgentId: string | null;
21
+ viewMode: 'grid' | 'list';
22
+ expandedAgentId: string | null;
19
23
  agents: AIAgentEntity[];
20
24
  filteredAgents: AIAgentEntity[];
21
25
  currentFilters: AgentFilter;
26
+ constructor();
22
27
  ngOnInit(): void;
28
+ ngOnDestroy(): void;
29
+ private applyInitialState;
23
30
  private loadAgents;
24
31
  toggleFilterPanel(): void;
25
32
  onMainSplitterChange(event: any): void;
@@ -28,14 +35,17 @@ export declare class AgentConfigurationComponent implements OnInit {
28
35
  onResetFilters(): void;
29
36
  private applyFilters;
30
37
  private emitStateChange;
38
+ setViewMode(mode: 'grid' | 'list'): void;
39
+ toggleAgentExpansion(agentId: string): void;
40
+ openAgentRecord(agentId: string): void;
41
+ createNewAgent(): void;
42
+ runAgent(agent: AIAgentEntity): Promise<void>;
43
+ getAgentIconColor(agent: AIAgentEntity): string;
31
44
  onOpenRecord(entityName: string, recordId: string): void;
32
45
  getExecutionModeColor(mode: string): string;
33
46
  getExecutionModeIcon(mode: string): string;
34
- openAgentEditor(agentId: string): void;
35
- closeAgentEditor(): void;
36
- onOpenAgentFromEditor(agentId: string): void;
37
47
  static ɵfac: i0.ɵɵFactoryDeclaration<AgentConfigurationComponent, never>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<AgentConfigurationComponent, "app-agent-configuration", never, {}, { "openEntityRecord": "openEntityRecord"; "stateChange": "stateChange"; }, never, never, false, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<AgentConfigurationComponent, "app-agent-configuration", never, { "initialState": { "alias": "initialState"; "required": false; }; }, { "openEntityRecord": "openEntityRecord"; "stateChange": "stateChange"; }, never, never, false, never>;
39
49
  }
40
50
  export {};
41
51
  //# sourceMappingURL=agent-configuration.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-configuration.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/agents/agent-configuration.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;;AAE9D,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAKa,2BAA4B,YAAW,MAAM;IAC9C,gBAAgB;oBAAiC,MAAM;kBAAY,MAAM;OAAK;IAC9E,WAAW,oBAA2B;IAEzC,SAAS,UAAS;IAClB,kBAAkB,UAAQ;IAC1B,UAAU,UAAS;IACnB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEtC,MAAM,EAAE,aAAa,EAAE,CAAM;IAC7B,cAAc,EAAE,aAAa,EAAE,CAAM;IAErC,cAAc,EAAE,WAAW,CAIhC;IAEF,QAAQ,IAAI,IAAI;YAIF,UAAU;IAoBjB,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAItC,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAK3C,cAAc,IAAI,IAAI;IAItB,cAAc,IAAI,IAAI;IAS7B,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,eAAe;IAQhB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxD,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQ3C,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQ1C,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKtC,gBAAgB,IAAI,IAAI;IAKxB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;yCArIxC,2BAA2B;2CAA3B,2BAA2B;CAyIvC"}
1
+ {"version":3,"file":"agent-configuration.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/agents/agent-configuration.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,EAAE,SAAS,EAA2B,MAAM,eAAe,CAAC;AAE5G,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;;AAE9D,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAKa,2BAA4B,YAAW,MAAM,EAAE,SAAS;IAC1D,YAAY,EAAE,GAAG,CAAQ;IACxB,gBAAgB;oBAAiC,MAAM;kBAAY,MAAM;OAAK;IAC9E,WAAW,oBAA2B;IAEzC,SAAS,UAAS;IAClB,kBAAkB,UAAQ;IAC1B,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAU;IACnC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEtC,MAAM,EAAE,aAAa,EAAE,CAAM;IAC7B,cAAc,EAAE,aAAa,EAAE,CAAM;IAErC,cAAc,EAAE,WAAW,CAOhC;;IAIF,QAAQ,IAAI,IAAI;IAOhB,WAAW,IAAI,IAAI;IAInB,OAAO,CAAC,iBAAiB;YAeX,UAAU;IAoBjB,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAItC,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAK3C,cAAc,IAAI,IAAI;IAItB,cAAc,IAAI,IAAI;IAY7B,OAAO,CAAC,YAAY;IAkDpB,OAAO,CAAC,eAAe;IAWhB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKxC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3C,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAItC,cAAc,IAAI,IAAI;IAMhB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;IAO/C,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxD,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQ3C,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;yCA5MtC,2BAA2B;2CAA3B,2BAA2B;CAoNvC"}