@memberjunction/ng-core-entity-forms 2.49.0 → 2.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +215 -1
- package/dist/lib/custom/AIAgents/agent-execution-monitor.component.d.ts +244 -0
- package/dist/lib/custom/AIAgents/agent-execution-monitor.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/agent-execution-monitor.component.js +1314 -0
- package/dist/lib/custom/AIAgents/agent-execution-monitor.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/agent-execution-node.component.d.ts +19 -0
- package/dist/lib/custom/AIAgents/agent-execution-node.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/agent-execution-node.component.js +458 -0
- package/dist/lib/custom/AIAgents/agent-execution-node.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +171 -11
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +1411 -145
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-test-harness-dialog.component.d.ts +78 -0
- package/dist/lib/custom/AIAgents/ai-test-harness-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/ai-test-harness-dialog.component.js +157 -0
- package/dist/lib/custom/AIAgents/ai-test-harness-dialog.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/ai-test-harness.component.d.ts +508 -0
- package/dist/lib/custom/AIAgents/ai-test-harness.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/ai-test-harness.component.js +2658 -0
- package/dist/lib/custom/AIAgents/ai-test-harness.component.js.map +1 -0
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +40 -0
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -0
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +965 -0
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -0
- package/dist/lib/custom/AIPrompts/ai-prompt-execution-dialog.component.d.ts +5 -0
- package/dist/lib/custom/AIPrompts/ai-prompt-execution-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-execution-dialog.component.js +137 -99
- package/dist/lib/custom/AIPrompts/ai-prompt-execution-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +80 -4
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +956 -470
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +40 -0
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -0
- package/dist/lib/custom/Actions/action-execution-log-form.component.js +530 -0
- package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -0
- package/dist/lib/custom/Actions/action-form.component.d.ts +90 -0
- package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -0
- package/dist/lib/custom/Actions/action-form.component.js +1579 -0
- package/dist/lib/custom/Actions/action-form.component.js.map +1 -0
- package/dist/lib/custom/Actions/action-param-dialog.component.d.ts +32 -0
- package/dist/lib/custom/Actions/action-param-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/Actions/action-param-dialog.component.js +320 -0
- package/dist/lib/custom/Actions/action-param-dialog.component.js.map +1 -0
- package/dist/lib/custom/Actions/action-test-harness-dialog.component.d.ts +15 -0
- package/dist/lib/custom/Actions/action-test-harness-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/Actions/action-test-harness-dialog.component.js +96 -0
- package/dist/lib/custom/Actions/action-test-harness-dialog.component.js.map +1 -0
- package/dist/lib/custom/Actions/action-test-harness.component.d.ts +50 -0
- package/dist/lib/custom/Actions/action-test-harness.component.d.ts.map +1 -0
- package/dist/lib/custom/Actions/action-test-harness.component.js +708 -0
- package/dist/lib/custom/Actions/action-test-harness.component.js.map +1 -0
- package/dist/lib/custom/custom-forms.module.d.ts +31 -19
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +94 -15
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts +35 -0
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/shared/entity-selector-dialog.component.js +290 -0
- package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -0
- package/dist/lib/custom/test-harness-dialog.service.d.ts +111 -0
- package/dist/lib/custom/test-harness-dialog.service.d.ts.map +1 -0
- package/dist/lib/custom/test-harness-dialog.service.js +211 -0
- package/dist/lib/custom/test-harness-dialog.service.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js +12 -11
- package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.d.ts +54 -0
- package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.js +492 -0
- package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js +8 -7
- package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js +8 -7
- package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js +8 -7
- package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.js +12 -11
- package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js +12 -11
- package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.js +12 -11
- package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js +12 -11
- package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ActionExecutionLog/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ActionExecutionLog/sections/details.component.js +13 -4
- package/dist/lib/generated/Entities/ActionExecutionLog/sections/details.component.js.map +1 -1
- package/dist/public-api.d.ts +3 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +16 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +12 -11
- package/dist/lib/custom/AIAgents/ai-agent-execution-dialog.component.d.ts +0 -52
- package/dist/lib/custom/AIAgents/ai-agent-execution-dialog.component.d.ts.map +0 -1
- package/dist/lib/custom/AIAgents/ai-agent-execution-dialog.component.js +0 -590
- package/dist/lib/custom/AIAgents/ai-agent-execution-dialog.component.js.map +0 -1
|
@@ -34,7 +34,7 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_10_Template
|
|
|
34
34
|
i0.ɵɵelementEnd()();
|
|
35
35
|
} }
|
|
36
36
|
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_ng_template_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
-
i0.ɵɵelementStart(0, "span",
|
|
37
|
+
i0.ɵɵelementStart(0, "span", 47);
|
|
38
38
|
i0.ɵɵtext(1);
|
|
39
39
|
i0.ɵɵelementEnd();
|
|
40
40
|
} if (rf & 2) {
|
|
@@ -43,13 +43,13 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_ng_templ
|
|
|
43
43
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.dataContextVariables.length, " ");
|
|
44
44
|
} }
|
|
45
45
|
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
46
|
-
i0.ɵɵelementStart(0, "span",
|
|
47
|
-
i0.ɵɵelement(1, "i",
|
|
46
|
+
i0.ɵɵelementStart(0, "span", 44);
|
|
47
|
+
i0.ɵɵelement(1, "i", 45);
|
|
48
48
|
i0.ɵɵtext(2, " Data Context Variables ");
|
|
49
|
-
i0.ɵɵelementStart(3, "span",
|
|
49
|
+
i0.ɵɵelementStart(3, "span", 46);
|
|
50
50
|
i0.ɵɵtext(4, "*");
|
|
51
51
|
i0.ɵɵelementEnd();
|
|
52
|
-
i0.ɵɵtemplate(5, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_ng_template_1_Conditional_5_Template, 2, 1, "span",
|
|
52
|
+
i0.ɵɵtemplate(5, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_ng_template_1_Conditional_5_Template, 2, 1, "span", 47);
|
|
53
53
|
i0.ɵɵelementEnd();
|
|
54
54
|
} if (rf & 2) {
|
|
55
55
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -58,7 +58,7 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_ng_templ
|
|
|
58
58
|
} }
|
|
59
59
|
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
60
60
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
61
|
-
i0.ɵɵelementStart(0, "kendo-textarea",
|
|
61
|
+
i0.ɵɵelementStart(0, "kendo-textarea", 63);
|
|
62
62
|
i0.ɵɵtwoWayListener("ngModelChange", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Conditional_4_Template_kendo_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r7); const variable_r6 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(variable_r6.value, $event) || (variable_r6.value = $event); return i0.ɵɵresetView($event); });
|
|
63
63
|
i0.ɵɵlistener("valueChange", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Conditional_4_Template_kendo_textarea_valueChange_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.updateDataContextFromVariables()); });
|
|
64
64
|
i0.ɵɵelementEnd();
|
|
@@ -72,7 +72,7 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
72
72
|
} }
|
|
73
73
|
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
74
74
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
75
|
-
i0.ɵɵelementStart(0, "kendo-dropdownlist",
|
|
75
|
+
i0.ɵɵelementStart(0, "kendo-dropdownlist", 64);
|
|
76
76
|
i0.ɵɵtwoWayListener("ngModelChange", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Conditional_5_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r10); const variable_r6 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(variable_r6.value, $event) || (variable_r6.value = $event); return i0.ɵɵresetView($event); });
|
|
77
77
|
i0.ɵɵlistener("valueChange", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Conditional_5_Template_kendo_dropdownlist_valueChange_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.updateDataContextFromVariables()); });
|
|
78
78
|
i0.ɵɵelementEnd();
|
|
@@ -86,7 +86,7 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
86
86
|
} }
|
|
87
87
|
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
88
88
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
89
|
-
i0.ɵɵelementStart(0, "kendo-textbox",
|
|
89
|
+
i0.ɵɵelementStart(0, "kendo-textbox", 65);
|
|
90
90
|
i0.ɵɵtwoWayListener("ngModelChange", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Conditional_6_Template_kendo_textbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r11); const variable_r6 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(variable_r6.value, $event) || (variable_r6.value = $event); return i0.ɵɵresetView($event); });
|
|
91
91
|
i0.ɵɵlistener("valueChange", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Conditional_6_Template_kendo_textbox_valueChange_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.updateDataContextFromVariables()); });
|
|
92
92
|
i0.ɵɵelementEnd();
|
|
@@ -100,20 +100,20 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
100
100
|
} }
|
|
101
101
|
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Template(rf, ctx) { if (rf & 1) {
|
|
102
102
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
103
|
-
i0.ɵɵelementStart(0, "div",
|
|
103
|
+
i0.ɵɵelementStart(0, "div", 54)(1, "div")(2, "kendo-textbox", 55);
|
|
104
104
|
i0.ɵɵtwoWayListener("ngModelChange", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Template_kendo_textbox_ngModelChange_2_listener($event) { const variable_r6 = i0.ɵɵrestoreView(_r5).$implicit; i0.ɵɵtwoWayBindingSet(variable_r6.name, $event) || (variable_r6.name = $event); return i0.ɵɵresetView($event); });
|
|
105
105
|
i0.ɵɵlistener("valueChange", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Template_kendo_textbox_valueChange_2_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.updateDataContextFromVariables()); });
|
|
106
106
|
i0.ɵɵelementEnd()();
|
|
107
107
|
i0.ɵɵelementStart(3, "div");
|
|
108
|
-
i0.ɵɵtemplate(4, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Conditional_4_Template, 1, 4, "kendo-textarea",
|
|
108
|
+
i0.ɵɵtemplate(4, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Conditional_4_Template, 1, 4, "kendo-textarea", 56)(5, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Conditional_5_Template, 1, 10, "kendo-dropdownlist", 57)(6, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Conditional_6_Template, 1, 4, "kendo-textbox", 58);
|
|
109
109
|
i0.ɵɵelementEnd();
|
|
110
|
-
i0.ɵɵelementStart(7, "div")(8, "kendo-dropdownlist",
|
|
110
|
+
i0.ɵɵelementStart(7, "div")(8, "kendo-dropdownlist", 59);
|
|
111
111
|
i0.ɵɵtwoWayListener("ngModelChange", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Template_kendo_dropdownlist_ngModelChange_8_listener($event) { const variable_r6 = i0.ɵɵrestoreView(_r5).$implicit; i0.ɵɵtwoWayBindingSet(variable_r6.type, $event) || (variable_r6.type = $event); return i0.ɵɵresetView($event); });
|
|
112
112
|
i0.ɵɵlistener("valueChange", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Template_kendo_dropdownlist_valueChange_8_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.updateDataContextFromVariables()); });
|
|
113
113
|
i0.ɵɵelementEnd()();
|
|
114
|
-
i0.ɵɵelementStart(9, "div",
|
|
114
|
+
i0.ɵɵelementStart(9, "div", 60)(10, "kendo-button", 61);
|
|
115
115
|
i0.ɵɵlistener("click", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Template_kendo_button_click_10_listener() { const ɵ$index_75_r9 = i0.ɵɵrestoreView(_r5).$index; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.removeDataContextVariable(ɵ$index_75_r9)); });
|
|
116
|
-
i0.ɵɵelement(11, "i",
|
|
116
|
+
i0.ɵɵelement(11, "i", 62);
|
|
117
117
|
i0.ɵɵelementEnd()()();
|
|
118
118
|
} if (rf & 2) {
|
|
119
119
|
const variable_r6 = ctx.$implicit;
|
|
@@ -133,9 +133,9 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
133
133
|
} }
|
|
134
134
|
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
135
135
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
136
|
-
i0.ɵɵelementStart(0, "div", 20)(1, "div",
|
|
136
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "div", 48)(2, "div");
|
|
137
137
|
i0.ɵɵtext(3, "Variable Name ");
|
|
138
|
-
i0.ɵɵelementStart(4, "span",
|
|
138
|
+
i0.ɵɵelementStart(4, "span", 49);
|
|
139
139
|
i0.ɵɵtext(5, "*");
|
|
140
140
|
i0.ɵɵelementEnd()();
|
|
141
141
|
i0.ɵɵelementStart(6, "div");
|
|
@@ -147,10 +147,10 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
147
147
|
i0.ɵɵelementStart(10, "div");
|
|
148
148
|
i0.ɵɵtext(11, "Actions");
|
|
149
149
|
i0.ɵɵelementEnd()();
|
|
150
|
-
i0.ɵɵrepeaterCreate(12, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Template, 12, 23, "div",
|
|
151
|
-
i0.ɵɵelementStart(14, "div",
|
|
150
|
+
i0.ɵɵrepeaterCreate(12, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_For_13_Template, 12, 23, "div", 50, i0.ɵɵrepeaterTrackByIndex);
|
|
151
|
+
i0.ɵɵelementStart(14, "div", 51)(15, "kendo-button", 52);
|
|
152
152
|
i0.ɵɵlistener("click", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_6_Template_kendo_button_click_15_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.addDataContextVariable()); });
|
|
153
|
-
i0.ɵɵelement(16, "i",
|
|
153
|
+
i0.ɵɵelement(16, "i", 53);
|
|
154
154
|
i0.ɵɵtext(17, " Add Variable ");
|
|
155
155
|
i0.ɵɵelementEnd()()();
|
|
156
156
|
} if (rf & 2) {
|
|
@@ -163,13 +163,13 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
163
163
|
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
164
164
|
const _r12 = i0.ɵɵgetCurrentView();
|
|
165
165
|
i0.ɵɵelementStart(0, "div", 21);
|
|
166
|
-
i0.ɵɵelement(1, "i",
|
|
167
|
-
i0.ɵɵelementStart(2, "p",
|
|
166
|
+
i0.ɵɵelement(1, "i", 66);
|
|
167
|
+
i0.ɵɵelementStart(2, "p", 67);
|
|
168
168
|
i0.ɵɵtext(3, "No variables defined yet");
|
|
169
169
|
i0.ɵɵelementEnd();
|
|
170
|
-
i0.ɵɵelementStart(4, "kendo-button",
|
|
170
|
+
i0.ɵɵelementStart(4, "kendo-button", 68);
|
|
171
171
|
i0.ɵɵlistener("click", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_7_Template_kendo_button_click_4_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.addDataContextVariable()); });
|
|
172
|
-
i0.ɵɵelement(5, "i",
|
|
172
|
+
i0.ɵɵelement(5, "i", 53);
|
|
173
173
|
i0.ɵɵtext(6, " Add First Variable ");
|
|
174
174
|
i0.ɵɵelementEnd()();
|
|
175
175
|
} if (rf & 2) {
|
|
@@ -178,12 +178,12 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
178
178
|
i0.ɵɵproperty("disabled", ctx_r1.isRunning);
|
|
179
179
|
} }
|
|
180
180
|
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
181
|
-
i0.ɵɵelementStart(0, "div", 22)(1, "div",
|
|
182
|
-
i0.ɵɵelement(2, "i",
|
|
183
|
-
i0.ɵɵelementStart(3, "span",
|
|
181
|
+
i0.ɵɵelementStart(0, "div", 22)(1, "div", 69);
|
|
182
|
+
i0.ɵɵelement(2, "i", 70);
|
|
183
|
+
i0.ɵɵelementStart(3, "span", 71);
|
|
184
184
|
i0.ɵɵtext(4, "Generated JSON:");
|
|
185
185
|
i0.ɵɵelementEnd()();
|
|
186
|
-
i0.ɵɵelementStart(5, "div",
|
|
186
|
+
i0.ɵɵelementStart(5, "div", 72);
|
|
187
187
|
i0.ɵɵtext(6);
|
|
188
188
|
i0.ɵɵelementEnd()();
|
|
189
189
|
} if (rf & 2) {
|
|
@@ -192,13 +192,13 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
192
192
|
i0.ɵɵtextInterpolate(ctx_r1.dataContext);
|
|
193
193
|
} }
|
|
194
194
|
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_ng_template_10_Template(rf, ctx) { if (rf & 1) {
|
|
195
|
-
i0.ɵɵelementStart(0, "span",
|
|
196
|
-
i0.ɵɵelement(1, "i",
|
|
195
|
+
i0.ɵɵelementStart(0, "span", 44);
|
|
196
|
+
i0.ɵɵelement(1, "i", 73);
|
|
197
197
|
i0.ɵɵtext(2, " Execution Options ");
|
|
198
198
|
i0.ɵɵelementEnd();
|
|
199
199
|
} }
|
|
200
|
-
function
|
|
201
|
-
i0.ɵɵelementStart(0, "span",
|
|
200
|
+
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_ng_template_49_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
201
|
+
i0.ɵɵelementStart(0, "span", 76);
|
|
202
202
|
i0.ɵɵtext(1);
|
|
203
203
|
i0.ɵɵelementEnd();
|
|
204
204
|
} if (rf & 2) {
|
|
@@ -207,29 +207,29 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_ng_templ
|
|
|
207
207
|
i0.ɵɵadvance();
|
|
208
208
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.executionResult.success ? "Success" : "Error", " ");
|
|
209
209
|
} }
|
|
210
|
-
function
|
|
211
|
-
i0.ɵɵelementStart(0, "span",
|
|
212
|
-
i0.ɵɵelement(1, "i",
|
|
210
|
+
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_ng_template_49_Template(rf, ctx) { if (rf & 1) {
|
|
211
|
+
i0.ɵɵelementStart(0, "span", 44);
|
|
212
|
+
i0.ɵɵelement(1, "i", 74);
|
|
213
213
|
i0.ɵɵtext(2, " Execution Results ");
|
|
214
|
-
i0.ɵɵtemplate(3,
|
|
214
|
+
i0.ɵɵtemplate(3, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_ng_template_49_Conditional_3_Template, 2, 3, "span", 75);
|
|
215
215
|
i0.ɵɵelementEnd();
|
|
216
216
|
} if (rf & 2) {
|
|
217
217
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
218
218
|
i0.ɵɵadvance(3);
|
|
219
219
|
i0.ɵɵconditional(ctx_r1.executionResult ? 3 : -1);
|
|
220
220
|
} }
|
|
221
|
-
function
|
|
222
|
-
i0.ɵɵelementStart(0, "div",
|
|
221
|
+
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_51_Template(rf, ctx) { if (rf & 1) {
|
|
222
|
+
i0.ɵɵelementStart(0, "div", 41);
|
|
223
223
|
i0.ɵɵelement(1, "i", 13);
|
|
224
224
|
i0.ɵɵelementStart(2, "span", 14);
|
|
225
225
|
i0.ɵɵtext(3, "Executing AI prompt...");
|
|
226
226
|
i0.ɵɵelementEnd()();
|
|
227
227
|
} }
|
|
228
|
-
function
|
|
229
|
-
i0.ɵɵelementStart(0, "div",
|
|
228
|
+
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
229
|
+
i0.ɵɵelementStart(0, "div", 60)(1, "div", 78);
|
|
230
230
|
i0.ɵɵtext(2, "EXECUTION TIME");
|
|
231
231
|
i0.ɵɵelementEnd();
|
|
232
|
-
i0.ɵɵelementStart(3, "div",
|
|
232
|
+
i0.ɵɵelementStart(3, "div", 82);
|
|
233
233
|
i0.ɵɵtext(4);
|
|
234
234
|
i0.ɵɵelementEnd()();
|
|
235
235
|
} if (rf & 2) {
|
|
@@ -237,11 +237,11 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
237
237
|
i0.ɵɵadvance(4);
|
|
238
238
|
i0.ɵɵtextInterpolate1("", ctx_r1.executionResult.executionTimeMs, "ms");
|
|
239
239
|
} }
|
|
240
|
-
function
|
|
241
|
-
i0.ɵɵelementStart(0, "div",
|
|
240
|
+
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
241
|
+
i0.ɵɵelementStart(0, "div", 60)(1, "div", 78);
|
|
242
242
|
i0.ɵɵtext(2, "TOKENS USED");
|
|
243
243
|
i0.ɵɵelementEnd();
|
|
244
|
-
i0.ɵɵelementStart(3, "div",
|
|
244
|
+
i0.ɵɵelementStart(3, "div", 82);
|
|
245
245
|
i0.ɵɵtext(4);
|
|
246
246
|
i0.ɵɵelementEnd()();
|
|
247
247
|
} if (rf & 2) {
|
|
@@ -249,11 +249,11 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
249
249
|
i0.ɵɵadvance(4);
|
|
250
250
|
i0.ɵɵtextInterpolate(ctx_r1.executionResult.tokensUsed);
|
|
251
251
|
} }
|
|
252
|
-
function
|
|
253
|
-
i0.ɵɵelementStart(0, "div",
|
|
252
|
+
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
253
|
+
i0.ɵɵelementStart(0, "div", 60)(1, "div", 78);
|
|
254
254
|
i0.ɵɵtext(2, "RUN ID");
|
|
255
255
|
i0.ɵɵelementEnd();
|
|
256
|
-
i0.ɵɵelementStart(3, "div",
|
|
256
|
+
i0.ɵɵelementStart(3, "div", 83);
|
|
257
257
|
i0.ɵɵtext(4);
|
|
258
258
|
i0.ɵɵelementEnd()();
|
|
259
259
|
} if (rf & 2) {
|
|
@@ -261,12 +261,12 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
261
261
|
i0.ɵɵadvance(4);
|
|
262
262
|
i0.ɵɵtextInterpolate(ctx_r1.executionResult.promptRunId);
|
|
263
263
|
} }
|
|
264
|
-
function
|
|
265
|
-
i0.ɵɵelementStart(0, "div",
|
|
266
|
-
i0.ɵɵelement(2, "i",
|
|
264
|
+
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
265
|
+
i0.ɵɵelementStart(0, "div", 81)(1, "h6", 84);
|
|
266
|
+
i0.ɵɵelement(2, "i", 85);
|
|
267
267
|
i0.ɵɵtext(3, " Output ");
|
|
268
268
|
i0.ɵɵelementEnd();
|
|
269
|
-
i0.ɵɵelementStart(4, "div",
|
|
269
|
+
i0.ɵɵelementStart(4, "div", 86);
|
|
270
270
|
i0.ɵɵtext(5);
|
|
271
271
|
i0.ɵɵelementEnd()();
|
|
272
272
|
} if (rf & 2) {
|
|
@@ -274,12 +274,12 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
274
274
|
i0.ɵɵadvance(5);
|
|
275
275
|
i0.ɵɵtextInterpolate(ctx_r1.executionResult.output);
|
|
276
276
|
} }
|
|
277
|
-
function
|
|
278
|
-
i0.ɵɵelementStart(0, "div",
|
|
279
|
-
i0.ɵɵelement(2, "i",
|
|
277
|
+
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
278
|
+
i0.ɵɵelementStart(0, "div", 81)(1, "h6", 87);
|
|
279
|
+
i0.ɵɵelement(2, "i", 88);
|
|
280
280
|
i0.ɵɵtext(3, " Error ");
|
|
281
281
|
i0.ɵɵelementEnd();
|
|
282
|
-
i0.ɵɵelementStart(4, "div",
|
|
282
|
+
i0.ɵɵelementStart(4, "div", 89);
|
|
283
283
|
i0.ɵɵtext(5);
|
|
284
284
|
i0.ɵɵelementEnd()();
|
|
285
285
|
} if (rf & 2) {
|
|
@@ -287,12 +287,12 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
287
287
|
i0.ɵɵadvance(5);
|
|
288
288
|
i0.ɵɵtextInterpolate(ctx_r1.executionResult.error);
|
|
289
289
|
} }
|
|
290
|
-
function
|
|
291
|
-
i0.ɵɵelementStart(0, "div",
|
|
292
|
-
i0.ɵɵelement(2, "i",
|
|
290
|
+
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
291
|
+
i0.ɵɵelementStart(0, "div", 81)(1, "h6", 84);
|
|
292
|
+
i0.ɵɵelement(2, "i", 90);
|
|
293
293
|
i0.ɵɵtext(3, " Parsed Result ");
|
|
294
294
|
i0.ɵɵelementEnd();
|
|
295
|
-
i0.ɵɵelementStart(4, "div",
|
|
295
|
+
i0.ɵɵelementStart(4, "div", 91);
|
|
296
296
|
i0.ɵɵtext(5);
|
|
297
297
|
i0.ɵɵelementEnd()();
|
|
298
298
|
} if (rf & 2) {
|
|
@@ -300,12 +300,12 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
300
300
|
i0.ɵɵadvance(5);
|
|
301
301
|
i0.ɵɵtextInterpolate(ctx_r1.executionResult.parsedResult);
|
|
302
302
|
} }
|
|
303
|
-
function
|
|
304
|
-
i0.ɵɵelementStart(0, "div",
|
|
305
|
-
i0.ɵɵelement(2, "i",
|
|
303
|
+
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
304
|
+
i0.ɵɵelementStart(0, "div", 81)(1, "h6", 84);
|
|
305
|
+
i0.ɵɵelement(2, "i", 92);
|
|
306
306
|
i0.ɵɵtext(3, " Validation Result ");
|
|
307
307
|
i0.ɵɵelementEnd();
|
|
308
|
-
i0.ɵɵelementStart(4, "div",
|
|
308
|
+
i0.ɵɵelementStart(4, "div", 93);
|
|
309
309
|
i0.ɵɵtext(5);
|
|
310
310
|
i0.ɵɵelementEnd()();
|
|
311
311
|
} if (rf & 2) {
|
|
@@ -313,17 +313,17 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
313
313
|
i0.ɵɵadvance(5);
|
|
314
314
|
i0.ɵɵtextInterpolate(ctx_r1.executionResult.validationResult);
|
|
315
315
|
} }
|
|
316
|
-
function
|
|
317
|
-
i0.ɵɵelementStart(0, "div",
|
|
316
|
+
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Template(rf, ctx) { if (rf & 1) {
|
|
317
|
+
i0.ɵɵelementStart(0, "div", 42)(1, "div", 77)(2, "div", 60)(3, "div", 78);
|
|
318
318
|
i0.ɵɵtext(4, "STATUS");
|
|
319
319
|
i0.ɵɵelementEnd();
|
|
320
|
-
i0.ɵɵelementStart(5, "div",
|
|
320
|
+
i0.ɵɵelementStart(5, "div", 79);
|
|
321
321
|
i0.ɵɵtext(6);
|
|
322
322
|
i0.ɵɵelementEnd()();
|
|
323
|
-
i0.ɵɵtemplate(7,
|
|
323
|
+
i0.ɵɵtemplate(7, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Conditional_7_Template, 5, 1, "div", 60)(8, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Conditional_8_Template, 5, 1, "div", 60)(9, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Conditional_9_Template, 5, 1, "div", 60);
|
|
324
324
|
i0.ɵɵelementEnd();
|
|
325
|
-
i0.ɵɵelementStart(10, "div",
|
|
326
|
-
i0.ɵɵtemplate(11,
|
|
325
|
+
i0.ɵɵelementStart(10, "div", 80);
|
|
326
|
+
i0.ɵɵtemplate(11, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Conditional_11_Template, 6, 1, "div", 81)(12, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Conditional_12_Template, 6, 1, "div", 81)(13, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Conditional_13_Template, 6, 1, "div", 81)(14, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Conditional_14_Template, 6, 1, "div", 81);
|
|
327
327
|
i0.ɵɵelementEnd()();
|
|
328
328
|
} if (rf & 2) {
|
|
329
329
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -346,10 +346,10 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditio
|
|
|
346
346
|
i0.ɵɵadvance();
|
|
347
347
|
i0.ɵɵconditional(ctx_r1.executionResult.validationResult ? 14 : -1);
|
|
348
348
|
} }
|
|
349
|
-
function
|
|
350
|
-
i0.ɵɵelementStart(0, "div",
|
|
351
|
-
i0.ɵɵelement(2, "i",
|
|
352
|
-
i0.ɵɵelementStart(3, "p",
|
|
349
|
+
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_53_Template(rf, ctx) { if (rf & 1) {
|
|
350
|
+
i0.ɵɵelementStart(0, "div", 43)(1, "div", 60);
|
|
351
|
+
i0.ɵɵelement(2, "i", 94);
|
|
352
|
+
i0.ɵɵelementStart(3, "p", 95);
|
|
353
353
|
i0.ɵɵtext(4, "No execution results yet. Run the prompt to see results here.");
|
|
354
354
|
i0.ɵɵelementEnd()()();
|
|
355
355
|
} }
|
|
@@ -389,28 +389,38 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Template
|
|
|
389
389
|
i0.ɵɵelementEnd()();
|
|
390
390
|
i0.ɵɵelementStart(27, "div", 24)(28, "label", 25);
|
|
391
391
|
i0.ɵɵelement(29, "i", 31);
|
|
392
|
-
i0.ɵɵtext(30, "
|
|
392
|
+
i0.ɵɵtext(30, " Response Format ");
|
|
393
393
|
i0.ɵɵelementEnd();
|
|
394
|
-
i0.ɵɵelementStart(31, "kendo-
|
|
395
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
394
|
+
i0.ɵɵelementStart(31, "kendo-dropdownlist", 32);
|
|
395
|
+
i0.ɵɵtwoWayListener("ngModelChange", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Template_kendo_dropdownlist_ngModelChange_31_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.selectedResponseFormat, $event) || (ctx_r1.selectedResponseFormat = $event); return i0.ɵɵresetView($event); });
|
|
396
396
|
i0.ɵɵelementEnd();
|
|
397
397
|
i0.ɵɵelementStart(32, "div", 28);
|
|
398
|
-
i0.ɵɵtext(33, "
|
|
398
|
+
i0.ɵɵtext(33, " Expected format for AI response (defaults to prompt setting) ");
|
|
399
|
+
i0.ɵɵelementEnd()();
|
|
400
|
+
i0.ɵɵelementStart(34, "div", 24)(35, "label", 25);
|
|
401
|
+
i0.ɵɵelement(36, "i", 33);
|
|
402
|
+
i0.ɵɵtext(37, " Configuration ID ");
|
|
403
|
+
i0.ɵɵelementEnd();
|
|
404
|
+
i0.ɵɵelementStart(38, "kendo-textbox", 34);
|
|
405
|
+
i0.ɵɵtwoWayListener("ngModelChange", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Template_kendo_textbox_ngModelChange_38_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.executionOptions.configurationId, $event) || (ctx_r1.executionOptions.configurationId = $event); return i0.ɵɵresetView($event); });
|
|
406
|
+
i0.ɵɵelementEnd();
|
|
407
|
+
i0.ɵɵelementStart(39, "div", 28);
|
|
408
|
+
i0.ɵɵtext(40, " Environment-specific configuration identifier ");
|
|
399
409
|
i0.ɵɵelementEnd()();
|
|
400
|
-
i0.ɵɵelementStart(
|
|
401
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
410
|
+
i0.ɵɵelementStart(41, "div", 24)(42, "label", 35)(43, "kendo-checkbox", 36);
|
|
411
|
+
i0.ɵɵtwoWayListener("ngModelChange", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Template_kendo_checkbox_ngModelChange_43_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.executionOptions.skipValidation, $event) || (ctx_r1.executionOptions.skipValidation = $event); return i0.ɵɵresetView($event); });
|
|
402
412
|
i0.ɵɵelementEnd();
|
|
403
|
-
i0.ɵɵelement(
|
|
404
|
-
i0.ɵɵtext(
|
|
413
|
+
i0.ɵɵelement(44, "i", 37);
|
|
414
|
+
i0.ɵɵtext(45, " Skip Output Validation ");
|
|
405
415
|
i0.ɵɵelementEnd();
|
|
406
|
-
i0.ɵɵelementStart(
|
|
407
|
-
i0.ɵɵtext(
|
|
416
|
+
i0.ɵɵelementStart(46, "div", 38);
|
|
417
|
+
i0.ɵɵtext(47, " Bypass output format validation for faster execution ");
|
|
408
418
|
i0.ɵɵelementEnd()()()()();
|
|
409
|
-
i0.ɵɵelementStart(
|
|
410
|
-
i0.ɵɵtwoWayListener("expandedChange", function
|
|
411
|
-
i0.ɵɵtemplate(
|
|
412
|
-
i0.ɵɵelementStart(
|
|
413
|
-
i0.ɵɵtemplate(
|
|
419
|
+
i0.ɵɵelementStart(48, "kendo-expansionpanel", 39);
|
|
420
|
+
i0.ɵɵtwoWayListener("expandedChange", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Template_kendo_expansionpanel_expandedChange_48_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.resultsExpanded, $event) || (ctx_r1.resultsExpanded = $event); return i0.ɵɵresetView($event); });
|
|
421
|
+
i0.ɵɵtemplate(49, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_ng_template_49_Template, 4, 1, "ng-template", 16);
|
|
422
|
+
i0.ɵɵelementStart(50, "div", 40);
|
|
423
|
+
i0.ɵɵtemplate(51, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_51_Template, 4, 0, "div", 41)(52, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_52_Template, 15, 10, "div", 42)(53, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Conditional_53_Template, 5, 0, "div", 43);
|
|
414
424
|
i0.ɵɵelementEnd()();
|
|
415
425
|
} if (rf & 2) {
|
|
416
426
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -428,6 +438,9 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Template
|
|
|
428
438
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.executionOptions.vendorId);
|
|
429
439
|
i0.ɵɵproperty("data", ctx_r1.availableVendors)("valuePrimitive", true)("filterable", true)("disabled", ctx_r1.isRunning);
|
|
430
440
|
i0.ɵɵadvance(7);
|
|
441
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.selectedResponseFormat);
|
|
442
|
+
i0.ɵɵproperty("data", ctx_r1.responseFormatOptions)("valuePrimitive", true)("disabled", ctx_r1.isRunning);
|
|
443
|
+
i0.ɵɵadvance(7);
|
|
431
444
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.executionOptions.configurationId);
|
|
432
445
|
i0.ɵɵproperty("disabled", ctx_r1.isRunning);
|
|
433
446
|
i0.ɵɵadvance(5);
|
|
@@ -436,22 +449,22 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Template
|
|
|
436
449
|
i0.ɵɵadvance(5);
|
|
437
450
|
i0.ɵɵtwoWayProperty("expanded", ctx_r1.resultsExpanded);
|
|
438
451
|
i0.ɵɵadvance(3);
|
|
439
|
-
i0.ɵɵconditional(ctx_r1.isRunning ?
|
|
452
|
+
i0.ɵɵconditional(ctx_r1.isRunning ? 51 : ctx_r1.executionResult ? 52 : 53);
|
|
440
453
|
} }
|
|
441
454
|
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
442
455
|
const _r13 = i0.ɵɵgetCurrentView();
|
|
443
|
-
i0.ɵɵelementStart(0, "kendo-button",
|
|
456
|
+
i0.ɵɵelementStart(0, "kendo-button", 96);
|
|
444
457
|
i0.ɵɵlistener("click", function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_15_Template_kendo_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.saveResults()); });
|
|
445
|
-
i0.ɵɵelement(1, "i",
|
|
458
|
+
i0.ɵɵelement(1, "i", 97);
|
|
446
459
|
i0.ɵɵtext(2, " Save Results ");
|
|
447
460
|
i0.ɵɵelementEnd();
|
|
448
461
|
} }
|
|
449
462
|
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
450
|
-
i0.ɵɵelement(0, "i",
|
|
463
|
+
i0.ɵɵelement(0, "i", 98);
|
|
451
464
|
i0.ɵɵtext(1, " Running... ");
|
|
452
465
|
} }
|
|
453
466
|
function AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
454
|
-
i0.ɵɵelement(0, "i",
|
|
467
|
+
i0.ɵɵelement(0, "i", 99);
|
|
455
468
|
i0.ɵɵtext(1, " Run Prompt ");
|
|
456
469
|
} }
|
|
457
470
|
function AIPromptExecutionDialogComponent_kendo_dialog_0_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -468,7 +481,7 @@ function AIPromptExecutionDialogComponent_kendo_dialog_0_Template(rf, ctx) { if
|
|
|
468
481
|
i0.ɵɵelementStart(8, "p", 8);
|
|
469
482
|
i0.ɵɵtext(9, " Define variables for the AI prompt to process. Each variable will be available as data context during execution. ");
|
|
470
483
|
i0.ɵɵelementEnd()();
|
|
471
|
-
i0.ɵɵtemplate(10, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_10_Template, 4, 0, "div", 9)(11, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Template,
|
|
484
|
+
i0.ɵɵtemplate(10, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_10_Template, 4, 0, "div", 9)(11, AIPromptExecutionDialogComponent_kendo_dialog_0_Conditional_11_Template, 54, 24);
|
|
472
485
|
i0.ɵɵelementEnd();
|
|
473
486
|
i0.ɵɵelementStart(12, "kendo-dialog-actions")(13, "kendo-button", 10);
|
|
474
487
|
i0.ɵɵlistener("click", function AIPromptExecutionDialogComponent_kendo_dialog_0_Template_kendo_button_click_13_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.close()); });
|
|
@@ -518,6 +531,15 @@ export class AIPromptExecutionDialogComponent {
|
|
|
518
531
|
this.isLoading = false;
|
|
519
532
|
this.isRunning = false;
|
|
520
533
|
this.executionResult = null;
|
|
534
|
+
// Response format options
|
|
535
|
+
this.selectedResponseFormat = 'Any';
|
|
536
|
+
this.responseFormatOptions = [
|
|
537
|
+
{ text: 'Any', value: 'Any' },
|
|
538
|
+
{ text: 'Text', value: 'Text' },
|
|
539
|
+
{ text: 'Markdown', value: 'Markdown' },
|
|
540
|
+
{ text: 'JSON', value: 'JSON' },
|
|
541
|
+
{ text: 'Model Specific', value: 'ModelSpecific' }
|
|
542
|
+
];
|
|
521
543
|
// UI State
|
|
522
544
|
this.dataContextExpanded = true;
|
|
523
545
|
this.optionsExpanded = false;
|
|
@@ -535,6 +557,12 @@ export class AIPromptExecutionDialogComponent {
|
|
|
535
557
|
this.dataContextExpanded = true;
|
|
536
558
|
this.optionsExpanded = false;
|
|
537
559
|
this.resultsExpanded = false;
|
|
560
|
+
// Set default response format from prompt with slight delay for Kendo dropdown
|
|
561
|
+
if (this.aiPrompt) {
|
|
562
|
+
setTimeout(() => {
|
|
563
|
+
this.selectedResponseFormat = this.aiPrompt?.ResponseFormat || 'Any';
|
|
564
|
+
}, 0);
|
|
565
|
+
}
|
|
538
566
|
// Initialize with one default variable
|
|
539
567
|
this.addDataContextVariable();
|
|
540
568
|
if (this.aiPrompt?.ID) {
|
|
@@ -569,13 +597,22 @@ export class AIPromptExecutionDialogComponent {
|
|
|
569
597
|
async loadAvailableModels() {
|
|
570
598
|
try {
|
|
571
599
|
const rv = new RunView();
|
|
600
|
+
// Filter by the prompt's AIModelTypeID if it exists
|
|
601
|
+
let extraFilter = `IsActive=1`;
|
|
602
|
+
if (this.aiPrompt?.AIModelTypeID) {
|
|
603
|
+
extraFilter += ` AND AIModelTypeID='${this.aiPrompt.AIModelTypeID}'`;
|
|
604
|
+
}
|
|
572
605
|
const result = await rv.RunView({
|
|
573
606
|
EntityName: 'AI Models',
|
|
574
|
-
ExtraFilter:
|
|
607
|
+
ExtraFilter: extraFilter,
|
|
575
608
|
OrderBy: 'PowerRank DESC, Name ASC',
|
|
576
609
|
ResultType: 'entity_object'
|
|
577
610
|
});
|
|
578
|
-
|
|
611
|
+
// Add a blank option at the beginning
|
|
612
|
+
this.availableModels = [
|
|
613
|
+
{ ID: '', Name: '-- Use Default Model --' },
|
|
614
|
+
...(result.Results || [])
|
|
615
|
+
];
|
|
579
616
|
}
|
|
580
617
|
catch (error) {
|
|
581
618
|
console.error('Error loading AI models:', error);
|
|
@@ -683,8 +720,8 @@ export class AIPromptExecutionDialogComponent {
|
|
|
683
720
|
const dataProvider = Metadata.Provider;
|
|
684
721
|
// Execute the RunAIPrompt GraphQL mutation
|
|
685
722
|
const query = `
|
|
686
|
-
mutation RunAIPrompt($promptId: String!, $data: String, $modelId: String, $vendorId: String, $configurationId: String, $skipValidation: Boolean, $templateData: String) {
|
|
687
|
-
RunAIPrompt(promptId: $promptId, data: $data, modelId: $modelId, vendorId: $vendorId, configurationId: $configurationId, skipValidation: $skipValidation, templateData: $templateData) {
|
|
723
|
+
mutation RunAIPrompt($promptId: String!, $data: String, $modelId: String, $vendorId: String, $configurationId: String, $skipValidation: Boolean, $templateData: String, $responseFormat: String) {
|
|
724
|
+
RunAIPrompt(promptId: $promptId, data: $data, modelId: $modelId, vendorId: $vendorId, configurationId: $configurationId, skipValidation: $skipValidation, templateData: $templateData, responseFormat: $responseFormat) {
|
|
688
725
|
success
|
|
689
726
|
output
|
|
690
727
|
parsedResult
|
|
@@ -704,7 +741,8 @@ export class AIPromptExecutionDialogComponent {
|
|
|
704
741
|
vendorId: this.executionOptions.vendorId,
|
|
705
742
|
configurationId: this.executionOptions.configurationId,
|
|
706
743
|
skipValidation: this.executionOptions.skipValidation,
|
|
707
|
-
templateData: null // Could be extended for additional template context
|
|
744
|
+
templateData: null, // Could be extended for additional template context
|
|
745
|
+
responseFormat: this.selectedResponseFormat || undefined
|
|
708
746
|
};
|
|
709
747
|
const result = await dataProvider.ExecuteGQL(query, variables);
|
|
710
748
|
if (result?.RunAIPrompt) {
|
|
@@ -770,7 +808,7 @@ export class AIPromptExecutionDialogComponent {
|
|
|
770
808
|
this.onClose.emit();
|
|
771
809
|
}
|
|
772
810
|
static { this.ɵfac = function AIPromptExecutionDialogComponent_Factory(t) { return new (t || AIPromptExecutionDialogComponent)(); }; }
|
|
773
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIPromptExecutionDialogComponent, selectors: [["mj-ai-prompt-execution-dialog"]], inputs: { aiPrompt: "aiPrompt", isVisible: "isVisible" }, outputs: { isVisibleChange: "isVisibleChange", onClose: "onClose" }, decls: 1, vars: 1, consts: [[3, "minWidth", "width", "height", "title", "close", 4, "ngIf"], [3, "close", "minWidth", "width", "height", "title"], [1, "dialog-content", 2, "display", "flex", "flex-direction", "column", "height", "100%", "font-family", "'Segoe UI', Tahoma, Geneva, Verdana, sans-serif"], [1, "header-section", 2, "margin-bottom", "20px", "padding-bottom", "16px", "border-bottom", "2px solid #e9ecef"], [2, "display", "flex", "align-items", "center", "gap", "12px", "margin-bottom", "8px"], [1, "fa-solid", "fa-robot", 2, "color", "#6f42c1", "font-size", "1.2em"], [2, "margin", "0", "color", "#495057", "font-weight", "600"], [1, "badge", 2, "background", "#6f42c1", "color", "white", "padding", "3px 8px", "border-radius", "12px", "font-size", "0.7em"], [2, "margin", "0", "color", "#6c757d", "font-size", "0.9em"], [1, "loading-state", 2, "display", "flex", "align-items", "center", "justify-content", "center", "padding", "40px"], ["fillMode", "outline", 3, "click"], ["fillMode", "outline", "themeColor", "info"], ["themeColor", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin", 2, "font-size", "24px", "color", "#6c757d", "margin-right", "12px"], [2, "color", "#6c757d"], [2, "margin-bottom", "16px", "flex-shrink", "0", 3, "expandedChange", "expanded"], ["kendoExpansionPanelTitleDirective", ""], [2, "padding", "12px 0"], [2, "margin-bottom", "12px", "color", "#6c757d", "font-size", "0.85em"], [1, "fa-solid", "fa-info-circle"], [2, "border", "1px solid #dee2e6", "border-radius", "6px", "background", "#f8f9fa"], [2, "text-align", "center", "padding", "20px", "color", "#6c757d"], [2, "margin-top", "16px"], [2, "display", "grid", "grid-template-columns", "1fr 1fr", "gap", "16px"], [1, "option-group"], [2, "display", "block", "font-weight", "500", "margin-bottom", "6px", "color", "#495057", "font-size", "0.9em"], [1, "fa-solid", "fa-microchip", 2, "margin-right", "6px", "color", "#6c757d"], ["textField", "Name", "valueField", "ID", "placeholder", "Use prompt's configured models...", 2, "width", "100%", 3, "ngModelChange", "ngModel", "data", "valuePrimitive", "filterable", "disabled"], [2, "margin-top", "4px", "font-size", "0.75em", "color", "#6c757d"], [1, "fa-solid", "fa-server", 2, "margin-right", "6px", "color", "#6c757d"], ["textField", "Name", "valueField", "ID", "placeholder", "Use prompt's configured vendors...", 2, "width", "100%", 3, "ngModelChange", "ngModel", "data", "valuePrimitive", "filterable", "disabled"], [1, "fa-solid", "fa-gear", 2, "margin-right", "6px", "color", "#6c757d"], ["placeholder", "Optional configuration identifier...", 2, "width", "100%", 3, "ngModelChange", "ngModel", "disabled"], [2, "display", "flex", "align-items", "center", "font-weight", "500", "color", "#495057", "font-size", "0.9em"], [3, "ngModelChange", "ngModel", "disabled"], [1, "fa-solid", "fa-shield-alt", 2, "margin-right", "6px", "color", "#6c757d"], [2, "margin-top", "4px", "margin-left", "24px", "font-size", "0.75em", "color", "#6c757d"], [2, "margin-bottom", "16px", "flex", "1", "display", "flex", "flex-direction", "column", 3, "expandedChange", "expanded"], [2, "padding", "12px 0", "flex", "1", "display", "flex", "flex-direction", "column"], [1, "loading-state", 2, "display", "flex", "align-items", "center", "justify-content", "center", "padding", "40px", "flex", "1"], [2, "flex", "1", "display", "flex", "flex-direction", "column"], [2, "display", "flex", "align-items", "center", "justify-content", "center", "padding", "40px", "color", "#6c757d", "flex", "1"], [2, "display", "flex", "align-items", "center", "gap", "8px", "font-weight", "600"], [1, "fa-solid", "fa-database", 2, "color", "#6c757d"], [2, "color", "#dc3545", "font-weight", "bold"], [1, "badge", 2, "background", "#17a2b8", "color", "white", "padding", "2px 6px", "border-radius", "10px", "font-size", "0.7em"], [2, "display", "grid", "grid-template-columns", "200px 1fr 120px 60px", "gap", "12px", "padding", "12px 16px", "background", "#e9ecef", "font-weight", "600", "font-size", "0.85em", "color", "#495057", "border-bottom", "1px solid #dee2e6"], [2, "color", "#dc3545"], [2, "display", "grid", "grid-template-columns", "200px 1fr 120px 60px", "gap", "12px", "padding", "12px 16px", "border-bottom", "1px solid #e9ecef", "align-items", "center", 3, "background", "border-left"], [2, "padding", "12px 16px", "text-align", "center", "background", "white", "border-top", "1px solid #dee2e6"], ["fillMode", "outline", "themeColor", "success", "size", "small", 3, "click", "disabled"], [1, "fa-solid", "fa-plus"], [2, "display", "grid", "grid-template-columns", "200px 1fr 120px 60px", "gap", "12px", "padding", "12px 16px", "border-bottom", "1px solid #e9ecef", "align-items", "center"], ["placeholder", "Variable name...", 2, "width", "100%", "font-size", "0.9em", 3, "ngModelChange", "valueChange", "ngModel", "name", "disabled"], ["placeholder", "JSON object...", 2, "width", "100%", "font-size", "0.85em", "font-family", "'Courier New', monospace", 3, "ngModel", "name", "rows", "disabled"], ["textField", "text", "valueField", "value", 2, "width", "100%", "font-size", "0.9em", 3, "ngModel", "name", "data", "valuePrimitive", "disabled"], [2, "width", "100%", "font-size", "0.9em", 3, "ngModel", "name", "placeholder", "disabled"], ["textField", "text", "valueField", "value", 2, "width", "100%", "font-size", "0.85em", 3, "ngModelChange", "valueChange", "ngModel", "name", "data", "valuePrimitive", "disabled"], [2, "text-align", "center"], ["fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove variable", 3, "click", "disabled"], [1, "fa-solid", "fa-times"], ["placeholder", "JSON object...", 2, "width", "100%", "font-size", "0.85em", "font-family", "'Courier New', monospace", 3, "ngModelChange", "valueChange", "ngModel", "name", "rows", "disabled"], ["textField", "text", "valueField", "value", 2, "width", "100%", "font-size", "0.9em", 3, "ngModelChange", "valueChange", "ngModel", "name", "data", "valuePrimitive", "disabled"], [2, "width", "100%", "font-size", "0.9em", 3, "ngModelChange", "valueChange", "ngModel", "name", "placeholder", "disabled"], [1, "fa-solid", "fa-info-circle", 2, "font-size", "2em", "margin-bottom", "12px", "opacity", "0.5"], [2, "margin", "0 0 12px 0"], ["themeColor", "primary", "size", "small", 3, "click", "disabled"], [2, "display", "flex", "align-items", "center", "gap", "8px", "margin-bottom", "8px"], [1, "fa-solid", "fa-code", 2, "color", "#6c757d", "font-size", "0.9em"], [2, "font-weight", "600", "color", "#495057", "font-size", "0.9em"], [2, "background", "#f8f9fa", "border", "1px solid #dee2e6", "border-radius", "4px", "padding", "12px", "font-family", "'Courier New', monospace", "font-size", "0.85em", "white-space", "pre-wrap", "overflow", "auto", "max-height", "150px"], [1, "fa-solid", "fa-cogs", 2, "color", "#6c757d"], [1, "fa-solid", "fa-chart-line", 2, "color", "#6c757d"], [1, "badge", 2, "color", "white", "padding", "2px 6px", "border-radius", "10px", "font-size", "0.7em", 3, "background"], [1, "badge", 2, "color", "white", "padding", "2px 6px", "border-radius", "10px", "font-size", "0.7em"], [2, "display", "grid", "grid-template-columns", "repeat(auto-fit, minmax(150px, 1fr))", "gap", "12px", "margin-bottom", "16px", "padding", "12px", "background", "#f8f9fa", "border", "1px solid #dee2e6", "border-radius", "6px"], [2, "font-size", "0.75em", "color", "#6c757d", "margin-bottom", "2px"], [2, "font-weight", "600"], [2, "flex", "1", "overflow-y", "auto", "padding-right", "8px"], [2, "margin-bottom", "16px"], [2, "font-weight", "600", "color", "#495057"], [2, "font-weight", "600", "color", "#495057", "font-size", "0.8em"], [2, "margin", "0 0 8px 0", "color", "#495057", "display", "flex", "align-items", "center", "gap", "6px"], [1, "fa-solid", "fa-check-circle", 2, "color", "#28a745"], [2, "background", "#f8f9fa", "border", "1px solid #dee2e6", "border-radius", "4px", "padding", "12px", "font-family", "'Courier New', monospace", "font-size", "0.9em", "white-space", "pre-wrap", "overflow", "auto", "max-height", "300px"], [2, "margin", "0 0 8px 0", "color", "#dc3545", "display", "flex", "align-items", "center", "gap", "6px"], [1, "fa-solid", "fa-exclamation-triangle"], [2, "background", "#f8d7da", "border", "1px solid #f5c6cb", "border-radius", "4px", "padding", "12px", "color", "#721c24", "font-size", "0.9em", "white-space", "pre-wrap", "overflow", "auto", "max-height", "300px"], [1, "fa-solid", "fa-code", 2, "color", "#17a2b8"], [2, "background", "#f8f9fa", "border", "1px solid #dee2e6", "border-radius", "4px", "padding", "12px", "font-family", "'Courier New', monospace", "font-size", "0.9em", "white-space", "pre-wrap", "overflow", "auto", "max-height", "200px"], [1, "fa-solid", "fa-shield-alt", 2, "color", "#ffc107"], [2, "background", "#fff3cd", "border", "1px solid #ffeaa7", "border-radius", "4px", "padding", "12px", "color", "#856404", "font-size", "0.9em", "white-space", "pre-wrap", "overflow", "auto", "max-height", "150px"], [1, "fa-solid", "fa-play-circle", 2, "font-size", "3em", "margin-bottom", "12px", "opacity", "0.3"], [2, "margin", "0"], ["fillMode", "outline", "themeColor", "info", 3, "click"], [1, "fa-solid", "fa-download"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-play"]], template: function AIPromptExecutionDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
811
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIPromptExecutionDialogComponent, selectors: [["mj-ai-prompt-execution-dialog"]], inputs: { aiPrompt: "aiPrompt", isVisible: "isVisible" }, outputs: { isVisibleChange: "isVisibleChange", onClose: "onClose" }, decls: 1, vars: 1, consts: [[3, "minWidth", "width", "height", "title", "close", 4, "ngIf"], [3, "close", "minWidth", "width", "height", "title"], [1, "dialog-content", 2, "display", "flex", "flex-direction", "column", "height", "100%", "font-family", "'Segoe UI', Tahoma, Geneva, Verdana, sans-serif"], [1, "header-section", 2, "margin-bottom", "20px", "padding-bottom", "16px", "border-bottom", "2px solid #e9ecef"], [2, "display", "flex", "align-items", "center", "gap", "12px", "margin-bottom", "8px"], [1, "fa-solid", "fa-robot", 2, "color", "#6f42c1", "font-size", "1.2em"], [2, "margin", "0", "color", "#495057", "font-weight", "600"], [1, "badge", 2, "background", "#6f42c1", "color", "white", "padding", "3px 8px", "border-radius", "12px", "font-size", "0.7em"], [2, "margin", "0", "color", "#6c757d", "font-size", "0.9em"], [1, "loading-state", 2, "display", "flex", "align-items", "center", "justify-content", "center", "padding", "40px"], ["fillMode", "outline", 3, "click"], ["fillMode", "outline", "themeColor", "info"], ["themeColor", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin", 2, "font-size", "24px", "color", "#6c757d", "margin-right", "12px"], [2, "color", "#6c757d"], [2, "margin-bottom", "16px", "flex-shrink", "0", 3, "expandedChange", "expanded"], ["kendoExpansionPanelTitleDirective", ""], [2, "padding", "12px 0"], [2, "margin-bottom", "12px", "color", "#6c757d", "font-size", "0.85em"], [1, "fa-solid", "fa-info-circle"], [2, "border", "1px solid #dee2e6", "border-radius", "6px", "background", "#f8f9fa"], [2, "text-align", "center", "padding", "20px", "color", "#6c757d"], [2, "margin-top", "16px"], [2, "display", "grid", "grid-template-columns", "1fr 1fr", "gap", "16px"], [1, "option-group"], [2, "display", "block", "font-weight", "500", "margin-bottom", "6px", "color", "#495057", "font-size", "0.9em"], [1, "fa-solid", "fa-microchip", 2, "margin-right", "6px", "color", "#6c757d"], ["textField", "Name", "valueField", "ID", "placeholder", "Use prompt's configured models...", 2, "width", "100%", 3, "ngModelChange", "ngModel", "data", "valuePrimitive", "filterable", "disabled"], [2, "margin-top", "4px", "font-size", "0.75em", "color", "#6c757d"], [1, "fa-solid", "fa-server", 2, "margin-right", "6px", "color", "#6c757d"], ["textField", "Name", "valueField", "ID", "placeholder", "Use prompt's configured vendors...", 2, "width", "100%", 3, "ngModelChange", "ngModel", "data", "valuePrimitive", "filterable", "disabled"], [1, "fa-solid", "fa-file-alt", 2, "margin-right", "6px", "color", "#6c757d"], ["textField", "text", "valueField", "value", "placeholder", "Select format...", 2, "width", "100%", 3, "ngModelChange", "ngModel", "data", "valuePrimitive", "disabled"], [1, "fa-solid", "fa-gear", 2, "margin-right", "6px", "color", "#6c757d"], ["placeholder", "Optional configuration identifier...", 2, "width", "100%", 3, "ngModelChange", "ngModel", "disabled"], [2, "display", "flex", "align-items", "center", "font-weight", "500", "color", "#495057", "font-size", "0.9em"], [3, "ngModelChange", "ngModel", "disabled"], [1, "fa-solid", "fa-shield-alt", 2, "margin-right", "6px", "color", "#6c757d"], [2, "margin-top", "4px", "margin-left", "24px", "font-size", "0.75em", "color", "#6c757d"], [2, "margin-bottom", "16px", "flex", "1", "display", "flex", "flex-direction", "column", 3, "expandedChange", "expanded"], [2, "padding", "12px 0", "flex", "1", "display", "flex", "flex-direction", "column"], [1, "loading-state", 2, "display", "flex", "align-items", "center", "justify-content", "center", "padding", "40px", "flex", "1"], [2, "flex", "1", "display", "flex", "flex-direction", "column"], [2, "display", "flex", "align-items", "center", "justify-content", "center", "padding", "40px", "color", "#6c757d", "flex", "1"], [2, "display", "flex", "align-items", "center", "gap", "8px", "font-weight", "600"], [1, "fa-solid", "fa-database", 2, "color", "#6c757d"], [2, "color", "#dc3545", "font-weight", "bold"], [1, "badge", 2, "background", "#17a2b8", "color", "white", "padding", "2px 6px", "border-radius", "10px", "font-size", "0.7em"], [2, "display", "grid", "grid-template-columns", "200px 1fr 120px 60px", "gap", "12px", "padding", "12px 16px", "background", "#e9ecef", "font-weight", "600", "font-size", "0.85em", "color", "#495057", "border-bottom", "1px solid #dee2e6"], [2, "color", "#dc3545"], [2, "display", "grid", "grid-template-columns", "200px 1fr 120px 60px", "gap", "12px", "padding", "12px 16px", "border-bottom", "1px solid #e9ecef", "align-items", "center", 3, "background", "border-left"], [2, "padding", "12px 16px", "text-align", "center", "background", "white", "border-top", "1px solid #dee2e6"], ["fillMode", "outline", "themeColor", "success", "size", "small", 3, "click", "disabled"], [1, "fa-solid", "fa-plus"], [2, "display", "grid", "grid-template-columns", "200px 1fr 120px 60px", "gap", "12px", "padding", "12px 16px", "border-bottom", "1px solid #e9ecef", "align-items", "center"], ["placeholder", "Variable name...", 2, "width", "100%", "font-size", "0.9em", 3, "ngModelChange", "valueChange", "ngModel", "name", "disabled"], ["placeholder", "JSON object...", 2, "width", "100%", "font-size", "0.85em", "font-family", "'Courier New', monospace", 3, "ngModel", "name", "rows", "disabled"], ["textField", "text", "valueField", "value", 2, "width", "100%", "font-size", "0.9em", 3, "ngModel", "name", "data", "valuePrimitive", "disabled"], [2, "width", "100%", "font-size", "0.9em", 3, "ngModel", "name", "placeholder", "disabled"], ["textField", "text", "valueField", "value", 2, "width", "100%", "font-size", "0.85em", 3, "ngModelChange", "valueChange", "ngModel", "name", "data", "valuePrimitive", "disabled"], [2, "text-align", "center"], ["fillMode", "flat", "themeColor", "error", "size", "small", "title", "Remove variable", 3, "click", "disabled"], [1, "fa-solid", "fa-times"], ["placeholder", "JSON object...", 2, "width", "100%", "font-size", "0.85em", "font-family", "'Courier New', monospace", 3, "ngModelChange", "valueChange", "ngModel", "name", "rows", "disabled"], ["textField", "text", "valueField", "value", 2, "width", "100%", "font-size", "0.9em", 3, "ngModelChange", "valueChange", "ngModel", "name", "data", "valuePrimitive", "disabled"], [2, "width", "100%", "font-size", "0.9em", 3, "ngModelChange", "valueChange", "ngModel", "name", "placeholder", "disabled"], [1, "fa-solid", "fa-info-circle", 2, "font-size", "2em", "margin-bottom", "12px", "opacity", "0.5"], [2, "margin", "0 0 12px 0"], ["themeColor", "primary", "size", "small", 3, "click", "disabled"], [2, "display", "flex", "align-items", "center", "gap", "8px", "margin-bottom", "8px"], [1, "fa-solid", "fa-code", 2, "color", "#6c757d", "font-size", "0.9em"], [2, "font-weight", "600", "color", "#495057", "font-size", "0.9em"], [2, "background", "#f8f9fa", "border", "1px solid #dee2e6", "border-radius", "4px", "padding", "12px", "font-family", "'Courier New', monospace", "font-size", "0.85em", "white-space", "pre-wrap", "overflow", "auto", "max-height", "150px"], [1, "fa-solid", "fa-cogs", 2, "color", "#6c757d"], [1, "fa-solid", "fa-chart-line", 2, "color", "#6c757d"], [1, "badge", 2, "color", "white", "padding", "2px 6px", "border-radius", "10px", "font-size", "0.7em", 3, "background"], [1, "badge", 2, "color", "white", "padding", "2px 6px", "border-radius", "10px", "font-size", "0.7em"], [2, "display", "grid", "grid-template-columns", "repeat(auto-fit, minmax(150px, 1fr))", "gap", "12px", "margin-bottom", "16px", "padding", "12px", "background", "#f8f9fa", "border", "1px solid #dee2e6", "border-radius", "6px"], [2, "font-size", "0.75em", "color", "#6c757d", "margin-bottom", "2px"], [2, "font-weight", "600"], [2, "flex", "1", "overflow-y", "auto", "padding-right", "8px"], [2, "margin-bottom", "16px"], [2, "font-weight", "600", "color", "#495057"], [2, "font-weight", "600", "color", "#495057", "font-size", "0.8em"], [2, "margin", "0 0 8px 0", "color", "#495057", "display", "flex", "align-items", "center", "gap", "6px"], [1, "fa-solid", "fa-check-circle", 2, "color", "#28a745"], [2, "background", "#f8f9fa", "border", "1px solid #dee2e6", "border-radius", "4px", "padding", "12px", "font-family", "'Courier New', monospace", "font-size", "0.9em", "white-space", "pre-wrap", "overflow", "auto", "max-height", "300px"], [2, "margin", "0 0 8px 0", "color", "#dc3545", "display", "flex", "align-items", "center", "gap", "6px"], [1, "fa-solid", "fa-exclamation-triangle"], [2, "background", "#f8d7da", "border", "1px solid #f5c6cb", "border-radius", "4px", "padding", "12px", "color", "#721c24", "font-size", "0.9em", "white-space", "pre-wrap", "overflow", "auto", "max-height", "300px"], [1, "fa-solid", "fa-code", 2, "color", "#17a2b8"], [2, "background", "#f8f9fa", "border", "1px solid #dee2e6", "border-radius", "4px", "padding", "12px", "font-family", "'Courier New', monospace", "font-size", "0.9em", "white-space", "pre-wrap", "overflow", "auto", "max-height", "200px"], [1, "fa-solid", "fa-shield-alt", 2, "color", "#ffc107"], [2, "background", "#fff3cd", "border", "1px solid #ffeaa7", "border-radius", "4px", "padding", "12px", "color", "#856404", "font-size", "0.9em", "white-space", "pre-wrap", "overflow", "auto", "max-height", "150px"], [1, "fa-solid", "fa-play-circle", 2, "font-size", "3em", "margin-bottom", "12px", "opacity", "0.3"], [2, "margin", "0"], ["fillMode", "outline", "themeColor", "info", 3, "click"], [1, "fa-solid", "fa-download"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-play"]], template: function AIPromptExecutionDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
774
812
|
i0.ɵɵtemplate(0, AIPromptExecutionDialogComponent_kendo_dialog_0_Template, 19, 9, "kendo-dialog", 0);
|
|
775
813
|
} if (rf & 2) {
|
|
776
814
|
i0.ɵɵproperty("ngIf", ctx._isVisible);
|
|
@@ -778,7 +816,7 @@ export class AIPromptExecutionDialogComponent {
|
|
|
778
816
|
}
|
|
779
817
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AIPromptExecutionDialogComponent, [{
|
|
780
818
|
type: Component,
|
|
781
|
-
args: [{ selector: 'mj-ai-prompt-execution-dialog', template: "<kendo-dialog *ngIf=\"_isVisible\"\n [minWidth]=\"700\"\n [width]=\"900\"\n [height]=\"850\"\n (close)=\"close()\"\n [title]=\"'Execute AI Prompt: ' + (aiPrompt?.Name || 'Unknown')\">\n \n <div class=\"dialog-content\" style=\"display: flex; flex-direction: column; height: 100%; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\">\n \n <!-- Header Section -->\n <div class=\"header-section\" style=\"margin-bottom: 20px; padding-bottom: 16px; border-bottom: 2px solid #e9ecef;\">\n <div style=\"display: flex; align-items: center; gap: 12px; margin-bottom: 8px;\">\n <i class=\"fa-solid fa-robot\" style=\"color: #6f42c1; font-size: 1.2em;\"></i>\n <h5 style=\"margin: 0; color: #495057; font-weight: 600;\">AI Prompt Execution</h5>\n @if (aiPrompt?.ParallelizationMode && aiPrompt?.ParallelizationMode !== 'None') {\n <span class=\"badge\" style=\"background: #6f42c1; color: white; padding: 3px 8px; border-radius: 12px; font-size: 0.7em;\">\n {{ aiPrompt?.ParallelizationMode }}\n </span>\n }\n </div>\n <p style=\"margin: 0; color: #6c757d; font-size: 0.9em;\">\n Define variables for the AI prompt to process. Each variable will be available as data context during execution.\n </p>\n </div>\n\n <!-- Loading State -->\n @if (isLoading) {\n <div class=\"loading-state\" style=\"display: flex; align-items: center; justify-content: center; padding: 40px;\">\n <i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 24px; color: #6c757d; margin-right: 12px;\"></i>\n <span style=\"color: #6c757d;\">Loading prompt configuration...</span>\n </div>\n } @else {\n \n <!-- Data Context Variables Section -->\n <kendo-expansionpanel \n [(expanded)]=\"dataContextExpanded\"\n style=\"margin-bottom: 16px; flex-shrink: 0;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-database\" style=\"color: #6c757d;\"></i>\n Data Context Variables\n <span style=\"color: #dc3545; font-weight: bold;\">*</span>\n @if (dataContextVariables.length > 0) {\n <span class=\"badge\" style=\"background: #17a2b8; color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ dataContextVariables.length }}\n </span>\n }\n </span>\n </ng-template>\n \n <div style=\"padding: 12px 0;\">\n <div style=\"margin-bottom: 12px; color: #6c757d; font-size: 0.85em;\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Define variables that will be available to the AI prompt during execution. These are converted to JSON format automatically.\n </div>\n \n <!-- Variables Table -->\n @if (dataContextVariables.length > 0) {\n <div style=\"border: 1px solid #dee2e6; border-radius: 6px; background: #f8f9fa;\">\n <!-- Header -->\n <div style=\"display: grid; grid-template-columns: 200px 1fr 120px 60px; gap: 12px; padding: 12px 16px; background: #e9ecef; font-weight: 600; font-size: 0.85em; color: #495057; border-bottom: 1px solid #dee2e6;\">\n <div>Variable Name <span style=\"color: #dc3545;\">*</span></div>\n <div>Value</div>\n <div>Type</div>\n <div>Actions</div>\n </div>\n \n <!-- Variable Rows -->\n @for (variable of dataContextVariables; track $index; let i = $index) {\n <div [style.background]=\"!variable.name.trim() ? '#fff3cd' : 'white'\"\n [style.border-left]=\"!variable.name.trim() ? '3px solid #ffc107' : 'none'\"\n style=\"display: grid; grid-template-columns: 200px 1fr 120px 60px; gap: 12px; padding: 12px 16px; border-bottom: 1px solid #e9ecef; align-items: center;\">\n \n <!-- Variable Name -->\n <div>\n <kendo-textbox [(ngModel)]=\"variable.name\"\n [name]=\"'varName_' + i\"\n placeholder=\"Variable name...\"\n [disabled]=\"isRunning\"\n (valueChange)=\"updateDataContextFromVariables()\"\n style=\"width: 100%; font-size: 0.9em;\">\n </kendo-textbox>\n </div>\n \n <!-- Variable Value -->\n <div>\n @if (variable.type === 'object') {\n <kendo-textarea [(ngModel)]=\"variable.value\"\n [name]=\"'varValue_' + i\"\n [rows]=\"2\"\n placeholder=\"JSON object...\"\n [disabled]=\"isRunning\"\n (valueChange)=\"updateDataContextFromVariables()\"\n style=\"width: 100%; font-size: 0.85em; font-family: 'Courier New', monospace;\">\n </kendo-textarea>\n } @else if (variable.type === 'boolean') {\n <kendo-dropdownlist [(ngModel)]=\"variable.value\"\n [name]=\"'varValue_' + i\"\n [data]=\"[{text: 'True', value: 'true'}, {text: 'False', value: 'false'}]\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n [disabled]=\"isRunning\"\n (valueChange)=\"updateDataContextFromVariables()\"\n style=\"width: 100%; font-size: 0.9em;\">\n </kendo-dropdownlist>\n } @else {\n <kendo-textbox [(ngModel)]=\"variable.value\"\n [name]=\"'varValue_' + i\"\n [placeholder]=\"variable.type === 'number' ? 'Enter number...' : 'Enter text...'\"\n [disabled]=\"isRunning\"\n (valueChange)=\"updateDataContextFromVariables()\"\n style=\"width: 100%; font-size: 0.9em;\">\n </kendo-textbox>\n }\n </div>\n \n <!-- Variable Type -->\n <div>\n <kendo-dropdownlist [(ngModel)]=\"variable.type\"\n [name]=\"'varType_' + i\"\n [data]=\"[{text: 'String', value: 'string'}, {text: 'Number', value: 'number'}, {text: 'Boolean', value: 'boolean'}, {text: 'Object', value: 'object'}]\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n [disabled]=\"isRunning\"\n (valueChange)=\"updateDataContextFromVariables()\"\n style=\"width: 100%; font-size: 0.85em;\">\n </kendo-dropdownlist>\n </div>\n \n <!-- Actions -->\n <div style=\"text-align: center;\">\n <kendo-button fillMode=\"flat\" themeColor=\"error\" size=\"small\"\n (click)=\"removeDataContextVariable(i)\"\n [disabled]=\"isRunning\"\n title=\"Remove variable\">\n <i class=\"fa-solid fa-times\"></i>\n </kendo-button>\n </div>\n </div>\n }\n \n <!-- Add Variable Row -->\n <div style=\"padding: 12px 16px; text-align: center; background: white; border-top: 1px solid #dee2e6;\">\n <kendo-button fillMode=\"outline\" themeColor=\"success\" size=\"small\"\n (click)=\"addDataContextVariable()\"\n [disabled]=\"isRunning\">\n <i class=\"fa-solid fa-plus\"></i> Add Variable\n </kendo-button>\n </div>\n </div>\n } @else {\n <div style=\"text-align: center; padding: 20px; color: #6c757d;\">\n <i class=\"fa-solid fa-info-circle\" style=\"font-size: 2em; margin-bottom: 12px; opacity: 0.5;\"></i>\n <p style=\"margin: 0 0 12px 0;\">No variables defined yet</p>\n <kendo-button themeColor=\"primary\" size=\"small\"\n (click)=\"addDataContextVariable()\"\n [disabled]=\"isRunning\">\n <i class=\"fa-solid fa-plus\"></i> Add First Variable\n </kendo-button>\n </div>\n }\n \n <!-- Generated JSON Preview -->\n @if (dataContext) {\n <div style=\"margin-top: 16px;\">\n <div style=\"display: flex; align-items: center; gap: 8px; margin-bottom: 8px;\">\n <i class=\"fa-solid fa-code\" style=\"color: #6c757d; font-size: 0.9em;\"></i>\n <span style=\"font-weight: 600; color: #495057; font-size: 0.9em;\">Generated JSON:</span>\n </div>\n <div style=\"background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 4px; padding: 12px; font-family: 'Courier New', monospace; font-size: 0.85em; white-space: pre-wrap; overflow: auto; max-height: 150px;\">{{ dataContext }}</div>\n </div>\n }\n </div>\n </kendo-expansionpanel>\n\n <!-- Execution Options Section -->\n <kendo-expansionpanel \n [(expanded)]=\"optionsExpanded\"\n style=\"margin-bottom: 16px; flex-shrink: 0;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-cogs\" style=\"color: #6c757d;\"></i>\n Execution Options\n </span>\n </ng-template>\n \n <div style=\"padding: 12px 0;\">\n <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 16px;\">\n \n <!-- Model Selection -->\n <div class=\"option-group\">\n <label style=\"display: block; font-weight: 500; margin-bottom: 6px; color: #495057; font-size: 0.9em;\">\n <i class=\"fa-solid fa-microchip\" style=\"margin-right: 6px; color: #6c757d;\"></i>\n AI Model Override\n </label>\n <kendo-dropdownlist [(ngModel)]=\"executionOptions.modelId\"\n [data]=\"availableModels\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n [filterable]=\"true\"\n [disabled]=\"isRunning\"\n placeholder=\"Use prompt's configured models...\"\n style=\"width: 100%;\">\n </kendo-dropdownlist>\n <div style=\"margin-top: 4px; font-size: 0.75em; color: #6c757d;\">\n Optional: Override the prompt's configured models\n </div>\n </div>\n \n <!-- Vendor Selection -->\n <div class=\"option-group\">\n <label style=\"display: block; font-weight: 500; margin-bottom: 6px; color: #495057; font-size: 0.9em;\">\n <i class=\"fa-solid fa-server\" style=\"margin-right: 6px; color: #6c757d;\"></i>\n AI Vendor Override\n </label>\n <kendo-dropdownlist [(ngModel)]=\"executionOptions.vendorId\"\n [data]=\"availableVendors\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n [filterable]=\"true\"\n [disabled]=\"isRunning\"\n placeholder=\"Use prompt's configured vendors...\"\n style=\"width: 100%;\">\n </kendo-dropdownlist>\n <div style=\"margin-top: 4px; font-size: 0.75em; color: #6c757d;\">\n Optional: Override the vendor for model inference\n </div>\n </div>\n \n <!-- Configuration ID -->\n <div class=\"option-group\">\n <label style=\"display: block; font-weight: 500; margin-bottom: 6px; color: #495057; font-size: 0.9em;\">\n <i class=\"fa-solid fa-gear\" style=\"margin-right: 6px; color: #6c757d;\"></i>\n Configuration ID\n </label>\n <kendo-textbox [(ngModel)]=\"executionOptions.configurationId\"\n placeholder=\"Optional configuration identifier...\"\n [disabled]=\"isRunning\"\n style=\"width: 100%;\">\n </kendo-textbox>\n <div style=\"margin-top: 4px; font-size: 0.75em; color: #6c757d;\">\n Environment-specific configuration identifier\n </div>\n </div>\n \n <!-- Skip Validation -->\n <div class=\"option-group\">\n <label style=\"display: flex; align-items: center; font-weight: 500; color: #495057; font-size: 0.9em;\">\n <kendo-checkbox [(ngModel)]=\"executionOptions.skipValidation\"\n [disabled]=\"isRunning\">\n </kendo-checkbox>\n <i class=\"fa-solid fa-shield-alt\" style=\"margin-right: 6px; color: #6c757d;\"></i>\n Skip Output Validation\n </label>\n <div style=\"margin-top: 4px; margin-left: 24px; font-size: 0.75em; color: #6c757d;\">\n Bypass output format validation for faster execution\n </div>\n </div>\n </div>\n </div>\n </kendo-expansionpanel>\n\n <!-- Results Section -->\n <kendo-expansionpanel \n [(expanded)]=\"resultsExpanded\"\n style=\"margin-bottom: 16px; flex: 1; display: flex; flex-direction: column;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-chart-line\" style=\"color: #6c757d;\"></i>\n Execution Results\n @if (executionResult) {\n <span class=\"badge\" \n [style.background]=\"executionResult.success ? '#28a745' : '#dc3545'\"\n style=\"color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ executionResult.success ? 'Success' : 'Error' }}\n </span>\n }\n </span>\n </ng-template>\n \n <div style=\"padding: 12px 0; flex: 1; display: flex; flex-direction: column;\">\n @if (isRunning) {\n <div class=\"loading-state\" style=\"display: flex; align-items: center; justify-content: center; padding: 40px; flex: 1;\">\n <i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 24px; color: #6c757d; margin-right: 12px;\"></i>\n <span style=\"color: #6c757d;\">Executing AI prompt...</span>\n </div>\n } @else if (executionResult) {\n <div style=\"flex: 1; display: flex; flex-direction: column;\">\n <!-- Result Header with Stats -->\n <div style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 16px; padding: 12px; background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 6px;\">\n <div style=\"text-align: center;\">\n <div style=\"font-size: 0.75em; color: #6c757d; margin-bottom: 2px;\">STATUS</div>\n <div [style.color]=\"executionResult.success ? '#28a745' : '#dc3545'\" style=\"font-weight: 600;\">\n {{ executionResult.success ? 'Success' : 'Failed' }}\n </div>\n </div>\n @if (executionResult.executionTimeMs) {\n <div style=\"text-align: center;\">\n <div style=\"font-size: 0.75em; color: #6c757d; margin-bottom: 2px;\">EXECUTION TIME</div>\n <div style=\"font-weight: 600; color: #495057;\">{{ executionResult.executionTimeMs }}ms</div>\n </div>\n }\n @if (executionResult.tokensUsed) {\n <div style=\"text-align: center;\">\n <div style=\"font-size: 0.75em; color: #6c757d; margin-bottom: 2px;\">TOKENS USED</div>\n <div style=\"font-weight: 600; color: #495057;\">{{ executionResult.tokensUsed }}</div>\n </div>\n }\n @if (executionResult.promptRunId) {\n <div style=\"text-align: center;\">\n <div style=\"font-size: 0.75em; color: #6c757d; margin-bottom: 2px;\">RUN ID</div>\n <div style=\"font-weight: 600; color: #495057; font-size: 0.8em;\">{{ executionResult.promptRunId }}</div>\n </div>\n }\n </div>\n\n <!-- Result Content -->\n <div style=\"flex: 1; overflow-y: auto; padding-right: 8px;\">\n @if (executionResult.success && executionResult.output) {\n <div style=\"margin-bottom: 16px;\">\n <h6 style=\"margin: 0 0 8px 0; color: #495057; display: flex; align-items: center; gap: 6px;\">\n <i class=\"fa-solid fa-check-circle\" style=\"color: #28a745;\"></i>\n Output\n </h6>\n <div style=\"background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 4px; padding: 12px; font-family: 'Courier New', monospace; font-size: 0.9em; white-space: pre-wrap; overflow: auto; max-height: 300px;\">{{ executionResult.output }}</div>\n </div>\n }\n \n @if (executionResult.error) {\n <div style=\"margin-bottom: 16px;\">\n <h6 style=\"margin: 0 0 8px 0; color: #dc3545; display: flex; align-items: center; gap: 6px;\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n Error\n </h6>\n <div style=\"background: #f8d7da; border: 1px solid #f5c6cb; border-radius: 4px; padding: 12px; color: #721c24; font-size: 0.9em; white-space: pre-wrap; overflow: auto; max-height: 300px;\">{{ executionResult.error }}</div>\n </div>\n }\n \n @if (executionResult.parsedResult && executionResult.parsedResult !== executionResult.output) {\n <div style=\"margin-bottom: 16px;\">\n <h6 style=\"margin: 0 0 8px 0; color: #495057; display: flex; align-items: center; gap: 6px;\">\n <i class=\"fa-solid fa-code\" style=\"color: #17a2b8;\"></i>\n Parsed Result\n </h6>\n <div style=\"background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 4px; padding: 12px; font-family: 'Courier New', monospace; font-size: 0.9em; white-space: pre-wrap; overflow: auto; max-height: 200px;\">{{ executionResult.parsedResult }}</div>\n </div>\n }\n \n @if (executionResult.validationResult) {\n <div style=\"margin-bottom: 16px;\">\n <h6 style=\"margin: 0 0 8px 0; color: #495057; display: flex; align-items: center; gap: 6px;\">\n <i class=\"fa-solid fa-shield-alt\" style=\"color: #ffc107;\"></i>\n Validation Result\n </h6>\n <div style=\"background: #fff3cd; border: 1px solid #ffeaa7; border-radius: 4px; padding: 12px; color: #856404; font-size: 0.9em; white-space: pre-wrap; overflow: auto; max-height: 150px;\">{{ executionResult.validationResult }}</div>\n </div>\n }\n </div>\n </div>\n } @else {\n <div style=\"display: flex; align-items: center; justify-content: center; padding: 40px; color: #6c757d; flex: 1;\">\n <div style=\"text-align: center;\">\n <i class=\"fa-solid fa-play-circle\" style=\"font-size: 3em; margin-bottom: 12px; opacity: 0.3;\"></i>\n <p style=\"margin: 0;\">No execution results yet. Run the prompt to see results here.</p>\n </div>\n </div>\n }\n </div>\n </kendo-expansionpanel>\n }\n </div>\n\n <!-- Dialog Actions -->\n <kendo-dialog-actions>\n <kendo-button fillMode=\"outline\" (click)=\"close()\">\n Close\n </kendo-button>\n \n @if (executionResult) {\n <kendo-button fillMode=\"outline\" themeColor=\"info\" (click)=\"saveResults()\">\n <i class=\"fa-solid fa-download\"></i> Save Results\n </kendo-button>\n }\n \n <kendo-button themeColor=\"primary\" \n (click)=\"runAIPrompt()\" \n [disabled]=\"isRunning || isLoading\">\n @if (isRunning) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Running...\n } @else {\n <i class=\"fa-solid fa-play\"></i> Run Prompt\n }\n </kendo-button>\n </kendo-dialog-actions>\n</kendo-dialog>", styles: [".dialog-content {\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n.section-header h6 {\n font-size: 0.9em;\n}\n\n.parameter-row:hover {\n background-color: #f8f9fa !important;\n}\n\n.option-group label {\n display: flex;\n align-items: center;\n}\n\n.loading-state {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n.badge {\n display: inline-block;\n font-size: 0.7em;\n line-height: 1;\n}\n\n.execution-results {\n transition: box-shadow 0.2s ease;\n}\n\n.execution-results:hover {\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\n.result-header {\n transition: background-color 0.2s ease;\n}\n\n.result-content {\n line-height: 1.4;\n}\n\n.result-content pre {\n word-wrap: break-word;\n white-space: pre-wrap;\n}\n\n/* Kendo UI overrides for better integration */\n.ai-prompt-execution-dialog kendo-textbox,\n.ai-prompt-execution-dialog kendo-textarea,\n.ai-prompt-execution-dialog kendo-dropdownlist {\n width: 100%;\n}\n\n.ai-prompt-execution-dialog kendo-button {\n min-width: auto;\n}\n\n.ai-prompt-execution-dialog kendo-checkbox {\n margin-right: 8px;\n}\n\n/* Grid layouts for responsive design */\n@media (max-width: 768px) {\n .options-content > div {\n grid-template-columns: 1fr !important;\n }\n \n .parameter-row {\n grid-template-columns: 1fr !important;\n gap: 8px !important;\n }\n}"] }]
|
|
819
|
+
args: [{ selector: 'mj-ai-prompt-execution-dialog', template: "<kendo-dialog *ngIf=\"_isVisible\"\n [minWidth]=\"700\"\n [width]=\"900\"\n [height]=\"850\"\n (close)=\"close()\"\n [title]=\"'Execute AI Prompt: ' + (aiPrompt?.Name || 'Unknown')\">\n \n <div class=\"dialog-content\" style=\"display: flex; flex-direction: column; height: 100%; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\">\n \n <!-- Header Section -->\n <div class=\"header-section\" style=\"margin-bottom: 20px; padding-bottom: 16px; border-bottom: 2px solid #e9ecef;\">\n <div style=\"display: flex; align-items: center; gap: 12px; margin-bottom: 8px;\">\n <i class=\"fa-solid fa-robot\" style=\"color: #6f42c1; font-size: 1.2em;\"></i>\n <h5 style=\"margin: 0; color: #495057; font-weight: 600;\">AI Prompt Execution</h5>\n @if (aiPrompt?.ParallelizationMode && aiPrompt?.ParallelizationMode !== 'None') {\n <span class=\"badge\" style=\"background: #6f42c1; color: white; padding: 3px 8px; border-radius: 12px; font-size: 0.7em;\">\n {{ aiPrompt?.ParallelizationMode }}\n </span>\n }\n </div>\n <p style=\"margin: 0; color: #6c757d; font-size: 0.9em;\">\n Define variables for the AI prompt to process. Each variable will be available as data context during execution.\n </p>\n </div>\n\n <!-- Loading State -->\n @if (isLoading) {\n <div class=\"loading-state\" style=\"display: flex; align-items: center; justify-content: center; padding: 40px;\">\n <i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 24px; color: #6c757d; margin-right: 12px;\"></i>\n <span style=\"color: #6c757d;\">Loading prompt configuration...</span>\n </div>\n } @else {\n \n <!-- Data Context Variables Section -->\n <kendo-expansionpanel \n [(expanded)]=\"dataContextExpanded\"\n style=\"margin-bottom: 16px; flex-shrink: 0;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-database\" style=\"color: #6c757d;\"></i>\n Data Context Variables\n <span style=\"color: #dc3545; font-weight: bold;\">*</span>\n @if (dataContextVariables.length > 0) {\n <span class=\"badge\" style=\"background: #17a2b8; color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ dataContextVariables.length }}\n </span>\n }\n </span>\n </ng-template>\n \n <div style=\"padding: 12px 0;\">\n <div style=\"margin-bottom: 12px; color: #6c757d; font-size: 0.85em;\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Define variables that will be available to the AI prompt during execution. These are converted to JSON format automatically.\n </div>\n \n <!-- Variables Table -->\n @if (dataContextVariables.length > 0) {\n <div style=\"border: 1px solid #dee2e6; border-radius: 6px; background: #f8f9fa;\">\n <!-- Header -->\n <div style=\"display: grid; grid-template-columns: 200px 1fr 120px 60px; gap: 12px; padding: 12px 16px; background: #e9ecef; font-weight: 600; font-size: 0.85em; color: #495057; border-bottom: 1px solid #dee2e6;\">\n <div>Variable Name <span style=\"color: #dc3545;\">*</span></div>\n <div>Value</div>\n <div>Type</div>\n <div>Actions</div>\n </div>\n \n <!-- Variable Rows -->\n @for (variable of dataContextVariables; track $index; let i = $index) {\n <div [style.background]=\"!variable.name.trim() ? '#fff3cd' : 'white'\"\n [style.border-left]=\"!variable.name.trim() ? '3px solid #ffc107' : 'none'\"\n style=\"display: grid; grid-template-columns: 200px 1fr 120px 60px; gap: 12px; padding: 12px 16px; border-bottom: 1px solid #e9ecef; align-items: center;\">\n \n <!-- Variable Name -->\n <div>\n <kendo-textbox [(ngModel)]=\"variable.name\"\n [name]=\"'varName_' + i\"\n placeholder=\"Variable name...\"\n [disabled]=\"isRunning\"\n (valueChange)=\"updateDataContextFromVariables()\"\n style=\"width: 100%; font-size: 0.9em;\">\n </kendo-textbox>\n </div>\n \n <!-- Variable Value -->\n <div>\n @if (variable.type === 'object') {\n <kendo-textarea [(ngModel)]=\"variable.value\"\n [name]=\"'varValue_' + i\"\n [rows]=\"2\"\n placeholder=\"JSON object...\"\n [disabled]=\"isRunning\"\n (valueChange)=\"updateDataContextFromVariables()\"\n style=\"width: 100%; font-size: 0.85em; font-family: 'Courier New', monospace;\">\n </kendo-textarea>\n } @else if (variable.type === 'boolean') {\n <kendo-dropdownlist [(ngModel)]=\"variable.value\"\n [name]=\"'varValue_' + i\"\n [data]=\"[{text: 'True', value: 'true'}, {text: 'False', value: 'false'}]\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n [disabled]=\"isRunning\"\n (valueChange)=\"updateDataContextFromVariables()\"\n style=\"width: 100%; font-size: 0.9em;\">\n </kendo-dropdownlist>\n } @else {\n <kendo-textbox [(ngModel)]=\"variable.value\"\n [name]=\"'varValue_' + i\"\n [placeholder]=\"variable.type === 'number' ? 'Enter number...' : 'Enter text...'\"\n [disabled]=\"isRunning\"\n (valueChange)=\"updateDataContextFromVariables()\"\n style=\"width: 100%; font-size: 0.9em;\">\n </kendo-textbox>\n }\n </div>\n \n <!-- Variable Type -->\n <div>\n <kendo-dropdownlist [(ngModel)]=\"variable.type\"\n [name]=\"'varType_' + i\"\n [data]=\"[{text: 'String', value: 'string'}, {text: 'Number', value: 'number'}, {text: 'Boolean', value: 'boolean'}, {text: 'Object', value: 'object'}]\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n [disabled]=\"isRunning\"\n (valueChange)=\"updateDataContextFromVariables()\"\n style=\"width: 100%; font-size: 0.85em;\">\n </kendo-dropdownlist>\n </div>\n \n <!-- Actions -->\n <div style=\"text-align: center;\">\n <kendo-button fillMode=\"flat\" themeColor=\"error\" size=\"small\"\n (click)=\"removeDataContextVariable(i)\"\n [disabled]=\"isRunning\"\n title=\"Remove variable\">\n <i class=\"fa-solid fa-times\"></i>\n </kendo-button>\n </div>\n </div>\n }\n \n <!-- Add Variable Row -->\n <div style=\"padding: 12px 16px; text-align: center; background: white; border-top: 1px solid #dee2e6;\">\n <kendo-button fillMode=\"outline\" themeColor=\"success\" size=\"small\"\n (click)=\"addDataContextVariable()\"\n [disabled]=\"isRunning\">\n <i class=\"fa-solid fa-plus\"></i> Add Variable\n </kendo-button>\n </div>\n </div>\n } @else {\n <div style=\"text-align: center; padding: 20px; color: #6c757d;\">\n <i class=\"fa-solid fa-info-circle\" style=\"font-size: 2em; margin-bottom: 12px; opacity: 0.5;\"></i>\n <p style=\"margin: 0 0 12px 0;\">No variables defined yet</p>\n <kendo-button themeColor=\"primary\" size=\"small\"\n (click)=\"addDataContextVariable()\"\n [disabled]=\"isRunning\">\n <i class=\"fa-solid fa-plus\"></i> Add First Variable\n </kendo-button>\n </div>\n }\n \n <!-- Generated JSON Preview -->\n @if (dataContext) {\n <div style=\"margin-top: 16px;\">\n <div style=\"display: flex; align-items: center; gap: 8px; margin-bottom: 8px;\">\n <i class=\"fa-solid fa-code\" style=\"color: #6c757d; font-size: 0.9em;\"></i>\n <span style=\"font-weight: 600; color: #495057; font-size: 0.9em;\">Generated JSON:</span>\n </div>\n <div style=\"background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 4px; padding: 12px; font-family: 'Courier New', monospace; font-size: 0.85em; white-space: pre-wrap; overflow: auto; max-height: 150px;\">{{ dataContext }}</div>\n </div>\n }\n </div>\n </kendo-expansionpanel>\n\n <!-- Execution Options Section -->\n <kendo-expansionpanel \n [(expanded)]=\"optionsExpanded\"\n style=\"margin-bottom: 16px; flex-shrink: 0;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-cogs\" style=\"color: #6c757d;\"></i>\n Execution Options\n </span>\n </ng-template>\n \n <div style=\"padding: 12px 0;\">\n <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 16px;\">\n \n <!-- Model Selection -->\n <div class=\"option-group\">\n <label style=\"display: block; font-weight: 500; margin-bottom: 6px; color: #495057; font-size: 0.9em;\">\n <i class=\"fa-solid fa-microchip\" style=\"margin-right: 6px; color: #6c757d;\"></i>\n AI Model Override\n </label>\n <kendo-dropdownlist [(ngModel)]=\"executionOptions.modelId\"\n [data]=\"availableModels\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n [filterable]=\"true\"\n [disabled]=\"isRunning\"\n placeholder=\"Use prompt's configured models...\"\n style=\"width: 100%;\">\n </kendo-dropdownlist>\n <div style=\"margin-top: 4px; font-size: 0.75em; color: #6c757d;\">\n Optional: Override the prompt's configured models\n </div>\n </div>\n \n <!-- Vendor Selection -->\n <div class=\"option-group\">\n <label style=\"display: block; font-weight: 500; margin-bottom: 6px; color: #495057; font-size: 0.9em;\">\n <i class=\"fa-solid fa-server\" style=\"margin-right: 6px; color: #6c757d;\"></i>\n AI Vendor Override\n </label>\n <kendo-dropdownlist [(ngModel)]=\"executionOptions.vendorId\"\n [data]=\"availableVendors\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n [filterable]=\"true\"\n [disabled]=\"isRunning\"\n placeholder=\"Use prompt's configured vendors...\"\n style=\"width: 100%;\">\n </kendo-dropdownlist>\n <div style=\"margin-top: 4px; font-size: 0.75em; color: #6c757d;\">\n Optional: Override the vendor for model inference\n </div>\n </div>\n \n <!-- Response Format -->\n <div class=\"option-group\">\n <label style=\"display: block; font-weight: 500; margin-bottom: 6px; color: #495057; font-size: 0.9em;\">\n <i class=\"fa-solid fa-file-alt\" style=\"margin-right: 6px; color: #6c757d;\"></i>\n Response Format\n </label>\n <kendo-dropdownlist [(ngModel)]=\"selectedResponseFormat\"\n [data]=\"responseFormatOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n [disabled]=\"isRunning\"\n placeholder=\"Select format...\"\n style=\"width: 100%;\">\n </kendo-dropdownlist>\n <div style=\"margin-top: 4px; font-size: 0.75em; color: #6c757d;\">\n Expected format for AI response (defaults to prompt setting)\n </div>\n </div>\n \n <!-- Configuration ID -->\n <div class=\"option-group\">\n <label style=\"display: block; font-weight: 500; margin-bottom: 6px; color: #495057; font-size: 0.9em;\">\n <i class=\"fa-solid fa-gear\" style=\"margin-right: 6px; color: #6c757d;\"></i>\n Configuration ID\n </label>\n <kendo-textbox [(ngModel)]=\"executionOptions.configurationId\"\n placeholder=\"Optional configuration identifier...\"\n [disabled]=\"isRunning\"\n style=\"width: 100%;\">\n </kendo-textbox>\n <div style=\"margin-top: 4px; font-size: 0.75em; color: #6c757d;\">\n Environment-specific configuration identifier\n </div>\n </div>\n \n <!-- Skip Validation -->\n <div class=\"option-group\">\n <label style=\"display: flex; align-items: center; font-weight: 500; color: #495057; font-size: 0.9em;\">\n <kendo-checkbox [(ngModel)]=\"executionOptions.skipValidation\"\n [disabled]=\"isRunning\">\n </kendo-checkbox>\n <i class=\"fa-solid fa-shield-alt\" style=\"margin-right: 6px; color: #6c757d;\"></i>\n Skip Output Validation\n </label>\n <div style=\"margin-top: 4px; margin-left: 24px; font-size: 0.75em; color: #6c757d;\">\n Bypass output format validation for faster execution\n </div>\n </div>\n </div>\n </div>\n </kendo-expansionpanel>\n\n <!-- Results Section -->\n <kendo-expansionpanel \n [(expanded)]=\"resultsExpanded\"\n style=\"margin-bottom: 16px; flex: 1; display: flex; flex-direction: column;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-chart-line\" style=\"color: #6c757d;\"></i>\n Execution Results\n @if (executionResult) {\n <span class=\"badge\" \n [style.background]=\"executionResult.success ? '#28a745' : '#dc3545'\"\n style=\"color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n {{ executionResult.success ? 'Success' : 'Error' }}\n </span>\n }\n </span>\n </ng-template>\n \n <div style=\"padding: 12px 0; flex: 1; display: flex; flex-direction: column;\">\n @if (isRunning) {\n <div class=\"loading-state\" style=\"display: flex; align-items: center; justify-content: center; padding: 40px; flex: 1;\">\n <i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 24px; color: #6c757d; margin-right: 12px;\"></i>\n <span style=\"color: #6c757d;\">Executing AI prompt...</span>\n </div>\n } @else if (executionResult) {\n <div style=\"flex: 1; display: flex; flex-direction: column;\">\n <!-- Result Header with Stats -->\n <div style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 16px; padding: 12px; background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 6px;\">\n <div style=\"text-align: center;\">\n <div style=\"font-size: 0.75em; color: #6c757d; margin-bottom: 2px;\">STATUS</div>\n <div [style.color]=\"executionResult.success ? '#28a745' : '#dc3545'\" style=\"font-weight: 600;\">\n {{ executionResult.success ? 'Success' : 'Failed' }}\n </div>\n </div>\n @if (executionResult.executionTimeMs) {\n <div style=\"text-align: center;\">\n <div style=\"font-size: 0.75em; color: #6c757d; margin-bottom: 2px;\">EXECUTION TIME</div>\n <div style=\"font-weight: 600; color: #495057;\">{{ executionResult.executionTimeMs }}ms</div>\n </div>\n }\n @if (executionResult.tokensUsed) {\n <div style=\"text-align: center;\">\n <div style=\"font-size: 0.75em; color: #6c757d; margin-bottom: 2px;\">TOKENS USED</div>\n <div style=\"font-weight: 600; color: #495057;\">{{ executionResult.tokensUsed }}</div>\n </div>\n }\n @if (executionResult.promptRunId) {\n <div style=\"text-align: center;\">\n <div style=\"font-size: 0.75em; color: #6c757d; margin-bottom: 2px;\">RUN ID</div>\n <div style=\"font-weight: 600; color: #495057; font-size: 0.8em;\">{{ executionResult.promptRunId }}</div>\n </div>\n }\n </div>\n\n <!-- Result Content -->\n <div style=\"flex: 1; overflow-y: auto; padding-right: 8px;\">\n @if (executionResult.success && executionResult.output) {\n <div style=\"margin-bottom: 16px;\">\n <h6 style=\"margin: 0 0 8px 0; color: #495057; display: flex; align-items: center; gap: 6px;\">\n <i class=\"fa-solid fa-check-circle\" style=\"color: #28a745;\"></i>\n Output\n </h6>\n <div style=\"background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 4px; padding: 12px; font-family: 'Courier New', monospace; font-size: 0.9em; white-space: pre-wrap; overflow: auto; max-height: 300px;\">{{ executionResult.output }}</div>\n </div>\n }\n \n @if (executionResult.error) {\n <div style=\"margin-bottom: 16px;\">\n <h6 style=\"margin: 0 0 8px 0; color: #dc3545; display: flex; align-items: center; gap: 6px;\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n Error\n </h6>\n <div style=\"background: #f8d7da; border: 1px solid #f5c6cb; border-radius: 4px; padding: 12px; color: #721c24; font-size: 0.9em; white-space: pre-wrap; overflow: auto; max-height: 300px;\">{{ executionResult.error }}</div>\n </div>\n }\n \n @if (executionResult.parsedResult && executionResult.parsedResult !== executionResult.output) {\n <div style=\"margin-bottom: 16px;\">\n <h6 style=\"margin: 0 0 8px 0; color: #495057; display: flex; align-items: center; gap: 6px;\">\n <i class=\"fa-solid fa-code\" style=\"color: #17a2b8;\"></i>\n Parsed Result\n </h6>\n <div style=\"background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 4px; padding: 12px; font-family: 'Courier New', monospace; font-size: 0.9em; white-space: pre-wrap; overflow: auto; max-height: 200px;\">{{ executionResult.parsedResult }}</div>\n </div>\n }\n \n @if (executionResult.validationResult) {\n <div style=\"margin-bottom: 16px;\">\n <h6 style=\"margin: 0 0 8px 0; color: #495057; display: flex; align-items: center; gap: 6px;\">\n <i class=\"fa-solid fa-shield-alt\" style=\"color: #ffc107;\"></i>\n Validation Result\n </h6>\n <div style=\"background: #fff3cd; border: 1px solid #ffeaa7; border-radius: 4px; padding: 12px; color: #856404; font-size: 0.9em; white-space: pre-wrap; overflow: auto; max-height: 150px;\">{{ executionResult.validationResult }}</div>\n </div>\n }\n </div>\n </div>\n } @else {\n <div style=\"display: flex; align-items: center; justify-content: center; padding: 40px; color: #6c757d; flex: 1;\">\n <div style=\"text-align: center;\">\n <i class=\"fa-solid fa-play-circle\" style=\"font-size: 3em; margin-bottom: 12px; opacity: 0.3;\"></i>\n <p style=\"margin: 0;\">No execution results yet. Run the prompt to see results here.</p>\n </div>\n </div>\n }\n </div>\n </kendo-expansionpanel>\n }\n </div>\n\n <!-- Dialog Actions -->\n <kendo-dialog-actions>\n <kendo-button fillMode=\"outline\" (click)=\"close()\">\n Close\n </kendo-button>\n \n @if (executionResult) {\n <kendo-button fillMode=\"outline\" themeColor=\"info\" (click)=\"saveResults()\">\n <i class=\"fa-solid fa-download\"></i> Save Results\n </kendo-button>\n }\n \n <kendo-button themeColor=\"primary\" \n (click)=\"runAIPrompt()\" \n [disabled]=\"isRunning || isLoading\">\n @if (isRunning) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Running...\n } @else {\n <i class=\"fa-solid fa-play\"></i> Run Prompt\n }\n </kendo-button>\n </kendo-dialog-actions>\n</kendo-dialog>", styles: [".dialog-content {\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n.section-header h6 {\n font-size: 0.9em;\n}\n\n.parameter-row:hover {\n background-color: #f8f9fa !important;\n}\n\n.option-group label {\n display: flex;\n align-items: center;\n}\n\n.loading-state {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n.badge {\n display: inline-block;\n font-size: 0.7em;\n line-height: 1;\n}\n\n.execution-results {\n transition: box-shadow 0.2s ease;\n}\n\n.execution-results:hover {\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n\n.result-header {\n transition: background-color 0.2s ease;\n}\n\n.result-content {\n line-height: 1.4;\n}\n\n.result-content pre {\n word-wrap: break-word;\n white-space: pre-wrap;\n}\n\n/* Kendo UI overrides for better integration */\n.ai-prompt-execution-dialog kendo-textbox,\n.ai-prompt-execution-dialog kendo-textarea,\n.ai-prompt-execution-dialog kendo-dropdownlist {\n width: 100%;\n}\n\n.ai-prompt-execution-dialog kendo-button {\n min-width: auto;\n}\n\n.ai-prompt-execution-dialog kendo-checkbox {\n margin-right: 8px;\n}\n\n/* Grid layouts for responsive design */\n@media (max-width: 768px) {\n .options-content > div {\n grid-template-columns: 1fr !important;\n }\n \n .parameter-row {\n grid-template-columns: 1fr !important;\n gap: 8px !important;\n }\n}"] }]
|
|
782
820
|
}], () => [], { aiPrompt: [{
|
|
783
821
|
type: Input
|
|
784
822
|
}], isVisible: [{
|