@memberjunction/ng-core-entity-forms 2.121.0 → 2.122.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/lib/custom/AIAgents/new-agent-dialog.component.d.ts +3 -3
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +9 -9
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +5 -4
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +5 -4
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Application/application.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Application/application.form.component.js +58 -32
- package/dist/lib/generated/Entities/Application/application.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityField/entityfield.form.component.js +20 -16
- package/dist/lib/generated/Entities/EntityField/entityfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.js +11 -14
- package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/User/user.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/User/user.form.component.js +126 -108
- package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserSetting/usersetting.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/UserSetting/usersetting.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/UserSetting/usersetting.form.component.js +61 -0
- package/dist/lib/generated/Entities/UserSetting/usersetting.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/UserView/userview.form.component.js +24 -22
- package/dist/lib/generated/Entities/UserView/userview.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Workspace/workspace.form.component.js +14 -12
- package/dist/lib/generated/Entities/Workspace/workspace.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +62 -61
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +19 -15
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/package.json +18 -18
|
@@ -3,7 +3,7 @@ import { FormBuilder, FormGroup } from '@angular/forms';
|
|
|
3
3
|
import { DialogRef } from '@progress/kendo-angular-dialog';
|
|
4
4
|
import { NotificationService } from '@progress/kendo-angular-notification';
|
|
5
5
|
import { AIModelEntityExtended, AIAgentTypeEntity } from '@memberjunction/core-entities';
|
|
6
|
-
import {
|
|
6
|
+
import { NavigationService } from '@memberjunction/ng-shared';
|
|
7
7
|
import { BehaviorSubject } from 'rxjs';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export interface NewAgentConfig {
|
|
@@ -14,7 +14,7 @@ export interface NewAgentConfig {
|
|
|
14
14
|
export declare class NewAgentDialogComponent implements OnInit {
|
|
15
15
|
private fb;
|
|
16
16
|
private dialog;
|
|
17
|
-
private
|
|
17
|
+
private navigationService;
|
|
18
18
|
private notificationService;
|
|
19
19
|
config: NewAgentConfig;
|
|
20
20
|
form: FormGroup;
|
|
@@ -22,7 +22,7 @@ export declare class NewAgentDialogComponent implements OnInit {
|
|
|
22
22
|
models$: BehaviorSubject<AIModelEntityExtended[]>;
|
|
23
23
|
agentTypes$: BehaviorSubject<AIAgentTypeEntity[]>;
|
|
24
24
|
isSubmitting: boolean;
|
|
25
|
-
constructor(fb: FormBuilder, dialog: DialogRef,
|
|
25
|
+
constructor(fb: FormBuilder, dialog: DialogRef, navigationService: NavigationService, notificationService: NotificationService);
|
|
26
26
|
ngOnInit(): void;
|
|
27
27
|
private initializeForm;
|
|
28
28
|
private loadData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new-agent-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/new-agent-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,
|
|
1
|
+
{"version":3,"file":"new-agent-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/new-agent-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAc,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,OAAO,EAAyB,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAChH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;;AAGvC,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAKa,uBAAwB,YAAW,MAAM;IAYlD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,mBAAmB;IAdpB,MAAM,EAAE,cAAc,CAE7B;IAEF,IAAI,EAAG,SAAS,CAAC;IACjB,UAAU,2BAAuC;IACjD,OAAO,2CAAoD;IAC3D,WAAW,uCAAgD;IAC3D,YAAY,UAAS;gBAGX,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,SAAS,EACjB,iBAAiB,EAAE,iBAAiB,EACpC,mBAAmB,EAAE,mBAAmB;IAGlD,QAAQ;IAKR,OAAO,CAAC,cAAc;YAaR,QAAQ;IA4BhB,QAAQ;IAwDd,QAAQ;IAIR,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,SAAS;yCAtIN,uBAAuB;2CAAvB,uBAAuB;CA+InC"}
|
|
@@ -6,7 +6,7 @@ import { AIEngineBase } from '@memberjunction/ai-engine-base';
|
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@angular/forms";
|
|
8
8
|
import * as i2 from "@progress/kendo-angular-dialog";
|
|
9
|
-
import * as i3 from "@
|
|
9
|
+
import * as i3 from "@memberjunction/ng-shared";
|
|
10
10
|
import * as i4 from "@progress/kendo-angular-notification";
|
|
11
11
|
import * as i5 from "@progress/kendo-angular-inputs";
|
|
12
12
|
import * as i6 from "@progress/kendo-angular-dropdowns";
|
|
@@ -72,10 +72,10 @@ function NewAgentDialogComponent_Conditional_61_Template(rf, ctx) { if (rf & 1)
|
|
|
72
72
|
i0.ɵɵelementEnd();
|
|
73
73
|
} }
|
|
74
74
|
export class NewAgentDialogComponent {
|
|
75
|
-
constructor(fb, dialog,
|
|
75
|
+
constructor(fb, dialog, navigationService, notificationService) {
|
|
76
76
|
this.fb = fb;
|
|
77
77
|
this.dialog = dialog;
|
|
78
|
-
this.
|
|
78
|
+
this.navigationService = navigationService;
|
|
79
79
|
this.notificationService = notificationService;
|
|
80
80
|
this.config = {
|
|
81
81
|
redirectToForm: true
|
|
@@ -156,9 +156,9 @@ export class NewAgentDialogComponent {
|
|
|
156
156
|
this.dialog.close({ agent, action: 'created' });
|
|
157
157
|
// Redirect to form if configured
|
|
158
158
|
if (this.config.redirectToForm && !this.config.parentAgentId) {
|
|
159
|
-
// Only redirect for top-level agents
|
|
159
|
+
// Only redirect for top-level agents - use NavigationService to open the record
|
|
160
160
|
setTimeout(() => {
|
|
161
|
-
this.
|
|
161
|
+
this.navigationService.OpenEntityRecord('AI Agents', agent.PrimaryKey);
|
|
162
162
|
}, 100);
|
|
163
163
|
}
|
|
164
164
|
}
|
|
@@ -195,7 +195,7 @@ export class NewAgentDialogComponent {
|
|
|
195
195
|
hideAfter: 5000
|
|
196
196
|
});
|
|
197
197
|
}
|
|
198
|
-
static { this.ɵfac = function NewAgentDialogComponent_Factory(t) { return new (t || NewAgentDialogComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.DialogRef), i0.ɵɵdirectiveInject(i3.
|
|
198
|
+
static { this.ɵfac = function NewAgentDialogComponent_Factory(t) { return new (t || NewAgentDialogComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.DialogRef), i0.ɵɵdirectiveInject(i3.NavigationService), i0.ɵɵdirectiveInject(i4.NotificationService)); }; }
|
|
199
199
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NewAgentDialogComponent, selectors: [["mj-new-agent-dialog"]], inputs: { config: "config" }, decls: 62, vars: 25, consts: [[1, "new-agent-dialog"], [3, "ngSubmit", "formGroup"], [1, "parent-info"], [1, "loading-overlay"], [1, "form-fields"], [1, "form-group"], [1, "required"], ["formControlName", "name", "placeholder", "Enter a descriptive name for your agent", 1, "full-width", 3, "clearButton"], [1, "error-message"], ["formControlName", "description", "placeholder", "Describe what this agent does...", 1, "full-width", 3, "rows"], ["formControlName", "modelId", "textField", "Name", "valueField", "ID", "placeholder", "Select an AI model...", 1, "full-width", 3, "data"], ["kendoDropDownListItemTemplate", ""], ["formControlName", "systemPrompt", "placeholder", "Define the agent's behavior and personality...", 1, "full-width", 3, "rows"], [1, "field-hint"], [1, "fa-solid", "fa-info-circle"], [1, "advanced-settings"], [1, "section-header"], [1, "fa-solid", "fa-cog"], [1, "advanced-grid"], [1, "setting-group"], [1, "slider-container"], ["formControlName", "temperature", 1, "temperature-slider", 3, "min", "max", "smallStep", "showButtons"], [1, "slider-value"], ["formControlName", "maxTokens", 1, "full-width", 3, "min", "max", "step", "format"], [1, "setting-group", "checkbox-group"], ["type", "checkbox", "formControlName", "enableStreaming", "kendoCheckBox", ""], [1, "dialog-actions"], ["type", "button", "kendoButton", "", 3, "click", "disabled"], ["type", "submit", "kendoButton", "", "themeColor", "primary", 3, "disabled"], [1, "fa-solid", "fa-robot"], [1, "spinner"], [1, "fa-solid", "fa-exclamation-circle"], [1, "model-item"], [1, "model-icon"], [1, "fa-solid", "fa-microchip"], [1, "model-details"], [1, "model-name"], [1, "model-vendor"], [1, "spinner-small"], [1, "fa-solid", "fa-plus-circle"]], template: function NewAgentDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
200
200
|
i0.ɵɵelementStart(0, "div", 0)(1, "form", 1);
|
|
201
201
|
i0.ɵɵlistener("ngSubmit", function NewAgentDialogComponent_Template_form_ngSubmit_1_listener() { return ctx.onSubmit(); });
|
|
@@ -300,12 +300,12 @@ export class NewAgentDialogComponent {
|
|
|
300
300
|
i0.ɵɵproperty("disabled", ctx.form.invalid || ctx.isSubmitting);
|
|
301
301
|
i0.ɵɵadvance();
|
|
302
302
|
i0.ɵɵconditional(ctx.isSubmitting ? 60 : 61);
|
|
303
|
-
} }, dependencies: [i1.ɵNgNoValidate, i1.CheckboxControlValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, i5.TextAreaComponent, i5.TextBoxComponent, i5.SliderComponent, i5.NumericTextBoxComponent, i5.CheckBoxDirective, i6.ItemTemplateDirective, i6.DropDownListComponent, i7.ButtonComponent, i8.AsyncPipe], styles: [".new-agent-dialog[_ngcontent-%COMP%] {\n padding: 1.5rem;\n min-width: 500px;\n position: relative;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .parent-info[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f0f9ff, #e0f2fe);\n border: 1px solid #bae6fd;\n border-radius: 8px;\n padding: 0.75rem 1rem;\n margin-bottom: 1.5rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .parent-info[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #3b82f6;\n font-size: 1.1rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .parent-info[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n color: #3b82f6;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n border-radius: 8px;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] {\n margin-bottom: 1.5rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n font-weight: 500;\n margin-bottom: 0.5rem;\n color: #475569;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] label.required[_ngcontent-%COMP%]::after {\n content: ' *';\n color: #ef4444;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .full-width[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%] {\n color: #ef4444;\n font-size: 0.875rem;\n margin-top: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .field-hint[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n color: #64748b;\n margin-top: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .field-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 0.5rem 0;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n background: linear-gradient(135deg, #3b82f6, #8b5cf6);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-details[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-details[_ngcontent-%COMP%] .model-name[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-details[_ngcontent-%COMP%] .model-vendor[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n color: #64748b;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .k-textbox[_ngcontent-%COMP%], \n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .k-textarea[_ngcontent-%COMP%], \n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .k-dropdown[_ngcontent-%COMP%], \n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .k-numerictextbox[_ngcontent-%COMP%] {\n border-radius: 6px;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] {\n margin-top: 1.5rem;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .k-expander-header[_ngcontent-%COMP%] {\n background: #f8fafc;\n padding: 1rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .k-expander-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n color: #3b82f6;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] {\n padding: 1rem;\n display: grid;\n gap: 1.5rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n font-weight: 500;\n margin-bottom: 0.5rem;\n color: #475569;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%] .slider-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%] .slider-container[_ngcontent-%COMP%] .temperature-slider[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%] .slider-container[_ngcontent-%COMP%] .slider-value[_ngcontent-%COMP%] {\n min-width: 3rem;\n text-align: right;\n font-weight: 600;\n color: #3b82f6;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group.checkbox-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n font-weight: normal;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group.checkbox-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .dialog-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 0.75rem;\n margin-top: 2rem;\n padding-top: 1.5rem;\n border-top: 1px solid #e5e7eb;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .dialog-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n min-width: 120px;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .dialog-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]
|
|
303
|
+
} }, dependencies: [i1.ɵNgNoValidate, i1.CheckboxControlValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, i5.TextAreaComponent, i5.TextBoxComponent, i5.SliderComponent, i5.NumericTextBoxComponent, i5.CheckBoxDirective, i6.ItemTemplateDirective, i6.DropDownListComponent, i7.ButtonComponent, i8.AsyncPipe], styles: [".new-agent-dialog[_ngcontent-%COMP%] {\n padding: 1.5rem;\n min-width: 500px;\n position: relative;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .parent-info[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f0f9ff, #e0f2fe);\n border: 1px solid #bae6fd;\n border-radius: 8px;\n padding: 0.75rem 1rem;\n margin-bottom: 1.5rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .parent-info[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #3b82f6;\n font-size: 1.1rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .parent-info[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n color: #3b82f6;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n border-radius: 8px;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] {\n margin-bottom: 1.5rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n font-weight: 500;\n margin-bottom: 0.5rem;\n color: #475569;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] label.required[_ngcontent-%COMP%]::after {\n content: ' *';\n color: #ef4444;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .full-width[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%] {\n color: #ef4444;\n font-size: 0.875rem;\n margin-top: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .field-hint[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n color: #64748b;\n margin-top: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] .field-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 0.5rem 0;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n background: linear-gradient(135deg, #3b82f6, #8b5cf6);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-details[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-details[_ngcontent-%COMP%] .model-name[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .model-item[_ngcontent-%COMP%] .model-details[_ngcontent-%COMP%] .model-vendor[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n color: #64748b;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .k-textbox[_ngcontent-%COMP%], \n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .k-textarea[_ngcontent-%COMP%], \n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .k-dropdown[_ngcontent-%COMP%], \n.new-agent-dialog[_ngcontent-%COMP%] .form-fields[_ngcontent-%COMP%] .k-numerictextbox[_ngcontent-%COMP%] {\n border-radius: 6px;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] {\n margin-top: 1.5rem;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .k-expander-header[_ngcontent-%COMP%] {\n background: #f8fafc;\n padding: 1rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .k-expander-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n color: #3b82f6;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] {\n padding: 1rem;\n display: grid;\n gap: 1.5rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n font-weight: 500;\n margin-bottom: 0.5rem;\n color: #475569;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%] .slider-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%] .slider-container[_ngcontent-%COMP%] .temperature-slider[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%] .slider-container[_ngcontent-%COMP%] .slider-value[_ngcontent-%COMP%] {\n min-width: 3rem;\n text-align: right;\n font-weight: 600;\n color: #3b82f6;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group.checkbox-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n font-weight: normal;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .advanced-settings[_ngcontent-%COMP%] .advanced-grid[_ngcontent-%COMP%] .setting-group.checkbox-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .dialog-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 0.75rem;\n margin-top: 2rem;\n padding-top: 1.5rem;\n border-top: 1px solid #e5e7eb;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .dialog-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n min-width: 120px;\n}\n\n.new-agent-dialog[_ngcontent-%COMP%] .dialog-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n}"] }); }
|
|
304
304
|
}
|
|
305
305
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NewAgentDialogComponent, [{
|
|
306
306
|
type: Component,
|
|
307
|
-
args: [{ selector: 'mj-new-agent-dialog', template: "<div class=\"new-agent-dialog\">\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n <!-- Parent Agent Info (if creating sub-agent) -->\n @if (config.parentAgentId) {\n <div class=\"parent-info\">\n <i class=\"fa-solid fa-robot\"></i>\n <span>Creating sub-agent for: <strong>{{ config.parentAgentName || 'Parent Agent' }}</strong></span>\n </div>\n }\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-overlay\">\n <div class=\"spinner\">Loading...</div>\n </div>\n }\n \n <!-- Form Fields -->\n <div class=\"form-fields\">\n <!-- Agent Name -->\n <div class=\"form-group\">\n <label class=\"required\">Agent Name</label>\n <kendo-textbox \n formControlName=\"name\" \n placeholder=\"Enter a descriptive name for your agent\"\n [clearButton]=\"true\"\n class=\"full-width\">\n </kendo-textbox>\n @if (form.get('name')?.invalid && form.get('name')?.touched) {\n <div class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n Agent name is required\n </div>\n }\n </div>\n \n <!-- Description -->\n <div class=\"form-group\">\n <label>Description</label>\n <kendo-textarea \n formControlName=\"description\" \n placeholder=\"Describe what this agent does...\"\n [rows]=\"3\"\n class=\"full-width\">\n </kendo-textarea>\n </div>\n \n <!-- AI Model Selection -->\n <div class=\"form-group\">\n <label class=\"required\">AI Model</label>\n <kendo-dropdownlist \n formControlName=\"modelId\"\n [data]=\"models$ | async\"\n textField=\"Name\"\n valueField=\"ID\"\n placeholder=\"Select an AI model...\"\n class=\"full-width\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"model-item\">\n <div class=\"model-icon\">\n <i class=\"fa-solid fa-microchip\"></i>\n </div>\n <div class=\"model-details\">\n <span class=\"model-name\">{{ dataItem.Name }}</span>\n <span class=\"model-vendor\">{{ dataItem.Vendor }}</span>\n </div>\n </div>\n </ng-template>\n </kendo-dropdownlist>\n @if (form.get('modelId')?.invalid && form.get('modelId')?.touched) {\n <div class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n Please select an AI model\n </div>\n }\n </div>\n \n <!-- System Prompt -->\n <div class=\"form-group\">\n <label>System Prompt</label>\n <kendo-textarea \n formControlName=\"systemPrompt\" \n placeholder=\"Define the agent's behavior and personality...\"\n [rows]=\"4\"\n class=\"full-width\">\n </kendo-textarea>\n <div class=\"field-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n This sets the agent's context and behavior\n </div>\n </div>\n \n <!-- Advanced Settings -->\n <div class=\"advanced-settings\">\n <div class=\"section-header\">\n <i class=\"fa-solid fa-cog\"></i>\n Advanced Settings\n </div>\n \n <div class=\"advanced-grid\">\n <!-- Temperature -->\n <div class=\"setting-group\">\n <label>Temperature</label>\n <div class=\"slider-container\">\n <kendo-slider \n formControlName=\"temperature\"\n [min]=\"0\"\n [max]=\"2\"\n [smallStep]=\"0.1\"\n [showButtons]=\"true\"\n class=\"temperature-slider\">\n </kendo-slider>\n <span class=\"slider-value\">{{ form.get('temperature')?.value }}</span>\n </div>\n <div class=\"field-hint\">Higher values make output more creative</div>\n </div>\n \n <!-- Max Tokens -->\n <div class=\"setting-group\">\n <label>Max Tokens</label>\n <kendo-numerictextbox \n formControlName=\"maxTokens\"\n [min]=\"1\"\n [max]=\"8000\"\n [step]=\"100\"\n [format]=\"'n0'\"\n class=\"full-width\">\n </kendo-numerictextbox>\n <div class=\"field-hint\">Maximum response length</div>\n </div>\n \n <!-- Enable Streaming -->\n <div class=\"setting-group checkbox-group\">\n <label>\n <input type=\"checkbox\" formControlName=\"enableStreaming\" kendoCheckBox />\n <span>Enable Response Streaming</span>\n </label>\n <div class=\"field-hint\">Stream responses in real-time</div>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Dialog Actions -->\n <div class=\"dialog-actions\">\n <button \n type=\"button\" \n kendoButton \n (click)=\"onCancel()\"\n [disabled]=\"isSubmitting\">\n Cancel\n </button>\n <button \n type=\"submit\" \n kendoButton \n themeColor=\"primary\"\n [disabled]=\"form.invalid || isSubmitting\">\n @if (isSubmitting) {\n <span class=\"spinner-small\"></span>\n <span>Creating...</span>\n } @else {\n <i class=\"fa-solid fa-plus-circle\"></i>\n <span>Create Agent</span>\n }\n </button>\n </div>\n </form>\n</div>", styles: [".new-agent-dialog {\n padding: 1.5rem;\n min-width: 500px;\n position: relative;\n}\n\n.new-agent-dialog .parent-info {\n background: linear-gradient(135deg, #f0f9ff, #e0f2fe);\n border: 1px solid #bae6fd;\n border-radius: 8px;\n padding: 0.75rem 1rem;\n margin-bottom: 1.5rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.new-agent-dialog .parent-info i {\n color: #3b82f6;\n font-size: 1.1rem;\n}\n\n.new-agent-dialog .parent-info strong {\n color: #3b82f6;\n}\n\n.new-agent-dialog .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n border-radius: 8px;\n}\n\n.new-agent-dialog .form-fields .form-group {\n margin-bottom: 1.5rem;\n}\n\n.new-agent-dialog .form-fields .form-group label {\n display: block;\n font-weight: 500;\n margin-bottom: 0.5rem;\n color: #475569;\n}\n\n.new-agent-dialog .form-fields .form-group label.required::after {\n content: ' *';\n color: #ef4444;\n}\n\n.new-agent-dialog .form-fields .form-group .full-width {\n width: 100%;\n}\n\n.new-agent-dialog .form-fields .form-group .error-message {\n color: #ef4444;\n font-size: 0.875rem;\n margin-top: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.new-agent-dialog .form-fields .form-group .error-message i {\n font-size: 0.75rem;\n}\n\n.new-agent-dialog .form-fields .form-group .field-hint {\n font-size: 0.875rem;\n color: #64748b;\n margin-top: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.new-agent-dialog .form-fields .form-group .field-hint i {\n font-size: 0.75rem;\n}\n\n.new-agent-dialog .form-fields .model-item {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 0.5rem 0;\n}\n\n.new-agent-dialog .form-fields .model-item .model-icon {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n background: linear-gradient(135deg, #3b82f6, #8b5cf6);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n}\n\n.new-agent-dialog .form-fields .model-item .model-icon i {\n font-size: 1rem;\n}\n\n.new-agent-dialog .form-fields .model-item .model-details {\n display: flex;\n flex-direction: column;\n}\n\n.new-agent-dialog .form-fields .model-item .model-details .model-name {\n font-weight: 500;\n}\n\n.new-agent-dialog .form-fields .model-item .model-details .model-vendor {\n font-size: 0.75rem;\n color: #64748b;\n}\n\n.new-agent-dialog .form-fields .k-textbox,\n.new-agent-dialog .form-fields .k-textarea,\n.new-agent-dialog .form-fields .k-dropdown,\n.new-agent-dialog .form-fields .k-numerictextbox {\n border-radius: 6px;\n}\n\n.new-agent-dialog .advanced-settings {\n margin-top: 1.5rem;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.new-agent-dialog .advanced-settings .k-expander-header {\n background: #f8fafc;\n padding: 1rem;\n}\n\n.new-agent-dialog .advanced-settings .k-expander-header i {\n margin-right: 0.5rem;\n color: #3b82f6;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid {\n padding: 1rem;\n display: grid;\n gap: 1.5rem;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group label {\n display: block;\n font-weight: 500;\n margin-bottom: 0.5rem;\n color: #475569;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group .slider-container {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group .slider-container .temperature-slider {\n flex: 1;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group .slider-container .slider-value {\n min-width: 3rem;\n text-align: right;\n font-weight: 600;\n color: #3b82f6;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group.checkbox-group label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n font-weight: normal;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group.checkbox-group label input[type=\"checkbox\"] {\n cursor: pointer;\n}\n\n.new-agent-dialog .dialog-actions {\n display: flex;\n justify-content: flex-end;\n gap: 0.75rem;\n margin-top: 2rem;\n padding-top: 1.5rem;\n border-top: 1px solid #e5e7eb;\n}\n\n.new-agent-dialog .dialog-actions button {\n min-width: 120px;\n}\n\n.new-agent-dialog .dialog-actions button kendo-loader {\n margin-right: 0.5rem;\n}\n\n.new-agent-dialog .dialog-actions button i {\n margin-right: 0.5rem;\n}"] }]
|
|
308
|
-
}], () => [{ type: i1.FormBuilder }, { type: i2.DialogRef }, { type: i3.
|
|
307
|
+
args: [{ selector: 'mj-new-agent-dialog', template: "<div class=\"new-agent-dialog\">\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n <!-- Parent Agent Info (if creating sub-agent) -->\n @if (config.parentAgentId) {\n <div class=\"parent-info\">\n <i class=\"fa-solid fa-robot\"></i>\n <span>Creating sub-agent for: <strong>{{ config.parentAgentName || 'Parent Agent' }}</strong></span>\n </div>\n }\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-overlay\">\n <div class=\"spinner\">Loading...</div>\n </div>\n }\n \n <!-- Form Fields -->\n <div class=\"form-fields\">\n <!-- Agent Name -->\n <div class=\"form-group\">\n <label class=\"required\">Agent Name</label>\n <kendo-textbox \n formControlName=\"name\" \n placeholder=\"Enter a descriptive name for your agent\"\n [clearButton]=\"true\"\n class=\"full-width\">\n </kendo-textbox>\n @if (form.get('name')?.invalid && form.get('name')?.touched) {\n <div class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n Agent name is required\n </div>\n }\n </div>\n \n <!-- Description -->\n <div class=\"form-group\">\n <label>Description</label>\n <kendo-textarea \n formControlName=\"description\" \n placeholder=\"Describe what this agent does...\"\n [rows]=\"3\"\n class=\"full-width\">\n </kendo-textarea>\n </div>\n \n <!-- AI Model Selection -->\n <div class=\"form-group\">\n <label class=\"required\">AI Model</label>\n <kendo-dropdownlist \n formControlName=\"modelId\"\n [data]=\"models$ | async\"\n textField=\"Name\"\n valueField=\"ID\"\n placeholder=\"Select an AI model...\"\n class=\"full-width\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"model-item\">\n <div class=\"model-icon\">\n <i class=\"fa-solid fa-microchip\"></i>\n </div>\n <div class=\"model-details\">\n <span class=\"model-name\">{{ dataItem.Name }}</span>\n <span class=\"model-vendor\">{{ dataItem.Vendor }}</span>\n </div>\n </div>\n </ng-template>\n </kendo-dropdownlist>\n @if (form.get('modelId')?.invalid && form.get('modelId')?.touched) {\n <div class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n Please select an AI model\n </div>\n }\n </div>\n \n <!-- System Prompt -->\n <div class=\"form-group\">\n <label>System Prompt</label>\n <kendo-textarea \n formControlName=\"systemPrompt\" \n placeholder=\"Define the agent's behavior and personality...\"\n [rows]=\"4\"\n class=\"full-width\">\n </kendo-textarea>\n <div class=\"field-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n This sets the agent's context and behavior\n </div>\n </div>\n \n <!-- Advanced Settings -->\n <div class=\"advanced-settings\">\n <div class=\"section-header\">\n <i class=\"fa-solid fa-cog\"></i>\n Advanced Settings\n </div>\n \n <div class=\"advanced-grid\">\n <!-- Temperature -->\n <div class=\"setting-group\">\n <label>Temperature</label>\n <div class=\"slider-container\">\n <kendo-slider \n formControlName=\"temperature\"\n [min]=\"0\"\n [max]=\"2\"\n [smallStep]=\"0.1\"\n [showButtons]=\"true\"\n class=\"temperature-slider\">\n </kendo-slider>\n <span class=\"slider-value\">{{ form.get('temperature')?.value }}</span>\n </div>\n <div class=\"field-hint\">Higher values make output more creative</div>\n </div>\n \n <!-- Max Tokens -->\n <div class=\"setting-group\">\n <label>Max Tokens</label>\n <kendo-numerictextbox \n formControlName=\"maxTokens\"\n [min]=\"1\"\n [max]=\"8000\"\n [step]=\"100\"\n [format]=\"'n0'\"\n class=\"full-width\">\n </kendo-numerictextbox>\n <div class=\"field-hint\">Maximum response length</div>\n </div>\n \n <!-- Enable Streaming -->\n <div class=\"setting-group checkbox-group\">\n <label>\n <input type=\"checkbox\" formControlName=\"enableStreaming\" kendoCheckBox />\n <span>Enable Response Streaming</span>\n </label>\n <div class=\"field-hint\">Stream responses in real-time</div>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Dialog Actions -->\n <div class=\"dialog-actions\">\n <button \n type=\"button\" \n kendoButton \n (click)=\"onCancel()\"\n [disabled]=\"isSubmitting\">\n Cancel\n </button>\n <button \n type=\"submit\" \n kendoButton \n themeColor=\"primary\"\n [disabled]=\"form.invalid || isSubmitting\">\n @if (isSubmitting) {\n <span class=\"spinner-small\"></span>\n <span>Creating...</span>\n } @else {\n <i class=\"fa-solid fa-plus-circle\"></i>\n <span>Create Agent</span>\n }\n </button>\n </div>\n </form>\n</div>", styles: [".new-agent-dialog {\n padding: 1.5rem;\n min-width: 500px;\n position: relative;\n}\n\n.new-agent-dialog .parent-info {\n background: linear-gradient(135deg, #f0f9ff, #e0f2fe);\n border: 1px solid #bae6fd;\n border-radius: 8px;\n padding: 0.75rem 1rem;\n margin-bottom: 1.5rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.new-agent-dialog .parent-info i {\n color: #3b82f6;\n font-size: 1.1rem;\n}\n\n.new-agent-dialog .parent-info strong {\n color: #3b82f6;\n}\n\n.new-agent-dialog .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.9);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n border-radius: 8px;\n}\n\n.new-agent-dialog .form-fields .form-group {\n margin-bottom: 1.5rem;\n}\n\n.new-agent-dialog .form-fields .form-group label {\n display: block;\n font-weight: 500;\n margin-bottom: 0.5rem;\n color: #475569;\n}\n\n.new-agent-dialog .form-fields .form-group label.required::after {\n content: ' *';\n color: #ef4444;\n}\n\n.new-agent-dialog .form-fields .form-group .full-width {\n width: 100%;\n}\n\n.new-agent-dialog .form-fields .form-group .error-message {\n color: #ef4444;\n font-size: 0.875rem;\n margin-top: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.new-agent-dialog .form-fields .form-group .error-message i {\n font-size: 0.75rem;\n}\n\n.new-agent-dialog .form-fields .form-group .field-hint {\n font-size: 0.875rem;\n color: #64748b;\n margin-top: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.new-agent-dialog .form-fields .form-group .field-hint i {\n font-size: 0.75rem;\n}\n\n.new-agent-dialog .form-fields .model-item {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 0.5rem 0;\n}\n\n.new-agent-dialog .form-fields .model-item .model-icon {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n background: linear-gradient(135deg, #3b82f6, #8b5cf6);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n}\n\n.new-agent-dialog .form-fields .model-item .model-icon i {\n font-size: 1rem;\n}\n\n.new-agent-dialog .form-fields .model-item .model-details {\n display: flex;\n flex-direction: column;\n}\n\n.new-agent-dialog .form-fields .model-item .model-details .model-name {\n font-weight: 500;\n}\n\n.new-agent-dialog .form-fields .model-item .model-details .model-vendor {\n font-size: 0.75rem;\n color: #64748b;\n}\n\n.new-agent-dialog .form-fields .k-textbox,\n.new-agent-dialog .form-fields .k-textarea,\n.new-agent-dialog .form-fields .k-dropdown,\n.new-agent-dialog .form-fields .k-numerictextbox {\n border-radius: 6px;\n}\n\n.new-agent-dialog .advanced-settings {\n margin-top: 1.5rem;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.new-agent-dialog .advanced-settings .k-expander-header {\n background: #f8fafc;\n padding: 1rem;\n}\n\n.new-agent-dialog .advanced-settings .k-expander-header i {\n margin-right: 0.5rem;\n color: #3b82f6;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid {\n padding: 1rem;\n display: grid;\n gap: 1.5rem;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group label {\n display: block;\n font-weight: 500;\n margin-bottom: 0.5rem;\n color: #475569;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group .slider-container {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group .slider-container .temperature-slider {\n flex: 1;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group .slider-container .slider-value {\n min-width: 3rem;\n text-align: right;\n font-weight: 600;\n color: #3b82f6;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group.checkbox-group label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n font-weight: normal;\n}\n\n.new-agent-dialog .advanced-settings .advanced-grid .setting-group.checkbox-group label input[type=\"checkbox\"] {\n cursor: pointer;\n}\n\n.new-agent-dialog .dialog-actions {\n display: flex;\n justify-content: flex-end;\n gap: 0.75rem;\n margin-top: 2rem;\n padding-top: 1.5rem;\n border-top: 1px solid #e5e7eb;\n}\n\n.new-agent-dialog .dialog-actions button {\n min-width: 120px;\n}\n\n.new-agent-dialog .dialog-actions button i {\n margin-right: 0.5rem;\n}"] }]
|
|
308
|
+
}], () => [{ type: i1.FormBuilder }, { type: i2.DialogRef }, { type: i3.NavigationService }, { type: i4.NotificationService }], { config: [{
|
|
309
309
|
type: Input
|
|
310
310
|
}] }); })();
|
|
311
311
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NewAgentDialogComponent, { className: "NewAgentDialogComponent", filePath: "src/lib/custom/AIAgents/new-agent-dialog.component.ts", lineNumber: 22 }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new-agent-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/new-agent-dialog.component.ts","../../../../src/lib/custom/AIAgents/new-agent-dialog.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"new-agent-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/new-agent-dialog.component.ts","../../../../src/lib/custom/AIAgents/new-agent-dialog.component.html"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,8 @@ import * as i2 from "@angular/router";
|
|
|
17
17
|
import * as i3 from "@memberjunction/ng-testing";
|
|
18
18
|
import * as i4 from "@angular/common";
|
|
19
19
|
import * as i5 from "@angular/forms";
|
|
20
|
-
import * as i6 from "@progress/kendo-angular-
|
|
20
|
+
import * as i6 from "@progress/kendo-angular-dialog";
|
|
21
|
+
import * as i7 from "@progress/kendo-angular-buttons";
|
|
21
22
|
function TestFormComponentExtended_div_20_Template(rf, ctx) { if (rf & 1) {
|
|
22
23
|
i0.ɵɵelementStart(0, "div", 29)(1, "p");
|
|
23
24
|
i0.ɵɵtext(2);
|
|
@@ -611,7 +612,7 @@ let TestFormComponentExtended = class TestFormComponentExtended extends TestForm
|
|
|
611
612
|
}
|
|
612
613
|
}
|
|
613
614
|
static { this.ɵfac = function TestFormComponentExtended_Factory(t) { return new (t || TestFormComponentExtended)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.SharedService), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.TestingDialogService)); }; }
|
|
614
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestFormComponentExtended, selectors: [["mj-test-form"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 47, vars: 24, consts: [[1, "test-form"], [1, "test-header"], [1, "header-content"], [1, "header-left"], [1, "test-icon"], [1, "fas", "fa-flask"], [1, "test-info"], [1, "test-meta"], [1, "status-badge"], [1, "fas", 3, "ngClass"], [1, "test-type"], [1, "header-actions"], ["kendoButton", "", "icon", "play", 3, "click"], ["kendoButton", "", "icon", "sync", 3, "click"], ["class", "test-description", 4, "ngIf"], ["class", "metrics-bar", 4, "ngIf"], [1, "tabs-container"], [1, "tabs"], [1, "tab", 3, "click"], [1, "fas", "fa-th-large"], [1, "fas", "fa-sliders-h"], [1, "fas", "fa-list"], ["class", "tab-badge", 4, "ngIf"], [1, "fas", "fa-layer-group"], [1, "tab-content"], ["class", "overview-tab", 4, "ngIf"], ["class", "config-tab", 4, "ngIf"], ["class", "runs-tab", 4, "ngIf"], ["class", "suites-tab", 4, "ngIf"], [1, "test-description"], [1, "metrics-bar"], [1, "metric-card"], [1, "metric-label"], [1, "metric-value"], [1, "tab-badge"], [1, "overview-tab"], [1, "info-section"], [1, "info-grid"], [1, "info-item"], [1, "info-label"], [1, "info-value"], [1, "json-section"], [1, "json-tabs"], [1, "json-tab", 3, "click"], [1, "json-content"], [1, "config-tab"], [1, "config-section"], [1, "config-grid"], [1, "config-item"], ["type", "number", 1, "config-input", 3, "ngModelChange", "ngModel"], ["type", "number", "step", "0.000001", 1, "config-input", 3, "ngModelChange", "ngModel"], ["rows", "10", 1, "json-editor", 3, "ngModelChange", "ngModel"], ["rows", "5", 1, "json-editor", 3, "ngModelChange", "ngModel"], [1, "runs-tab"], ["class", "runs-list", 4, "ngIf"], ["class", "no-data", 4, "ngIf"], [1, "runs-list"], ["class", "run-item", 3, "click", 4, "ngFor", "ngForOf"], [1, "run-item", 3, "click"], [1, "run-icon"], [1, "fas"], [1, "run-content"], [1, "run-header"], [1, "run-id"], [1, "run-status"], [1, "run-meta"], [4, "ngIf"], [1, "fas", "fa-chevron-right"], [1, "no-data"], [1, "fas", "fa-inbox"], [1, "suites-tab"], ["class", "suites-list", 4, "ngIf"], [1, "suites-list"], ["class", "suite-item", 3, "click", 4, "ngFor", "ngForOf"], [1, "suite-item", 3, "click"], [1, "suite-icon"], [1, "fas", "fa-folder"], [1, "suite-content"], [1, "suite-name"], [1, "suite-meta"]], template: function TestFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
615
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestFormComponentExtended, selectors: [["mj-test-form"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 47, vars: 24, consts: [["kendoDialogContainer", "", 1, "test-form"], [1, "test-header"], [1, "header-content"], [1, "header-left"], [1, "test-icon"], [1, "fas", "fa-flask"], [1, "test-info"], [1, "test-meta"], [1, "status-badge"], [1, "fas", 3, "ngClass"], [1, "test-type"], [1, "header-actions"], ["kendoButton", "", "icon", "play", 3, "click"], ["kendoButton", "", "icon", "sync", 3, "click"], ["class", "test-description", 4, "ngIf"], ["class", "metrics-bar", 4, "ngIf"], [1, "tabs-container"], [1, "tabs"], [1, "tab", 3, "click"], [1, "fas", "fa-th-large"], [1, "fas", "fa-sliders-h"], [1, "fas", "fa-list"], ["class", "tab-badge", 4, "ngIf"], [1, "fas", "fa-layer-group"], [1, "tab-content"], ["class", "overview-tab", 4, "ngIf"], ["class", "config-tab", 4, "ngIf"], ["class", "runs-tab", 4, "ngIf"], ["class", "suites-tab", 4, "ngIf"], [1, "test-description"], [1, "metrics-bar"], [1, "metric-card"], [1, "metric-label"], [1, "metric-value"], [1, "tab-badge"], [1, "overview-tab"], [1, "info-section"], [1, "info-grid"], [1, "info-item"], [1, "info-label"], [1, "info-value"], [1, "json-section"], [1, "json-tabs"], [1, "json-tab", 3, "click"], [1, "json-content"], [1, "config-tab"], [1, "config-section"], [1, "config-grid"], [1, "config-item"], ["type", "number", 1, "config-input", 3, "ngModelChange", "ngModel"], ["type", "number", "step", "0.000001", 1, "config-input", 3, "ngModelChange", "ngModel"], ["rows", "10", 1, "json-editor", 3, "ngModelChange", "ngModel"], ["rows", "5", 1, "json-editor", 3, "ngModelChange", "ngModel"], [1, "runs-tab"], ["class", "runs-list", 4, "ngIf"], ["class", "no-data", 4, "ngIf"], [1, "runs-list"], ["class", "run-item", 3, "click", 4, "ngFor", "ngForOf"], [1, "run-item", 3, "click"], [1, "run-icon"], [1, "fas"], [1, "run-content"], [1, "run-header"], [1, "run-id"], [1, "run-status"], [1, "run-meta"], [4, "ngIf"], [1, "fas", "fa-chevron-right"], [1, "no-data"], [1, "fas", "fa-inbox"], [1, "suites-tab"], ["class", "suites-list", 4, "ngIf"], [1, "suites-list"], ["class", "suite-item", 3, "click", 4, "ngFor", "ngForOf"], [1, "suite-item", 3, "click"], [1, "suite-icon"], [1, "fas", "fa-folder"], [1, "suite-content"], [1, "suite-name"], [1, "suite-meta"]], template: function TestFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
615
616
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div", 4);
|
|
616
617
|
i0.ɵɵelement(5, "i", 5);
|
|
617
618
|
i0.ɵɵelementEnd();
|
|
@@ -703,7 +704,7 @@ let TestFormComponentExtended = class TestFormComponentExtended extends TestForm
|
|
|
703
704
|
i0.ɵɵproperty("ngIf", ctx.activeTab === "runs");
|
|
704
705
|
i0.ɵɵadvance();
|
|
705
706
|
i0.ɵɵproperty("ngIf", ctx.activeTab === "suites");
|
|
706
|
-
} }, dependencies: [i4.NgClass, i4.NgForOf, i4.NgIf, i5.DefaultValueAccessor, i5.NumberValueAccessor, i5.NgControlStatus, i5.NgModel, i6.ButtonComponent, i4.JsonPipe, i4.DatePipe], styles: [".test-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f8f9fa;\n}\n\n\n\n.test-header[_ngcontent-%COMP%] {\n background: white;\n border-bottom: 1px solid #e0e0e0;\n padding: 20px;\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n}\n\n.test-icon[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 24px;\n}\n\n.test-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 24px;\n font-weight: 600;\n color: #333;\n}\n\n.test-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 12px;\n color: white;\n font-size: 12px;\n font-weight: 600;\n}\n\n.test-type[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #666;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.test-description[_ngcontent-%COMP%] {\n padding: 16px;\n background: #f8f9fa;\n border-radius: 8px;\n margin-bottom: 16px;\n}\n\n.test-description[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n color: #666;\n line-height: 1.5;\n}\n\n.metrics-bar[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n}\n\n.metric-card[_ngcontent-%COMP%] {\n background: #f5f7fa;\n border-radius: 8px;\n padding: 12px;\n text-align: center;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: #999;\n margin-bottom: 4px;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: #333;\n}\n\n\n\n.tabs-container[_ngcontent-%COMP%] {\n background: white;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.tabs[_ngcontent-%COMP%] {\n display: flex;\n padding: 0 20px;\n overflow-x: auto;\n}\n\n.tab[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: #666;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.tab[_ngcontent-%COMP%]:hover {\n color: #2196f3;\n background: rgba(33, 150, 243, 0.05);\n}\n\n.tab.active[_ngcontent-%COMP%] {\n color: #2196f3;\n border-bottom-color: #2196f3;\n}\n\n.tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.tab-badge[_ngcontent-%COMP%] {\n background: #e0e0e0;\n color: #666;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.tab.active[_ngcontent-%COMP%] .tab-badge[_ngcontent-%COMP%] {\n background: #e3f2fd;\n color: #2196f3;\n}\n\n\n\n.tab-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n\n\n.overview-tab[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.info-section[_ngcontent-%COMP%], \n.json-section[_ngcontent-%COMP%], \n.config-section[_ngcontent-%COMP%] {\n background: white;\n border-radius: 12px;\n padding: 20px;\n}\n\n.info-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], \n.json-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], \n.config-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 18px;\n font-weight: 600;\n color: #333;\n}\n\n.info-grid[_ngcontent-%COMP%], \n.config-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 16px;\n}\n\n.info-item[_ngcontent-%COMP%], \n.config-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.info-label[_ngcontent-%COMP%], \n.config-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: #999;\n}\n\n.info-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #333;\n word-wrap: break-word;\n}\n\n.config-input[_ngcontent-%COMP%] {\n padding: 8px 12px;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 14px;\n}\n\n.config-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #2196f3;\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.1);\n}\n\n.json-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin-bottom: 16px;\n border-bottom: 2px solid #e0e0e0;\n}\n\n.json-tab[_ngcontent-%COMP%] {\n padding: 10px 20px;\n border: none;\n background: transparent;\n color: #666;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n border-bottom: 3px solid transparent;\n margin-bottom: -2px;\n transition: all 0.2s ease;\n}\n\n.json-tab[_ngcontent-%COMP%]:hover {\n color: #2196f3;\n}\n\n.json-tab.active[_ngcontent-%COMP%] {\n color: #2196f3;\n border-bottom-color: #2196f3;\n}\n\n.json-content[_ngcontent-%COMP%] {\n background: #1e1e1e;\n border-radius: 8px;\n padding: 16px;\n max-height: 400px;\n overflow-y: auto;\n}\n\n.json-content[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] {\n margin: 0;\n font-family: 'Courier New', monospace;\n font-size: 13px;\n line-height: 1.5;\n color: #e0e0e0;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n\n.json-editor[_ngcontent-%COMP%] {\n width: 100%;\n padding: 12px;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-family: 'Courier New', monospace;\n font-size: 13px;\n resize: vertical;\n}\n\n.json-editor[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #2196f3;\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.1);\n}\n\n\n\n.runs-list[_ngcontent-%COMP%], \n.suites-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.run-item[_ngcontent-%COMP%], \n.suite-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: white;\n border: 2px solid transparent;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.run-item[_ngcontent-%COMP%]:hover, \n.suite-item[_ngcontent-%COMP%]:hover {\n background: #e3f2fd;\n border-color: #90caf9;\n}\n\n.run-icon[_ngcontent-%COMP%], \n.suite-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n color: white;\n font-size: 18px;\n flex-shrink: 0;\n}\n\n.suite-icon[_ngcontent-%COMP%] {\n background: #ff9800;\n}\n\n.run-content[_ngcontent-%COMP%], \n.suite-content[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.run-header[_ngcontent-%COMP%], \n.suite-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: #333;\n margin-bottom: 4px;\n}\n\n.run-id[_ngcontent-%COMP%] {\n margin-right: 12px;\n}\n\n.run-status[_ngcontent-%COMP%] {\n font-weight: 700;\n}\n\n.run-meta[_ngcontent-%COMP%], \n.suite-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n font-size: 12px;\n color: #666;\n}\n\n.run-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%], \n.suite-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n color: #999;\n font-size: 14px;\n}\n\n\n\n.no-data[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: #999;\n text-align: center;\n background: white;\n border-radius: 12px;\n}\n\n.no-data[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.3;\n}\n\n.no-data[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n}\n\n\n\n@media (max-width: 1200px) {\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .info-grid[_ngcontent-%COMP%], \n .config-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n@media (max-width: 768px) {\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n\n .tabs[_ngcontent-%COMP%] {\n overflow-x: auto;\n }\n}"], changeDetection: 0 }); }
|
|
707
|
+
} }, dependencies: [i4.NgClass, i4.NgForOf, i4.NgIf, i5.DefaultValueAccessor, i5.NumberValueAccessor, i5.NgControlStatus, i5.NgModel, i6.DialogContainerDirective, i7.ButtonComponent, i4.JsonPipe, i4.DatePipe], styles: [".test-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f8f9fa;\n}\n\n\n\n.test-header[_ngcontent-%COMP%] {\n background: white;\n border-bottom: 1px solid #e0e0e0;\n padding: 20px;\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n}\n\n.test-icon[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 24px;\n}\n\n.test-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 24px;\n font-weight: 600;\n color: #333;\n}\n\n.test-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 12px;\n color: white;\n font-size: 12px;\n font-weight: 600;\n}\n\n.test-type[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #666;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.test-description[_ngcontent-%COMP%] {\n padding: 16px;\n background: #f8f9fa;\n border-radius: 8px;\n margin-bottom: 16px;\n}\n\n.test-description[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n color: #666;\n line-height: 1.5;\n}\n\n.metrics-bar[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n}\n\n.metric-card[_ngcontent-%COMP%] {\n background: #f5f7fa;\n border-radius: 8px;\n padding: 12px;\n text-align: center;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: #999;\n margin-bottom: 4px;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: #333;\n}\n\n\n\n.tabs-container[_ngcontent-%COMP%] {\n background: white;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.tabs[_ngcontent-%COMP%] {\n display: flex;\n padding: 0 20px;\n overflow-x: auto;\n}\n\n.tab[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: #666;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.tab[_ngcontent-%COMP%]:hover {\n color: #2196f3;\n background: rgba(33, 150, 243, 0.05);\n}\n\n.tab.active[_ngcontent-%COMP%] {\n color: #2196f3;\n border-bottom-color: #2196f3;\n}\n\n.tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.tab-badge[_ngcontent-%COMP%] {\n background: #e0e0e0;\n color: #666;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.tab.active[_ngcontent-%COMP%] .tab-badge[_ngcontent-%COMP%] {\n background: #e3f2fd;\n color: #2196f3;\n}\n\n\n\n.tab-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n\n\n.overview-tab[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.info-section[_ngcontent-%COMP%], \n.json-section[_ngcontent-%COMP%], \n.config-section[_ngcontent-%COMP%] {\n background: white;\n border-radius: 12px;\n padding: 20px;\n}\n\n.info-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], \n.json-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], \n.config-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 18px;\n font-weight: 600;\n color: #333;\n}\n\n.info-grid[_ngcontent-%COMP%], \n.config-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 16px;\n}\n\n.info-item[_ngcontent-%COMP%], \n.config-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.info-label[_ngcontent-%COMP%], \n.config-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: #999;\n}\n\n.info-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: #333;\n word-wrap: break-word;\n}\n\n.config-input[_ngcontent-%COMP%] {\n padding: 8px 12px;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 14px;\n}\n\n.config-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #2196f3;\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.1);\n}\n\n.json-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin-bottom: 16px;\n border-bottom: 2px solid #e0e0e0;\n}\n\n.json-tab[_ngcontent-%COMP%] {\n padding: 10px 20px;\n border: none;\n background: transparent;\n color: #666;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n border-bottom: 3px solid transparent;\n margin-bottom: -2px;\n transition: all 0.2s ease;\n}\n\n.json-tab[_ngcontent-%COMP%]:hover {\n color: #2196f3;\n}\n\n.json-tab.active[_ngcontent-%COMP%] {\n color: #2196f3;\n border-bottom-color: #2196f3;\n}\n\n.json-content[_ngcontent-%COMP%] {\n background: #1e1e1e;\n border-radius: 8px;\n padding: 16px;\n max-height: 400px;\n overflow-y: auto;\n}\n\n.json-content[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] {\n margin: 0;\n font-family: 'Courier New', monospace;\n font-size: 13px;\n line-height: 1.5;\n color: #e0e0e0;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n\n.json-editor[_ngcontent-%COMP%] {\n width: 100%;\n padding: 12px;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-family: 'Courier New', monospace;\n font-size: 13px;\n resize: vertical;\n}\n\n.json-editor[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #2196f3;\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.1);\n}\n\n\n\n.runs-list[_ngcontent-%COMP%], \n.suites-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.run-item[_ngcontent-%COMP%], \n.suite-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: white;\n border: 2px solid transparent;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.run-item[_ngcontent-%COMP%]:hover, \n.suite-item[_ngcontent-%COMP%]:hover {\n background: #e3f2fd;\n border-color: #90caf9;\n}\n\n.run-icon[_ngcontent-%COMP%], \n.suite-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n color: white;\n font-size: 18px;\n flex-shrink: 0;\n}\n\n.suite-icon[_ngcontent-%COMP%] {\n background: #ff9800;\n}\n\n.run-content[_ngcontent-%COMP%], \n.suite-content[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.run-header[_ngcontent-%COMP%], \n.suite-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: #333;\n margin-bottom: 4px;\n}\n\n.run-id[_ngcontent-%COMP%] {\n margin-right: 12px;\n}\n\n.run-status[_ngcontent-%COMP%] {\n font-weight: 700;\n}\n\n.run-meta[_ngcontent-%COMP%], \n.suite-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n font-size: 12px;\n color: #666;\n}\n\n.run-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%], \n.suite-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n color: #999;\n font-size: 14px;\n}\n\n\n\n.no-data[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: #999;\n text-align: center;\n background: white;\n border-radius: 12px;\n}\n\n.no-data[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.3;\n}\n\n.no-data[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n}\n\n\n\n@media (max-width: 1200px) {\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .info-grid[_ngcontent-%COMP%], \n .config-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}\n\n@media (max-width: 768px) {\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n\n .tabs[_ngcontent-%COMP%] {\n overflow-x: auto;\n }\n}"], changeDetection: 0 }); }
|
|
707
708
|
};
|
|
708
709
|
TestFormComponentExtended = __decorate([
|
|
709
710
|
RegisterClass(BaseFormComponent, 'MJ: Tests')
|
|
@@ -711,7 +712,7 @@ TestFormComponentExtended = __decorate([
|
|
|
711
712
|
export { TestFormComponentExtended };
|
|
712
713
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestFormComponentExtended, [{
|
|
713
714
|
type: Component,
|
|
714
|
-
args: [{ selector: 'mj-test-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"test-form\">\n <!-- Header Section -->\n <div class=\"test-header\">\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"test-icon\" [style.background-color]=\"getStatusColor()\">\n <i class=\"fas fa-flask\"></i>\n </div>\n <div class=\"test-info\">\n <h1>{{ record.Name }}</h1>\n <div class=\"test-meta\">\n <span class=\"status-badge\" [style.background-color]=\"getStatusColor()\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n {{ record.Status }}\n </span>\n <span class=\"test-type\">{{ record.Type }}</span>\n </div>\n </div>\n </div>\n <div class=\"header-actions\">\n <button kendoButton (click)=\"runTest()\" icon=\"play\">\n Run Test\n </button>\n <button kendoButton (click)=\"refresh()\" icon=\"sync\">\n Refresh\n </button>\n </div>\n </div>\n\n <!-- Test Description -->\n <div class=\"test-description\" *ngIf=\"record.Description\">\n <p>{{ record.Description }}</p>\n </div>\n\n <!-- Metrics Bar -->\n <div class=\"metrics-bar\" *ngIf=\"testRunsLoaded && testRuns.length > 0\">\n <div class=\"metric-card\">\n <div class=\"metric-label\">Total Runs</div>\n <div class=\"metric-value\">{{ testRuns.length }}</div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-label\">Pass Rate</div>\n <div class=\"metric-value\">{{ getPassRate().toFixed(1) }}%</div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-label\">Avg Cost</div>\n <div class=\"metric-value\">{{ formatCost(getAverageCost()) }}</div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-label\">Avg Duration</div>\n <div class=\"metric-value\">{{ formatDuration(getAverageDuration()) }}</div>\n </div>\n </div>\n </div>\n\n <!-- Tabs -->\n <div class=\"tabs-container\">\n <div class=\"tabs\">\n <button class=\"tab\" [class.active]=\"activeTab === 'overview'\" (click)=\"changeTab('overview')\">\n <i class=\"fas fa-th-large\"></i>\n <span>Overview</span>\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'config'\" (click)=\"changeTab('config')\">\n <i class=\"fas fa-sliders-h\"></i>\n <span>Configuration</span>\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'runs'\" (click)=\"changeTab('runs')\">\n <i class=\"fas fa-list\"></i>\n <span>Test Runs</span>\n <span class=\"tab-badge\" *ngIf=\"testRunsLoaded\">{{ testRuns.length }}</span>\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'suites'\" (click)=\"changeTab('suites')\">\n <i class=\"fas fa-layer-group\"></i>\n <span>Test Suites</span>\n <span class=\"tab-badge\" *ngIf=\"suiteTestsLoaded\">{{ suiteTests.length }}</span>\n </button>\n </div>\n </div>\n\n <!-- Tab Content -->\n <div class=\"tab-content\">\n <!-- Overview Tab -->\n <div class=\"overview-tab\" *ngIf=\"activeTab === 'overview'\">\n <!-- Basic Information -->\n <div class=\"info-section\">\n <h3>Test Information</h3>\n <div class=\"info-grid\">\n <div class=\"info-item\">\n <div class=\"info-label\">Name</div>\n <div class=\"info-value\">{{ record.Name }}</div>\n </div>\n <div class=\"info-item\">\n <div class=\"info-label\">Type</div>\n <div class=\"info-value\">{{ record.Type }}</div>\n </div>\n <div class=\"info-item\">\n <div class=\"info-label\">Status</div>\n <div class=\"info-value\">{{ record.Status }}</div>\n </div>\n <div class=\"info-item\">\n <div class=\"info-label\">Priority</div>\n <div class=\"info-value\">{{ record.Priority || 'N/A' }}</div>\n </div>\n <div class=\"info-item\">\n <div class=\"info-label\">Estimated Duration</div>\n <div class=\"info-value\">{{ record.EstimatedDurationSeconds ? formatDuration(record.EstimatedDurationSeconds) : 'N/A' }}</div>\n </div>\n <div class=\"info-item\">\n <div class=\"info-label\">Estimated Cost</div>\n <div class=\"info-value\">{{ record.EstimatedCostUSD ? formatCost(record.EstimatedCostUSD) : 'N/A' }}</div>\n </div>\n <div class=\"info-item\">\n <div class=\"info-label\">Repeat Count</div>\n <div class=\"info-value\">{{ record.RepeatCount || 1 }}</div>\n </div>\n <div class=\"info-item\">\n <div class=\"info-label\">Created</div>\n <div class=\"info-value\">{{ record.__mj_CreatedAt | date:'medium' }}</div>\n </div>\n </div>\n </div>\n\n <!-- JSON Data Views -->\n <div class=\"json-section\">\n <h3>Test Definition</h3>\n <div class=\"json-tabs\">\n <button class=\"json-tab\" [class.active]=\"activeJsonView === 'input'\" (click)=\"setJsonView('input')\">\n Input Definition\n </button>\n <button class=\"json-tab\" [class.active]=\"activeJsonView === 'expected'\" (click)=\"setJsonView('expected')\">\n Expected Outcomes\n </button>\n <button class=\"json-tab\" [class.active]=\"activeJsonView === 'config'\" (click)=\"setJsonView('config')\">\n Configuration\n </button>\n <button class=\"json-tab\" [class.active]=\"activeJsonView === 'tags'\" (click)=\"setJsonView('tags')\">\n Tags\n </button>\n </div>\n <div class=\"json-content\">\n <pre>{{ getJsonData() | json }}</pre>\n </div>\n </div>\n </div>\n\n <!-- Configuration Tab -->\n <div class=\"config-tab\" *ngIf=\"activeTab === 'config'\">\n <div class=\"config-section\">\n <h3>Execution Settings</h3>\n <div class=\"config-grid\">\n <div class=\"config-item\">\n <label>Priority</label>\n <input type=\"number\" [(ngModel)]=\"record.Priority\" class=\"config-input\" />\n </div>\n <div class=\"config-item\">\n <label>Repeat Count</label>\n <input type=\"number\" [(ngModel)]=\"record.RepeatCount\" class=\"config-input\" />\n </div>\n <div class=\"config-item\">\n <label>Estimated Duration (seconds)</label>\n <input type=\"number\" [(ngModel)]=\"record.EstimatedDurationSeconds\" class=\"config-input\" />\n </div>\n <div class=\"config-item\">\n <label>Estimated Cost (USD)</label>\n <input type=\"number\" step=\"0.000001\" [(ngModel)]=\"record.EstimatedCostUSD\" class=\"config-input\" />\n </div>\n </div>\n </div>\n\n <div class=\"config-section\">\n <h3>Input Definition (JSON)</h3>\n <textarea class=\"json-editor\" [(ngModel)]=\"record.InputDefinition\" rows=\"10\"></textarea>\n </div>\n\n <div class=\"config-section\">\n <h3>Expected Outcomes (JSON)</h3>\n <textarea class=\"json-editor\" [(ngModel)]=\"record.ExpectedOutcomes\" rows=\"10\"></textarea>\n </div>\n\n <div class=\"config-section\">\n <h3>Configuration (JSON)</h3>\n <textarea class=\"json-editor\" [(ngModel)]=\"record.Configuration\" rows=\"10\"></textarea>\n </div>\n\n <div class=\"config-section\">\n <h3>Tags (JSON Array)</h3>\n <textarea class=\"json-editor\" [(ngModel)]=\"record.Tags\" rows=\"5\"></textarea>\n </div>\n </div>\n\n <!-- Test Runs Tab -->\n <div class=\"runs-tab\" *ngIf=\"activeTab === 'runs'\">\n <div class=\"runs-list\" *ngIf=\"testRuns.length > 0\">\n <div class=\"run-item\" *ngFor=\"let run of testRuns\" (click)=\"openTestRun(run.ID)\">\n <div class=\"run-icon\" [style.background-color]=\"run.Status === 'Passed' ? '#4caf50' : run.Status === 'Failed' ? '#f44336' : '#ff9800'\">\n <i class=\"fas\" [class.fa-check]=\"run.Status === 'Passed'\" [class.fa-times]=\"run.Status === 'Failed'\" [class.fa-exclamation]=\"run.Status === 'Error'\"></i>\n </div>\n <div class=\"run-content\">\n <div class=\"run-header\">\n <span class=\"run-id\">Run #{{ run.ID.substring(0, 8) }}</span>\n <span class=\"run-status\" [style.color]=\"run.Status === 'Passed' ? '#4caf50' : run.Status === 'Failed' ? '#f44336' : '#ff9800'\">{{ run.Status }}</span>\n </div>\n <div class=\"run-meta\">\n <span>{{ run.StartedAt | date:'short' }}</span>\n <span *ngIf=\"run.DurationSeconds\">{{ formatDuration(run.DurationSeconds) }}</span>\n <span *ngIf=\"run.CostUSD\">{{ formatCost(run.CostUSD) }}</span>\n <span *ngIf=\"run.Score != null\">Score: {{ run.Score.toFixed(4) }}</span>\n </div>\n </div>\n <i class=\"fas fa-chevron-right\"></i>\n </div>\n </div>\n\n <div class=\"no-data\" *ngIf=\"testRunsLoaded && testRuns.length === 0\">\n <i class=\"fas fa-inbox\"></i>\n <p>No test runs found for this test</p>\n </div>\n </div>\n\n <!-- Test Suites Tab -->\n <div class=\"suites-tab\" *ngIf=\"activeTab === 'suites'\">\n <div class=\"suites-list\" *ngIf=\"suiteTests.length > 0\">\n <div class=\"suite-item\" *ngFor=\"let suiteTest of suiteTests\" (click)=\"openTestSuite(suiteTest.SuiteID)\">\n <div class=\"suite-icon\">\n <i class=\"fas fa-folder\"></i>\n </div>\n <div class=\"suite-content\">\n <div class=\"suite-name\">{{ suiteTest.Suite }}</div>\n <div class=\"suite-meta\">\n <span>Sequence: {{ suiteTest.Sequence }}</span>\n </div>\n </div>\n <i class=\"fas fa-chevron-right\"></i>\n </div>\n </div>\n\n <div class=\"no-data\" *ngIf=\"suiteTestsLoaded && suiteTests.length === 0\">\n <i class=\"fas fa-inbox\"></i>\n <p>This test is not part of any test suite</p>\n </div>\n </div>\n </div>\n</div>\n", styles: [".test-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f8f9fa;\n}\n\n/* Header */\n.test-header {\n background: white;\n border-bottom: 1px solid #e0e0e0;\n padding: 20px;\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left {\n display: flex;\n gap: 16px;\n}\n\n.test-icon {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 24px;\n}\n\n.test-info h1 {\n margin: 0 0 8px 0;\n font-size: 24px;\n font-weight: 600;\n color: #333;\n}\n\n.test-meta {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 12px;\n color: white;\n font-size: 12px;\n font-weight: 600;\n}\n\n.test-type {\n font-size: 14px;\n color: #666;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n}\n\n.test-description {\n padding: 16px;\n background: #f8f9fa;\n border-radius: 8px;\n margin-bottom: 16px;\n}\n\n.test-description p {\n margin: 0;\n color: #666;\n line-height: 1.5;\n}\n\n.metrics-bar {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n}\n\n.metric-card {\n background: #f5f7fa;\n border-radius: 8px;\n padding: 12px;\n text-align: center;\n}\n\n.metric-label {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: #999;\n margin-bottom: 4px;\n}\n\n.metric-value {\n font-size: 16px;\n font-weight: 600;\n color: #333;\n}\n\n/* Tabs */\n.tabs-container {\n background: white;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.tabs {\n display: flex;\n padding: 0 20px;\n overflow-x: auto;\n}\n\n.tab {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: #666;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.tab:hover {\n color: #2196f3;\n background: rgba(33, 150, 243, 0.05);\n}\n\n.tab.active {\n color: #2196f3;\n border-bottom-color: #2196f3;\n}\n\n.tab i {\n font-size: 16px;\n}\n\n.tab-badge {\n background: #e0e0e0;\n color: #666;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.tab.active .tab-badge {\n background: #e3f2fd;\n color: #2196f3;\n}\n\n/* Tab Content */\n.tab-content {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Overview Tab */\n.overview-tab {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.info-section,\n.json-section,\n.config-section {\n background: white;\n border-radius: 12px;\n padding: 20px;\n}\n\n.info-section h3,\n.json-section h3,\n.config-section h3 {\n margin: 0 0 16px 0;\n font-size: 18px;\n font-weight: 600;\n color: #333;\n}\n\n.info-grid,\n.config-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 16px;\n}\n\n.info-item,\n.config-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.info-label,\n.config-item label {\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: #999;\n}\n\n.info-value {\n font-size: 14px;\n color: #333;\n word-wrap: break-word;\n}\n\n.config-input {\n padding: 8px 12px;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 14px;\n}\n\n.config-input:focus {\n outline: none;\n border-color: #2196f3;\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.1);\n}\n\n.json-tabs {\n display: flex;\n gap: 8px;\n margin-bottom: 16px;\n border-bottom: 2px solid #e0e0e0;\n}\n\n.json-tab {\n padding: 10px 20px;\n border: none;\n background: transparent;\n color: #666;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n border-bottom: 3px solid transparent;\n margin-bottom: -2px;\n transition: all 0.2s ease;\n}\n\n.json-tab:hover {\n color: #2196f3;\n}\n\n.json-tab.active {\n color: #2196f3;\n border-bottom-color: #2196f3;\n}\n\n.json-content {\n background: #1e1e1e;\n border-radius: 8px;\n padding: 16px;\n max-height: 400px;\n overflow-y: auto;\n}\n\n.json-content pre {\n margin: 0;\n font-family: 'Courier New', monospace;\n font-size: 13px;\n line-height: 1.5;\n color: #e0e0e0;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n\n.json-editor {\n width: 100%;\n padding: 12px;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-family: 'Courier New', monospace;\n font-size: 13px;\n resize: vertical;\n}\n\n.json-editor:focus {\n outline: none;\n border-color: #2196f3;\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.1);\n}\n\n/* Runs Tab */\n.runs-list,\n.suites-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.run-item,\n.suite-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: white;\n border: 2px solid transparent;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.run-item:hover,\n.suite-item:hover {\n background: #e3f2fd;\n border-color: #90caf9;\n}\n\n.run-icon,\n.suite-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n color: white;\n font-size: 18px;\n flex-shrink: 0;\n}\n\n.suite-icon {\n background: #ff9800;\n}\n\n.run-content,\n.suite-content {\n flex: 1;\n}\n\n.run-header,\n.suite-name {\n font-size: 14px;\n font-weight: 600;\n color: #333;\n margin-bottom: 4px;\n}\n\n.run-id {\n margin-right: 12px;\n}\n\n.run-status {\n font-weight: 700;\n}\n\n.run-meta,\n.suite-meta {\n display: flex;\n gap: 12px;\n font-size: 12px;\n color: #666;\n}\n\n.run-item > i,\n.suite-item > i {\n color: #999;\n font-size: 14px;\n}\n\n/* No Data State */\n.no-data {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: #999;\n text-align: center;\n background: white;\n border-radius: 12px;\n}\n\n.no-data i {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.3;\n}\n\n.no-data p {\n margin: 0;\n font-size: 14px;\n}\n\n/* Responsive */\n@media (max-width: 1200px) {\n .metrics-bar {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .info-grid,\n .config-grid {\n grid-template-columns: 1fr;\n }\n}\n\n@media (max-width: 768px) {\n .metrics-bar {\n grid-template-columns: 1fr;\n }\n\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n\n .tabs {\n overflow-x: auto;\n }\n}\n"] }]
|
|
715
|
+
args: [{ selector: 'mj-test-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"test-form\" kendoDialogContainer>\n <!-- Header Section -->\n <div class=\"test-header\">\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"test-icon\" [style.background-color]=\"getStatusColor()\">\n <i class=\"fas fa-flask\"></i>\n </div>\n <div class=\"test-info\">\n <h1>{{ record.Name }}</h1>\n <div class=\"test-meta\">\n <span class=\"status-badge\" [style.background-color]=\"getStatusColor()\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n {{ record.Status }}\n </span>\n <span class=\"test-type\">{{ record.Type }}</span>\n </div>\n </div>\n </div>\n <div class=\"header-actions\">\n <button kendoButton (click)=\"runTest()\" icon=\"play\">\n Run Test\n </button>\n <button kendoButton (click)=\"refresh()\" icon=\"sync\">\n Refresh\n </button>\n </div>\n </div>\n\n <!-- Test Description -->\n <div class=\"test-description\" *ngIf=\"record.Description\">\n <p>{{ record.Description }}</p>\n </div>\n\n <!-- Metrics Bar -->\n <div class=\"metrics-bar\" *ngIf=\"testRunsLoaded && testRuns.length > 0\">\n <div class=\"metric-card\">\n <div class=\"metric-label\">Total Runs</div>\n <div class=\"metric-value\">{{ testRuns.length }}</div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-label\">Pass Rate</div>\n <div class=\"metric-value\">{{ getPassRate().toFixed(1) }}%</div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-label\">Avg Cost</div>\n <div class=\"metric-value\">{{ formatCost(getAverageCost()) }}</div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-label\">Avg Duration</div>\n <div class=\"metric-value\">{{ formatDuration(getAverageDuration()) }}</div>\n </div>\n </div>\n </div>\n\n <!-- Tabs -->\n <div class=\"tabs-container\">\n <div class=\"tabs\">\n <button class=\"tab\" [class.active]=\"activeTab === 'overview'\" (click)=\"changeTab('overview')\">\n <i class=\"fas fa-th-large\"></i>\n <span>Overview</span>\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'config'\" (click)=\"changeTab('config')\">\n <i class=\"fas fa-sliders-h\"></i>\n <span>Configuration</span>\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'runs'\" (click)=\"changeTab('runs')\">\n <i class=\"fas fa-list\"></i>\n <span>Test Runs</span>\n <span class=\"tab-badge\" *ngIf=\"testRunsLoaded\">{{ testRuns.length }}</span>\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'suites'\" (click)=\"changeTab('suites')\">\n <i class=\"fas fa-layer-group\"></i>\n <span>Test Suites</span>\n <span class=\"tab-badge\" *ngIf=\"suiteTestsLoaded\">{{ suiteTests.length }}</span>\n </button>\n </div>\n </div>\n\n <!-- Tab Content -->\n <div class=\"tab-content\">\n <!-- Overview Tab -->\n <div class=\"overview-tab\" *ngIf=\"activeTab === 'overview'\">\n <!-- Basic Information -->\n <div class=\"info-section\">\n <h3>Test Information</h3>\n <div class=\"info-grid\">\n <div class=\"info-item\">\n <div class=\"info-label\">Name</div>\n <div class=\"info-value\">{{ record.Name }}</div>\n </div>\n <div class=\"info-item\">\n <div class=\"info-label\">Type</div>\n <div class=\"info-value\">{{ record.Type }}</div>\n </div>\n <div class=\"info-item\">\n <div class=\"info-label\">Status</div>\n <div class=\"info-value\">{{ record.Status }}</div>\n </div>\n <div class=\"info-item\">\n <div class=\"info-label\">Priority</div>\n <div class=\"info-value\">{{ record.Priority || 'N/A' }}</div>\n </div>\n <div class=\"info-item\">\n <div class=\"info-label\">Estimated Duration</div>\n <div class=\"info-value\">{{ record.EstimatedDurationSeconds ? formatDuration(record.EstimatedDurationSeconds) : 'N/A' }}</div>\n </div>\n <div class=\"info-item\">\n <div class=\"info-label\">Estimated Cost</div>\n <div class=\"info-value\">{{ record.EstimatedCostUSD ? formatCost(record.EstimatedCostUSD) : 'N/A' }}</div>\n </div>\n <div class=\"info-item\">\n <div class=\"info-label\">Repeat Count</div>\n <div class=\"info-value\">{{ record.RepeatCount || 1 }}</div>\n </div>\n <div class=\"info-item\">\n <div class=\"info-label\">Created</div>\n <div class=\"info-value\">{{ record.__mj_CreatedAt | date:'medium' }}</div>\n </div>\n </div>\n </div>\n\n <!-- JSON Data Views -->\n <div class=\"json-section\">\n <h3>Test Definition</h3>\n <div class=\"json-tabs\">\n <button class=\"json-tab\" [class.active]=\"activeJsonView === 'input'\" (click)=\"setJsonView('input')\">\n Input Definition\n </button>\n <button class=\"json-tab\" [class.active]=\"activeJsonView === 'expected'\" (click)=\"setJsonView('expected')\">\n Expected Outcomes\n </button>\n <button class=\"json-tab\" [class.active]=\"activeJsonView === 'config'\" (click)=\"setJsonView('config')\">\n Configuration\n </button>\n <button class=\"json-tab\" [class.active]=\"activeJsonView === 'tags'\" (click)=\"setJsonView('tags')\">\n Tags\n </button>\n </div>\n <div class=\"json-content\">\n <pre>{{ getJsonData() | json }}</pre>\n </div>\n </div>\n </div>\n\n <!-- Configuration Tab -->\n <div class=\"config-tab\" *ngIf=\"activeTab === 'config'\">\n <div class=\"config-section\">\n <h3>Execution Settings</h3>\n <div class=\"config-grid\">\n <div class=\"config-item\">\n <label>Priority</label>\n <input type=\"number\" [(ngModel)]=\"record.Priority\" class=\"config-input\" />\n </div>\n <div class=\"config-item\">\n <label>Repeat Count</label>\n <input type=\"number\" [(ngModel)]=\"record.RepeatCount\" class=\"config-input\" />\n </div>\n <div class=\"config-item\">\n <label>Estimated Duration (seconds)</label>\n <input type=\"number\" [(ngModel)]=\"record.EstimatedDurationSeconds\" class=\"config-input\" />\n </div>\n <div class=\"config-item\">\n <label>Estimated Cost (USD)</label>\n <input type=\"number\" step=\"0.000001\" [(ngModel)]=\"record.EstimatedCostUSD\" class=\"config-input\" />\n </div>\n </div>\n </div>\n\n <div class=\"config-section\">\n <h3>Input Definition (JSON)</h3>\n <textarea class=\"json-editor\" [(ngModel)]=\"record.InputDefinition\" rows=\"10\"></textarea>\n </div>\n\n <div class=\"config-section\">\n <h3>Expected Outcomes (JSON)</h3>\n <textarea class=\"json-editor\" [(ngModel)]=\"record.ExpectedOutcomes\" rows=\"10\"></textarea>\n </div>\n\n <div class=\"config-section\">\n <h3>Configuration (JSON)</h3>\n <textarea class=\"json-editor\" [(ngModel)]=\"record.Configuration\" rows=\"10\"></textarea>\n </div>\n\n <div class=\"config-section\">\n <h3>Tags (JSON Array)</h3>\n <textarea class=\"json-editor\" [(ngModel)]=\"record.Tags\" rows=\"5\"></textarea>\n </div>\n </div>\n\n <!-- Test Runs Tab -->\n <div class=\"runs-tab\" *ngIf=\"activeTab === 'runs'\">\n <div class=\"runs-list\" *ngIf=\"testRuns.length > 0\">\n <div class=\"run-item\" *ngFor=\"let run of testRuns\" (click)=\"openTestRun(run.ID)\">\n <div class=\"run-icon\" [style.background-color]=\"run.Status === 'Passed' ? '#4caf50' : run.Status === 'Failed' ? '#f44336' : '#ff9800'\">\n <i class=\"fas\" [class.fa-check]=\"run.Status === 'Passed'\" [class.fa-times]=\"run.Status === 'Failed'\" [class.fa-exclamation]=\"run.Status === 'Error'\"></i>\n </div>\n <div class=\"run-content\">\n <div class=\"run-header\">\n <span class=\"run-id\">Run #{{ run.ID.substring(0, 8) }}</span>\n <span class=\"run-status\" [style.color]=\"run.Status === 'Passed' ? '#4caf50' : run.Status === 'Failed' ? '#f44336' : '#ff9800'\">{{ run.Status }}</span>\n </div>\n <div class=\"run-meta\">\n <span>{{ run.StartedAt | date:'short' }}</span>\n <span *ngIf=\"run.DurationSeconds\">{{ formatDuration(run.DurationSeconds) }}</span>\n <span *ngIf=\"run.CostUSD\">{{ formatCost(run.CostUSD) }}</span>\n <span *ngIf=\"run.Score != null\">Score: {{ run.Score.toFixed(4) }}</span>\n </div>\n </div>\n <i class=\"fas fa-chevron-right\"></i>\n </div>\n </div>\n\n <div class=\"no-data\" *ngIf=\"testRunsLoaded && testRuns.length === 0\">\n <i class=\"fas fa-inbox\"></i>\n <p>No test runs found for this test</p>\n </div>\n </div>\n\n <!-- Test Suites Tab -->\n <div class=\"suites-tab\" *ngIf=\"activeTab === 'suites'\">\n <div class=\"suites-list\" *ngIf=\"suiteTests.length > 0\">\n <div class=\"suite-item\" *ngFor=\"let suiteTest of suiteTests\" (click)=\"openTestSuite(suiteTest.SuiteID)\">\n <div class=\"suite-icon\">\n <i class=\"fas fa-folder\"></i>\n </div>\n <div class=\"suite-content\">\n <div class=\"suite-name\">{{ suiteTest.Suite }}</div>\n <div class=\"suite-meta\">\n <span>Sequence: {{ suiteTest.Sequence }}</span>\n </div>\n </div>\n <i class=\"fas fa-chevron-right\"></i>\n </div>\n </div>\n\n <div class=\"no-data\" *ngIf=\"suiteTestsLoaded && suiteTests.length === 0\">\n <i class=\"fas fa-inbox\"></i>\n <p>This test is not part of any test suite</p>\n </div>\n </div>\n </div>\n</div>\n", styles: [".test-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: #f8f9fa;\n}\n\n/* Header */\n.test-header {\n background: white;\n border-bottom: 1px solid #e0e0e0;\n padding: 20px;\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left {\n display: flex;\n gap: 16px;\n}\n\n.test-icon {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 24px;\n}\n\n.test-info h1 {\n margin: 0 0 8px 0;\n font-size: 24px;\n font-weight: 600;\n color: #333;\n}\n\n.test-meta {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n border-radius: 12px;\n color: white;\n font-size: 12px;\n font-weight: 600;\n}\n\n.test-type {\n font-size: 14px;\n color: #666;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n}\n\n.test-description {\n padding: 16px;\n background: #f8f9fa;\n border-radius: 8px;\n margin-bottom: 16px;\n}\n\n.test-description p {\n margin: 0;\n color: #666;\n line-height: 1.5;\n}\n\n.metrics-bar {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n}\n\n.metric-card {\n background: #f5f7fa;\n border-radius: 8px;\n padding: 12px;\n text-align: center;\n}\n\n.metric-label {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: #999;\n margin-bottom: 4px;\n}\n\n.metric-value {\n font-size: 16px;\n font-weight: 600;\n color: #333;\n}\n\n/* Tabs */\n.tabs-container {\n background: white;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.tabs {\n display: flex;\n padding: 0 20px;\n overflow-x: auto;\n}\n\n.tab {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: #666;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.tab:hover {\n color: #2196f3;\n background: rgba(33, 150, 243, 0.05);\n}\n\n.tab.active {\n color: #2196f3;\n border-bottom-color: #2196f3;\n}\n\n.tab i {\n font-size: 16px;\n}\n\n.tab-badge {\n background: #e0e0e0;\n color: #666;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.tab.active .tab-badge {\n background: #e3f2fd;\n color: #2196f3;\n}\n\n/* Tab Content */\n.tab-content {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Overview Tab */\n.overview-tab {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.info-section,\n.json-section,\n.config-section {\n background: white;\n border-radius: 12px;\n padding: 20px;\n}\n\n.info-section h3,\n.json-section h3,\n.config-section h3 {\n margin: 0 0 16px 0;\n font-size: 18px;\n font-weight: 600;\n color: #333;\n}\n\n.info-grid,\n.config-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 16px;\n}\n\n.info-item,\n.config-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.info-label,\n.config-item label {\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: #999;\n}\n\n.info-value {\n font-size: 14px;\n color: #333;\n word-wrap: break-word;\n}\n\n.config-input {\n padding: 8px 12px;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 14px;\n}\n\n.config-input:focus {\n outline: none;\n border-color: #2196f3;\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.1);\n}\n\n.json-tabs {\n display: flex;\n gap: 8px;\n margin-bottom: 16px;\n border-bottom: 2px solid #e0e0e0;\n}\n\n.json-tab {\n padding: 10px 20px;\n border: none;\n background: transparent;\n color: #666;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n border-bottom: 3px solid transparent;\n margin-bottom: -2px;\n transition: all 0.2s ease;\n}\n\n.json-tab:hover {\n color: #2196f3;\n}\n\n.json-tab.active {\n color: #2196f3;\n border-bottom-color: #2196f3;\n}\n\n.json-content {\n background: #1e1e1e;\n border-radius: 8px;\n padding: 16px;\n max-height: 400px;\n overflow-y: auto;\n}\n\n.json-content pre {\n margin: 0;\n font-family: 'Courier New', monospace;\n font-size: 13px;\n line-height: 1.5;\n color: #e0e0e0;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n\n.json-editor {\n width: 100%;\n padding: 12px;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-family: 'Courier New', monospace;\n font-size: 13px;\n resize: vertical;\n}\n\n.json-editor:focus {\n outline: none;\n border-color: #2196f3;\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.1);\n}\n\n/* Runs Tab */\n.runs-list,\n.suites-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.run-item,\n.suite-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: white;\n border: 2px solid transparent;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.run-item:hover,\n.suite-item:hover {\n background: #e3f2fd;\n border-color: #90caf9;\n}\n\n.run-icon,\n.suite-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n color: white;\n font-size: 18px;\n flex-shrink: 0;\n}\n\n.suite-icon {\n background: #ff9800;\n}\n\n.run-content,\n.suite-content {\n flex: 1;\n}\n\n.run-header,\n.suite-name {\n font-size: 14px;\n font-weight: 600;\n color: #333;\n margin-bottom: 4px;\n}\n\n.run-id {\n margin-right: 12px;\n}\n\n.run-status {\n font-weight: 700;\n}\n\n.run-meta,\n.suite-meta {\n display: flex;\n gap: 12px;\n font-size: 12px;\n color: #666;\n}\n\n.run-item > i,\n.suite-item > i {\n color: #999;\n font-size: 14px;\n}\n\n/* No Data State */\n.no-data {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: #999;\n text-align: center;\n background: white;\n border-radius: 12px;\n}\n\n.no-data i {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.3;\n}\n\n.no-data p {\n margin: 0;\n font-size: 14px;\n}\n\n/* Responsive */\n@media (max-width: 1200px) {\n .metrics-bar {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .info-grid,\n .config-grid {\n grid-template-columns: 1fr;\n }\n}\n\n@media (max-width: 768px) {\n .metrics-bar {\n grid-template-columns: 1fr;\n }\n\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n\n .tabs {\n overflow-x: auto;\n }\n}\n"] }]
|
|
715
716
|
}], () => [{ type: i0.ElementRef }, { type: i1.SharedService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i3.TestingDialogService }], null); })();
|
|
716
717
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestFormComponentExtended, { className: "TestFormComponentExtended", filePath: "src/lib/custom/Tests/test-form.component.ts", lineNumber: 27 }); })();
|
|
717
718
|
export function LoadTestFormComponentExtended() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Tests/test-form.component.ts","../../../../src/lib/custom/Tests/test-form.component.html"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"test-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/Tests/test-form.component.ts","../../../../src/lib/custom/Tests/test-form.component.html"],"names":[],"mappings":"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"}
|