@memberjunction/ng-flow-editor 5.42.0 → 5.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/agent-editor/agent-properties-panel.component.js +210 -226
- package/dist/lib/agent-editor/agent-properties-panel.component.js.map +1 -1
- package/dist/lib/agent-editor/agent-step-list.component.d.ts.map +1 -1
- package/dist/lib/agent-editor/agent-step-list.component.js +19 -26
- package/dist/lib/agent-editor/agent-step-list.component.js.map +1 -1
- package/dist/lib/components/flow-editor.component.d.ts +2 -0
- package/dist/lib/components/flow-editor.component.d.ts.map +1 -1
- package/dist/lib/components/flow-editor.component.js +27 -35
- package/dist/lib/components/flow-editor.component.js.map +1 -1
- package/dist/lib/flow-editor.module.d.ts +2 -1
- package/dist/lib/flow-editor.module.d.ts.map +1 -1
- package/dist/lib/flow-editor.module.js +10 -3
- package/dist/lib/flow-editor.module.js.map +1 -1
- package/package.json +8 -6
- package/dist/__tests__/exports.test.d.ts +0 -2
- package/dist/__tests__/exports.test.d.ts.map +0 -1
- package/dist/__tests__/exports.test.js +0 -17
- package/dist/__tests__/exports.test.js.map +0 -1
- package/dist/__tests__/index.test.d.ts +0 -2
- package/dist/__tests__/index.test.d.ts.map +0 -1
- package/dist/__tests__/index.test.js +0 -7
- package/dist/__tests__/index.test.js.map +0 -1
|
@@ -4,28 +4,30 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
import * as i2 from "@angular/forms";
|
|
6
6
|
import * as i3 from "@memberjunction/ng-code-editor";
|
|
7
|
+
import * as i4 from "@memberjunction/ng-ui-components";
|
|
7
8
|
function AgentPropertiesPanelComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
8
|
-
i0.ɵɵ
|
|
9
|
-
i0.ɵɵelement(1, "i", 2);
|
|
10
|
-
i0.ɵɵelementStart(2, "p");
|
|
11
|
-
i0.ɵɵtext(3, "Select a step or connection to view its properties");
|
|
12
|
-
i0.ɵɵelementEnd()();
|
|
9
|
+
i0.ɵɵelement(0, "mj-empty-state", 1);
|
|
13
10
|
} }
|
|
14
11
|
function AgentPropertiesPanelComponent_Conditional_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
15
|
-
i0.ɵɵelementStart(0, "span",
|
|
12
|
+
i0.ɵɵelementStart(0, "span", 16);
|
|
16
13
|
i0.ɵɵtext(1, "Start");
|
|
17
14
|
i0.ɵɵelementEnd();
|
|
18
15
|
} }
|
|
19
|
-
function
|
|
16
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_21_Template(rf, ctx) { if (rf & 1) {
|
|
17
|
+
i0.ɵɵelementStart(0, "span");
|
|
18
|
+
i0.ɵɵtext(1, "General");
|
|
19
|
+
i0.ɵɵelementEnd();
|
|
20
|
+
} }
|
|
21
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
20
22
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
21
23
|
i0.ɵɵelementStart(0, "input", 30);
|
|
22
|
-
i0.ɵɵlistener("input", function
|
|
24
|
+
i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_4_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnNameChange(ctx_r1.InputValue($event))); });
|
|
23
25
|
i0.ɵɵelementEnd();
|
|
24
26
|
} if (rf & 2) {
|
|
25
27
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
26
28
|
i0.ɵɵproperty("value", ctx_r1.Step.Name);
|
|
27
29
|
} }
|
|
28
|
-
function
|
|
30
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
29
31
|
i0.ɵɵelementStart(0, "div", 26);
|
|
30
32
|
i0.ɵɵtext(1);
|
|
31
33
|
i0.ɵɵelementEnd();
|
|
@@ -34,16 +36,16 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_
|
|
|
34
36
|
i0.ɵɵadvance();
|
|
35
37
|
i0.ɵɵtextInterpolate(ctx_r1.Step.Name);
|
|
36
38
|
} }
|
|
37
|
-
function
|
|
39
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
38
40
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
39
41
|
i0.ɵɵelementStart(0, "textarea", 31);
|
|
40
|
-
i0.ɵɵlistener("input", function
|
|
42
|
+
i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_9_Template_textarea_input_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnDescriptionChange(ctx_r1.InputValue($event))); });
|
|
41
43
|
i0.ɵɵelementEnd();
|
|
42
44
|
} if (rf & 2) {
|
|
43
45
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
44
46
|
i0.ɵɵproperty("value", ctx_r1.Step.Description || "");
|
|
45
47
|
} }
|
|
46
|
-
function
|
|
48
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
47
49
|
i0.ɵɵelementStart(0, "div", 26);
|
|
48
50
|
i0.ɵɵtext(1);
|
|
49
51
|
i0.ɵɵelementEnd();
|
|
@@ -52,10 +54,10 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_
|
|
|
52
54
|
i0.ɵɵadvance();
|
|
53
55
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.Step.Description || "\u2014", " ");
|
|
54
56
|
} }
|
|
55
|
-
function
|
|
57
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
56
58
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
57
59
|
i0.ɵɵelementStart(0, "select", 32);
|
|
58
|
-
i0.ɵɵlistener("change", function
|
|
60
|
+
i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_14_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnStatusChange(ctx_r1.InputValue($event))); });
|
|
59
61
|
i0.ɵɵelementStart(1, "option", 33);
|
|
60
62
|
i0.ɵɵtext(2, "Active");
|
|
61
63
|
i0.ɵɵelementEnd();
|
|
@@ -69,9 +71,9 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_
|
|
|
69
71
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
70
72
|
i0.ɵɵproperty("value", ctx_r1.Step.Status);
|
|
71
73
|
} }
|
|
72
|
-
function
|
|
74
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
73
75
|
i0.ɵɵelementStart(0, "div", 26);
|
|
74
|
-
i0.ɵɵelement(1, "span",
|
|
76
|
+
i0.ɵɵelement(1, "span", 14);
|
|
75
77
|
i0.ɵɵtext(2);
|
|
76
78
|
i0.ɵɵelementEnd();
|
|
77
79
|
} if (rf & 2) {
|
|
@@ -81,10 +83,10 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_
|
|
|
81
83
|
i0.ɵɵadvance();
|
|
82
84
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.Step.Status, " ");
|
|
83
85
|
} }
|
|
84
|
-
function
|
|
86
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
85
87
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
86
88
|
i0.ɵɵelementStart(0, "div", 29)(1, "label", 36)(2, "input", 37);
|
|
87
|
-
i0.ɵɵlistener("change", function
|
|
89
|
+
i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_16_Template_input_change_2_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnStartingStepChange(ctx_r1.CheckedValue($event))); });
|
|
88
90
|
i0.ɵɵelementEnd();
|
|
89
91
|
i0.ɵɵtext(3, " Starting Step ");
|
|
90
92
|
i0.ɵɵelementEnd()();
|
|
@@ -93,35 +95,35 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Conditional_
|
|
|
93
95
|
i0.ɵɵadvance(2);
|
|
94
96
|
i0.ɵɵproperty("checked", ctx_r1.Step.StartingStep);
|
|
95
97
|
} }
|
|
96
|
-
function
|
|
98
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
97
99
|
i0.ɵɵelementStart(0, "div", 24)(1, "label");
|
|
98
100
|
i0.ɵɵtext(2, "Starting Step");
|
|
99
101
|
i0.ɵɵelementEnd();
|
|
100
|
-
i0.ɵɵelementStart(3, "div", 26)(4, "span",
|
|
102
|
+
i0.ɵɵelementStart(3, "div", 26)(4, "span", 16);
|
|
101
103
|
i0.ɵɵtext(5, "Yes \u2014 this is the entry point");
|
|
102
104
|
i0.ɵɵelementEnd()()();
|
|
103
105
|
} }
|
|
104
|
-
function
|
|
105
|
-
i0.ɵɵelementStart(0, "div",
|
|
106
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Template(rf, ctx) { if (rf & 1) {
|
|
107
|
+
i0.ɵɵelementStart(0, "div", 23)(1, "div", 24)(2, "label");
|
|
106
108
|
i0.ɵɵtext(3, "Name");
|
|
107
109
|
i0.ɵɵelementEnd();
|
|
108
|
-
i0.ɵɵconditionalCreate(4,
|
|
109
|
-
i0.ɵɵconditionalCreate(5,
|
|
110
|
+
i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_4_Template, 1, 1, "input", 25);
|
|
111
|
+
i0.ɵɵconditionalCreate(5, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_5_Template, 2, 1, "div", 26);
|
|
110
112
|
i0.ɵɵelementEnd();
|
|
111
113
|
i0.ɵɵelementStart(6, "div", 24)(7, "label");
|
|
112
114
|
i0.ɵɵtext(8, "Description");
|
|
113
115
|
i0.ɵɵelementEnd();
|
|
114
|
-
i0.ɵɵconditionalCreate(9,
|
|
115
|
-
i0.ɵɵconditionalCreate(10,
|
|
116
|
+
i0.ɵɵconditionalCreate(9, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_9_Template, 1, 1, "textarea", 27);
|
|
117
|
+
i0.ɵɵconditionalCreate(10, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_10_Template, 2, 1, "div", 26);
|
|
116
118
|
i0.ɵɵelementEnd();
|
|
117
119
|
i0.ɵɵelementStart(11, "div", 24)(12, "label");
|
|
118
120
|
i0.ɵɵtext(13, "Status");
|
|
119
121
|
i0.ɵɵelementEnd();
|
|
120
|
-
i0.ɵɵconditionalCreate(14,
|
|
121
|
-
i0.ɵɵconditionalCreate(15,
|
|
122
|
+
i0.ɵɵconditionalCreate(14, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_14_Template, 7, 1, "select", 28);
|
|
123
|
+
i0.ɵɵconditionalCreate(15, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_15_Template, 3, 3, "div", 26);
|
|
122
124
|
i0.ɵɵelementEnd();
|
|
123
|
-
i0.ɵɵconditionalCreate(16,
|
|
124
|
-
i0.ɵɵconditionalCreate(17,
|
|
125
|
+
i0.ɵɵconditionalCreate(16, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_16_Template, 4, 1, "div", 29);
|
|
126
|
+
i0.ɵɵconditionalCreate(17, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Conditional_17_Template, 6, 0, "div", 24);
|
|
125
127
|
i0.ɵɵelementEnd();
|
|
126
128
|
} if (rf & 2) {
|
|
127
129
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -142,10 +144,15 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Template(rf,
|
|
|
142
144
|
i0.ɵɵadvance();
|
|
143
145
|
i0.ɵɵconditional(ctx_r1.ReadOnly && ctx_r1.Step.StartingStep ? 17 : -1);
|
|
144
146
|
} }
|
|
145
|
-
function
|
|
147
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_24_Template(rf, ctx) { if (rf & 1) {
|
|
148
|
+
i0.ɵɵelementStart(0, "span");
|
|
149
|
+
i0.ɵɵtext(1, "Configuration");
|
|
150
|
+
i0.ɵɵelementEnd();
|
|
151
|
+
} }
|
|
152
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
146
153
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
147
154
|
i0.ɵɵelementStart(0, "select", 32);
|
|
148
|
-
i0.ɵɵlistener("change", function
|
|
155
|
+
i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_1_Conditional_3_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnLoopBodyTypeChange(ctx_r1.InputValue($event))); });
|
|
149
156
|
i0.ɵɵelementStart(1, "option", 38);
|
|
150
157
|
i0.ɵɵtext(2, "Action");
|
|
151
158
|
i0.ɵɵelementEnd();
|
|
@@ -159,7 +166,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
159
166
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
160
167
|
i0.ɵɵproperty("value", ctx_r1.Step.LoopBodyType || "Action");
|
|
161
168
|
} }
|
|
162
|
-
function
|
|
169
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
163
170
|
i0.ɵɵelementStart(0, "div", 26);
|
|
164
171
|
i0.ɵɵtext(1);
|
|
165
172
|
i0.ɵɵelementEnd();
|
|
@@ -168,12 +175,12 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
168
175
|
i0.ɵɵadvance();
|
|
169
176
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.Step.LoopBodyType || "Action", " ");
|
|
170
177
|
} }
|
|
171
|
-
function
|
|
178
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
172
179
|
i0.ɵɵelementStart(0, "div", 24)(1, "label");
|
|
173
180
|
i0.ɵɵtext(2, "Loop Body Type");
|
|
174
181
|
i0.ɵɵelementEnd();
|
|
175
|
-
i0.ɵɵconditionalCreate(3,
|
|
176
|
-
i0.ɵɵconditionalCreate(4,
|
|
182
|
+
i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_1_Conditional_3_Template, 7, 1, "select", 28);
|
|
183
|
+
i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_1_Conditional_4_Template, 2, 1, "div", 26);
|
|
177
184
|
i0.ɵɵelementEnd();
|
|
178
185
|
} if (rf & 2) {
|
|
179
186
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -182,7 +189,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
182
189
|
i0.ɵɵadvance();
|
|
183
190
|
i0.ɵɵconditional(ctx_r1.ReadOnly ? 4 : -1);
|
|
184
191
|
} }
|
|
185
|
-
function
|
|
192
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Conditional_3_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
186
193
|
i0.ɵɵelementStart(0, "option", 42);
|
|
187
194
|
i0.ɵɵtext(1);
|
|
188
195
|
i0.ɵɵelementEnd();
|
|
@@ -192,14 +199,14 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
192
199
|
i0.ɵɵadvance();
|
|
193
200
|
i0.ɵɵtextInterpolate(action_r9.Name);
|
|
194
201
|
} }
|
|
195
|
-
function
|
|
202
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
196
203
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
197
204
|
i0.ɵɵelementStart(0, "select", 32);
|
|
198
|
-
i0.ɵɵlistener("change", function
|
|
205
|
+
i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Conditional_3_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnActionChange(ctx_r1.InputValue($event))); });
|
|
199
206
|
i0.ɵɵelementStart(1, "option", 41);
|
|
200
207
|
i0.ɵɵtext(2, "-- Select Action --");
|
|
201
208
|
i0.ɵɵelementEnd();
|
|
202
|
-
i0.ɵɵrepeaterCreate(3,
|
|
209
|
+
i0.ɵɵrepeaterCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Conditional_3_For_4_Template, 2, 2, "option", 42, i0.ɵɵrepeaterTrackByIdentity);
|
|
203
210
|
i0.ɵɵelementEnd();
|
|
204
211
|
} if (rf & 2) {
|
|
205
212
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -207,7 +214,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
207
214
|
i0.ɵɵadvance(3);
|
|
208
215
|
i0.ɵɵrepeater(ctx_r1.Actions);
|
|
209
216
|
} }
|
|
210
|
-
function
|
|
217
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
211
218
|
i0.ɵɵelementStart(0, "div", 26);
|
|
212
219
|
i0.ɵɵtext(1);
|
|
213
220
|
i0.ɵɵelementEnd();
|
|
@@ -216,12 +223,12 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
216
223
|
i0.ɵɵadvance();
|
|
217
224
|
i0.ɵɵtextInterpolate(ctx_r1.selectedActionName);
|
|
218
225
|
} }
|
|
219
|
-
function
|
|
226
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
220
227
|
i0.ɵɵelementStart(0, "div", 24)(1, "label");
|
|
221
228
|
i0.ɵɵtext(2, "Action");
|
|
222
229
|
i0.ɵɵelementEnd();
|
|
223
|
-
i0.ɵɵconditionalCreate(3,
|
|
224
|
-
i0.ɵɵconditionalCreate(4,
|
|
230
|
+
i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Conditional_3_Template, 5, 1, "select", 28);
|
|
231
|
+
i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Conditional_4_Template, 2, 1, "div", 26);
|
|
225
232
|
i0.ɵɵelementEnd();
|
|
226
233
|
} if (rf & 2) {
|
|
227
234
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -230,7 +237,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
230
237
|
i0.ɵɵadvance();
|
|
231
238
|
i0.ɵɵconditional(ctx_r1.ReadOnly ? 4 : -1);
|
|
232
239
|
} }
|
|
233
|
-
function
|
|
240
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Conditional_3_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
234
241
|
i0.ɵɵelementStart(0, "option", 42);
|
|
235
242
|
i0.ɵɵtext(1);
|
|
236
243
|
i0.ɵɵelementEnd();
|
|
@@ -240,14 +247,14 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
240
247
|
i0.ɵɵadvance();
|
|
241
248
|
i0.ɵɵtextInterpolate(prompt_r11.Name);
|
|
242
249
|
} }
|
|
243
|
-
function
|
|
250
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
244
251
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
245
252
|
i0.ɵɵelementStart(0, "select", 32);
|
|
246
|
-
i0.ɵɵlistener("change", function
|
|
253
|
+
i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Conditional_3_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnPromptChange(ctx_r1.InputValue($event))); });
|
|
247
254
|
i0.ɵɵelementStart(1, "option", 41);
|
|
248
255
|
i0.ɵɵtext(2, "-- Select Prompt --");
|
|
249
256
|
i0.ɵɵelementEnd();
|
|
250
|
-
i0.ɵɵrepeaterCreate(3,
|
|
257
|
+
i0.ɵɵrepeaterCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Conditional_3_For_4_Template, 2, 2, "option", 42, i0.ɵɵrepeaterTrackByIdentity);
|
|
251
258
|
i0.ɵɵelementEnd();
|
|
252
259
|
} if (rf & 2) {
|
|
253
260
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -255,7 +262,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
255
262
|
i0.ɵɵadvance(3);
|
|
256
263
|
i0.ɵɵrepeater(ctx_r1.Prompts);
|
|
257
264
|
} }
|
|
258
|
-
function
|
|
265
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
259
266
|
i0.ɵɵelementStart(0, "div", 26);
|
|
260
267
|
i0.ɵɵtext(1);
|
|
261
268
|
i0.ɵɵelementEnd();
|
|
@@ -264,12 +271,12 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
264
271
|
i0.ɵɵadvance();
|
|
265
272
|
i0.ɵɵtextInterpolate(ctx_r1.selectedPromptName);
|
|
266
273
|
} }
|
|
267
|
-
function
|
|
274
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
268
275
|
i0.ɵɵelementStart(0, "div", 24)(1, "label");
|
|
269
276
|
i0.ɵɵtext(2, "Prompt");
|
|
270
277
|
i0.ɵɵelementEnd();
|
|
271
|
-
i0.ɵɵconditionalCreate(3,
|
|
272
|
-
i0.ɵɵconditionalCreate(4,
|
|
278
|
+
i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Conditional_3_Template, 5, 1, "select", 28);
|
|
279
|
+
i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Conditional_4_Template, 2, 1, "div", 26);
|
|
273
280
|
i0.ɵɵelementEnd();
|
|
274
281
|
} if (rf & 2) {
|
|
275
282
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -278,7 +285,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
278
285
|
i0.ɵɵadvance();
|
|
279
286
|
i0.ɵɵconditional(ctx_r1.ReadOnly ? 4 : -1);
|
|
280
287
|
} }
|
|
281
|
-
function
|
|
288
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Conditional_3_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
282
289
|
i0.ɵɵelementStart(0, "option", 42);
|
|
283
290
|
i0.ɵɵtext(1);
|
|
284
291
|
i0.ɵɵelementEnd();
|
|
@@ -288,14 +295,14 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
288
295
|
i0.ɵɵadvance();
|
|
289
296
|
i0.ɵɵtextInterpolate(agent_r13.Name);
|
|
290
297
|
} }
|
|
291
|
-
function
|
|
298
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
292
299
|
const _r12 = i0.ɵɵgetCurrentView();
|
|
293
300
|
i0.ɵɵelementStart(0, "select", 32);
|
|
294
|
-
i0.ɵɵlistener("change", function
|
|
301
|
+
i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Conditional_3_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnSubAgentChange(ctx_r1.InputValue($event))); });
|
|
295
302
|
i0.ɵɵelementStart(1, "option", 41);
|
|
296
303
|
i0.ɵɵtext(2, "-- Select Agent --");
|
|
297
304
|
i0.ɵɵelementEnd();
|
|
298
|
-
i0.ɵɵrepeaterCreate(3,
|
|
305
|
+
i0.ɵɵrepeaterCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Conditional_3_For_4_Template, 2, 2, "option", 42, i0.ɵɵrepeaterTrackByIdentity);
|
|
299
306
|
i0.ɵɵelementEnd();
|
|
300
307
|
} if (rf & 2) {
|
|
301
308
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
@@ -303,7 +310,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
303
310
|
i0.ɵɵadvance(3);
|
|
304
311
|
i0.ɵɵrepeater(ctx_r1.Agents);
|
|
305
312
|
} }
|
|
306
|
-
function
|
|
313
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
307
314
|
i0.ɵɵelementStart(0, "div", 26);
|
|
308
315
|
i0.ɵɵtext(1);
|
|
309
316
|
i0.ɵɵelementEnd();
|
|
@@ -312,12 +319,12 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
312
319
|
i0.ɵɵadvance();
|
|
313
320
|
i0.ɵɵtextInterpolate(ctx_r1.selectedAgentName);
|
|
314
321
|
} }
|
|
315
|
-
function
|
|
322
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
316
323
|
i0.ɵɵelementStart(0, "div", 24)(1, "label");
|
|
317
324
|
i0.ɵɵtext(2, "Sub-Agent");
|
|
318
325
|
i0.ɵɵelementEnd();
|
|
319
|
-
i0.ɵɵconditionalCreate(3,
|
|
320
|
-
i0.ɵɵconditionalCreate(4,
|
|
326
|
+
i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Conditional_3_Template, 5, 1, "select", 28);
|
|
327
|
+
i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Conditional_4_Template, 2, 1, "div", 26);
|
|
321
328
|
i0.ɵɵelementEnd();
|
|
322
329
|
} if (rf & 2) {
|
|
323
330
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -326,26 +333,26 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Conditional_
|
|
|
326
333
|
i0.ɵɵadvance();
|
|
327
334
|
i0.ɵɵconditional(ctx_r1.ReadOnly ? 4 : -1);
|
|
328
335
|
} }
|
|
329
|
-
function
|
|
336
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
330
337
|
const _r14 = i0.ɵɵgetCurrentView();
|
|
331
338
|
i0.ɵɵelementStart(0, "div", 24)(1, "label");
|
|
332
339
|
i0.ɵɵtext(2, "Loop Configuration");
|
|
333
340
|
i0.ɵɵelementEnd();
|
|
334
341
|
i0.ɵɵelementStart(3, "mj-code-editor", 43);
|
|
335
|
-
i0.ɵɵlistener("change", function
|
|
342
|
+
i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_5_Template_mj_code_editor_change_3_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnConfigurationChange($event)); });
|
|
336
343
|
i0.ɵɵelementEnd()();
|
|
337
344
|
} if (rf & 2) {
|
|
338
345
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
339
346
|
i0.ɵɵadvance(3);
|
|
340
347
|
i0.ɵɵproperty("value", ctx_r1.FormatJsonDisplay(ctx_r1.Step.Configuration))("readonly", ctx_r1.ReadOnly)("lineWrapping", true);
|
|
341
348
|
} }
|
|
342
|
-
function
|
|
343
|
-
i0.ɵɵelementStart(0, "div",
|
|
344
|
-
i0.ɵɵconditionalCreate(1,
|
|
345
|
-
i0.ɵɵconditionalCreate(2,
|
|
346
|
-
i0.ɵɵconditionalCreate(3,
|
|
347
|
-
i0.ɵɵconditionalCreate(4,
|
|
348
|
-
i0.ɵɵconditionalCreate(5,
|
|
349
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Template(rf, ctx) { if (rf & 1) {
|
|
350
|
+
i0.ɵɵelementStart(0, "div", 23);
|
|
351
|
+
i0.ɵɵconditionalCreate(1, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_1_Template, 5, 2, "div", 24);
|
|
352
|
+
i0.ɵɵconditionalCreate(2, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_2_Template, 5, 2, "div", 24);
|
|
353
|
+
i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_3_Template, 5, 2, "div", 24);
|
|
354
|
+
i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_4_Template, 5, 2, "div", 24);
|
|
355
|
+
i0.ɵɵconditionalCreate(5, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Conditional_5_Template, 4, 3, "div", 24);
|
|
349
356
|
i0.ɵɵelementEnd();
|
|
350
357
|
} if (rf & 2) {
|
|
351
358
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -360,19 +367,24 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_31_Template(rf,
|
|
|
360
367
|
i0.ɵɵadvance();
|
|
361
368
|
i0.ɵɵconditional(ctx_r1.showLoopConfig ? 5 : -1);
|
|
362
369
|
} }
|
|
363
|
-
function
|
|
370
|
+
function AgentPropertiesPanelComponent_Conditional_2_Conditional_26_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
371
|
+
i0.ɵɵelementStart(0, "span");
|
|
372
|
+
i0.ɵɵtext(1, "Data Mapping");
|
|
373
|
+
i0.ɵɵelementEnd();
|
|
374
|
+
} }
|
|
375
|
+
function AgentPropertiesPanelComponent_Conditional_2_Conditional_26_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
364
376
|
const _r16 = i0.ɵɵgetCurrentView();
|
|
365
|
-
i0.ɵɵelementStart(0, "div",
|
|
377
|
+
i0.ɵɵelementStart(0, "div", 23)(1, "div", 24)(2, "label");
|
|
366
378
|
i0.ɵɵtext(3, "Input Mapping");
|
|
367
379
|
i0.ɵɵelementEnd();
|
|
368
380
|
i0.ɵɵelementStart(4, "mj-code-editor", 44);
|
|
369
|
-
i0.ɵɵlistener("change", function
|
|
381
|
+
i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_Conditional_26_ng_template_2_Template_mj_code_editor_change_4_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnInputMappingChange($event)); });
|
|
370
382
|
i0.ɵɵelementEnd()();
|
|
371
383
|
i0.ɵɵelementStart(5, "div", 24)(6, "label");
|
|
372
384
|
i0.ɵɵtext(7, "Output Mapping");
|
|
373
385
|
i0.ɵɵelementEnd();
|
|
374
386
|
i0.ɵɵelementStart(8, "mj-code-editor", 45);
|
|
375
|
-
i0.ɵɵlistener("change", function
|
|
387
|
+
i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_Conditional_26_ng_template_2_Template_mj_code_editor_change_8_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnOutputMappingChange($event)); });
|
|
376
388
|
i0.ɵɵelementEnd()()();
|
|
377
389
|
} if (rf & 2) {
|
|
378
390
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -381,28 +393,25 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_32_Conditional_
|
|
|
381
393
|
i0.ɵɵadvance(4);
|
|
382
394
|
i0.ɵɵproperty("value", ctx_r1.FormatJsonDisplay(ctx_r1.Step.ActionOutputMapping))("readonly", ctx_r1.ReadOnly)("lineWrapping", true);
|
|
383
395
|
} }
|
|
384
|
-
function
|
|
396
|
+
function AgentPropertiesPanelComponent_Conditional_2_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
385
397
|
const _r15 = i0.ɵɵgetCurrentView();
|
|
386
|
-
i0.ɵɵelementStart(0, "
|
|
387
|
-
i0.ɵɵlistener("
|
|
388
|
-
i0.ɵɵ
|
|
389
|
-
i0.ɵɵtext(3, "Data Mapping");
|
|
390
|
-
i0.ɵɵelementEnd();
|
|
391
|
-
i0.ɵɵelement(4, "i", 10);
|
|
392
|
-
i0.ɵɵelementEnd();
|
|
393
|
-
i0.ɵɵconditionalCreate(5, AgentPropertiesPanelComponent_Conditional_2_Conditional_32_Conditional_5_Template, 9, 6, "div", 22);
|
|
398
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 18);
|
|
399
|
+
i0.ɵɵlistener("ExpandedChange", function AgentPropertiesPanelComponent_Conditional_2_Conditional_26_Template_mj_accordion_panel_ExpandedChange_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ToggleSection("mapping")); });
|
|
400
|
+
i0.ɵɵtemplate(1, AgentPropertiesPanelComponent_Conditional_2_Conditional_26_ng_template_1_Template, 2, 0, "ng-template", 19)(2, AgentPropertiesPanelComponent_Conditional_2_Conditional_26_ng_template_2_Template, 9, 6, "ng-template", 20);
|
|
394
401
|
i0.ɵɵelementEnd();
|
|
395
402
|
} if (rf & 2) {
|
|
396
403
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
397
|
-
i0.ɵɵ
|
|
398
|
-
i0.ɵɵproperty("ngClass", ctx_r1.IsSectionCollapsed("mapping") ? "fa-chevron-right" : "fa-chevron-down");
|
|
399
|
-
i0.ɵɵadvance();
|
|
400
|
-
i0.ɵɵconditional(!ctx_r1.IsSectionCollapsed("mapping") ? 5 : -1);
|
|
404
|
+
i0.ɵɵproperty("FlushBody", true)("Expanded", !ctx_r1.IsSectionCollapsed("mapping"));
|
|
401
405
|
} }
|
|
402
|
-
function
|
|
406
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_28_Template(rf, ctx) { if (rf & 1) {
|
|
407
|
+
i0.ɵɵelementStart(0, "span");
|
|
408
|
+
i0.ɵɵtext(1, "Error Handling");
|
|
409
|
+
i0.ɵɵelementEnd();
|
|
410
|
+
} }
|
|
411
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
403
412
|
const _r17 = i0.ɵɵgetCurrentView();
|
|
404
413
|
i0.ɵɵelementStart(0, "select", 32);
|
|
405
|
-
i0.ɵɵlistener("change", function
|
|
414
|
+
i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_4_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnErrorBehaviorChange(ctx_r1.InputValue($event))); });
|
|
406
415
|
i0.ɵɵelementStart(1, "option", 47);
|
|
407
416
|
i0.ɵɵtext(2, "Fail (stop flow)");
|
|
408
417
|
i0.ɵɵelementEnd();
|
|
@@ -416,7 +425,7 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_
|
|
|
416
425
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
417
426
|
i0.ɵɵproperty("value", ctx_r1.Step.OnErrorBehavior);
|
|
418
427
|
} }
|
|
419
|
-
function
|
|
428
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
420
429
|
i0.ɵɵelementStart(0, "div", 26);
|
|
421
430
|
i0.ɵɵtext(1);
|
|
422
431
|
i0.ɵɵelementEnd();
|
|
@@ -425,16 +434,16 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_
|
|
|
425
434
|
i0.ɵɵadvance();
|
|
426
435
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.Step.OnErrorBehavior === "fail" ? "Fail (stop flow)" : ctx_r1.Step.OnErrorBehavior === "continue" ? "Continue (ignore error)" : "Retry", " ");
|
|
427
436
|
} }
|
|
428
|
-
function
|
|
437
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_6_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
429
438
|
const _r18 = i0.ɵɵgetCurrentView();
|
|
430
439
|
i0.ɵɵelementStart(0, "input", 51);
|
|
431
|
-
i0.ɵɵlistener("input", function
|
|
440
|
+
i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_6_Conditional_3_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnRetryCountChange(ctx_r1.NumericValue($event))); });
|
|
432
441
|
i0.ɵɵelementEnd();
|
|
433
442
|
} if (rf & 2) {
|
|
434
443
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
435
444
|
i0.ɵɵproperty("value", ctx_r1.Step.RetryCount);
|
|
436
445
|
} }
|
|
437
|
-
function
|
|
446
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
438
447
|
i0.ɵɵelementStart(0, "div", 26);
|
|
439
448
|
i0.ɵɵtext(1);
|
|
440
449
|
i0.ɵɵelementEnd();
|
|
@@ -443,12 +452,12 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_
|
|
|
443
452
|
i0.ɵɵadvance();
|
|
444
453
|
i0.ɵɵtextInterpolate(ctx_r1.Step.RetryCount);
|
|
445
454
|
} }
|
|
446
|
-
function
|
|
455
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
447
456
|
i0.ɵɵelementStart(0, "div", 24)(1, "label");
|
|
448
457
|
i0.ɵɵtext(2, "Retry Count");
|
|
449
458
|
i0.ɵɵelementEnd();
|
|
450
|
-
i0.ɵɵconditionalCreate(3,
|
|
451
|
-
i0.ɵɵconditionalCreate(4,
|
|
459
|
+
i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_6_Conditional_3_Template, 1, 1, "input", 50);
|
|
460
|
+
i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_6_Conditional_4_Template, 2, 1, "div", 26);
|
|
452
461
|
i0.ɵɵelementEnd();
|
|
453
462
|
} if (rf & 2) {
|
|
454
463
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -457,16 +466,16 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_
|
|
|
457
466
|
i0.ɵɵadvance();
|
|
458
467
|
i0.ɵɵconditional(ctx_r1.ReadOnly ? 4 : -1);
|
|
459
468
|
} }
|
|
460
|
-
function
|
|
469
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
461
470
|
const _r19 = i0.ɵɵgetCurrentView();
|
|
462
471
|
i0.ɵɵelementStart(0, "input", 52);
|
|
463
|
-
i0.ɵɵlistener("input", function
|
|
472
|
+
i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_10_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnTimeoutChange(ctx_r1.NumericValue($event))); });
|
|
464
473
|
i0.ɵɵelementEnd();
|
|
465
474
|
} if (rf & 2) {
|
|
466
475
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
467
476
|
i0.ɵɵproperty("value", ctx_r1.Step.TimeoutSeconds);
|
|
468
477
|
} }
|
|
469
|
-
function
|
|
478
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
470
479
|
i0.ɵɵelementStart(0, "div", 26);
|
|
471
480
|
i0.ɵɵtext(1);
|
|
472
481
|
i0.ɵɵelementEnd();
|
|
@@ -475,19 +484,19 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Conditional_
|
|
|
475
484
|
i0.ɵɵadvance();
|
|
476
485
|
i0.ɵɵtextInterpolate1("", ctx_r1.Step.TimeoutSeconds, "s");
|
|
477
486
|
} }
|
|
478
|
-
function
|
|
479
|
-
i0.ɵɵelementStart(0, "div",
|
|
487
|
+
function AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Template(rf, ctx) { if (rf & 1) {
|
|
488
|
+
i0.ɵɵelementStart(0, "div", 23)(1, "div", 24)(2, "label");
|
|
480
489
|
i0.ɵɵtext(3, "On Error");
|
|
481
490
|
i0.ɵɵelementEnd();
|
|
482
|
-
i0.ɵɵconditionalCreate(4,
|
|
483
|
-
i0.ɵɵconditionalCreate(5,
|
|
491
|
+
i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_4_Template, 7, 1, "select", 28);
|
|
492
|
+
i0.ɵɵconditionalCreate(5, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_5_Template, 2, 1, "div", 26);
|
|
484
493
|
i0.ɵɵelementEnd();
|
|
485
|
-
i0.ɵɵconditionalCreate(6,
|
|
494
|
+
i0.ɵɵconditionalCreate(6, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_6_Template, 5, 2, "div", 24);
|
|
486
495
|
i0.ɵɵelementStart(7, "div", 24)(8, "label");
|
|
487
496
|
i0.ɵɵtext(9, "Timeout (seconds)");
|
|
488
497
|
i0.ɵɵelementEnd();
|
|
489
|
-
i0.ɵɵconditionalCreate(10,
|
|
490
|
-
i0.ɵɵconditionalCreate(11,
|
|
498
|
+
i0.ɵɵconditionalCreate(10, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_10_Template, 1, 1, "input", 46);
|
|
499
|
+
i0.ɵɵconditionalCreate(11, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Conditional_11_Template, 2, 1, "div", 26);
|
|
491
500
|
i0.ɵɵelementEnd()();
|
|
492
501
|
} if (rf & 2) {
|
|
493
502
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -502,67 +511,52 @@ function AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Template(rf,
|
|
|
502
511
|
i0.ɵɵadvance();
|
|
503
512
|
i0.ɵɵconditional(ctx_r1.ReadOnly ? 11 : -1);
|
|
504
513
|
} }
|
|
505
|
-
function
|
|
514
|
+
function AgentPropertiesPanelComponent_Conditional_2_Conditional_30_Template(rf, ctx) { if (rf & 1) {
|
|
506
515
|
const _r20 = i0.ɵɵgetCurrentView();
|
|
507
|
-
i0.ɵɵelementStart(0, "div",
|
|
508
|
-
i0.ɵɵlistener("click", function
|
|
516
|
+
i0.ɵɵelementStart(0, "div", 22)(1, "button", 53);
|
|
517
|
+
i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_2_Conditional_30_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnDeleteStep()); });
|
|
509
518
|
i0.ɵɵelement(2, "i", 54);
|
|
510
519
|
i0.ɵɵtext(3, " Delete Step ");
|
|
511
520
|
i0.ɵɵelementEnd()();
|
|
512
521
|
} }
|
|
513
522
|
function AgentPropertiesPanelComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
514
523
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
515
|
-
i0.ɵɵelementStart(0, "div",
|
|
524
|
+
i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "span", 4);
|
|
516
525
|
i0.ɵɵtext(3, "STEP");
|
|
517
526
|
i0.ɵɵelementEnd();
|
|
518
|
-
i0.ɵɵelementStart(4, "button",
|
|
527
|
+
i0.ɵɵelementStart(4, "button", 5);
|
|
519
528
|
i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_2_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseRequested.emit()); });
|
|
520
|
-
i0.ɵɵelement(5, "i",
|
|
529
|
+
i0.ɵɵelement(5, "i", 6);
|
|
521
530
|
i0.ɵɵelementEnd()();
|
|
522
|
-
i0.ɵɵelementStart(6, "div",
|
|
523
|
-
i0.ɵɵelement(8, "i",
|
|
531
|
+
i0.ɵɵelementStart(6, "div", 7)(7, "div", 8);
|
|
532
|
+
i0.ɵɵelement(8, "i", 9);
|
|
524
533
|
i0.ɵɵelementEnd();
|
|
525
|
-
i0.ɵɵelementStart(9, "div",
|
|
534
|
+
i0.ɵɵelementStart(9, "div", 10)(10, "span", 11);
|
|
526
535
|
i0.ɵɵtext(11);
|
|
527
536
|
i0.ɵɵelementEnd();
|
|
528
|
-
i0.ɵɵelementStart(12, "span",
|
|
537
|
+
i0.ɵɵelementStart(12, "span", 12)(13, "span", 13);
|
|
529
538
|
i0.ɵɵtext(14);
|
|
530
539
|
i0.ɵɵelementEnd();
|
|
531
|
-
i0.ɵɵelement(15, "span",
|
|
532
|
-
i0.ɵɵelementStart(16, "span",
|
|
540
|
+
i0.ɵɵelement(15, "span", 14);
|
|
541
|
+
i0.ɵɵelementStart(16, "span", 15);
|
|
533
542
|
i0.ɵɵtext(17);
|
|
534
543
|
i0.ɵɵelementEnd();
|
|
535
|
-
i0.ɵɵconditionalCreate(18, AgentPropertiesPanelComponent_Conditional_2_Conditional_18_Template, 2, 0, "span",
|
|
544
|
+
i0.ɵɵconditionalCreate(18, AgentPropertiesPanelComponent_Conditional_2_Conditional_18_Template, 2, 0, "span", 16);
|
|
536
545
|
i0.ɵɵelementEnd()()()();
|
|
537
|
-
i0.ɵɵelementStart(19, "div",
|
|
538
|
-
i0.ɵɵlistener("
|
|
539
|
-
i0.ɵɵ
|
|
540
|
-
i0.ɵɵtext(23, "General");
|
|
541
|
-
i0.ɵɵelementEnd();
|
|
542
|
-
i0.ɵɵelement(24, "i", 10);
|
|
543
|
-
i0.ɵɵelementEnd();
|
|
544
|
-
i0.ɵɵconditionalCreate(25, AgentPropertiesPanelComponent_Conditional_2_Conditional_25_Template, 18, 8, "div", 22);
|
|
545
|
-
i0.ɵɵelementEnd();
|
|
546
|
-
i0.ɵɵelementStart(26, "div", 19)(27, "button", 20);
|
|
547
|
-
i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_2_Template_button_click_27_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("config")); });
|
|
548
|
-
i0.ɵɵelementStart(28, "span", 21);
|
|
549
|
-
i0.ɵɵtext(29, "Configuration");
|
|
550
|
-
i0.ɵɵelementEnd();
|
|
551
|
-
i0.ɵɵelement(30, "i", 10);
|
|
546
|
+
i0.ɵɵelementStart(19, "div", 17)(20, "mj-accordion-panel", 18);
|
|
547
|
+
i0.ɵɵlistener("ExpandedChange", function AgentPropertiesPanelComponent_Conditional_2_Template_mj_accordion_panel_ExpandedChange_20_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("general")); });
|
|
548
|
+
i0.ɵɵtemplate(21, AgentPropertiesPanelComponent_Conditional_2_ng_template_21_Template, 2, 0, "ng-template", 19)(22, AgentPropertiesPanelComponent_Conditional_2_ng_template_22_Template, 18, 8, "ng-template", 20);
|
|
552
549
|
i0.ɵɵelementEnd();
|
|
553
|
-
i0.ɵɵ
|
|
550
|
+
i0.ɵɵelementStart(23, "mj-accordion-panel", 18);
|
|
551
|
+
i0.ɵɵlistener("ExpandedChange", function AgentPropertiesPanelComponent_Conditional_2_Template_mj_accordion_panel_ExpandedChange_23_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("config")); });
|
|
552
|
+
i0.ɵɵtemplate(24, AgentPropertiesPanelComponent_Conditional_2_ng_template_24_Template, 2, 0, "ng-template", 19)(25, AgentPropertiesPanelComponent_Conditional_2_ng_template_25_Template, 6, 5, "ng-template", 20);
|
|
554
553
|
i0.ɵɵelementEnd();
|
|
555
|
-
i0.ɵɵconditionalCreate(
|
|
556
|
-
i0.ɵɵelementStart(
|
|
557
|
-
i0.ɵɵlistener("
|
|
558
|
-
i0.ɵɵ
|
|
559
|
-
i0.ɵɵtext(36, "Error Handling");
|
|
554
|
+
i0.ɵɵconditionalCreate(26, AgentPropertiesPanelComponent_Conditional_2_Conditional_26_Template, 3, 2, "mj-accordion-panel", 21);
|
|
555
|
+
i0.ɵɵelementStart(27, "mj-accordion-panel", 18);
|
|
556
|
+
i0.ɵɵlistener("ExpandedChange", function AgentPropertiesPanelComponent_Conditional_2_Template_mj_accordion_panel_ExpandedChange_27_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("errors")); });
|
|
557
|
+
i0.ɵɵtemplate(28, AgentPropertiesPanelComponent_Conditional_2_ng_template_28_Template, 2, 0, "ng-template", 19)(29, AgentPropertiesPanelComponent_Conditional_2_ng_template_29_Template, 12, 5, "ng-template", 20);
|
|
560
558
|
i0.ɵɵelementEnd();
|
|
561
|
-
i0.ɵɵ
|
|
562
|
-
i0.ɵɵelementEnd();
|
|
563
|
-
i0.ɵɵconditionalCreate(38, AgentPropertiesPanelComponent_Conditional_2_Conditional_38_Template, 12, 5, "div", 22);
|
|
564
|
-
i0.ɵɵelementEnd();
|
|
565
|
-
i0.ɵɵconditionalCreate(39, AgentPropertiesPanelComponent_Conditional_2_Conditional_39_Template, 4, 0, "div", 23);
|
|
559
|
+
i0.ɵɵconditionalCreate(30, AgentPropertiesPanelComponent_Conditional_2_Conditional_30_Template, 4, 0, "div", 22);
|
|
566
560
|
i0.ɵɵelementEnd();
|
|
567
561
|
} if (rf & 2) {
|
|
568
562
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -583,22 +577,16 @@ function AgentPropertiesPanelComponent_Conditional_2_Template(rf, ctx) { if (rf
|
|
|
583
577
|
i0.ɵɵtextInterpolate(ctx_r1.Step.Status);
|
|
584
578
|
i0.ɵɵadvance();
|
|
585
579
|
i0.ɵɵconditional(ctx_r1.Step.StartingStep ? 18 : -1);
|
|
586
|
-
i0.ɵɵadvance(
|
|
587
|
-
i0.ɵɵproperty("
|
|
588
|
-
i0.ɵɵadvance();
|
|
589
|
-
i0.ɵɵ
|
|
590
|
-
i0.ɵɵadvance(
|
|
591
|
-
i0.ɵɵ
|
|
592
|
-
i0.ɵɵadvance();
|
|
593
|
-
i0.ɵɵconditional(!ctx_r1.IsSectionCollapsed("config") ? 31 : -1);
|
|
594
|
-
i0.ɵɵadvance();
|
|
595
|
-
i0.ɵɵconditional(ctx_r1.Step.StepType === "Action" || ctx_r1.showActionPicker ? 32 : -1);
|
|
596
|
-
i0.ɵɵadvance(5);
|
|
597
|
-
i0.ɵɵproperty("ngClass", ctx_r1.IsSectionCollapsed("errors") ? "fa-chevron-right" : "fa-chevron-down");
|
|
598
|
-
i0.ɵɵadvance();
|
|
599
|
-
i0.ɵɵconditional(!ctx_r1.IsSectionCollapsed("errors") ? 38 : -1);
|
|
580
|
+
i0.ɵɵadvance(2);
|
|
581
|
+
i0.ɵɵproperty("FlushBody", true)("Expanded", !ctx_r1.IsSectionCollapsed("general"));
|
|
582
|
+
i0.ɵɵadvance(3);
|
|
583
|
+
i0.ɵɵproperty("FlushBody", true)("Expanded", !ctx_r1.IsSectionCollapsed("config"));
|
|
584
|
+
i0.ɵɵadvance(3);
|
|
585
|
+
i0.ɵɵconditional(ctx_r1.Step.StepType === "Action" || ctx_r1.showActionPicker ? 26 : -1);
|
|
600
586
|
i0.ɵɵadvance();
|
|
601
|
-
i0.ɵɵ
|
|
587
|
+
i0.ɵɵproperty("FlushBody", true)("Expanded", !ctx_r1.IsSectionCollapsed("errors"));
|
|
588
|
+
i0.ɵɵadvance(3);
|
|
589
|
+
i0.ɵɵconditional(!ctx_r1.ReadOnly ? 30 : -1);
|
|
602
590
|
} }
|
|
603
591
|
function AgentPropertiesPanelComponent_Conditional_3_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
604
592
|
i0.ɵɵelementStart(0, "span", 61);
|
|
@@ -609,8 +597,13 @@ function AgentPropertiesPanelComponent_Conditional_3_Conditional_19_Template(rf,
|
|
|
609
597
|
i0.ɵɵadvance();
|
|
610
598
|
i0.ɵɵtextInterpolate1(" Priority: ", ctx_r1.PathEntity.Priority, " ");
|
|
611
599
|
} }
|
|
612
|
-
function
|
|
613
|
-
i0.ɵɵelementStart(0, "
|
|
600
|
+
function AgentPropertiesPanelComponent_Conditional_3_ng_template_22_Template(rf, ctx) { if (rf & 1) {
|
|
601
|
+
i0.ɵɵelementStart(0, "span");
|
|
602
|
+
i0.ɵɵtext(1, "Route");
|
|
603
|
+
i0.ɵɵelementEnd();
|
|
604
|
+
} }
|
|
605
|
+
function AgentPropertiesPanelComponent_Conditional_3_ng_template_23_Template(rf, ctx) { if (rf & 1) {
|
|
606
|
+
i0.ɵɵelementStart(0, "div", 23)(1, "div", 24)(2, "label");
|
|
614
607
|
i0.ɵɵtext(3, "From");
|
|
615
608
|
i0.ɵɵelementEnd();
|
|
616
609
|
i0.ɵɵelementStart(4, "div", 62);
|
|
@@ -632,16 +625,21 @@ function AgentPropertiesPanelComponent_Conditional_3_Conditional_26_Template(rf,
|
|
|
632
625
|
i0.ɵɵadvance(5);
|
|
633
626
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.destinationStepName, " ");
|
|
634
627
|
} }
|
|
635
|
-
function
|
|
628
|
+
function AgentPropertiesPanelComponent_Conditional_3_ng_template_25_Template(rf, ctx) { if (rf & 1) {
|
|
629
|
+
i0.ɵɵelementStart(0, "span");
|
|
630
|
+
i0.ɵɵtext(1, "Settings");
|
|
631
|
+
i0.ɵɵelementEnd();
|
|
632
|
+
} }
|
|
633
|
+
function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
636
634
|
const _r22 = i0.ɵɵgetCurrentView();
|
|
637
635
|
i0.ɵɵelementStart(0, "input", 68);
|
|
638
|
-
i0.ɵɵlistener("input", function
|
|
636
|
+
i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_4_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPathDescriptionChange(ctx_r1.InputValue($event))); });
|
|
639
637
|
i0.ɵɵelementEnd();
|
|
640
638
|
} if (rf & 2) {
|
|
641
639
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
642
640
|
i0.ɵɵproperty("value", ctx_r1.PathEntity.Description || "");
|
|
643
641
|
} }
|
|
644
|
-
function
|
|
642
|
+
function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
645
643
|
i0.ɵɵelementStart(0, "div", 26);
|
|
646
644
|
i0.ɵɵtext(1);
|
|
647
645
|
i0.ɵɵelementEnd();
|
|
@@ -650,46 +648,46 @@ function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_
|
|
|
650
648
|
i0.ɵɵadvance();
|
|
651
649
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.PathEntity.Description || "\u2014", " ");
|
|
652
650
|
} }
|
|
653
|
-
function
|
|
651
|
+
function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
654
652
|
i0.ɵɵelementStart(0, "span", 63);
|
|
655
653
|
i0.ɵɵtext(1, "Displayed as a label on the connection line");
|
|
656
654
|
i0.ɵɵelementEnd();
|
|
657
655
|
} }
|
|
658
|
-
function
|
|
656
|
+
function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
659
657
|
const _r23 = i0.ɵɵgetCurrentView();
|
|
660
658
|
i0.ɵɵelementStart(0, "mj-code-editor", 69);
|
|
661
|
-
i0.ɵɵlistener("change", function
|
|
659
|
+
i0.ɵɵlistener("change", function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_10_Template_mj_code_editor_change_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPathConditionChange($event)); });
|
|
662
660
|
i0.ɵɵelementEnd();
|
|
663
661
|
} if (rf & 2) {
|
|
664
662
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
665
663
|
i0.ɵɵproperty("value", ctx_r1.PathEntity.Condition || "")("readonly", false)("lineWrapping", true);
|
|
666
664
|
} }
|
|
667
|
-
function
|
|
665
|
+
function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
668
666
|
i0.ɵɵelement(0, "mj-code-editor", 66);
|
|
669
667
|
} if (rf & 2) {
|
|
670
668
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
671
669
|
i0.ɵɵproperty("value", ctx_r1.PathEntity.Condition)("readonly", true)("lineWrapping", true);
|
|
672
670
|
} }
|
|
673
|
-
function
|
|
671
|
+
function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
674
672
|
i0.ɵɵelementStart(0, "div", 62);
|
|
675
673
|
i0.ɵɵtext(1, " No condition (always taken) ");
|
|
676
674
|
i0.ɵɵelementEnd();
|
|
677
675
|
} }
|
|
678
|
-
function
|
|
676
|
+
function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
679
677
|
i0.ɵɵelementStart(0, "span", 63);
|
|
680
678
|
i0.ɵɵtext(1, " JavaScript expression evaluated at runtime. Leave empty for unconditional. ");
|
|
681
679
|
i0.ɵɵelementEnd();
|
|
682
680
|
} }
|
|
683
|
-
function
|
|
681
|
+
function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
684
682
|
const _r24 = i0.ɵɵgetCurrentView();
|
|
685
683
|
i0.ɵɵelementStart(0, "input", 70);
|
|
686
|
-
i0.ɵɵlistener("input", function
|
|
684
|
+
i0.ɵɵlistener("input", function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_17_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnPathPriorityChange(ctx_r1.NumericValue($event))); });
|
|
687
685
|
i0.ɵɵelementEnd();
|
|
688
686
|
} if (rf & 2) {
|
|
689
687
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
690
688
|
i0.ɵɵproperty("value", ctx_r1.PathEntity.Priority);
|
|
691
689
|
} }
|
|
692
|
-
function
|
|
690
|
+
function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
693
691
|
i0.ɵɵelementStart(0, "div", 26);
|
|
694
692
|
i0.ɵɵtext(1);
|
|
695
693
|
i0.ɵɵelementEnd();
|
|
@@ -698,27 +696,27 @@ function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Conditional_
|
|
|
698
696
|
i0.ɵɵadvance();
|
|
699
697
|
i0.ɵɵtextInterpolate(ctx_r1.PathEntity.Priority);
|
|
700
698
|
} }
|
|
701
|
-
function
|
|
702
|
-
i0.ɵɵelementStart(0, "div",
|
|
699
|
+
function AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Template(rf, ctx) { if (rf & 1) {
|
|
700
|
+
i0.ɵɵelementStart(0, "div", 23)(1, "div", 24)(2, "label");
|
|
703
701
|
i0.ɵɵtext(3, "Description");
|
|
704
702
|
i0.ɵɵelementEnd();
|
|
705
|
-
i0.ɵɵconditionalCreate(4,
|
|
706
|
-
i0.ɵɵconditionalCreate(5,
|
|
707
|
-
i0.ɵɵconditionalCreate(6,
|
|
703
|
+
i0.ɵɵconditionalCreate(4, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_4_Template, 1, 1, "input", 64);
|
|
704
|
+
i0.ɵɵconditionalCreate(5, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_5_Template, 2, 1, "div", 26);
|
|
705
|
+
i0.ɵɵconditionalCreate(6, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_6_Template, 2, 0, "span", 63);
|
|
708
706
|
i0.ɵɵelementEnd();
|
|
709
707
|
i0.ɵɵelementStart(7, "div", 24)(8, "label");
|
|
710
708
|
i0.ɵɵtext(9, "Condition");
|
|
711
709
|
i0.ɵɵelementEnd();
|
|
712
|
-
i0.ɵɵconditionalCreate(10,
|
|
713
|
-
i0.ɵɵconditionalCreate(11,
|
|
714
|
-
i0.ɵɵconditionalCreate(12,
|
|
715
|
-
i0.ɵɵconditionalCreate(13,
|
|
710
|
+
i0.ɵɵconditionalCreate(10, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_10_Template, 1, 3, "mj-code-editor", 65);
|
|
711
|
+
i0.ɵɵconditionalCreate(11, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_11_Template, 1, 3, "mj-code-editor", 66);
|
|
712
|
+
i0.ɵɵconditionalCreate(12, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_12_Template, 2, 0, "div", 62);
|
|
713
|
+
i0.ɵɵconditionalCreate(13, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_13_Template, 2, 0, "span", 63);
|
|
716
714
|
i0.ɵɵelementEnd();
|
|
717
715
|
i0.ɵɵelementStart(14, "div", 24)(15, "label");
|
|
718
716
|
i0.ɵɵtext(16, "Priority");
|
|
719
717
|
i0.ɵɵelementEnd();
|
|
720
|
-
i0.ɵɵconditionalCreate(17,
|
|
721
|
-
i0.ɵɵconditionalCreate(18,
|
|
718
|
+
i0.ɵɵconditionalCreate(17, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_17_Template, 1, 1, "input", 67);
|
|
719
|
+
i0.ɵɵconditionalCreate(18, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Conditional_18_Template, 2, 1, "div", 26);
|
|
722
720
|
i0.ɵɵelementStart(19, "span", 63);
|
|
723
721
|
i0.ɵɵtext(20, "Higher priority paths are evaluated first when multiple paths leave a step.");
|
|
724
722
|
i0.ɵɵelementEnd()()();
|
|
@@ -743,57 +741,47 @@ function AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Template(rf,
|
|
|
743
741
|
i0.ɵɵadvance();
|
|
744
742
|
i0.ɵɵconditional(ctx_r1.ReadOnly ? 18 : -1);
|
|
745
743
|
} }
|
|
746
|
-
function
|
|
744
|
+
function AgentPropertiesPanelComponent_Conditional_3_Conditional_27_Template(rf, ctx) { if (rf & 1) {
|
|
747
745
|
const _r25 = i0.ɵɵgetCurrentView();
|
|
748
|
-
i0.ɵɵelementStart(0, "div",
|
|
749
|
-
i0.ɵɵlistener("click", function
|
|
746
|
+
i0.ɵɵelementStart(0, "div", 22)(1, "button", 53);
|
|
747
|
+
i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_3_Conditional_27_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnDeletePath()); });
|
|
750
748
|
i0.ɵɵelement(2, "i", 54);
|
|
751
749
|
i0.ɵɵtext(3, " Delete Path ");
|
|
752
750
|
i0.ɵɵelementEnd()();
|
|
753
751
|
} }
|
|
754
752
|
function AgentPropertiesPanelComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
755
753
|
const _r21 = i0.ɵɵgetCurrentView();
|
|
756
|
-
i0.ɵɵelementStart(0, "div", 55)(1, "div",
|
|
754
|
+
i0.ɵɵelementStart(0, "div", 55)(1, "div", 3)(2, "span", 4);
|
|
757
755
|
i0.ɵɵtext(3, "PATH");
|
|
758
756
|
i0.ɵɵelementEnd();
|
|
759
|
-
i0.ɵɵelementStart(4, "button",
|
|
757
|
+
i0.ɵɵelementStart(4, "button", 5);
|
|
760
758
|
i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_3_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CloseRequested.emit()); });
|
|
761
|
-
i0.ɵɵelement(5, "i",
|
|
759
|
+
i0.ɵɵelement(5, "i", 6);
|
|
762
760
|
i0.ɵɵelementEnd()();
|
|
763
|
-
i0.ɵɵelementStart(6, "div",
|
|
761
|
+
i0.ɵɵelementStart(6, "div", 7)(7, "div", 56);
|
|
764
762
|
i0.ɵɵelement(8, "i", 57);
|
|
765
763
|
i0.ɵɵelementEnd();
|
|
766
|
-
i0.ɵɵelementStart(9, "div",
|
|
764
|
+
i0.ɵɵelementStart(9, "div", 10)(10, "span", 58)(11, "span", 59);
|
|
767
765
|
i0.ɵɵtext(12);
|
|
768
766
|
i0.ɵɵelementEnd();
|
|
769
767
|
i0.ɵɵelement(13, "i", 60);
|
|
770
768
|
i0.ɵɵelementStart(14, "span", 59);
|
|
771
769
|
i0.ɵɵtext(15);
|
|
772
770
|
i0.ɵɵelementEnd()();
|
|
773
|
-
i0.ɵɵelementStart(16, "span",
|
|
771
|
+
i0.ɵɵelementStart(16, "span", 12)(17, "span", 13);
|
|
774
772
|
i0.ɵɵtext(18);
|
|
775
773
|
i0.ɵɵelementEnd();
|
|
776
774
|
i0.ɵɵconditionalCreate(19, AgentPropertiesPanelComponent_Conditional_3_Conditional_19_Template, 2, 1, "span", 61);
|
|
777
775
|
i0.ɵɵelementEnd()()()();
|
|
778
|
-
i0.ɵɵelementStart(20, "div",
|
|
779
|
-
i0.ɵɵlistener("
|
|
780
|
-
i0.ɵɵ
|
|
781
|
-
i0.ɵɵtext(24, "Route");
|
|
776
|
+
i0.ɵɵelementStart(20, "div", 17)(21, "mj-accordion-panel", 18);
|
|
777
|
+
i0.ɵɵlistener("ExpandedChange", function AgentPropertiesPanelComponent_Conditional_3_Template_mj_accordion_panel_ExpandedChange_21_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("path-overview")); });
|
|
778
|
+
i0.ɵɵtemplate(22, AgentPropertiesPanelComponent_Conditional_3_ng_template_22_Template, 2, 0, "ng-template", 19)(23, AgentPropertiesPanelComponent_Conditional_3_ng_template_23_Template, 13, 2, "ng-template", 20);
|
|
782
779
|
i0.ɵɵelementEnd();
|
|
783
|
-
i0.ɵɵ
|
|
780
|
+
i0.ɵɵelementStart(24, "mj-accordion-panel", 18);
|
|
781
|
+
i0.ɵɵlistener("ExpandedChange", function AgentPropertiesPanelComponent_Conditional_3_Template_mj_accordion_panel_ExpandedChange_24_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("path-settings")); });
|
|
782
|
+
i0.ɵɵtemplate(25, AgentPropertiesPanelComponent_Conditional_3_ng_template_25_Template, 2, 0, "ng-template", 19)(26, AgentPropertiesPanelComponent_Conditional_3_ng_template_26_Template, 21, 9, "ng-template", 20);
|
|
784
783
|
i0.ɵɵelementEnd();
|
|
785
|
-
i0.ɵɵconditionalCreate(
|
|
786
|
-
i0.ɵɵelementEnd();
|
|
787
|
-
i0.ɵɵelementStart(27, "div", 19)(28, "button", 20);
|
|
788
|
-
i0.ɵɵlistener("click", function AgentPropertiesPanelComponent_Conditional_3_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ToggleSection("path-settings")); });
|
|
789
|
-
i0.ɵɵelementStart(29, "span", 21);
|
|
790
|
-
i0.ɵɵtext(30, "Settings");
|
|
791
|
-
i0.ɵɵelementEnd();
|
|
792
|
-
i0.ɵɵelement(31, "i", 10);
|
|
793
|
-
i0.ɵɵelementEnd();
|
|
794
|
-
i0.ɵɵconditionalCreate(32, AgentPropertiesPanelComponent_Conditional_3_Conditional_32_Template, 21, 9, "div", 22);
|
|
795
|
-
i0.ɵɵelementEnd();
|
|
796
|
-
i0.ɵɵconditionalCreate(33, AgentPropertiesPanelComponent_Conditional_3_Conditional_33_Template, 4, 0, "div", 23);
|
|
784
|
+
i0.ɵɵconditionalCreate(27, AgentPropertiesPanelComponent_Conditional_3_Conditional_27_Template, 4, 0, "div", 22);
|
|
797
785
|
i0.ɵɵelementEnd();
|
|
798
786
|
} if (rf & 2) {
|
|
799
787
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -810,16 +798,12 @@ function AgentPropertiesPanelComponent_Conditional_3_Template(rf, ctx) { if (rf
|
|
|
810
798
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.isConditionalPath ? "Conditional" : "Always", " ");
|
|
811
799
|
i0.ɵɵadvance();
|
|
812
800
|
i0.ɵɵconditional(ctx_r1.PathEntity.Priority !== 0 ? 19 : -1);
|
|
813
|
-
i0.ɵɵadvance(
|
|
814
|
-
i0.ɵɵproperty("
|
|
815
|
-
i0.ɵɵadvance();
|
|
816
|
-
i0.ɵɵ
|
|
817
|
-
i0.ɵɵadvance(
|
|
818
|
-
i0.ɵɵ
|
|
819
|
-
i0.ɵɵadvance();
|
|
820
|
-
i0.ɵɵconditional(!ctx_r1.IsSectionCollapsed("path-settings") ? 32 : -1);
|
|
821
|
-
i0.ɵɵadvance();
|
|
822
|
-
i0.ɵɵconditional(!ctx_r1.ReadOnly ? 33 : -1);
|
|
801
|
+
i0.ɵɵadvance(2);
|
|
802
|
+
i0.ɵɵproperty("FlushBody", true)("Expanded", !ctx_r1.IsSectionCollapsed("path-overview"));
|
|
803
|
+
i0.ɵɵadvance(3);
|
|
804
|
+
i0.ɵɵproperty("FlushBody", true)("Expanded", !ctx_r1.IsSectionCollapsed("path-settings"));
|
|
805
|
+
i0.ɵɵadvance(3);
|
|
806
|
+
i0.ɵɵconditional(!ctx_r1.ReadOnly ? 27 : -1);
|
|
823
807
|
} }
|
|
824
808
|
/** Step type accent color mapping */
|
|
825
809
|
const STEP_TYPE_COLORS = {
|
|
@@ -1091,11 +1075,11 @@ export class AgentPropertiesPanelComponent {
|
|
|
1091
1075
|
}
|
|
1092
1076
|
}
|
|
1093
1077
|
static ɵfac = function AgentPropertiesPanelComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AgentPropertiesPanelComponent)(); };
|
|
1094
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgentPropertiesPanelComponent, selectors: [["mj-agent-properties-panel"]], inputs: { Step: "Step", SelectedConnection: "SelectedConnection", PathEntity: "PathEntity", ReadOnly: "ReadOnly", Actions: "Actions", Prompts: "Prompts", Agents: "Agents", AllSteps: "AllSteps" }, outputs: { StepChanged: "StepChanged", PathChanged: "PathChanged", DeleteStepRequested: "DeleteStepRequested", DeletePathRequested: "DeletePathRequested", CloseRequested: "CloseRequested" }, standalone: false, decls: 4, vars: 3, consts: [[1, "mj-agent-props"], [
|
|
1078
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgentPropertiesPanelComponent, selectors: [["mj-agent-properties-panel"]], inputs: { Step: "Step", SelectedConnection: "SelectedConnection", PathEntity: "PathEntity", ReadOnly: "ReadOnly", Actions: "Actions", Prompts: "Prompts", Agents: "Agents", AllSteps: "AllSteps" }, outputs: { StepChanged: "StepChanged", PathChanged: "PathChanged", DeleteStepRequested: "DeleteStepRequested", DeletePathRequested: "DeletePathRequested", CloseRequested: "CloseRequested" }, standalone: false, decls: 4, vars: 3, consts: [[1, "mj-agent-props"], ["Icon", "fa-solid fa-arrow-pointer", "Title", "No selection", "Message", "Select a step or connection to view its properties", 1, "mj-agent-props-empty"], [1, "mj-agent-props-header", "mj-agent-props-header--step"], [1, "mj-agent-props-header-top"], [1, "mj-agent-props-header-label"], ["title", "Close", 1, "mj-agent-props-close", 3, "click"], [1, "fa-solid", "fa-times"], [1, "mj-agent-props-identity"], [1, "mj-agent-props-identity-icon"], [1, "fa-solid", 3, "ngClass"], [1, "mj-agent-props-identity-info"], [1, "mj-agent-props-identity-name"], [1, "mj-agent-props-identity-meta"], [1, "mj-agent-props-type-pill"], [1, "mj-agent-props-status-dot"], [1, "mj-agent-props-status-label"], [1, "mj-agent-props-start-badge"], [1, "mj-agent-props-content"], ["Size", "sm", 1, "mj-agent-props-accordion", 3, "ExpandedChange", "FlushBody", "Expanded"], ["mjAccordionTitle", ""], ["mjAccordionBody", ""], ["Size", "sm", 1, "mj-agent-props-accordion", 3, "FlushBody", "Expanded"], [1, "mj-agent-props-section", "mj-agent-props-danger"], [1, "mj-agent-props-section-body"], [1, "mj-agent-props-field"], ["type", "text", "placeholder", "Step name...", 1, "mj-agent-props-input", 3, "value"], [1, "mj-agent-props-readonly-value"], ["placeholder", "Optional description...", "rows", "2", 1, "mj-agent-props-input", "mj-agent-props-textarea", 3, "value"], [1, "mj-agent-props-input", 3, "value"], [1, "mj-agent-props-field", "mj-agent-props-field--row"], ["type", "text", "placeholder", "Step name...", 1, "mj-agent-props-input", 3, "input", "value"], ["placeholder", "Optional description...", "rows", "2", 1, "mj-agent-props-input", "mj-agent-props-textarea", 3, "input", "value"], [1, "mj-agent-props-input", 3, "change", "value"], ["value", "Active"], ["value", "Disabled"], ["value", "Pending"], [1, "mj-agent-props-checkbox-label"], ["type", "checkbox", 3, "change", "checked"], ["value", "Action"], ["value", "Prompt"], ["value", "Sub-Agent"], ["value", ""], [3, "value"], ["language", "json", "setup", "minimal", 3, "change", "value", "readonly", "lineWrapping"], ["language", "json", "setup", "minimal", "placeholder", "Enter JSON input mapping...", 3, "change", "value", "readonly", "lineWrapping"], ["language", "json", "setup", "minimal", "placeholder", "Enter JSON output mapping...", 3, "change", "value", "readonly", "lineWrapping"], ["type", "number", "min", "1", 1, "mj-agent-props-input", 3, "value"], ["value", "fail"], ["value", "continue"], ["value", "retry"], ["type", "number", "min", "0", "max", "10", 1, "mj-agent-props-input", 3, "value"], ["type", "number", "min", "0", "max", "10", 1, "mj-agent-props-input", 3, "input", "value"], ["type", "number", "min", "1", 1, "mj-agent-props-input", 3, "input", "value"], [1, "mj-agent-props-delete-btn", 3, "click"], [1, "fa-solid", "fa-trash-can"], [1, "mj-agent-props-header", "mj-agent-props-header--path"], [1, "mj-agent-props-identity-icon", "mj-agent-props-identity-icon--path"], [1, "fa-solid", "fa-arrow-right"], [1, "mj-agent-props-path-route"], [1, "mj-agent-props-path-step-name"], [1, "fa-solid", "fa-arrow-right", "mj-agent-props-path-arrow"], [1, "mj-agent-props-priority-badge"], [1, "mj-agent-props-readonly-value", "mj-agent-props-readonly-value--muted"], [1, "mj-agent-props-hint"], ["type", "text", "placeholder", "Path label...", 1, "mj-agent-props-input", 3, "value"], ["language", "javascript", "setup", "minimal", "placeholder", "e.g. payload.status === 'active'", 3, "value", "readonly", "lineWrapping"], ["language", "javascript", "setup", "minimal", 3, "value", "readonly", "lineWrapping"], ["type", "number", "min", "-100", "max", "100", 1, "mj-agent-props-input", 3, "value"], ["type", "text", "placeholder", "Path label...", 1, "mj-agent-props-input", 3, "input", "value"], ["language", "javascript", "setup", "minimal", "placeholder", "e.g. payload.status === 'active'", 3, "change", "value", "readonly", "lineWrapping"], ["type", "number", "min", "-100", "max", "100", 1, "mj-agent-props-input", 3, "input", "value"]], template: function AgentPropertiesPanelComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1095
1079
|
i0.ɵɵelementStart(0, "div", 0);
|
|
1096
|
-
i0.ɵɵconditionalCreate(1, AgentPropertiesPanelComponent_Conditional_1_Template,
|
|
1097
|
-
i0.ɵɵconditionalCreate(2, AgentPropertiesPanelComponent_Conditional_2_Template,
|
|
1098
|
-
i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_3_Template,
|
|
1080
|
+
i0.ɵɵconditionalCreate(1, AgentPropertiesPanelComponent_Conditional_1_Template, 1, 0, "mj-empty-state", 1);
|
|
1081
|
+
i0.ɵɵconditionalCreate(2, AgentPropertiesPanelComponent_Conditional_2_Template, 31, 23);
|
|
1082
|
+
i0.ɵɵconditionalCreate(3, AgentPropertiesPanelComponent_Conditional_3_Template, 28, 17);
|
|
1099
1083
|
i0.ɵɵelementEnd();
|
|
1100
1084
|
} if (rf & 2) {
|
|
1101
1085
|
i0.ɵɵadvance();
|
|
@@ -1104,11 +1088,11 @@ export class AgentPropertiesPanelComponent {
|
|
|
1104
1088
|
i0.ɵɵconditional(ctx.isStepSelected ? 2 : -1);
|
|
1105
1089
|
i0.ɵɵadvance();
|
|
1106
1090
|
i0.ɵɵconditional(ctx.isConnectionSelected ? 3 : -1);
|
|
1107
|
-
} }, dependencies: [i1.NgClass, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i3.CodeEditorComponent], styles: ["/* ============================================================\n Agent Properties Panel \u2014 Step/Connection configuration\n ============================================================ */\n\n.mj-agent-props {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.mj-agent-props *,\n.mj-agent-props *::before,\n.mj-agent-props *::after {\n box-sizing: border-box;\n}\n\n/* \u2500\u2500 Header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-header {\n flex-shrink: 0;\n padding: 12px 14px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n border-left: 3px solid transparent;\n}\n\n.mj-agent-props-header-top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 10px;\n}\n\n.mj-agent-props-header-label {\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 1.2px;\n text-transform: uppercase;\n color: var(--mj-text-disabled);\n}\n\n.mj-agent-props-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: var(--mj-text-xs);\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-close:hover { background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary); }\n\n/* \u2500\u2500 Identity Card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-identity {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n}\n\n.mj-agent-props-identity-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n min-width: 32px;\n border-radius: var(--mj-radius-md);\n color: white;\n font-size: var(--mj-text-sm);\n flex-shrink: 0;\n}\n\n.mj-agent-props-identity-icon--path {\n border-radius: var(--mj-radius-full);\n width: 28px;\n height: 28px;\n min-width: 28px;\n font-size: 11px;\n}\n\n.mj-agent-props-identity-info {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n}\n\n.mj-agent-props-identity-name {\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n word-break: break-word;\n}\n\n.mj-agent-props-identity-meta {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-type-pill {\n display: inline-flex;\n align-items: center;\n font-size: 11px;\n font-weight: 600;\n padding: 1px 7px;\n border-radius: var(--mj-radius-sm);\n line-height: 1.6;\n}\n\n.mj-agent-props-status-dot {\n display: inline-block;\n width: 7px;\n height: 7px;\n border-radius: var(--mj-radius-full);\n flex-shrink: 0;\n}\n\n.mj-agent-props-status-label {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.mj-agent-props-start-badge {\n display: inline-flex;\n align-items: center;\n font-size: 10px;\n font-weight: 600;\n color: #059669;\n background: #ecfdf5;\n padding: 1px 6px;\n border-radius: var(--mj-radius-sm);\n letter-spacing: 0.2px;\n}\n\n.mj-agent-props-priority-badge {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n/* \u2500\u2500 Path Route Display \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-path-route {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-path-step-name {\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.mj-agent-props-path-arrow {\n font-size: 10px;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n}\n\n/* \u2500\u2500 Empty State \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n text-align: center;\n flex: 1;\n}\n\n.mj-agent-props-empty i { font-size: 28px; color: var(--mj-border-strong); margin-bottom: 12px; }\n.mj-agent-props-empty p { font-size: var(--mj-text-sm); color: var(--mj-text-disabled); margin: 0; }\n\n/* \u2500\u2500 Scrollable Content \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-content {\n flex: 1;\n overflow-y: auto;\n padding-bottom: 16px;\n}\n\n/* \u2500\u2500 Sections \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-section {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.mj-agent-props-section:last-child { border-bottom: none; }\n\n.mj-agent-props-section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 10px 14px;\n border: none;\n background: none;\n cursor: pointer;\n transition: background-color 0.1s ease;\n}\n\n.mj-agent-props-section-header:hover {\n background: var(--mj-bg-page);\n}\n\n.mj-agent-props-section-header i {\n font-size: 10px;\n color: var(--mj-text-disabled);\n transition: transform 0.15s ease;\n}\n\n.mj-agent-props-section-title {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.mj-agent-props-section-body {\n padding: 0 14px 12px;\n}\n\n/* \u2500\u2500 Fields \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field {\n margin-bottom: 12px;\n}\n\n.mj-agent-props-field label {\n display: block;\n font-size: var(--mj-text-xs);\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.mj-agent-props-field--row {\n display: flex;\n align-items: center;\n}\n\n.mj-agent-props-input {\n width: 100%;\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface);\n transition: border-color 0.15s ease;\n outline: none;\n font-family: inherit;\n}\n\n.mj-agent-props-input:focus { border-color: var(--mj-brand-primary); }\n.mj-agent-props-input:focus-visible { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15); }\n\n/* Select dropdown with consistent cross-browser styling */\nselect.mj-agent-props-input {\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n padding-right: 28px;\n cursor: pointer;\n}\n\n.mj-agent-props-textarea {\n resize: vertical;\n min-height: 48px;\n}\n\n.mj-agent-props-checkbox-label {\n display: flex !important;\n align-items: center;\n gap: 8px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.mj-agent-props-checkbox-label input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n accent-color: var(--mj-brand-primary);\n cursor: pointer;\n}\n\n/* \u2500\u2500 Read-only Values \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-readonly-value {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 6px 10px;\n min-height: 34px;\n word-break: break-word;\n}\n\n.mj-agent-props-readonly-value--muted {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n/* \u2500\u2500 Code Editor in Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field mj-code-editor {\n display: block;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n min-height: 60px;\n max-height: 200px;\n}\n\n.mj-agent-props-field mj-code-editor .cm-editor {\n font-size: var(--mj-text-xs);\n}\n\n/* \u2500\u2500 Hints \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-hint {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 3px;\n}\n\n/* \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-danger {\n padding: 12px 14px;\n}\n\n.mj-agent-props-delete-btn {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid #fecaca;\n border-radius: var(--mj-radius-md);\n background: var(--mj-status-error-subtle);\n color: var(--mj-status-error);\n font-size: var(--mj-text-sm);\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-delete-btn:hover { background: var(--mj-status-error-subtle); border-color: #fca5a5; }\n\n.mj-agent-props-delete-btn i { font-size: var(--mj-text-xs); }\n"], encapsulation: 2 });
|
|
1091
|
+
} }, dependencies: [i1.NgClass, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i3.CodeEditorComponent, i4.MJEmptyStateComponent, i4.MJAccordionPanelComponent, i4.MJAccordionTitleDirective, i4.MJAccordionBodyDirective], styles: ["/* ============================================================\n Agent Properties Panel \u2014 Step/Connection configuration\n ============================================================ */\n\n.mj-agent-props {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.mj-agent-props *,\n.mj-agent-props *::before,\n.mj-agent-props *::after {\n box-sizing: border-box;\n}\n\n/* \u2500\u2500 Header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-header {\n flex-shrink: 0;\n padding: 12px 14px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n border-left: 3px solid transparent;\n}\n\n.mj-agent-props-header-top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 10px;\n}\n\n.mj-agent-props-header-label {\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 1.2px;\n text-transform: uppercase;\n color: var(--mj-text-disabled);\n}\n\n.mj-agent-props-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: var(--mj-text-xs);\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-close:hover { background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary); }\n\n/* \u2500\u2500 Identity Card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-identity {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n}\n\n.mj-agent-props-identity-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n min-width: 32px;\n border-radius: var(--mj-radius-md);\n color: white;\n font-size: var(--mj-text-sm);\n flex-shrink: 0;\n}\n\n.mj-agent-props-identity-icon--path {\n border-radius: var(--mj-radius-full);\n width: 28px;\n height: 28px;\n min-width: 28px;\n font-size: 11px;\n}\n\n.mj-agent-props-identity-info {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n}\n\n.mj-agent-props-identity-name {\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n word-break: break-word;\n}\n\n.mj-agent-props-identity-meta {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-type-pill {\n display: inline-flex;\n align-items: center;\n font-size: 11px;\n font-weight: 600;\n padding: 1px 7px;\n border-radius: var(--mj-radius-sm);\n line-height: 1.6;\n}\n\n.mj-agent-props-status-dot {\n display: inline-block;\n width: 7px;\n height: 7px;\n border-radius: var(--mj-radius-full);\n flex-shrink: 0;\n}\n\n.mj-agent-props-status-label {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.mj-agent-props-start-badge {\n display: inline-flex;\n align-items: center;\n font-size: 10px;\n font-weight: 600;\n color: #059669;\n background: #ecfdf5;\n padding: 1px 6px;\n border-radius: var(--mj-radius-sm);\n letter-spacing: 0.2px;\n}\n\n.mj-agent-props-priority-badge {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n/* \u2500\u2500 Path Route Display \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-path-route {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-path-step-name {\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.mj-agent-props-path-arrow {\n font-size: 10px;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n}\n\n/* \u2500\u2500 Empty State \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n text-align: center;\n flex: 1;\n}\n\n.mj-agent-props-empty i { font-size: 28px; color: var(--mj-border-strong); margin-bottom: 12px; }\n.mj-agent-props-empty p { font-size: var(--mj-text-sm); color: var(--mj-text-disabled); margin: 0; }\n\n/* \u2500\u2500 Scrollable Content \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-content {\n flex: 1;\n overflow-y: auto;\n padding-bottom: 16px;\n}\n\n/* \u2500\u2500 Sections \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-section {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.mj-agent-props-section:last-child { border-bottom: none; }\n\n/* Section headers are now <mj-accordion-panel>; the bespoke section-header /\n section-title chrome was removed so the accordion owns the title styling. */\n.mj-agent-props-section-body {\n padding: 12px 14px;\n}\n\n/* \u2500\u2500 Fields \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field {\n margin-bottom: 12px;\n}\n\n.mj-agent-props-field label {\n display: block;\n font-size: var(--mj-text-xs);\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.mj-agent-props-field--row {\n display: flex;\n align-items: center;\n}\n\n.mj-agent-props-input {\n width: 100%;\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface);\n transition: border-color 0.15s ease;\n outline: none;\n font-family: inherit;\n}\n\n.mj-agent-props-input:focus { border-color: var(--mj-brand-primary); }\n.mj-agent-props-input:focus-visible { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15); }\n\n/* Select dropdown with consistent cross-browser styling */\nselect.mj-agent-props-input {\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n padding-right: 28px;\n cursor: pointer;\n}\n\n.mj-agent-props-textarea {\n resize: vertical;\n min-height: 48px;\n}\n\n.mj-agent-props-checkbox-label {\n display: flex !important;\n align-items: center;\n gap: 8px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.mj-agent-props-checkbox-label input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n accent-color: var(--mj-brand-primary);\n cursor: pointer;\n}\n\n/* \u2500\u2500 Read-only Values \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-readonly-value {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 6px 10px;\n min-height: 34px;\n word-break: break-word;\n}\n\n.mj-agent-props-readonly-value--muted {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n/* \u2500\u2500 Code Editor in Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field mj-code-editor {\n display: block;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n min-height: 60px;\n max-height: 200px;\n}\n\n.mj-agent-props-field mj-code-editor .cm-editor {\n font-size: var(--mj-text-xs);\n}\n\n/* \u2500\u2500 Hints \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-hint {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 3px;\n}\n\n/* \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-danger {\n padding: 12px 14px;\n}\n\n.mj-agent-props-delete-btn {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid #fecaca;\n border-radius: var(--mj-radius-md);\n background: var(--mj-status-error-subtle);\n color: var(--mj-status-error);\n font-size: var(--mj-text-sm);\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-delete-btn:hover { background: var(--mj-status-error-subtle); border-color: #fca5a5; }\n\n.mj-agent-props-delete-btn i { font-size: var(--mj-text-xs); }\n"], encapsulation: 2 });
|
|
1108
1092
|
}
|
|
1109
1093
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AgentPropertiesPanelComponent, [{
|
|
1110
1094
|
type: Component,
|
|
1111
|
-
args: [{ standalone: false, selector: 'mj-agent-properties-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<div class=\"mj-agent-props\">\n\n <!-- Empty State -->\n @if (!isStepSelected && !isConnectionSelected) {\n <div class=\"mj-agent-props-empty\">\n <i class=\"fa-solid fa-mouse-pointer\"></i>\n <p>Select a step or connection to view its properties</p>\n </div>\n }\n\n <!-- ============================================ -->\n <!-- STEP PROPERTIES -->\n <!-- ============================================ -->\n @if (isStepSelected) {\n <!-- Step Header -->\n <div class=\"mj-agent-props-header mj-agent-props-header--step\"\n [style.border-left-color]=\"stepTypeColor\">\n <div class=\"mj-agent-props-header-top\">\n <span class=\"mj-agent-props-header-label\">STEP</span>\n <button class=\"mj-agent-props-close\" (click)=\"CloseRequested.emit()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <!-- Identity card -->\n <div class=\"mj-agent-props-identity\">\n <div class=\"mj-agent-props-identity-icon\" [style.background]=\"stepTypeColor\">\n <i class=\"fa-solid\" [ngClass]=\"stepTypeIcon\"></i>\n </div>\n <div class=\"mj-agent-props-identity-info\">\n <span class=\"mj-agent-props-identity-name\">{{ Step!.Name }}</span>\n <span class=\"mj-agent-props-identity-meta\">\n <span class=\"mj-agent-props-type-pill\" [style.color]=\"stepTypeColor\"\n [style.background]=\"stepTypeColor + '18'\">{{ stepTypeLabel }}</span>\n <span class=\"mj-agent-props-status-dot\" [style.background]=\"statusColor\"></span>\n <span class=\"mj-agent-props-status-label\">{{ Step!.Status }}</span>\n @if (Step!.StartingStep) {\n <span class=\"mj-agent-props-start-badge\">Start</span>\n }\n </span>\n </div>\n </div>\n </div>\n <div class=\"mj-agent-props-content\">\n <!-- \u2500\u2500 General Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"mj-agent-props-section\">\n <button class=\"mj-agent-props-section-header\" (click)=\"ToggleSection('general')\">\n <span class=\"mj-agent-props-section-title\">General</span>\n <i class=\"fa-solid\" [ngClass]=\"IsSectionCollapsed('general') ? 'fa-chevron-right' : 'fa-chevron-down'\"></i>\n </button>\n @if (!IsSectionCollapsed('general')) {\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>Name</label>\n @if (!ReadOnly) {\n <input type=\"text\" [value]=\"Step!.Name\"\n (input)=\"OnNameChange(InputValue($event))\"\n placeholder=\"Step name...\" class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ Step!.Name }}</div>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Description</label>\n @if (!ReadOnly) {\n <textarea [value]=\"Step!.Description || ''\"\n (input)=\"OnDescriptionChange(InputValue($event))\"\n placeholder=\"Optional description...\" rows=\"2\"\n class=\"mj-agent-props-input mj-agent-props-textarea\"></textarea>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ Step!.Description || '\u2014' }}\n </div>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Status</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.Status\"\n (change)=\"OnStatusChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"Active\">Active</option>\n <option value=\"Disabled\">Disabled</option>\n <option value=\"Pending\">Pending</option>\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n <span class=\"mj-agent-props-status-dot\" [style.background]=\"statusColor\"></span>\n {{ Step!.Status }}\n </div>\n }\n </div>\n @if (!ReadOnly) {\n <div class=\"mj-agent-props-field mj-agent-props-field--row\">\n <label class=\"mj-agent-props-checkbox-label\">\n <input type=\"checkbox\" [checked]=\"Step!.StartingStep\"\n (change)=\"OnStartingStepChange(CheckedValue($event))\">\n Starting Step\n </label>\n </div>\n }\n @if (ReadOnly && Step!.StartingStep) {\n <div class=\"mj-agent-props-field\">\n <label>Starting Step</label>\n <div class=\"mj-agent-props-readonly-value\">\n <span class=\"mj-agent-props-start-badge\">Yes \u2014 this is the entry point</span>\n </div>\n </div>\n }\n </div>\n }\n </div>\n <!-- \u2500\u2500 Configuration Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"mj-agent-props-section\">\n <button class=\"mj-agent-props-section-header\" (click)=\"ToggleSection('config')\">\n <span class=\"mj-agent-props-section-title\">Configuration</span>\n <i class=\"fa-solid\" [ngClass]=\"IsSectionCollapsed('config') ? 'fa-chevron-right' : 'fa-chevron-down'\"></i>\n </button>\n @if (!IsSectionCollapsed('config')) {\n <div class=\"mj-agent-props-section-body\">\n <!-- Loop Body Type (ForEach / While) -->\n @if (showLoopConfig) {\n <div class=\"mj-agent-props-field\">\n <label>Loop Body Type</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.LoopBodyType || 'Action'\"\n (change)=\"OnLoopBodyTypeChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"Action\">Action</option>\n <option value=\"Prompt\">Prompt</option>\n <option value=\"Sub-Agent\">Sub-Agent</option>\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ Step!.LoopBodyType || 'Action' }}\n </div>\n }\n </div>\n }\n <!-- Action Picker -->\n @if (showActionPicker) {\n <div class=\"mj-agent-props-field\">\n <label>Action</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.ActionID || ''\"\n (change)=\"OnActionChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"\">-- Select Action --</option>\n @for (action of Actions; track action) {\n <option [value]=\"action.ID\">{{ action.Name }}</option>\n }\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ selectedActionName }}</div>\n }\n </div>\n }\n <!-- Prompt Picker -->\n @if (showPromptPicker) {\n <div class=\"mj-agent-props-field\">\n <label>Prompt</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.PromptID || ''\"\n (change)=\"OnPromptChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"\">-- Select Prompt --</option>\n @for (prompt of Prompts; track prompt) {\n <option [value]=\"prompt.ID\">{{ prompt.Name }}</option>\n }\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ selectedPromptName }}</div>\n }\n </div>\n }\n <!-- Sub-Agent Picker -->\n @if (showAgentPicker) {\n <div class=\"mj-agent-props-field\">\n <label>Sub-Agent</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.SubAgentID || ''\"\n (change)=\"OnSubAgentChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"\">-- Select Agent --</option>\n @for (agent of Agents; track agent) {\n <option [value]=\"agent.ID\">{{ agent.Name }}</option>\n }\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ selectedAgentName }}</div>\n }\n </div>\n }\n <!-- Loop Configuration (JSON) -->\n @if (showLoopConfig) {\n <div class=\"mj-agent-props-field\">\n <label>Loop Configuration</label>\n <mj-code-editor\n [value]=\"FormatJsonDisplay(Step!.Configuration)\"\n language=\"json\"\n [readonly]=\"ReadOnly\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n (change)=\"OnConfigurationChange($any($event))\">\n </mj-code-editor>\n </div>\n }\n </div>\n }\n </div>\n <!-- \u2500\u2500 Data Mapping Section (Action steps) \u2500\u2500\u2500 -->\n @if (Step!.StepType === 'Action' || showActionPicker) {\n <div class=\"mj-agent-props-section\">\n <button class=\"mj-agent-props-section-header\" (click)=\"ToggleSection('mapping')\">\n <span class=\"mj-agent-props-section-title\">Data Mapping</span>\n <i class=\"fa-solid\" [ngClass]=\"IsSectionCollapsed('mapping') ? 'fa-chevron-right' : 'fa-chevron-down'\"></i>\n </button>\n @if (!IsSectionCollapsed('mapping')) {\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>Input Mapping</label>\n <mj-code-editor\n [value]=\"FormatJsonDisplay(Step!.ActionInputMapping)\"\n language=\"json\"\n [readonly]=\"ReadOnly\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n placeholder=\"Enter JSON input mapping...\"\n (change)=\"OnInputMappingChange($any($event))\">\n </mj-code-editor>\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Output Mapping</label>\n <mj-code-editor\n [value]=\"FormatJsonDisplay(Step!.ActionOutputMapping)\"\n language=\"json\"\n [readonly]=\"ReadOnly\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n placeholder=\"Enter JSON output mapping...\"\n (change)=\"OnOutputMappingChange($any($event))\">\n </mj-code-editor>\n </div>\n </div>\n }\n </div>\n }\n <!-- \u2500\u2500 Error Handling Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"mj-agent-props-section\">\n <button class=\"mj-agent-props-section-header\" (click)=\"ToggleSection('errors')\">\n <span class=\"mj-agent-props-section-title\">Error Handling</span>\n <i class=\"fa-solid\" [ngClass]=\"IsSectionCollapsed('errors') ? 'fa-chevron-right' : 'fa-chevron-down'\"></i>\n </button>\n @if (!IsSectionCollapsed('errors')) {\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>On Error</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.OnErrorBehavior\"\n (change)=\"OnErrorBehaviorChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"fail\">Fail (stop flow)</option>\n <option value=\"continue\">Continue (ignore error)</option>\n <option value=\"retry\">Retry</option>\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ Step!.OnErrorBehavior === 'fail' ? 'Fail (stop flow)' :\n Step!.OnErrorBehavior === 'continue' ? 'Continue (ignore error)' : 'Retry' }}\n </div>\n }\n </div>\n @if (Step!.OnErrorBehavior === 'retry') {\n <div class=\"mj-agent-props-field\">\n <label>Retry Count</label>\n @if (!ReadOnly) {\n <input type=\"number\" [value]=\"Step!.RetryCount\" min=\"0\" max=\"10\"\n (input)=\"OnRetryCountChange(NumericValue($event))\"\n class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ Step!.RetryCount }}</div>\n }\n </div>\n }\n <div class=\"mj-agent-props-field\">\n <label>Timeout (seconds)</label>\n @if (!ReadOnly) {\n <input type=\"number\" [value]=\"Step!.TimeoutSeconds\" min=\"1\"\n (input)=\"OnTimeoutChange(NumericValue($event))\"\n class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ Step!.TimeoutSeconds }}s</div>\n }\n </div>\n </div>\n }\n </div>\n <!-- \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (!ReadOnly) {\n <div class=\"mj-agent-props-section mj-agent-props-danger\">\n <button class=\"mj-agent-props-delete-btn\" (click)=\"OnDeleteStep()\">\n <i class=\"fa-solid fa-trash-can\"></i> Delete Step\n </button>\n </div>\n }\n </div>\n }\n\n <!-- ============================================ -->\n <!-- PATH PROPERTIES -->\n <!-- ============================================ -->\n @if (isConnectionSelected) {\n <!-- Path Header -->\n <div class=\"mj-agent-props-header mj-agent-props-header--path\"\n [style.border-left-color]=\"pathAccentColor\">\n <div class=\"mj-agent-props-header-top\">\n <span class=\"mj-agent-props-header-label\">PATH</span>\n <button class=\"mj-agent-props-close\" (click)=\"CloseRequested.emit()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <!-- Path identity card -->\n <div class=\"mj-agent-props-identity\">\n <div class=\"mj-agent-props-identity-icon mj-agent-props-identity-icon--path\"\n [style.background]=\"pathAccentColor\">\n <i class=\"fa-solid fa-arrow-right\"></i>\n </div>\n <div class=\"mj-agent-props-identity-info\">\n <span class=\"mj-agent-props-path-route\">\n <span class=\"mj-agent-props-path-step-name\">{{ originStepName }}</span>\n <i class=\"fa-solid fa-arrow-right mj-agent-props-path-arrow\"></i>\n <span class=\"mj-agent-props-path-step-name\">{{ destinationStepName }}</span>\n </span>\n <span class=\"mj-agent-props-identity-meta\">\n <span class=\"mj-agent-props-type-pill\"\n [style.color]=\"pathAccentColor\"\n [style.background]=\"pathAccentColor + '18'\">\n {{ isConditionalPath ? 'Conditional' : 'Always' }}\n </span>\n @if (PathEntity!.Priority !== 0) {\n <span class=\"mj-agent-props-priority-badge\">\n Priority: {{ PathEntity!.Priority }}\n </span>\n }\n </span>\n </div>\n </div>\n </div>\n <div class=\"mj-agent-props-content\">\n <!-- \u2500\u2500 Overview Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"mj-agent-props-section\">\n <button class=\"mj-agent-props-section-header\" (click)=\"ToggleSection('path-overview')\">\n <span class=\"mj-agent-props-section-title\">Route</span>\n <i class=\"fa-solid\" [ngClass]=\"IsSectionCollapsed('path-overview') ? 'fa-chevron-right' : 'fa-chevron-down'\"></i>\n </button>\n @if (!IsSectionCollapsed('path-overview')) {\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>From</label>\n <div class=\"mj-agent-props-readonly-value mj-agent-props-readonly-value--muted\">\n {{ originStepName }}\n </div>\n </div>\n <div class=\"mj-agent-props-field\">\n <label>To</label>\n <div class=\"mj-agent-props-readonly-value mj-agent-props-readonly-value--muted\">\n {{ destinationStepName }}\n </div>\n </div>\n <span class=\"mj-agent-props-hint\">To change the route, rewire the connection on the canvas.</span>\n </div>\n }\n </div>\n <!-- \u2500\u2500 Path Settings Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"mj-agent-props-section\">\n <button class=\"mj-agent-props-section-header\" (click)=\"ToggleSection('path-settings')\">\n <span class=\"mj-agent-props-section-title\">Settings</span>\n <i class=\"fa-solid\" [ngClass]=\"IsSectionCollapsed('path-settings') ? 'fa-chevron-right' : 'fa-chevron-down'\"></i>\n </button>\n @if (!IsSectionCollapsed('path-settings')) {\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>Description</label>\n @if (!ReadOnly) {\n <input type=\"text\" [value]=\"PathEntity!.Description || ''\"\n (input)=\"OnPathDescriptionChange(InputValue($event))\"\n placeholder=\"Path label...\" class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ PathEntity!.Description || '\u2014' }}\n </div>\n }\n @if (!ReadOnly) {\n <span class=\"mj-agent-props-hint\">Displayed as a label on the connection line</span>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Condition</label>\n @if (!ReadOnly) {\n <mj-code-editor\n [value]=\"PathEntity!.Condition || ''\"\n language=\"javascript\"\n [readonly]=\"false\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n placeholder=\"e.g. payload.status === 'active'\"\n (change)=\"OnPathConditionChange($any($event))\">\n </mj-code-editor>\n }\n @if (ReadOnly && PathEntity!.Condition) {\n <mj-code-editor\n [value]=\"PathEntity!.Condition\"\n language=\"javascript\"\n [readonly]=\"true\"\n setup=\"minimal\"\n [lineWrapping]=\"true\">\n </mj-code-editor>\n }\n @if (ReadOnly && !PathEntity!.Condition) {\n <div class=\"mj-agent-props-readonly-value mj-agent-props-readonly-value--muted\">\n No condition (always taken)\n </div>\n }\n @if (!ReadOnly) {\n <span class=\"mj-agent-props-hint\">\n JavaScript expression evaluated at runtime. Leave empty for unconditional.\n </span>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Priority</label>\n @if (!ReadOnly) {\n <input type=\"number\" [value]=\"PathEntity!.Priority\" min=\"-100\" max=\"100\"\n (input)=\"OnPathPriorityChange(NumericValue($event))\"\n class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ PathEntity!.Priority }}</div>\n }\n <span class=\"mj-agent-props-hint\">Higher priority paths are evaluated first when multiple paths leave a step.</span>\n </div>\n </div>\n }\n </div>\n <!-- \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (!ReadOnly) {\n <div class=\"mj-agent-props-section mj-agent-props-danger\">\n <button class=\"mj-agent-props-delete-btn\" (click)=\"OnDeletePath()\">\n <i class=\"fa-solid fa-trash-can\"></i> Delete Path\n </button>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["/* ============================================================\n Agent Properties Panel \u2014 Step/Connection configuration\n ============================================================ */\n\n.mj-agent-props {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.mj-agent-props *,\n.mj-agent-props *::before,\n.mj-agent-props *::after {\n box-sizing: border-box;\n}\n\n/* \u2500\u2500 Header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-header {\n flex-shrink: 0;\n padding: 12px 14px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n border-left: 3px solid transparent;\n}\n\n.mj-agent-props-header-top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 10px;\n}\n\n.mj-agent-props-header-label {\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 1.2px;\n text-transform: uppercase;\n color: var(--mj-text-disabled);\n}\n\n.mj-agent-props-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: var(--mj-text-xs);\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-close:hover { background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary); }\n\n/* \u2500\u2500 Identity Card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-identity {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n}\n\n.mj-agent-props-identity-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n min-width: 32px;\n border-radius: var(--mj-radius-md);\n color: white;\n font-size: var(--mj-text-sm);\n flex-shrink: 0;\n}\n\n.mj-agent-props-identity-icon--path {\n border-radius: var(--mj-radius-full);\n width: 28px;\n height: 28px;\n min-width: 28px;\n font-size: 11px;\n}\n\n.mj-agent-props-identity-info {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n}\n\n.mj-agent-props-identity-name {\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n word-break: break-word;\n}\n\n.mj-agent-props-identity-meta {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-type-pill {\n display: inline-flex;\n align-items: center;\n font-size: 11px;\n font-weight: 600;\n padding: 1px 7px;\n border-radius: var(--mj-radius-sm);\n line-height: 1.6;\n}\n\n.mj-agent-props-status-dot {\n display: inline-block;\n width: 7px;\n height: 7px;\n border-radius: var(--mj-radius-full);\n flex-shrink: 0;\n}\n\n.mj-agent-props-status-label {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.mj-agent-props-start-badge {\n display: inline-flex;\n align-items: center;\n font-size: 10px;\n font-weight: 600;\n color: #059669;\n background: #ecfdf5;\n padding: 1px 6px;\n border-radius: var(--mj-radius-sm);\n letter-spacing: 0.2px;\n}\n\n.mj-agent-props-priority-badge {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n/* \u2500\u2500 Path Route Display \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-path-route {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-path-step-name {\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.mj-agent-props-path-arrow {\n font-size: 10px;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n}\n\n/* \u2500\u2500 Empty State \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n text-align: center;\n flex: 1;\n}\n\n.mj-agent-props-empty i { font-size: 28px; color: var(--mj-border-strong); margin-bottom: 12px; }\n.mj-agent-props-empty p { font-size: var(--mj-text-sm); color: var(--mj-text-disabled); margin: 0; }\n\n/* \u2500\u2500 Scrollable Content \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-content {\n flex: 1;\n overflow-y: auto;\n padding-bottom: 16px;\n}\n\n/* \u2500\u2500 Sections \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-section {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.mj-agent-props-section:last-child { border-bottom: none; }\n\n.mj-agent-props-section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 10px 14px;\n border: none;\n background: none;\n cursor: pointer;\n transition: background-color 0.1s ease;\n}\n\n.mj-agent-props-section-header:hover {\n background: var(--mj-bg-page);\n}\n\n.mj-agent-props-section-header i {\n font-size: 10px;\n color: var(--mj-text-disabled);\n transition: transform 0.15s ease;\n}\n\n.mj-agent-props-section-title {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.mj-agent-props-section-body {\n padding: 0 14px 12px;\n}\n\n/* \u2500\u2500 Fields \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field {\n margin-bottom: 12px;\n}\n\n.mj-agent-props-field label {\n display: block;\n font-size: var(--mj-text-xs);\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.mj-agent-props-field--row {\n display: flex;\n align-items: center;\n}\n\n.mj-agent-props-input {\n width: 100%;\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface);\n transition: border-color 0.15s ease;\n outline: none;\n font-family: inherit;\n}\n\n.mj-agent-props-input:focus { border-color: var(--mj-brand-primary); }\n.mj-agent-props-input:focus-visible { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15); }\n\n/* Select dropdown with consistent cross-browser styling */\nselect.mj-agent-props-input {\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n padding-right: 28px;\n cursor: pointer;\n}\n\n.mj-agent-props-textarea {\n resize: vertical;\n min-height: 48px;\n}\n\n.mj-agent-props-checkbox-label {\n display: flex !important;\n align-items: center;\n gap: 8px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.mj-agent-props-checkbox-label input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n accent-color: var(--mj-brand-primary);\n cursor: pointer;\n}\n\n/* \u2500\u2500 Read-only Values \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-readonly-value {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 6px 10px;\n min-height: 34px;\n word-break: break-word;\n}\n\n.mj-agent-props-readonly-value--muted {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n/* \u2500\u2500 Code Editor in Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field mj-code-editor {\n display: block;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n min-height: 60px;\n max-height: 200px;\n}\n\n.mj-agent-props-field mj-code-editor .cm-editor {\n font-size: var(--mj-text-xs);\n}\n\n/* \u2500\u2500 Hints \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-hint {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 3px;\n}\n\n/* \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-danger {\n padding: 12px 14px;\n}\n\n.mj-agent-props-delete-btn {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid #fecaca;\n border-radius: var(--mj-radius-md);\n background: var(--mj-status-error-subtle);\n color: var(--mj-status-error);\n font-size: var(--mj-text-sm);\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-delete-btn:hover { background: var(--mj-status-error-subtle); border-color: #fca5a5; }\n\n.mj-agent-props-delete-btn i { font-size: var(--mj-text-xs); }\n"] }]
|
|
1095
|
+
args: [{ standalone: false, selector: 'mj-agent-properties-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<div class=\"mj-agent-props\">\n\n <!-- Empty State -->\n @if (!isStepSelected && !isConnectionSelected) {\n <mj-empty-state class=\"mj-agent-props-empty\"\n Icon=\"fa-solid fa-arrow-pointer\"\n Title=\"No selection\"\n Message=\"Select a step or connection to view its properties\" />\n }\n\n <!-- ============================================ -->\n <!-- STEP PROPERTIES -->\n <!-- ============================================ -->\n @if (isStepSelected) {\n <!-- Step Header -->\n <div class=\"mj-agent-props-header mj-agent-props-header--step\"\n [style.border-left-color]=\"stepTypeColor\">\n <div class=\"mj-agent-props-header-top\">\n <span class=\"mj-agent-props-header-label\">STEP</span>\n <button class=\"mj-agent-props-close\" (click)=\"CloseRequested.emit()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <!-- Identity card -->\n <div class=\"mj-agent-props-identity\">\n <div class=\"mj-agent-props-identity-icon\" [style.background]=\"stepTypeColor\">\n <i class=\"fa-solid\" [ngClass]=\"stepTypeIcon\"></i>\n </div>\n <div class=\"mj-agent-props-identity-info\">\n <span class=\"mj-agent-props-identity-name\">{{ Step!.Name }}</span>\n <span class=\"mj-agent-props-identity-meta\">\n <span class=\"mj-agent-props-type-pill\" [style.color]=\"stepTypeColor\"\n [style.background]=\"stepTypeColor + '18'\">{{ stepTypeLabel }}</span>\n <span class=\"mj-agent-props-status-dot\" [style.background]=\"statusColor\"></span>\n <span class=\"mj-agent-props-status-label\">{{ Step!.Status }}</span>\n @if (Step!.StartingStep) {\n <span class=\"mj-agent-props-start-badge\">Start</span>\n }\n </span>\n </div>\n </div>\n </div>\n <div class=\"mj-agent-props-content\">\n <!-- \u2500\u2500 General Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <mj-accordion-panel class=\"mj-agent-props-accordion\" Size=\"sm\" [FlushBody]=\"true\" [Expanded]=\"!IsSectionCollapsed('general')\" (ExpandedChange)=\"ToggleSection('general')\">\n <ng-template mjAccordionTitle><span>General</span></ng-template>\n <ng-template mjAccordionBody>\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>Name</label>\n @if (!ReadOnly) {\n <input type=\"text\" [value]=\"Step!.Name\"\n (input)=\"OnNameChange(InputValue($event))\"\n placeholder=\"Step name...\" class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ Step!.Name }}</div>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Description</label>\n @if (!ReadOnly) {\n <textarea [value]=\"Step!.Description || ''\"\n (input)=\"OnDescriptionChange(InputValue($event))\"\n placeholder=\"Optional description...\" rows=\"2\"\n class=\"mj-agent-props-input mj-agent-props-textarea\"></textarea>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ Step!.Description || '\u2014' }}\n </div>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Status</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.Status\"\n (change)=\"OnStatusChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"Active\">Active</option>\n <option value=\"Disabled\">Disabled</option>\n <option value=\"Pending\">Pending</option>\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n <span class=\"mj-agent-props-status-dot\" [style.background]=\"statusColor\"></span>\n {{ Step!.Status }}\n </div>\n }\n </div>\n @if (!ReadOnly) {\n <div class=\"mj-agent-props-field mj-agent-props-field--row\">\n <label class=\"mj-agent-props-checkbox-label\">\n <input type=\"checkbox\" [checked]=\"Step!.StartingStep\"\n (change)=\"OnStartingStepChange(CheckedValue($event))\">\n Starting Step\n </label>\n </div>\n }\n @if (ReadOnly && Step!.StartingStep) {\n <div class=\"mj-agent-props-field\">\n <label>Starting Step</label>\n <div class=\"mj-agent-props-readonly-value\">\n <span class=\"mj-agent-props-start-badge\">Yes \u2014 this is the entry point</span>\n </div>\n </div>\n }\n </div>\n </ng-template>\n </mj-accordion-panel>\n <!-- \u2500\u2500 Configuration Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <mj-accordion-panel class=\"mj-agent-props-accordion\" Size=\"sm\" [FlushBody]=\"true\" [Expanded]=\"!IsSectionCollapsed('config')\" (ExpandedChange)=\"ToggleSection('config')\">\n <ng-template mjAccordionTitle><span>Configuration</span></ng-template>\n <ng-template mjAccordionBody>\n <div class=\"mj-agent-props-section-body\">\n <!-- Loop Body Type (ForEach / While) -->\n @if (showLoopConfig) {\n <div class=\"mj-agent-props-field\">\n <label>Loop Body Type</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.LoopBodyType || 'Action'\"\n (change)=\"OnLoopBodyTypeChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"Action\">Action</option>\n <option value=\"Prompt\">Prompt</option>\n <option value=\"Sub-Agent\">Sub-Agent</option>\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ Step!.LoopBodyType || 'Action' }}\n </div>\n }\n </div>\n }\n <!-- Action Picker -->\n @if (showActionPicker) {\n <div class=\"mj-agent-props-field\">\n <label>Action</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.ActionID || ''\"\n (change)=\"OnActionChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"\">-- Select Action --</option>\n @for (action of Actions; track action) {\n <option [value]=\"action.ID\">{{ action.Name }}</option>\n }\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ selectedActionName }}</div>\n }\n </div>\n }\n <!-- Prompt Picker -->\n @if (showPromptPicker) {\n <div class=\"mj-agent-props-field\">\n <label>Prompt</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.PromptID || ''\"\n (change)=\"OnPromptChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"\">-- Select Prompt --</option>\n @for (prompt of Prompts; track prompt) {\n <option [value]=\"prompt.ID\">{{ prompt.Name }}</option>\n }\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ selectedPromptName }}</div>\n }\n </div>\n }\n <!-- Sub-Agent Picker -->\n @if (showAgentPicker) {\n <div class=\"mj-agent-props-field\">\n <label>Sub-Agent</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.SubAgentID || ''\"\n (change)=\"OnSubAgentChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"\">-- Select Agent --</option>\n @for (agent of Agents; track agent) {\n <option [value]=\"agent.ID\">{{ agent.Name }}</option>\n }\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ selectedAgentName }}</div>\n }\n </div>\n }\n <!-- Loop Configuration (JSON) -->\n @if (showLoopConfig) {\n <div class=\"mj-agent-props-field\">\n <label>Loop Configuration</label>\n <mj-code-editor\n [value]=\"FormatJsonDisplay(Step!.Configuration)\"\n language=\"json\"\n [readonly]=\"ReadOnly\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n (change)=\"OnConfigurationChange($any($event))\">\n </mj-code-editor>\n </div>\n }\n </div>\n </ng-template>\n </mj-accordion-panel>\n <!-- \u2500\u2500 Data Mapping Section (Action steps) \u2500\u2500\u2500 -->\n @if (Step!.StepType === 'Action' || showActionPicker) {\n <mj-accordion-panel class=\"mj-agent-props-accordion\" Size=\"sm\" [FlushBody]=\"true\" [Expanded]=\"!IsSectionCollapsed('mapping')\" (ExpandedChange)=\"ToggleSection('mapping')\">\n <ng-template mjAccordionTitle><span>Data Mapping</span></ng-template>\n <ng-template mjAccordionBody>\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>Input Mapping</label>\n <mj-code-editor\n [value]=\"FormatJsonDisplay(Step!.ActionInputMapping)\"\n language=\"json\"\n [readonly]=\"ReadOnly\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n placeholder=\"Enter JSON input mapping...\"\n (change)=\"OnInputMappingChange($any($event))\">\n </mj-code-editor>\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Output Mapping</label>\n <mj-code-editor\n [value]=\"FormatJsonDisplay(Step!.ActionOutputMapping)\"\n language=\"json\"\n [readonly]=\"ReadOnly\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n placeholder=\"Enter JSON output mapping...\"\n (change)=\"OnOutputMappingChange($any($event))\">\n </mj-code-editor>\n </div>\n </div>\n </ng-template>\n </mj-accordion-panel>\n }\n <!-- \u2500\u2500 Error Handling Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <mj-accordion-panel class=\"mj-agent-props-accordion\" Size=\"sm\" [FlushBody]=\"true\" [Expanded]=\"!IsSectionCollapsed('errors')\" (ExpandedChange)=\"ToggleSection('errors')\">\n <ng-template mjAccordionTitle><span>Error Handling</span></ng-template>\n <ng-template mjAccordionBody>\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>On Error</label>\n @if (!ReadOnly) {\n <select [value]=\"Step!.OnErrorBehavior\"\n (change)=\"OnErrorBehaviorChange(InputValue($event))\"\n class=\"mj-agent-props-input\">\n <option value=\"fail\">Fail (stop flow)</option>\n <option value=\"continue\">Continue (ignore error)</option>\n <option value=\"retry\">Retry</option>\n </select>\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ Step!.OnErrorBehavior === 'fail' ? 'Fail (stop flow)' :\n Step!.OnErrorBehavior === 'continue' ? 'Continue (ignore error)' : 'Retry' }}\n </div>\n }\n </div>\n @if (Step!.OnErrorBehavior === 'retry') {\n <div class=\"mj-agent-props-field\">\n <label>Retry Count</label>\n @if (!ReadOnly) {\n <input type=\"number\" [value]=\"Step!.RetryCount\" min=\"0\" max=\"10\"\n (input)=\"OnRetryCountChange(NumericValue($event))\"\n class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ Step!.RetryCount }}</div>\n }\n </div>\n }\n <div class=\"mj-agent-props-field\">\n <label>Timeout (seconds)</label>\n @if (!ReadOnly) {\n <input type=\"number\" [value]=\"Step!.TimeoutSeconds\" min=\"1\"\n (input)=\"OnTimeoutChange(NumericValue($event))\"\n class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ Step!.TimeoutSeconds }}s</div>\n }\n </div>\n </div>\n </ng-template>\n </mj-accordion-panel>\n <!-- \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (!ReadOnly) {\n <div class=\"mj-agent-props-section mj-agent-props-danger\">\n <button class=\"mj-agent-props-delete-btn\" (click)=\"OnDeleteStep()\">\n <i class=\"fa-solid fa-trash-can\"></i> Delete Step\n </button>\n </div>\n }\n </div>\n }\n\n <!-- ============================================ -->\n <!-- PATH PROPERTIES -->\n <!-- ============================================ -->\n @if (isConnectionSelected) {\n <!-- Path Header -->\n <div class=\"mj-agent-props-header mj-agent-props-header--path\"\n [style.border-left-color]=\"pathAccentColor\">\n <div class=\"mj-agent-props-header-top\">\n <span class=\"mj-agent-props-header-label\">PATH</span>\n <button class=\"mj-agent-props-close\" (click)=\"CloseRequested.emit()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <!-- Path identity card -->\n <div class=\"mj-agent-props-identity\">\n <div class=\"mj-agent-props-identity-icon mj-agent-props-identity-icon--path\"\n [style.background]=\"pathAccentColor\">\n <i class=\"fa-solid fa-arrow-right\"></i>\n </div>\n <div class=\"mj-agent-props-identity-info\">\n <span class=\"mj-agent-props-path-route\">\n <span class=\"mj-agent-props-path-step-name\">{{ originStepName }}</span>\n <i class=\"fa-solid fa-arrow-right mj-agent-props-path-arrow\"></i>\n <span class=\"mj-agent-props-path-step-name\">{{ destinationStepName }}</span>\n </span>\n <span class=\"mj-agent-props-identity-meta\">\n <span class=\"mj-agent-props-type-pill\"\n [style.color]=\"pathAccentColor\"\n [style.background]=\"pathAccentColor + '18'\">\n {{ isConditionalPath ? 'Conditional' : 'Always' }}\n </span>\n @if (PathEntity!.Priority !== 0) {\n <span class=\"mj-agent-props-priority-badge\">\n Priority: {{ PathEntity!.Priority }}\n </span>\n }\n </span>\n </div>\n </div>\n </div>\n <div class=\"mj-agent-props-content\">\n <!-- \u2500\u2500 Overview Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <mj-accordion-panel class=\"mj-agent-props-accordion\" Size=\"sm\" [FlushBody]=\"true\" [Expanded]=\"!IsSectionCollapsed('path-overview')\" (ExpandedChange)=\"ToggleSection('path-overview')\">\n <ng-template mjAccordionTitle><span>Route</span></ng-template>\n <ng-template mjAccordionBody>\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>From</label>\n <div class=\"mj-agent-props-readonly-value mj-agent-props-readonly-value--muted\">\n {{ originStepName }}\n </div>\n </div>\n <div class=\"mj-agent-props-field\">\n <label>To</label>\n <div class=\"mj-agent-props-readonly-value mj-agent-props-readonly-value--muted\">\n {{ destinationStepName }}\n </div>\n </div>\n <span class=\"mj-agent-props-hint\">To change the route, rewire the connection on the canvas.</span>\n </div>\n </ng-template>\n </mj-accordion-panel>\n <!-- \u2500\u2500 Path Settings Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <mj-accordion-panel class=\"mj-agent-props-accordion\" Size=\"sm\" [FlushBody]=\"true\" [Expanded]=\"!IsSectionCollapsed('path-settings')\" (ExpandedChange)=\"ToggleSection('path-settings')\">\n <ng-template mjAccordionTitle><span>Settings</span></ng-template>\n <ng-template mjAccordionBody>\n <div class=\"mj-agent-props-section-body\">\n <div class=\"mj-agent-props-field\">\n <label>Description</label>\n @if (!ReadOnly) {\n <input type=\"text\" [value]=\"PathEntity!.Description || ''\"\n (input)=\"OnPathDescriptionChange(InputValue($event))\"\n placeholder=\"Path label...\" class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">\n {{ PathEntity!.Description || '\u2014' }}\n </div>\n }\n @if (!ReadOnly) {\n <span class=\"mj-agent-props-hint\">Displayed as a label on the connection line</span>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Condition</label>\n @if (!ReadOnly) {\n <mj-code-editor\n [value]=\"PathEntity!.Condition || ''\"\n language=\"javascript\"\n [readonly]=\"false\"\n setup=\"minimal\"\n [lineWrapping]=\"true\"\n placeholder=\"e.g. payload.status === 'active'\"\n (change)=\"OnPathConditionChange($any($event))\">\n </mj-code-editor>\n }\n @if (ReadOnly && PathEntity!.Condition) {\n <mj-code-editor\n [value]=\"PathEntity!.Condition\"\n language=\"javascript\"\n [readonly]=\"true\"\n setup=\"minimal\"\n [lineWrapping]=\"true\">\n </mj-code-editor>\n }\n @if (ReadOnly && !PathEntity!.Condition) {\n <div class=\"mj-agent-props-readonly-value mj-agent-props-readonly-value--muted\">\n No condition (always taken)\n </div>\n }\n @if (!ReadOnly) {\n <span class=\"mj-agent-props-hint\">\n JavaScript expression evaluated at runtime. Leave empty for unconditional.\n </span>\n }\n </div>\n <div class=\"mj-agent-props-field\">\n <label>Priority</label>\n @if (!ReadOnly) {\n <input type=\"number\" [value]=\"PathEntity!.Priority\" min=\"-100\" max=\"100\"\n (input)=\"OnPathPriorityChange(NumericValue($event))\"\n class=\"mj-agent-props-input\">\n }\n @if (ReadOnly) {\n <div class=\"mj-agent-props-readonly-value\">{{ PathEntity!.Priority }}</div>\n }\n <span class=\"mj-agent-props-hint\">Higher priority paths are evaluated first when multiple paths leave a step.</span>\n </div>\n </div>\n </ng-template>\n </mj-accordion-panel>\n <!-- \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (!ReadOnly) {\n <div class=\"mj-agent-props-section mj-agent-props-danger\">\n <button class=\"mj-agent-props-delete-btn\" (click)=\"OnDeletePath()\">\n <i class=\"fa-solid fa-trash-can\"></i> Delete Path\n </button>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["/* ============================================================\n Agent Properties Panel \u2014 Step/Connection configuration\n ============================================================ */\n\n.mj-agent-props {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--mj-bg-surface);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n.mj-agent-props *,\n.mj-agent-props *::before,\n.mj-agent-props *::after {\n box-sizing: border-box;\n}\n\n/* \u2500\u2500 Header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-header {\n flex-shrink: 0;\n padding: 12px 14px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n border-left: 3px solid transparent;\n}\n\n.mj-agent-props-header-top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 10px;\n}\n\n.mj-agent-props-header-label {\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 1.2px;\n text-transform: uppercase;\n color: var(--mj-text-disabled);\n}\n\n.mj-agent-props-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: var(--mj-text-xs);\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-close:hover { background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary); }\n\n/* \u2500\u2500 Identity Card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-identity {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n}\n\n.mj-agent-props-identity-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n min-width: 32px;\n border-radius: var(--mj-radius-md);\n color: white;\n font-size: var(--mj-text-sm);\n flex-shrink: 0;\n}\n\n.mj-agent-props-identity-icon--path {\n border-radius: var(--mj-radius-full);\n width: 28px;\n height: 28px;\n min-width: 28px;\n font-size: 11px;\n}\n\n.mj-agent-props-identity-info {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n}\n\n.mj-agent-props-identity-name {\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n word-break: break-word;\n}\n\n.mj-agent-props-identity-meta {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-type-pill {\n display: inline-flex;\n align-items: center;\n font-size: 11px;\n font-weight: 600;\n padding: 1px 7px;\n border-radius: var(--mj-radius-sm);\n line-height: 1.6;\n}\n\n.mj-agent-props-status-dot {\n display: inline-block;\n width: 7px;\n height: 7px;\n border-radius: var(--mj-radius-full);\n flex-shrink: 0;\n}\n\n.mj-agent-props-status-label {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.mj-agent-props-start-badge {\n display: inline-flex;\n align-items: center;\n font-size: 10px;\n font-weight: 600;\n color: #059669;\n background: #ecfdf5;\n padding: 1px 6px;\n border-radius: var(--mj-radius-sm);\n letter-spacing: 0.2px;\n}\n\n.mj-agent-props-priority-badge {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-weight: 500;\n}\n\n/* \u2500\u2500 Path Route Display \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-path-route {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n font-weight: 600;\n color: var(--mj-text-primary);\n line-height: 1.3;\n flex-wrap: wrap;\n}\n\n.mj-agent-props-path-step-name {\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.mj-agent-props-path-arrow {\n font-size: 10px;\n color: var(--mj-text-disabled);\n flex-shrink: 0;\n}\n\n/* \u2500\u2500 Empty State \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n text-align: center;\n flex: 1;\n}\n\n.mj-agent-props-empty i { font-size: 28px; color: var(--mj-border-strong); margin-bottom: 12px; }\n.mj-agent-props-empty p { font-size: var(--mj-text-sm); color: var(--mj-text-disabled); margin: 0; }\n\n/* \u2500\u2500 Scrollable Content \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-content {\n flex: 1;\n overflow-y: auto;\n padding-bottom: 16px;\n}\n\n/* \u2500\u2500 Sections \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-section {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.mj-agent-props-section:last-child { border-bottom: none; }\n\n/* Section headers are now <mj-accordion-panel>; the bespoke section-header /\n section-title chrome was removed so the accordion owns the title styling. */\n.mj-agent-props-section-body {\n padding: 12px 14px;\n}\n\n/* \u2500\u2500 Fields \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field {\n margin-bottom: 12px;\n}\n\n.mj-agent-props-field label {\n display: block;\n font-size: var(--mj-text-xs);\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin-bottom: 4px;\n}\n\n.mj-agent-props-field--row {\n display: flex;\n align-items: center;\n}\n\n.mj-agent-props-input {\n width: 100%;\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface);\n transition: border-color 0.15s ease;\n outline: none;\n font-family: inherit;\n}\n\n.mj-agent-props-input:focus { border-color: var(--mj-brand-primary); }\n.mj-agent-props-input:focus-visible { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15); }\n\n/* Select dropdown with consistent cross-browser styling */\nselect.mj-agent-props-input {\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n padding-right: 28px;\n cursor: pointer;\n}\n\n.mj-agent-props-textarea {\n resize: vertical;\n min-height: 48px;\n}\n\n.mj-agent-props-checkbox-label {\n display: flex !important;\n align-items: center;\n gap: 8px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n cursor: pointer;\n}\n\n.mj-agent-props-checkbox-label input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n accent-color: var(--mj-brand-primary);\n cursor: pointer;\n}\n\n/* \u2500\u2500 Read-only Values \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-readonly-value {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 6px 10px;\n min-height: 34px;\n word-break: break-word;\n}\n\n.mj-agent-props-readonly-value--muted {\n color: var(--mj-text-muted);\n font-style: italic;\n}\n\n/* \u2500\u2500 Code Editor in Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-field mj-code-editor {\n display: block;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n min-height: 60px;\n max-height: 200px;\n}\n\n.mj-agent-props-field mj-code-editor .cm-editor {\n font-size: var(--mj-text-xs);\n}\n\n/* \u2500\u2500 Hints \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-hint {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 3px;\n}\n\n/* \u2500\u2500 Danger Zone \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.mj-agent-props-danger {\n padding: 12px 14px;\n}\n\n.mj-agent-props-delete-btn {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid #fecaca;\n border-radius: var(--mj-radius-md);\n background: var(--mj-status-error-subtle);\n color: var(--mj-status-error);\n font-size: var(--mj-text-sm);\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n transition: all 0.15s ease;\n}\n\n.mj-agent-props-delete-btn:hover { background: var(--mj-status-error-subtle); border-color: #fca5a5; }\n\n.mj-agent-props-delete-btn i { font-size: var(--mj-text-xs); }\n"] }]
|
|
1112
1096
|
}], null, { Step: [{
|
|
1113
1097
|
type: Input
|
|
1114
1098
|
}], SelectedConnection: [{
|