@memberjunction/ng-core-entity-forms 2.53.0 → 2.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +20 -0
  2. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +188 -40
  4. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  5. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +5 -7
  6. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  7. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +1 -0
  8. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
  9. package/dist/lib/custom/Actions/action-execution-log-form.component.js +212 -293
  10. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  11. package/dist/lib/custom/Actions/action-form.component.js +6 -8
  12. package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
  13. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts +25 -0
  14. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -0
  15. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +261 -0
  16. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -0
  17. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +73 -0
  18. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -0
  19. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +510 -0
  20. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -0
  21. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +40 -0
  22. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -0
  23. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +490 -0
  24. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -0
  25. package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.d.ts +31 -2
  26. package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.d.ts.map +1 -1
  27. package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.js +167 -65
  28. package/dist/lib/custom/ai-test-harness/agent-execution-monitor.component.js.map +1 -1
  29. package/dist/lib/custom/ai-test-harness/ai-test-harness.component.d.ts +35 -2
  30. package/dist/lib/custom/ai-test-harness/ai-test-harness.component.d.ts.map +1 -1
  31. package/dist/lib/custom/ai-test-harness/ai-test-harness.component.js +423 -247
  32. package/dist/lib/custom/ai-test-harness/ai-test-harness.component.js.map +1 -1
  33. package/dist/lib/custom/custom-forms.module.d.ts +25 -21
  34. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  35. package/dist/lib/custom/custom-forms.module.js +25 -2
  36. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  37. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js +10 -10
  38. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js.map +1 -1
  39. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js +7 -9
  40. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js.map +1 -1
  41. package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js +3 -5
  42. package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js.map +1 -1
  43. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.d.ts.map +1 -1
  44. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js +13 -4
  45. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js.map +1 -1
  46. package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.js +5 -7
  47. package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.js.map +1 -1
  48. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js +9 -9
  49. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js.map +1 -1
  50. package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.js +3 -5
  51. package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.js.map +1 -1
  52. package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.js +5 -7
  53. package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.js.map +1 -1
  54. package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.js +5 -7
  55. package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.js.map +1 -1
  56. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js +13 -13
  57. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js.map +1 -1
  58. package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js +9 -9
  59. package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js.map +1 -1
  60. package/dist/lib/generated/Entities/Action/action.form.component.js +5 -5
  61. package/dist/lib/generated/Entities/Action/action.form.component.js.map +1 -1
  62. package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.js +1 -1
  63. package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.js.map +1 -1
  64. package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.js +1 -1
  65. package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.js.map +1 -1
  66. package/dist/lib/generated/Entities/Conversation/conversation.form.component.js +5 -5
  67. package/dist/lib/generated/Entities/Conversation/conversation.form.component.js.map +1 -1
  68. package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.js +4 -4
  69. package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.js.map +1 -1
  70. package/dist/lib/generated/Entities/User/user.form.component.js +5 -5
  71. package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
  72. package/package.json +12 -12
@@ -13,331 +13,186 @@ import { ActionExecutionLogFormComponent } from '../../generated/Entities/Action
13
13
  import * as i0 from "@angular/core";
14
14
  import * as i1 from "@memberjunction/ng-shared";
15
15
  import * as i2 from "@angular/router";
16
- import * as i3 from "@angular/forms";
17
- import * as i4 from "@progress/kendo-angular-layout";
18
- import * as i5 from "@progress/kendo-angular-buttons";
19
- import * as i6 from "@memberjunction/ng-form-toolbar";
20
- import * as i7 from "@memberjunction/ng-container-directives";
21
- import * as i8 from "@memberjunction/ng-code-editor";
22
- import * as i9 from "@angular/common";
23
- function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_14_Template(rf, ctx) { if (rf & 1) {
24
- const _r1 = i0.ɵɵgetCurrentView();
25
- i0.ɵɵelementStart(0, "div", 13);
26
- i0.ɵɵelement(1, "i", 30);
27
- i0.ɵɵelementStart(2, "span", 31);
28
- i0.ɵɵtext(3, "Action:");
16
+ import * as i3 from "@angular/common";
17
+ import * as i4 from "@angular/forms";
18
+ import * as i5 from "@progress/kendo-angular-layout";
19
+ import * as i6 from "@memberjunction/ng-code-editor";
20
+ function ActionExecutionLogFormComponentExtended_Conditional_11_Template(rf, ctx) { if (rf & 1) {
21
+ i0.ɵɵelementStart(0, "span", 9);
22
+ i0.ɵɵtext(1);
29
23
  i0.ɵɵelementEnd();
30
- i0.ɵɵelementStart(4, "span", 32);
31
- i0.ɵɵlistener("click", function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_14_Template_span_click_4_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToAction()); });
32
- i0.ɵɵtext(5);
33
- i0.ɵɵelement(6, "i", 33);
34
- i0.ɵɵelementEnd()();
35
24
  } if (rf & 2) {
36
- const ctx_r1 = i0.ɵɵnextContext(2);
37
- i0.ɵɵadvance(5);
38
- i0.ɵɵtextInterpolate1(" ", ctx_r1.action.Name, " ");
25
+ const ctx_r0 = i0.ɵɵnextContext();
26
+ i0.ɵɵadvance();
27
+ i0.ɵɵtextInterpolate(ctx_r0.action.Name);
39
28
  } }
40
- function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_15_Template(rf, ctx) { if (rf & 1) {
41
- const _r3 = i0.ɵɵgetCurrentView();
42
- i0.ɵɵelementStart(0, "div", 13);
43
- i0.ɵɵelement(1, "i", 34);
44
- i0.ɵɵelementStart(2, "span", 31);
45
- i0.ɵɵtext(3, "User:");
29
+ function ActionExecutionLogFormComponentExtended_Conditional_28_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵelementStart(0, "div", 17)(1, "span", 18);
31
+ i0.ɵɵtext(2, "Ended");
46
32
  i0.ɵɵelementEnd();
47
- i0.ɵɵelementStart(4, "span", 32);
48
- i0.ɵɵlistener("click", function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_15_Template_span_click_4_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToUser()); });
49
- i0.ɵɵtext(5);
50
- i0.ɵɵelement(6, "i", 33);
33
+ i0.ɵɵelementStart(3, "span", 19);
34
+ i0.ɵɵtext(4);
35
+ i0.ɵɵpipe(5, "date");
51
36
  i0.ɵɵelementEnd()();
52
37
  } if (rf & 2) {
53
- const ctx_r1 = i0.ɵɵnextContext(2);
54
- i0.ɵɵadvance(5);
55
- i0.ɵɵtextInterpolate1(" ", ctx_r1.user.Name, " ");
38
+ const ctx_r0 = i0.ɵɵnextContext();
39
+ i0.ɵɵadvance(4);
40
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(5, 1, ctx_r0.record.EndedAt, "short"));
56
41
  } }
57
- function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_16_Template(rf, ctx) { if (rf & 1) {
58
- i0.ɵɵelementStart(0, "div", 13);
59
- i0.ɵɵelement(1, "i", 35);
60
- i0.ɵɵelementStart(2, "span", 31);
61
- i0.ɵɵtext(3, "Duration:");
42
+ function ActionExecutionLogFormComponentExtended_Conditional_29_Template(rf, ctx) { if (rf & 1) {
43
+ const _r2 = i0.ɵɵgetCurrentView();
44
+ i0.ɵɵelementStart(0, "div", 17)(1, "span", 18);
45
+ i0.ɵɵtext(2, "Action");
62
46
  i0.ɵɵelementEnd();
63
- i0.ɵɵelementStart(4, "span", 36);
47
+ i0.ɵɵelementStart(3, "span", 19)(4, "button", 26);
48
+ i0.ɵɵlistener("click", function ActionExecutionLogFormComponentExtended_Conditional_29_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToAction()); });
64
49
  i0.ɵɵtext(5);
65
- i0.ɵɵelementEnd()();
50
+ i0.ɵɵelement(6, "i", 27);
51
+ i0.ɵɵelementEnd()()();
66
52
  } if (rf & 2) {
67
- const ctx_r1 = i0.ɵɵnextContext(2);
53
+ const ctx_r0 = i0.ɵɵnextContext();
68
54
  i0.ɵɵadvance(5);
69
- i0.ɵɵtextInterpolate(ctx_r1.formatDuration(ctx_r1.getExecutionDuration()));
55
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.action.Name, " ");
70
56
  } }
71
- function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_21_Template(rf, ctx) { if (rf & 1) {
72
- i0.ɵɵelementStart(0, "div");
73
- i0.ɵɵtext(1);
74
- i0.ɵɵpipe(2, "date");
57
+ function ActionExecutionLogFormComponentExtended_Conditional_30_Template(rf, ctx) { if (rf & 1) {
58
+ const _r3 = i0.ɵɵgetCurrentView();
59
+ i0.ɵɵelementStart(0, "div", 17)(1, "span", 18);
60
+ i0.ɵɵtext(2, "User");
75
61
  i0.ɵɵelementEnd();
62
+ i0.ɵɵelementStart(3, "span", 19)(4, "button", 26);
63
+ i0.ɵɵlistener("click", function ActionExecutionLogFormComponentExtended_Conditional_30_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToUser()); });
64
+ i0.ɵɵtext(5);
65
+ i0.ɵɵelement(6, "i", 27);
66
+ i0.ɵɵelementEnd()()();
76
67
  } if (rf & 2) {
77
- const ctx_r1 = i0.ɵɵnextContext(2);
78
- i0.ɵɵadvance();
79
- i0.ɵɵtextInterpolate1("Ended: ", i0.ɵɵpipeBind2(2, 1, ctx_r1.record.EndedAt, "medium"), "");
80
- } }
81
- function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_22_Template(rf, ctx) { if (rf & 1) {
82
- i0.ɵɵelementStart(0, "div", 15);
83
- i0.ɵɵtext(1, "Still Running...");
84
- i0.ɵɵelementEnd();
85
- } }
86
- function ActionExecutionLogFormComponentExtended_Conditional_1_ng_template_25_Template(rf, ctx) { if (rf & 1) {
87
- i0.ɵɵelementStart(0, "span", 37);
88
- i0.ɵɵelement(1, "i", 38);
89
- i0.ɵɵtext(2, " Execution Details ");
90
- i0.ɵɵelementEnd();
68
+ const ctx_r0 = i0.ɵɵnextContext();
69
+ i0.ɵɵadvance(5);
70
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.user.Name, " ");
91
71
  } }
92
- function ActionExecutionLogFormComponentExtended_Conditional_1_ng_template_56_Conditional_3_Template(rf, ctx) { if (rf & 1) {
93
- i0.ɵɵelementStart(0, "span", 40);
94
- i0.ɵɵtext(1, " JSON ");
72
+ function ActionExecutionLogFormComponentExtended_ng_template_34_Template(rf, ctx) { if (rf & 1) {
73
+ i0.ɵɵelementStart(0, "div", 28)(1, "div", 29)(2, "label");
74
+ i0.ɵɵtext(3, "Execution ID");
95
75
  i0.ɵɵelementEnd();
96
- } }
97
- function ActionExecutionLogFormComponentExtended_Conditional_1_ng_template_56_Template(rf, ctx) { if (rf & 1) {
98
- i0.ɵɵelementStart(0, "span", 37);
99
- i0.ɵɵelement(1, "i", 39);
100
- i0.ɵɵtext(2, " Input Parameters ");
101
- i0.ɵɵtemplate(3, ActionExecutionLogFormComponentExtended_Conditional_1_ng_template_56_Conditional_3_Template, 2, 0, "span", 40);
76
+ i0.ɵɵelementStart(4, "span", 30);
77
+ i0.ɵɵtext(5);
78
+ i0.ɵɵelementEnd()();
79
+ i0.ɵɵelementStart(6, "div", 29)(7, "label");
80
+ i0.ɵɵtext(8, "Action ID");
102
81
  i0.ɵɵelementEnd();
103
- } if (rf & 2) {
104
- const ctx_r1 = i0.ɵɵnextContext(2);
105
- i0.ɵɵadvance(3);
106
- i0.ɵɵconditional(ctx_r1.record.Params ? 3 : -1);
107
- } }
108
- function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_58_Conditional_4_Template(rf, ctx) { if (rf & 1) {
109
- const _r5 = i0.ɵɵgetCurrentView();
110
- i0.ɵɵelementStart(0, "kendo-button", 45);
111
- i0.ɵɵlistener("click", function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_58_Conditional_4_Template_kendo_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.saveParams()); });
112
- i0.ɵɵelement(1, "i", 46);
113
- i0.ɵɵtext(2, " Save ");
82
+ i0.ɵɵelementStart(9, "span", 30);
83
+ i0.ɵɵtext(10);
84
+ i0.ɵɵelementEnd()();
85
+ i0.ɵɵelementStart(11, "div", 29)(12, "label");
86
+ i0.ɵɵtext(13, "User ID");
114
87
  i0.ɵɵelementEnd();
115
- } }
116
- function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_58_Template(rf, ctx) { if (rf & 1) {
117
- const _r4 = i0.ɵɵgetCurrentView();
118
- i0.ɵɵelementStart(0, "div", 26)(1, "div", 41)(2, "h4", 42);
119
- i0.ɵɵtext(3, "Parameters JSON");
88
+ i0.ɵɵelementStart(14, "span", 30);
89
+ i0.ɵɵtext(15);
90
+ i0.ɵɵelementEnd()();
91
+ i0.ɵɵelementStart(16, "div", 29)(17, "label");
92
+ i0.ɵɵtext(18, "Result Code");
120
93
  i0.ɵɵelementEnd();
121
- i0.ɵɵtemplate(4, ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_58_Conditional_4_Template, 3, 0, "kendo-button", 43);
94
+ i0.ɵɵelementStart(19, "span", 31);
95
+ i0.ɵɵelement(20, "i", 13);
96
+ i0.ɵɵelementStart(21, "span");
97
+ i0.ɵɵtext(22);
98
+ i0.ɵɵelementEnd()()();
99
+ i0.ɵɵelementStart(23, "div", 29)(24, "label");
100
+ i0.ɵɵtext(25, "Duration");
122
101
  i0.ɵɵelementEnd();
123
- i0.ɵɵelementStart(5, "mj-code-editor", 44);
124
- i0.ɵɵtwoWayListener("ngModelChange", function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_58_Template_mj_code_editor_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedParams, $event) || (ctx_r1.formattedParams = $event); return i0.ɵɵresetView($event); });
102
+ i0.ɵɵelementStart(26, "span");
103
+ i0.ɵɵtext(27);
125
104
  i0.ɵɵelementEnd()();
105
+ i0.ɵɵelementStart(28, "div", 29)(29, "label");
106
+ i0.ɵɵtext(30, "Retention Period");
107
+ i0.ɵɵelementEnd();
108
+ i0.ɵɵelementStart(31, "span");
109
+ i0.ɵɵtext(32);
110
+ i0.ɵɵelementEnd()()();
126
111
  } if (rf & 2) {
127
- const ctx_r1 = i0.ɵɵnextContext(2);
128
- i0.ɵɵadvance(4);
129
- i0.ɵɵconditional(ctx_r1.EditMode ? 4 : -1);
112
+ const ctx_r0 = i0.ɵɵnextContext();
113
+ i0.ɵɵadvance(5);
114
+ i0.ɵɵtextInterpolate(ctx_r0.record.ID);
115
+ i0.ɵɵadvance(5);
116
+ i0.ɵɵtextInterpolate(ctx_r0.record.ActionID);
117
+ i0.ɵɵadvance(5);
118
+ i0.ɵɵtextInterpolate(ctx_r0.record.UserID);
119
+ i0.ɵɵadvance(5);
120
+ i0.ɵɵstyleProp("color", ctx_r0.getResultCodeColor());
121
+ i0.ɵɵproperty("ngClass", ctx_r0.getResultCodeIcon());
130
122
  i0.ɵɵadvance();
131
- i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedParams);
132
- i0.ɵɵproperty("readonly", !ctx_r1.EditMode)("language", "json")("lineWrapping", true);
133
- } }
134
- function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_59_Template(rf, ctx) { if (rf & 1) {
135
- i0.ɵɵelementStart(0, "div", 27);
136
- i0.ɵɵelement(1, "i", 47);
137
- i0.ɵɵelementStart(2, "p", 48);
138
- i0.ɵɵtext(3, "No input parameters");
139
- i0.ɵɵelementEnd()();
140
- } }
141
- function ActionExecutionLogFormComponentExtended_Conditional_1_ng_template_61_Conditional_3_Template(rf, ctx) { if (rf & 1) {
142
- i0.ɵɵelementStart(0, "span", 50);
143
- i0.ɵɵtext(1, " JSON ");
144
- i0.ɵɵelementEnd();
123
+ i0.ɵɵstyleProp("color", ctx_r0.getResultCodeColor());
124
+ i0.ɵɵadvance();
125
+ i0.ɵɵtextInterpolate(ctx_r0.record.ResultCode || "N/A");
126
+ i0.ɵɵadvance(5);
127
+ i0.ɵɵtextInterpolate(ctx_r0.formatDuration(ctx_r0.getExecutionDuration()));
128
+ i0.ɵɵadvance(5);
129
+ i0.ɵɵtextInterpolate(ctx_r0.record.RetentionPeriod ? ctx_r0.record.RetentionPeriod + " days" : "Indefinite");
145
130
  } }
146
- function ActionExecutionLogFormComponentExtended_Conditional_1_ng_template_61_Template(rf, ctx) { if (rf & 1) {
147
- i0.ɵɵelementStart(0, "span", 37);
148
- i0.ɵɵelement(1, "i", 49);
149
- i0.ɵɵtext(2, " Output Message ");
150
- i0.ɵɵtemplate(3, ActionExecutionLogFormComponentExtended_Conditional_1_ng_template_61_Conditional_3_Template, 2, 0, "span", 50);
131
+ function ActionExecutionLogFormComponentExtended_Conditional_35_ng_template_1_Template(rf, ctx) { if (rf & 1) {
132
+ const _r4 = i0.ɵɵgetCurrentView();
133
+ i0.ɵɵelementStart(0, "div", 32)(1, "div", 33)(2, "span", 34);
134
+ i0.ɵɵtext(3, "JSON");
151
135
  i0.ɵɵelementEnd();
136
+ i0.ɵɵelementStart(4, "button", 35);
137
+ i0.ɵɵlistener("click", function ActionExecutionLogFormComponentExtended_Conditional_35_ng_template_1_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.copyToClipboard(ctx_r0.formattedParams)); });
138
+ i0.ɵɵelement(5, "i", 36);
139
+ i0.ɵɵelementEnd()();
140
+ i0.ɵɵelementStart(6, "mj-code-editor", 37);
141
+ i0.ɵɵtwoWayListener("ngModelChange", function ActionExecutionLogFormComponentExtended_Conditional_35_ng_template_1_Template_mj_code_editor_ngModelChange_6_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.formattedParams, $event) || (ctx_r0.formattedParams = $event); return i0.ɵɵresetView($event); });
142
+ i0.ɵɵelementEnd()();
152
143
  } if (rf & 2) {
153
- const ctx_r1 = i0.ɵɵnextContext(2);
154
- i0.ɵɵadvance(3);
155
- i0.ɵɵconditional(ctx_r1.formattedMessage ? 3 : -1);
144
+ const ctx_r0 = i0.ɵɵnextContext(2);
145
+ i0.ɵɵadvance(6);
146
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r0.formattedParams);
147
+ i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
156
148
  } }
157
- function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_63_Conditional_4_Template(rf, ctx) { if (rf & 1) {
158
- const _r7 = i0.ɵɵgetCurrentView();
159
- i0.ɵɵelementStart(0, "kendo-button", 45);
160
- i0.ɵɵlistener("click", function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_63_Conditional_4_Template_kendo_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.saveMessage()); });
161
- i0.ɵɵelement(1, "i", 46);
162
- i0.ɵɵtext(2, " Save ");
149
+ function ActionExecutionLogFormComponentExtended_Conditional_35_Template(rf, ctx) { if (rf & 1) {
150
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 23);
151
+ i0.ɵɵtemplate(1, ActionExecutionLogFormComponentExtended_Conditional_35_ng_template_1_Template, 7, 4, "ng-template", 22);
163
152
  i0.ɵɵelementEnd();
153
+ } if (rf & 2) {
154
+ const ctx_r0 = i0.ɵɵnextContext();
155
+ i0.ɵɵproperty("expanded", ctx_r0.expandedSections.input);
164
156
  } }
165
- function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_63_Template(rf, ctx) { if (rf & 1) {
166
- const _r6 = i0.ɵɵgetCurrentView();
167
- i0.ɵɵelementStart(0, "div", 26)(1, "div", 41)(2, "h4", 42);
168
- i0.ɵɵtext(3, "Output Message JSON");
169
- i0.ɵɵelementEnd();
170
- i0.ɵɵtemplate(4, ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_63_Conditional_4_Template, 3, 0, "kendo-button", 43);
157
+ function ActionExecutionLogFormComponentExtended_Conditional_36_ng_template_1_Template(rf, ctx) { if (rf & 1) {
158
+ const _r5 = i0.ɵɵgetCurrentView();
159
+ i0.ɵɵelementStart(0, "div", 32)(1, "div", 33)(2, "span", 34);
160
+ i0.ɵɵtext(3, "JSON");
171
161
  i0.ɵɵelementEnd();
172
- i0.ɵɵelementStart(5, "mj-code-editor", 51);
173
- i0.ɵɵtwoWayListener("ngModelChange", function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_63_Template_mj_code_editor_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.formattedMessage, $event) || (ctx_r1.formattedMessage = $event); return i0.ɵɵresetView($event); });
162
+ i0.ɵɵelementStart(4, "button", 35);
163
+ i0.ɵɵlistener("click", function ActionExecutionLogFormComponentExtended_Conditional_36_ng_template_1_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.copyToClipboard(ctx_r0.formattedMessage)); });
164
+ i0.ɵɵelement(5, "i", 36);
165
+ i0.ɵɵelementEnd()();
166
+ i0.ɵɵelementStart(6, "mj-code-editor", 38);
167
+ i0.ɵɵtwoWayListener("ngModelChange", function ActionExecutionLogFormComponentExtended_Conditional_36_ng_template_1_Template_mj_code_editor_ngModelChange_6_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.formattedMessage, $event) || (ctx_r0.formattedMessage = $event); return i0.ɵɵresetView($event); });
174
168
  i0.ɵɵelementEnd()();
175
169
  } if (rf & 2) {
176
- const ctx_r1 = i0.ɵɵnextContext(2);
177
- i0.ɵɵadvance(4);
178
- i0.ɵɵconditional(ctx_r1.EditMode ? 4 : -1);
179
- i0.ɵɵadvance();
180
- i0.ɵɵtwoWayProperty("ngModel", ctx_r1.formattedMessage);
181
- i0.ɵɵproperty("readonly", !ctx_r1.EditMode)("language", "json")("lineWrapping", true);
182
- } }
183
- function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_64_Conditional_4_Template(rf, ctx) { if (rf & 1) {
184
- i0.ɵɵelementStart(0, "p", 52);
185
- i0.ɵɵtext(1, " Output data will be captured in future executions ");
186
- i0.ɵɵelementEnd();
170
+ const ctx_r0 = i0.ɵɵnextContext(2);
171
+ i0.ɵɵadvance(6);
172
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r0.formattedMessage);
173
+ i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
187
174
  } }
188
- function ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_64_Template(rf, ctx) { if (rf & 1) {
189
- i0.ɵɵelementStart(0, "div", 27);
190
- i0.ɵɵelement(1, "i", 47);
191
- i0.ɵɵelementStart(2, "p", 48);
192
- i0.ɵɵtext(3, "No output message");
193
- i0.ɵɵelementEnd();
194
- i0.ɵɵtemplate(4, ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_64_Conditional_4_Template, 2, 0, "p", 52);
175
+ function ActionExecutionLogFormComponentExtended_Conditional_36_Template(rf, ctx) { if (rf & 1) {
176
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 24);
177
+ i0.ɵɵtemplate(1, ActionExecutionLogFormComponentExtended_Conditional_36_ng_template_1_Template, 7, 4, "ng-template", 22);
195
178
  i0.ɵɵelementEnd();
196
179
  } if (rf & 2) {
197
- const ctx_r1 = i0.ɵɵnextContext(2);
198
- i0.ɵɵadvance(4);
199
- i0.ɵɵconditional(!ctx_r1.EditMode ? 4 : -1);
180
+ const ctx_r0 = i0.ɵɵnextContext();
181
+ i0.ɵɵproperty("expanded", ctx_r0.expandedSections.output);
200
182
  } }
201
- function ActionExecutionLogFormComponentExtended_Conditional_1_ng_template_66_Template(rf, ctx) { if (rf & 1) {
202
- i0.ɵɵelementStart(0, "span", 37);
203
- i0.ɵɵelement(1, "i", 53);
204
- i0.ɵɵtext(2, " System Metadata ");
205
- i0.ɵɵelementEnd();
206
- } }
207
- function ActionExecutionLogFormComponentExtended_Conditional_1_Template(rf, ctx) { if (rf & 1) {
208
- i0.ɵɵelementStart(0, "form", 2, 0);
209
- i0.ɵɵelement(2, "mj-form-toolbar", 3);
210
- i0.ɵɵelementStart(3, "div", 4)(4, "div", 5)(5, "div", 6)(6, "div", 7)(7, "div", 8);
211
- i0.ɵɵelement(8, "i", 9);
212
- i0.ɵɵelementStart(9, "h4", 10);
213
- i0.ɵɵtext(10);
214
- i0.ɵɵelementEnd();
215
- i0.ɵɵelementStart(11, "span", 11);
216
- i0.ɵɵtext(12);
217
- i0.ɵɵelementEnd()();
218
- i0.ɵɵelementStart(13, "div", 12);
219
- i0.ɵɵtemplate(14, ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_14_Template, 7, 1, "div", 13)(15, ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_15_Template, 7, 1, "div", 13)(16, ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_16_Template, 6, 1, "div", 13);
220
- i0.ɵɵelementEnd()();
221
- i0.ɵɵelementStart(17, "div", 14)(18, "div");
222
- i0.ɵɵtext(19);
223
- i0.ɵɵpipe(20, "date");
224
- i0.ɵɵelementEnd();
225
- i0.ɵɵtemplate(21, ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_21_Template, 3, 4, "div")(22, ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_22_Template, 2, 0, "div", 15);
226
- i0.ɵɵelementEnd()()();
227
- i0.ɵɵelementStart(23, "div", 16)(24, "kendo-expansionpanel", 17);
228
- i0.ɵɵtemplate(25, ActionExecutionLogFormComponentExtended_Conditional_1_ng_template_25_Template, 3, 0, "ng-template", 18);
229
- i0.ɵɵelementStart(26, "div", 19)(27, "div", 20)(28, "div", 21)(29, "label", 22);
230
- i0.ɵɵtext(30, "Execution ID");
231
- i0.ɵɵelementEnd();
232
- i0.ɵɵelementStart(31, "div", 23);
233
- i0.ɵɵtext(32);
234
- i0.ɵɵelementEnd()();
235
- i0.ɵɵelementStart(33, "div", 21)(34, "label", 22);
236
- i0.ɵɵtext(35, "Action ID");
237
- i0.ɵɵelementEnd();
238
- i0.ɵɵelementStart(36, "div", 23);
239
- i0.ɵɵtext(37);
240
- i0.ɵɵelementEnd()();
241
- i0.ɵɵelementStart(38, "div", 21)(39, "label", 22);
242
- i0.ɵɵtext(40, "User ID");
243
- i0.ɵɵelementEnd();
244
- i0.ɵɵelementStart(41, "div", 23);
245
- i0.ɵɵtext(42);
246
- i0.ɵɵelementEnd()();
247
- i0.ɵɵelementStart(43, "div", 21)(44, "label", 22);
248
- i0.ɵɵtext(45, "Result Code");
249
- i0.ɵɵelementEnd();
250
- i0.ɵɵelementStart(46, "div", 24);
251
- i0.ɵɵelement(47, "i");
252
- i0.ɵɵelementStart(48, "span", 25);
253
- i0.ɵɵtext(49);
254
- i0.ɵɵelementEnd()()();
255
- i0.ɵɵelementStart(50, "div", 21)(51, "label", 22);
256
- i0.ɵɵtext(52, "Retention Period");
257
- i0.ɵɵelementEnd();
258
- i0.ɵɵelementStart(53, "div");
259
- i0.ɵɵtext(54);
260
- i0.ɵɵelementEnd()()()()();
261
- i0.ɵɵelementStart(55, "kendo-expansionpanel", 17);
262
- i0.ɵɵtemplate(56, ActionExecutionLogFormComponentExtended_Conditional_1_ng_template_56_Template, 4, 1, "ng-template", 18);
263
- i0.ɵɵelementStart(57, "div", 19);
264
- i0.ɵɵtemplate(58, ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_58_Template, 6, 5, "div", 26)(59, ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_59_Template, 4, 0, "div", 27);
265
- i0.ɵɵelementEnd()();
266
- i0.ɵɵelementStart(60, "kendo-expansionpanel", 17);
267
- i0.ɵɵtemplate(61, ActionExecutionLogFormComponentExtended_Conditional_1_ng_template_61_Template, 4, 1, "ng-template", 18);
268
- i0.ɵɵelementStart(62, "div", 19);
269
- i0.ɵɵtemplate(63, ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_63_Template, 6, 5, "div", 26)(64, ActionExecutionLogFormComponentExtended_Conditional_1_Conditional_64_Template, 5, 1, "div", 27);
270
- i0.ɵɵelementEnd()();
271
- i0.ɵɵelementStart(65, "kendo-expansionpanel", 17);
272
- i0.ɵɵtemplate(66, ActionExecutionLogFormComponentExtended_Conditional_1_ng_template_66_Template, 3, 0, "ng-template", 18);
273
- i0.ɵɵelementStart(67, "div", 19)(68, "div", 28)(69, "div", 29)(70, "label", 22);
274
- i0.ɵɵtext(71, "Created At");
275
- i0.ɵɵelementEnd();
276
- i0.ɵɵelementStart(72, "div");
277
- i0.ɵɵtext(73);
278
- i0.ɵɵpipe(74, "date");
183
+ function ActionExecutionLogFormComponentExtended_Conditional_37_ng_template_1_Template(rf, ctx) { if (rf & 1) {
184
+ i0.ɵɵelementStart(0, "div", 39);
185
+ i0.ɵɵelement(1, "i", 40);
186
+ i0.ɵɵelementStart(2, "p");
187
+ i0.ɵɵtext(3, "No input parameters or output messages recorded");
279
188
  i0.ɵɵelementEnd()();
280
- i0.ɵɵelementStart(75, "div", 29)(76, "label", 22);
281
- i0.ɵɵtext(77, "Updated At");
189
+ } }
190
+ function ActionExecutionLogFormComponentExtended_Conditional_37_Template(rf, ctx) { if (rf & 1) {
191
+ i0.ɵɵelementStart(0, "kendo-panelbar-item", 25);
192
+ i0.ɵɵtemplate(1, ActionExecutionLogFormComponentExtended_Conditional_37_ng_template_1_Template, 4, 0, "ng-template", 22);
282
193
  i0.ɵɵelementEnd();
283
- i0.ɵɵelementStart(78, "div");
284
- i0.ɵɵtext(79);
285
- i0.ɵɵpipe(80, "date");
286
- i0.ɵɵelementEnd()()()()()()()();
287
194
  } if (rf & 2) {
288
- const ctx_r1 = i0.ɵɵnextContext();
289
- i0.ɵɵadvance(2);
290
- i0.ɵɵproperty("form", ctx_r1);
291
- i0.ɵɵadvance(6);
292
- i0.ɵɵclassMap("fa-solid " + ctx_r1.getResultCodeIcon());
293
- i0.ɵɵstyleProp("color", ctx_r1.getResultCodeColor());
294
- i0.ɵɵadvance(2);
295
- i0.ɵɵtextInterpolate1(" Execution #", ctx_r1.record.ID, " ");
296
- i0.ɵɵadvance();
297
- i0.ɵɵstyleProp("background-color", ctx_r1.getResultCodeColor());
298
- i0.ɵɵadvance();
299
- i0.ɵɵtextInterpolate1(" ", ctx_r1.record.ResultCode || "Unknown", " ");
300
- i0.ɵɵadvance(2);
301
- i0.ɵɵconditional(ctx_r1.action ? 14 : -1);
302
- i0.ɵɵadvance();
303
- i0.ɵɵconditional(ctx_r1.user ? 15 : -1);
304
- i0.ɵɵadvance();
305
- i0.ɵɵconditional(ctx_r1.record.EndedAt ? 16 : -1);
306
- i0.ɵɵadvance(3);
307
- i0.ɵɵtextInterpolate1("Started: ", i0.ɵɵpipeBind2(20, 33, ctx_r1.record.StartedAt, "medium"), "");
308
- i0.ɵɵadvance(2);
309
- i0.ɵɵconditional(ctx_r1.record.EndedAt ? 21 : 22);
310
- i0.ɵɵadvance(3);
311
- i0.ɵɵproperty("expanded", ctx_r1.expandedSections.execution);
312
- i0.ɵɵadvance(8);
313
- i0.ɵɵtextInterpolate(ctx_r1.record.ID);
314
- i0.ɵɵadvance(5);
315
- i0.ɵɵtextInterpolate(ctx_r1.record.ActionID);
316
- i0.ɵɵadvance(5);
317
- i0.ɵɵtextInterpolate(ctx_r1.record.UserID);
318
- i0.ɵɵadvance(5);
319
- i0.ɵɵclassMap("fa-solid " + ctx_r1.getResultCodeIcon());
320
- i0.ɵɵstyleProp("color", ctx_r1.getResultCodeColor());
321
- i0.ɵɵadvance();
322
- i0.ɵɵstyleProp("color", ctx_r1.getResultCodeColor());
323
- i0.ɵɵadvance();
324
- i0.ɵɵtextInterpolate(ctx_r1.record.ResultCode || "N/A");
325
- i0.ɵɵadvance(5);
326
- i0.ɵɵtextInterpolate(ctx_r1.record.RetentionPeriod ? ctx_r1.record.RetentionPeriod + " days" : "Indefinite");
327
- i0.ɵɵadvance();
328
- i0.ɵɵproperty("expanded", ctx_r1.expandedSections.input);
329
- i0.ɵɵadvance(3);
330
- i0.ɵɵconditional(ctx_r1.record.Params ? 58 : 59);
331
- i0.ɵɵadvance(2);
332
- i0.ɵɵproperty("expanded", ctx_r1.expandedSections.output);
333
- i0.ɵɵadvance(3);
334
- i0.ɵɵconditional(ctx_r1.formattedMessage ? 63 : 64);
335
- i0.ɵɵadvance(2);
336
- i0.ɵɵproperty("expanded", ctx_r1.expandedSections.metadata);
337
- i0.ɵɵadvance(8);
338
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(74, 36, ctx_r1.record.__mj_CreatedAt, "medium"));
339
- i0.ɵɵadvance(6);
340
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(80, 39, ctx_r1.record.__mj_UpdatedAt, "medium"));
195
+ i0.ɵɵproperty("expanded", true);
341
196
  } }
342
197
  let ActionExecutionLogFormComponentExtended = class ActionExecutionLogFormComponentExtended extends ActionExecutionLogFormComponent {
343
198
  constructor(elementRef, sharedService, router, route, cdr) {
@@ -507,16 +362,80 @@ let ActionExecutionLogFormComponentExtended = class ActionExecutionLogFormCompon
507
362
  // Could show notification here
508
363
  }
509
364
  }
365
+ async copyToClipboard(text) {
366
+ try {
367
+ await navigator.clipboard.writeText(text);
368
+ // Could show a toast notification here
369
+ }
370
+ catch (err) {
371
+ console.error('Failed to copy to clipboard:', err);
372
+ }
373
+ }
510
374
  static { this.ɵfac = function ActionExecutionLogFormComponentExtended_Factory(t) { return new (t || ActionExecutionLogFormComponentExtended)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.SharedService), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
511
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionExecutionLogFormComponentExtended, selectors: [["mj-action-execution-log-form"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 3, consts: [["form", "ngForm"], ["mjFillContainer", "", 1, "record-form-container", 3, "bottomMargin", "rightMargin"], ["mjFillContainer", "", 1, "record-form"], [3, "form"], [1, "execution-log-main-area", 2, "display", "flex", "flex-direction", "column", "height", "100%", "overflow-y", "auto"], [1, "execution-header", 2, "flex-shrink", "0", "padding", "20px", "background", "#f8f9fa", "border-bottom", "2px solid #e9ecef"], [2, "display", "flex", "justify-content", "space-between", "align-items", "flex-start", "gap", "20px"], [2, "flex", "1", "min-width", "0"], [2, "display", "flex", "align-items", "center", "gap", "12px", "margin-bottom", "8px"], [2, "font-size", "1.4em"], [2, "margin", "0", "color", "#495057", "font-weight", "600"], [1, "result-badge", 2, "color", "white", "padding", "4px 10px", "border-radius", "12px", "font-size", "0.75em", "font-weight", "500"], [1, "quick-info", 2, "display", "flex", "align-items", "center", "gap", "20px", "flex-wrap", "wrap", "margin-top", "12px"], [1, "info-item", 2, "display", "flex", "align-items", "center", "gap", "6px", "font-size", "0.9em"], [1, "timestamps", 2, "text-align", "right", "font-size", "0.85em", "color", "#6c757d"], [2, "color", "#ffc107", "font-weight", "600"], [1, "configuration-sections", 2, "flex", "1", "background", "white", "border-top", "2px solid #e9ecef", "padding", "16px", "min-height", "0"], [2, "margin-bottom", "12px", 3, "expanded"], ["kendoExpansionPanelTitleDirective", ""], [2, "padding", "16px"], [1, "details-grid", 2, "display", "grid", "grid-template-columns", "repeat(auto-fit, minmax(250px, 1fr))", "gap", "20px"], [1, "detail-item"], [2, "display", "block", "margin-bottom", "4px", "font-weight", "600", "color", "#6c757d", "font-size", "0.85em"], [2, "font-family", "monospace", "color", "#495057"], [2, "display", "flex", "align-items", "center", "gap", "8px"], [2, "font-weight", "600"], [1, "json-editor-container"], [1, "empty-state", 2, "padding", "30px", "text-align", "center"], [1, "metadata-grid", 2, "display", "grid", "grid-template-columns", "repeat(auto-fit, minmax(250px, 1fr))", "gap", "20px"], [1, "metadata-item"], [1, "fa-solid", "fa-bolt", 2, "color", "#6c757d"], [2, "color", "#6c757d"], [2, "color", "#495057", "font-weight", "500", "cursor", "pointer", 3, "click"], [1, "fa-solid", "fa-external-link", 2, "font-size", "0.75em", "margin-left", "4px"], [1, "fa-solid", "fa-user", 2, "color", "#6c757d"], [1, "fa-solid", "fa-clock", 2, "color", "#6c757d"], [2, "color", "#495057", "font-weight", "500"], [2, "display", "flex", "align-items", "center", "gap", "8px", "font-weight", "600"], [1, "fa-solid", "fa-info-circle", 2, "color", "#6c757d"], [1, "fa-solid", "fa-sign-in-alt", 2, "color", "#6c757d"], [2, "background", "#17a2b8", "color", "white", "padding", "2px 6px", "border-radius", "10px", "font-size", "0.7em"], [1, "editor-toolbar", 2, "display", "flex", "justify-content", "space-between", "align-items", "center", "margin-bottom", "8px"], [2, "margin", "0", "color", "#495057"], ["fillMode", "flat", "size", "small"], ["name", "formattedParams", 2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], ["fillMode", "flat", "size", "small", 3, "click"], [1, "fa-solid", "fa-save"], [1, "fa-solid", "fa-inbox", 2, "font-size", "2em", "color", "#6c757d", "opacity", "0.3"], [2, "margin", "12px 0 0 0", "color", "#6c757d"], [1, "fa-solid", "fa-sign-out-alt", 2, "color", "#6c757d"], [2, "background", "#28a745", "color", "white", "padding", "2px 6px", "border-radius", "10px", "font-size", "0.7em"], ["name", "formattedMessage", 2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [2, "margin", "8px 0 0 0", "font-size", "0.85em", "color", "#6c757d"], [1, "fa-solid", "fa-database", 2, "color", "#6c757d"]], template: function ActionExecutionLogFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
512
- i0.ɵɵelementStart(0, "div", 1);
513
- i0.ɵɵtemplate(1, ActionExecutionLogFormComponentExtended_Conditional_1_Template, 81, 42, "form", 2);
375
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionExecutionLogFormComponentExtended, selectors: [["mj-action-execution-log-form"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 38, vars: 17, consts: [[1, "record-form-container", "action-execution-log-form"], [1, "record-form"], [1, "header"], [1, "header-content"], [1, "header-left"], [1, "icon-wrapper"], [1, "fas", "fa-terminal"], [1, "header-info"], [1, "meta-info"], [1, "action-name"], [1, "log-id"], [1, "header-right"], [1, "status-badge"], [1, "fas", 3, "ngClass"], [1, "execution-time"], [1, "fas", "fa-clock"], [1, "header-stats"], [1, "stat"], [1, "label"], [1, "value"], [1, "content-area"], ["title", "Execution Details", 3, "expanded"], ["kendoPanelBarContent", ""], ["title", "Input Parameters", 3, "expanded"], ["title", "Output Message", 3, "expanded"], ["title", "Execution Data", 3, "expanded"], [1, "btn-link", 3, "click"], [1, "fas", "fa-external-link-alt"], [1, "details-grid"], [1, "detail-item"], [1, "monospace"], [1, "detail-value"], [1, "json-viewer"], [1, "json-toolbar"], [1, "json-label"], ["title", "Copy JSON", 1, "btn-icon", 3, "click"], [1, "fas", "fa-copy"], ["name", "formattedParams", 2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], ["name", "formattedMessage", 2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "empty-state"], [1, "fas", "fa-inbox"]], template: function ActionExecutionLogFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
376
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div", 4)(5, "div", 5);
377
+ i0.ɵɵelement(6, "i", 6);
378
+ i0.ɵɵelementEnd();
379
+ i0.ɵɵelementStart(7, "div", 7)(8, "h2");
380
+ i0.ɵɵtext(9, "Action Execution Log");
381
+ i0.ɵɵelementEnd();
382
+ i0.ɵɵelementStart(10, "div", 8);
383
+ i0.ɵɵtemplate(11, ActionExecutionLogFormComponentExtended_Conditional_11_Template, 2, 1, "span", 9);
384
+ i0.ɵɵelementStart(12, "span", 10);
385
+ i0.ɵɵtext(13);
386
+ i0.ɵɵelementEnd()()()();
387
+ i0.ɵɵelementStart(14, "div", 11)(15, "div", 12);
388
+ i0.ɵɵelement(16, "i", 13);
389
+ i0.ɵɵtext(17);
390
+ i0.ɵɵelementEnd();
391
+ i0.ɵɵelementStart(18, "div", 14);
392
+ i0.ɵɵelement(19, "i", 15);
393
+ i0.ɵɵtext(20);
394
+ i0.ɵɵelementEnd()()();
395
+ i0.ɵɵelementStart(21, "div", 16)(22, "div", 17)(23, "span", 18);
396
+ i0.ɵɵtext(24, "Started");
514
397
  i0.ɵɵelementEnd();
398
+ i0.ɵɵelementStart(25, "span", 19);
399
+ i0.ɵɵtext(26);
400
+ i0.ɵɵpipe(27, "date");
401
+ i0.ɵɵelementEnd()();
402
+ i0.ɵɵtemplate(28, ActionExecutionLogFormComponentExtended_Conditional_28_Template, 6, 4, "div", 17)(29, ActionExecutionLogFormComponentExtended_Conditional_29_Template, 7, 1, "div", 17)(30, ActionExecutionLogFormComponentExtended_Conditional_30_Template, 7, 1, "div", 17);
403
+ i0.ɵɵelementEnd()();
404
+ i0.ɵɵelementStart(31, "div", 20)(32, "kendo-panelbar")(33, "kendo-panelbar-item", 21);
405
+ i0.ɵɵtemplate(34, ActionExecutionLogFormComponentExtended_ng_template_34_Template, 33, 11, "ng-template", 22);
406
+ i0.ɵɵelementEnd();
407
+ i0.ɵɵtemplate(35, ActionExecutionLogFormComponentExtended_Conditional_35_Template, 2, 1, "kendo-panelbar-item", 23)(36, ActionExecutionLogFormComponentExtended_Conditional_36_Template, 2, 1, "kendo-panelbar-item", 24)(37, ActionExecutionLogFormComponentExtended_Conditional_37_Template, 2, 1, "kendo-panelbar-item", 25);
408
+ i0.ɵɵelementEnd()()()();
515
409
  } if (rf & 2) {
516
- i0.ɵɵproperty("bottomMargin", 20)("rightMargin", 5);
410
+ i0.ɵɵadvance(11);
411
+ i0.ɵɵconditional(ctx.action ? 11 : -1);
412
+ i0.ɵɵadvance(2);
413
+ i0.ɵɵtextInterpolate(ctx.record.ID);
414
+ i0.ɵɵadvance(2);
415
+ i0.ɵɵattribute("data-status", ctx.record.ResultCode == null ? null : ctx.record.ResultCode.toLowerCase());
416
+ i0.ɵɵadvance();
417
+ i0.ɵɵproperty("ngClass", ctx.getResultCodeIcon());
418
+ i0.ɵɵadvance();
419
+ i0.ɵɵtextInterpolate1(" ", ctx.record.ResultCode || "UNKNOWN", " ");
420
+ i0.ɵɵadvance(3);
421
+ i0.ɵɵtextInterpolate1(" ", ctx.formatDuration(ctx.getExecutionDuration()), " ");
422
+ i0.ɵɵadvance(6);
423
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(27, 14, ctx.record.StartedAt, "short"));
424
+ i0.ɵɵadvance(2);
425
+ i0.ɵɵconditional(ctx.record.EndedAt ? 28 : -1);
426
+ i0.ɵɵadvance();
427
+ i0.ɵɵconditional(ctx.action ? 29 : -1);
428
+ i0.ɵɵadvance();
429
+ i0.ɵɵconditional(ctx.user ? 30 : -1);
430
+ i0.ɵɵadvance(3);
431
+ i0.ɵɵproperty("expanded", true);
432
+ i0.ɵɵadvance(2);
433
+ i0.ɵɵconditional(ctx.record.Params ? 35 : -1);
434
+ i0.ɵɵadvance();
435
+ i0.ɵɵconditional(ctx.record.Message ? 36 : -1);
517
436
  i0.ɵɵadvance();
518
- i0.ɵɵconditional(ctx.record ? 1 : -1);
519
- } }, dependencies: [i3.ɵNgNoValidate, i3.NgControlStatus, i3.NgControlStatusGroup, i3.NgModel, i3.NgForm, i4.ExpansionPanelComponent, i4.ExpansionPanelTitleDirective, i5.ButtonComponent, i6.FormToolbarComponent, i7.FillContainer, i8.CodeEditorComponent, i9.DatePipe], styles: ["\n\n.record-form-container[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.record-form[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n\n\n.execution-header[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);\n border-bottom: 2px solid #dee2e6;\n}\n\n.result-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 6px 12px;\n border-radius: 16px;\n font-weight: 600;\n}\n\n.quick-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n flex-wrap: wrap;\n}\n\n.info-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.info-item[_ngcontent-%COMP%] span[style*=\"cursor: pointer\"][_ngcontent-%COMP%]:hover {\n text-decoration: underline;\n}\n\n.timestamps[_ngcontent-%COMP%] {\n min-width: 200px;\n}\n\n\n\n.configuration-sections[_ngcontent-%COMP%] {\n overflow-y: auto;\n}\n\n\n\n.details-grid[_ngcontent-%COMP%] {\n background: #f8f9fa;\n padding: 20px;\n border-radius: 8px;\n}\n\n.detail-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n\n\n.json-editor-container[_ngcontent-%COMP%] {\n border: 1px solid #e9ecef;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.editor-toolbar[_ngcontent-%COMP%] {\n background: #f8f9fa;\n padding: 12px 16px;\n border-bottom: 1px solid #e9ecef;\n}\n\n.editor-toolbar[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n color: #495057;\n font-size: 1em;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n background: #f8f9fa;\n border-radius: 8px;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #6c757d;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n color: #6c757d;\n}\n\n\n\n.metadata-grid[_ngcontent-%COMP%] {\n background: #f8f9fa;\n padding: 20px;\n border-radius: 8px;\n}\n\n.metadata-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n\n\n.result-success[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n.result-failure[_ngcontent-%COMP%] {\n color: #dc3545;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 40px;\n color: #6c757d;\n}\n\n.loading-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 2em;\n margin-bottom: 12px;\n}\n\n\n\n@media (max-width: 768px) {\n .execution-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n \n .quick-info[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 12px;\n }\n \n .timestamps[_ngcontent-%COMP%] {\n text-align: left !important;\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid #dee2e6;\n }\n \n .details-grid[_ngcontent-%COMP%], \n .metadata-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}"] }); }
437
+ i0.ɵɵconditional(!ctx.record.Params && !ctx.record.Message ? 37 : -1);
438
+ } }, dependencies: [i3.NgClass, i4.NgControlStatus, i4.NgModel, i5.PanelBarComponent, i5.PanelBarItemComponent, i5.PanelBarContentDirective, i6.CodeEditorComponent, i3.DatePipe], styles: ["\n\n.action-execution-log-form[_ngcontent-%COMP%] {\n height: 100%;\n overflow: hidden;\n background: #f5f7fa;\n}\n\n\n\n.header[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border-bottom: 1px solid #e0e6ed;\n padding: 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n background: linear-gradient(135deg, #17a2b8, #138496);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 20px;\n box-shadow: 0 4px 12px rgba(23, 162, 184, 0.2);\n}\n\n.header-info[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.meta-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: 14px;\n color: #6c757d;\n}\n\n.action-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: #495057;\n}\n\n.log-id[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n opacity: 0.7;\n}\n\n.header-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: white;\n}\n\n.execution-time[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 14px;\n color: #6c757d;\n}\n\n.header-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid #e9ecef;\n}\n\n.stat[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n color: #495057;\n}\n\n\n\n.content-area[_ngcontent-%COMP%] {\n height: calc(100% - 180px);\n overflow-y: auto;\n padding: 20px;\n}\n\n\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n padding: 20px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-item[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n font-weight: 600;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: #2196f3;\n cursor: pointer;\n font-size: 14px;\n padding: 4px;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n color: #1976d2;\n}\n\n.loading[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 13px;\n}\n\n\n\n.json-viewer[_ngcontent-%COMP%] {\n padding: 20px;\n background: #f8f9fa;\n border-radius: 8px;\n}\n\n.json-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.json-label[_ngcontent-%COMP%] {\n background: #17a2b8;\n color: white;\n padding: 4px 12px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.btn-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n}\n\n\n\n.status-badge[data-status=\"success\"][_ngcontent-%COMP%], \n.status-badge[data-status=\"ok\"][_ngcontent-%COMP%], \n.status-badge[data-status=\"completed\"][_ngcontent-%COMP%], \n.status-badge[data-status=\"200\"][_ngcontent-%COMP%] {\n background-color: #28a745;\n color: white;\n}\n\n.status-badge[data-status=\"error\"][_ngcontent-%COMP%], \n.status-badge[data-status=\"failed\"][_ngcontent-%COMP%], \n.status-badge[data-status=\"failure\"][_ngcontent-%COMP%] {\n background-color: #dc3545;\n color: white;\n}\n\n.status-badge[data-status=\"warning\"][_ngcontent-%COMP%], \n.status-badge[data-status=\"pending\"][_ngcontent-%COMP%] {\n background-color: #ffc107;\n color: #212529;\n}\n\n.status-badge[data-status=\"info\"][_ngcontent-%COMP%], \n.status-badge[data-status=\"running\"][_ngcontent-%COMP%] {\n background-color: #17a2b8;\n color: white;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n background-color: #6c757d;\n color: white;\n}\n\n\n\n.k-panelbar-item-content[_ngcontent-%COMP%] {\n padding: 0;\n}\n\n.k-panelbar[_ngcontent-%COMP%] > .k-item[_ngcontent-%COMP%] > .k-link[_ngcontent-%COMP%] {\n padding: 12px 16px;\n font-weight: 600;\n color: #495057;\n}\n\n.k-panelbar[_ngcontent-%COMP%] > .k-item[_ngcontent-%COMP%] > .k-link[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 8px;\n color: #6c757d;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 40px;\n color: #6c757d;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n opacity: 0.3;\n margin-bottom: 16px;\n}\n\n.monospace[_ngcontent-%COMP%] {\n font-family: 'Courier New', Courier, monospace;\n font-size: 13px;\n}\n\n\n\n@media (max-width: 768px) {\n .header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n \n .header-stats[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n \n .details-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n}"] }); }
520
439
  };
521
440
  ActionExecutionLogFormComponentExtended = __decorate([
522
441
  RegisterClass(BaseFormComponent, 'Action Execution Logs')
@@ -524,7 +443,7 @@ ActionExecutionLogFormComponentExtended = __decorate([
524
443
  export { ActionExecutionLogFormComponentExtended };
525
444
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionExecutionLogFormComponentExtended, [{
526
445
  type: Component,
527
- args: [{ selector: 'mj-action-execution-log-form', template: "<div class=\"record-form-container\" mjFillContainer [bottomMargin]=\"20\" [rightMargin]=\"5\">\n @if (record) {\n <form class=\"record-form\" #form=\"ngForm\" mjFillContainer>\n <mj-form-toolbar [form]=\"this\"></mj-form-toolbar>\n\n <!-- Main Content Area -->\n <div class=\"execution-log-main-area\" style=\"display: flex; flex-direction: column; height: 100%; overflow-y: auto;\">\n \n <!-- Header Section -->\n <div class=\"execution-header\" style=\"flex-shrink: 0; padding: 20px; background: #f8f9fa; border-bottom: 2px solid #e9ecef;\">\n <div style=\"display: flex; justify-content: space-between; align-items: flex-start; gap: 20px;\">\n \n <!-- Left: Execution Info -->\n <div style=\"flex: 1; min-width: 0;\">\n <div style=\"display: flex; align-items: center; gap: 12px; margin-bottom: 8px;\">\n <i [class]=\"'fa-solid ' + getResultCodeIcon()\" \n [style.color]=\"getResultCodeColor()\" \n style=\"font-size: 1.4em;\"></i>\n <h4 style=\"margin: 0; color: #495057; font-weight: 600;\">\n Execution #{{ record.ID }}\n </h4>\n <span class=\"result-badge\" \n [style.background-color]=\"getResultCodeColor()\" \n style=\"color: white; padding: 4px 10px; border-radius: 12px; font-size: 0.75em; font-weight: 500;\">\n {{ record.ResultCode || 'Unknown' }}\n </span>\n </div>\n \n <!-- Quick Info Row -->\n <div class=\"quick-info\" style=\"display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 12px;\">\n @if (action) {\n <div class=\"info-item\" style=\"display: flex; align-items: center; gap: 6px; font-size: 0.9em;\">\n <i class=\"fa-solid fa-bolt\" style=\"color: #6c757d;\"></i>\n <span style=\"color: #6c757d;\">Action:</span>\n <span style=\"color: #495057; font-weight: 500; cursor: pointer;\" (click)=\"navigateToAction()\">\n {{ action.Name }}\n <i class=\"fa-solid fa-external-link\" style=\"font-size: 0.75em; margin-left: 4px;\"></i>\n </span>\n </div>\n }\n \n @if (user) {\n <div class=\"info-item\" style=\"display: flex; align-items: center; gap: 6px; font-size: 0.9em;\">\n <i class=\"fa-solid fa-user\" style=\"color: #6c757d;\"></i>\n <span style=\"color: #6c757d;\">User:</span>\n <span style=\"color: #495057; font-weight: 500; cursor: pointer;\" (click)=\"navigateToUser()\">\n {{ user.Name }}\n <i class=\"fa-solid fa-external-link\" style=\"font-size: 0.75em; margin-left: 4px;\"></i>\n </span>\n </div>\n }\n \n @if (record.EndedAt) {\n <div class=\"info-item\" style=\"display: flex; align-items: center; gap: 6px; font-size: 0.9em;\">\n <i class=\"fa-solid fa-clock\" style=\"color: #6c757d;\"></i>\n <span style=\"color: #6c757d;\">Duration:</span>\n <span style=\"color: #495057; font-weight: 500;\">{{ formatDuration(getExecutionDuration()) }}</span>\n </div>\n }\n </div>\n </div>\n \n <!-- Right: Timestamps -->\n <div class=\"timestamps\" style=\"text-align: right; font-size: 0.85em; color: #6c757d;\">\n <div>Started: {{ record.StartedAt | date:'medium' }}</div>\n @if (record.EndedAt) {\n <div>Ended: {{ record.EndedAt | date:'medium' }}</div>\n } @else {\n <div style=\"color: #ffc107; font-weight: 600;\">Still Running...</div>\n }\n </div>\n </div>\n </div>\n\n <!-- Configuration Sections with Expansion Panels -->\n <div class=\"configuration-sections\" style=\"flex: 1; background: white; border-top: 2px solid #e9ecef; padding: 16px; min-height: 0;\">\n \n <!-- Execution Details Section -->\n <kendo-expansionpanel \n [expanded]=\"expandedSections.execution\"\n style=\"margin-bottom: 12px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-info-circle\" style=\"color: #6c757d;\"></i>\n Execution Details\n </span>\n </ng-template>\n \n <div style=\"padding: 16px;\">\n <div class=\"details-grid\" style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px;\">\n <div class=\"detail-item\">\n <label style=\"display: block; margin-bottom: 4px; font-weight: 600; color: #6c757d; font-size: 0.85em;\">Execution ID</label>\n <div style=\"font-family: monospace; color: #495057;\">{{ record.ID }}</div>\n </div>\n \n <div class=\"detail-item\">\n <label style=\"display: block; margin-bottom: 4px; font-weight: 600; color: #6c757d; font-size: 0.85em;\">Action ID</label>\n <div style=\"font-family: monospace; color: #495057;\">{{ record.ActionID }}</div>\n </div>\n \n <div class=\"detail-item\">\n <label style=\"display: block; margin-bottom: 4px; font-weight: 600; color: #6c757d; font-size: 0.85em;\">User ID</label>\n <div style=\"font-family: monospace; color: #495057;\">{{ record.UserID }}</div>\n </div>\n \n <div class=\"detail-item\">\n <label style=\"display: block; margin-bottom: 4px; font-weight: 600; color: #6c757d; font-size: 0.85em;\">Result Code</label>\n <div style=\"display: flex; align-items: center; gap: 8px;\">\n <i [class]=\"'fa-solid ' + getResultCodeIcon()\" [style.color]=\"getResultCodeColor()\"></i>\n <span style=\"font-weight: 600;\" [style.color]=\"getResultCodeColor()\">{{ record.ResultCode || 'N/A' }}</span>\n </div>\n </div>\n \n <div class=\"detail-item\">\n <label style=\"display: block; margin-bottom: 4px; font-weight: 600; color: #6c757d; font-size: 0.85em;\">Retention Period</label>\n <div>{{ record.RetentionPeriod ? record.RetentionPeriod + ' days' : 'Indefinite' }}</div>\n </div>\n </div>\n </div>\n </kendo-expansionpanel>\n\n <!-- Input Parameters Section -->\n <kendo-expansionpanel \n [expanded]=\"expandedSections.input\"\n style=\"margin-bottom: 12px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-sign-in-alt\" style=\"color: #6c757d;\"></i>\n Input Parameters\n @if (record.Params) {\n <span style=\"background: #17a2b8; color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n JSON\n </span>\n }\n </span>\n </ng-template>\n \n <div style=\"padding: 16px;\">\n @if (record.Params) {\n <div class=\"json-editor-container\">\n <div class=\"editor-toolbar\" style=\"display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px;\">\n <h4 style=\"margin: 0; color: #495057;\">Parameters JSON</h4>\n @if (EditMode) {\n <kendo-button fillMode=\"flat\" size=\"small\" (click)=\"saveParams()\">\n <i class=\"fa-solid fa-save\"></i> Save\n </kendo-button>\n }\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedParams\"\n name=\"formattedParams\"\n [readonly]=\"!EditMode\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n } @else {\n <div class=\"empty-state\" style=\"padding: 30px; text-align: center;\">\n <i class=\"fa-solid fa-inbox\" style=\"font-size: 2em; color: #6c757d; opacity: 0.3;\"></i>\n <p style=\"margin: 12px 0 0 0; color: #6c757d;\">No input parameters</p>\n </div>\n }\n </div>\n </kendo-expansionpanel>\n\n <!-- Output/Message Section -->\n <kendo-expansionpanel \n [expanded]=\"expandedSections.output\"\n style=\"margin-bottom: 12px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-sign-out-alt\" style=\"color: #6c757d;\"></i>\n Output Message\n @if (formattedMessage) {\n <span style=\"background: #28a745; color: white; padding: 2px 6px; border-radius: 10px; font-size: 0.7em;\">\n JSON\n </span>\n }\n </span>\n </ng-template>\n \n <div style=\"padding: 16px;\">\n @if (formattedMessage) {\n <div class=\"json-editor-container\">\n <div class=\"editor-toolbar\" style=\"display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px;\">\n <h4 style=\"margin: 0; color: #495057;\">Output Message JSON</h4>\n @if (EditMode) {\n <kendo-button fillMode=\"flat\" size=\"small\" (click)=\"saveMessage()\">\n <i class=\"fa-solid fa-save\"></i> Save\n </kendo-button>\n }\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedMessage\"\n name=\"formattedMessage\"\n [readonly]=\"!EditMode\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n } @else {\n <div class=\"empty-state\" style=\"padding: 30px; text-align: center;\">\n <i class=\"fa-solid fa-inbox\" style=\"font-size: 2em; color: #6c757d; opacity: 0.3;\"></i>\n <p style=\"margin: 12px 0 0 0; color: #6c757d;\">No output message</p>\n @if (!EditMode) {\n <p style=\"margin: 8px 0 0 0; font-size: 0.85em; color: #6c757d;\">\n Output data will be captured in future executions\n </p>\n }\n </div>\n }\n </div>\n </kendo-expansionpanel>\n\n <!-- Metadata Section -->\n <kendo-expansionpanel \n [expanded]=\"expandedSections.metadata\"\n style=\"margin-bottom: 12px;\">\n <ng-template kendoExpansionPanelTitleDirective>\n <span style=\"display: flex; align-items: center; gap: 8px; font-weight: 600;\">\n <i class=\"fa-solid fa-database\" style=\"color: #6c757d;\"></i>\n System Metadata\n </span>\n </ng-template>\n \n <div style=\"padding: 16px;\">\n <div class=\"metadata-grid\" style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px;\">\n <div class=\"metadata-item\">\n <label style=\"display: block; margin-bottom: 4px; font-weight: 600; color: #6c757d; font-size: 0.85em;\">Created At</label>\n <div>{{ record.__mj_CreatedAt | date:'medium' }}</div>\n </div>\n \n <div class=\"metadata-item\">\n <label style=\"display: block; margin-bottom: 4px; font-weight: 600; color: #6c757d; font-size: 0.85em;\">Updated At</label>\n <div>{{ record.__mj_UpdatedAt | date:'medium' }}</div>\n </div>\n </div>\n </div>\n </kendo-expansionpanel>\n </div>\n </div>\n </form>\n }\n</div>", styles: ["/* General form styling */\n.record-form-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.record-form {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n/* Header Section */\n.execution-header {\n background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);\n border-bottom: 2px solid #dee2e6;\n}\n\n.result-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 6px 12px;\n border-radius: 16px;\n font-weight: 600;\n}\n\n.quick-info {\n display: flex;\n gap: 24px;\n flex-wrap: wrap;\n}\n\n.info-item {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.info-item span[style*=\"cursor: pointer\"]:hover {\n text-decoration: underline;\n}\n\n.timestamps {\n min-width: 200px;\n}\n\n/* Configuration Sections */\n.configuration-sections {\n overflow-y: auto;\n}\n\n/* Details Grid */\n.details-grid {\n background: #f8f9fa;\n padding: 20px;\n border-radius: 8px;\n}\n\n.detail-item label {\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* JSON Editor Container */\n.json-editor-container {\n border: 1px solid #e9ecef;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.editor-toolbar {\n background: #f8f9fa;\n padding: 12px 16px;\n border-bottom: 1px solid #e9ecef;\n}\n\n.editor-toolbar h4 {\n color: #495057;\n font-size: 1em;\n}\n\n/* Empty State */\n.empty-state {\n background: #f8f9fa;\n border-radius: 8px;\n}\n\n.empty-state i {\n color: #6c757d;\n}\n\n.empty-state p {\n color: #6c757d;\n}\n\n/* Metadata Grid */\n.metadata-grid {\n background: #f8f9fa;\n padding: 20px;\n border-radius: 8px;\n}\n\n.metadata-item label {\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Result Code Styling */\n.result-success {\n color: #28a745;\n}\n\n.result-failure {\n color: #dc3545;\n}\n\n/* Loading States */\n.loading-state {\n text-align: center;\n padding: 40px;\n color: #6c757d;\n}\n\n.loading-state i {\n font-size: 2em;\n margin-bottom: 12px;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .execution-header {\n padding: 16px;\n }\n \n .quick-info {\n flex-direction: column;\n gap: 12px;\n }\n \n .timestamps {\n text-align: left !important;\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid #dee2e6;\n }\n \n .details-grid,\n .metadata-grid {\n grid-template-columns: 1fr;\n }\n}"] }]
446
+ args: [{ selector: 'mj-action-execution-log-form', template: "<div class=\"record-form-container action-execution-log-form\">\n <div class=\"record-form\">\n <!-- Header -->\n <div class=\"header\">\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"icon-wrapper\">\n <i class=\"fas fa-terminal\"></i>\n </div>\n <div class=\"header-info\">\n <h2>Action Execution Log</h2>\n <div class=\"meta-info\">\n @if (action) {\n <span class=\"action-name\">{{ action.Name }}</span>\n }\n <span class=\"log-id\">{{ record.ID }}</span>\n </div>\n </div>\n </div>\n <div class=\"header-right\">\n <div class=\"status-badge\" [attr.data-status]=\"record.ResultCode?.toLowerCase()\">\n <i class=\"fas\" [ngClass]=\"getResultCodeIcon()\"></i>\n {{ record.ResultCode || 'UNKNOWN' }}\n </div>\n <div class=\"execution-time\">\n <i class=\"fas fa-clock\"></i>\n {{ formatDuration(getExecutionDuration()) }}\n </div>\n </div>\n </div>\n <div class=\"header-stats\">\n <div class=\"stat\">\n <span class=\"label\">Started</span>\n <span class=\"value\">{{ record.StartedAt | date:'short' }}</span>\n </div>\n @if (record.EndedAt) {\n <div class=\"stat\">\n <span class=\"label\">Ended</span>\n <span class=\"value\">{{ record.EndedAt | date:'short' }}</span>\n </div>\n }\n @if (action) {\n <div class=\"stat\">\n <span class=\"label\">Action</span>\n <span class=\"value\">\n <button class=\"btn-link\" (click)=\"navigateToAction()\">\n {{ action.Name }}\n <i class=\"fas fa-external-link-alt\"></i>\n </button>\n </span>\n </div>\n }\n @if (user) {\n <div class=\"stat\">\n <span class=\"label\">User</span>\n <span class=\"value\">\n <button class=\"btn-link\" (click)=\"navigateToUser()\">\n {{ user.Name }}\n <i class=\"fas fa-external-link-alt\"></i>\n </button>\n </span>\n </div>\n }\n </div>\n </div>\n\n <!-- Content Area -->\n <div class=\"content-area\">\n <kendo-panelbar>\n <!-- Execution Details -->\n <kendo-panelbar-item title=\"Execution Details\" [expanded]=\"true\">\n <ng-template kendoPanelBarContent>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <label>Execution ID</label>\n <span class=\"monospace\">{{ record.ID }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Action ID</label>\n <span class=\"monospace\">{{ record.ActionID }}</span>\n </div>\n <div class=\"detail-item\">\n <label>User ID</label>\n <span class=\"monospace\">{{ record.UserID }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Result Code</label>\n <span class=\"detail-value\">\n <i class=\"fas\" [ngClass]=\"getResultCodeIcon()\" [style.color]=\"getResultCodeColor()\"></i>\n <span [style.color]=\"getResultCodeColor()\">{{ record.ResultCode || 'N/A' }}</span>\n </span>\n </div>\n <div class=\"detail-item\">\n <label>Duration</label>\n <span>{{ formatDuration(getExecutionDuration()) }}</span>\n </div>\n <div class=\"detail-item\">\n <label>Retention Period</label>\n <span>{{ record.RetentionPeriod ? record.RetentionPeriod + ' days' : 'Indefinite' }}</span>\n </div>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n\n <!-- Input Parameters -->\n @if (record.Params) {\n <kendo-panelbar-item title=\"Input Parameters\" [expanded]=\"expandedSections.input\">\n <ng-template kendoPanelBarContent>\n <div class=\"json-viewer\">\n <div class=\"json-toolbar\">\n <span class=\"json-label\">JSON</span>\n <button class=\"btn-icon\" title=\"Copy JSON\" (click)=\"copyToClipboard(formattedParams)\">\n <i class=\"fas fa-copy\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedParams\"\n name=\"formattedParams\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Output Message -->\n @if (record.Message) {\n <kendo-panelbar-item title=\"Output Message\" [expanded]=\"expandedSections.output\">\n <ng-template kendoPanelBarContent>\n <div class=\"json-viewer\">\n <div class=\"json-toolbar\">\n <span class=\"json-label\">JSON</span>\n <button class=\"btn-icon\" title=\"Copy JSON\" (click)=\"copyToClipboard(formattedMessage)\">\n <i class=\"fas fa-copy\"></i>\n </button>\n </div>\n <mj-code-editor \n [(ngModel)]=\"formattedMessage\"\n name=\"formattedMessage\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 300px; width: 100%;\">\n </mj-code-editor>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n\n <!-- Empty States for missing data -->\n @if (!record.Params && !record.Message) {\n <kendo-panelbar-item title=\"Execution Data\" [expanded]=\"true\">\n <ng-template kendoPanelBarContent>\n <div class=\"empty-state\">\n <i class=\"fas fa-inbox\"></i>\n <p>No input parameters or output messages recorded</p>\n </div>\n </ng-template>\n </kendo-panelbar-item>\n }\n </kendo-panelbar>\n </div>\n </div>\n</div>", styles: ["/* Action Execution Log Form Styles */\n.action-execution-log-form {\n height: 100%;\n overflow: hidden;\n background: #f5f7fa;\n}\n\n/* Header Styles */\n.header {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border-bottom: 1px solid #e0e6ed;\n padding: 20px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.04);\n}\n\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 16px;\n}\n\n.header-left {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.icon-wrapper {\n width: 48px;\n height: 48px;\n background: linear-gradient(135deg, #17a2b8, #138496);\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 20px;\n box-shadow: 0 4px 12px rgba(23, 162, 184, 0.2);\n}\n\n.header-info h2 {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: #2c3e50;\n}\n\n.meta-info {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: 14px;\n color: #6c757d;\n}\n\n.action-name {\n font-weight: 500;\n color: #495057;\n}\n\n.log-id {\n font-family: monospace;\n font-size: 12px;\n opacity: 0.7;\n}\n\n.header-right {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.status-badge {\n padding: 6px 16px;\n border-radius: 20px;\n font-size: 13px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: white;\n}\n\n.execution-time {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 14px;\n color: #6c757d;\n}\n\n.header-stats {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid #e9ecef;\n}\n\n.stat {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat .label {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat .value {\n font-size: 14px;\n font-weight: 500;\n color: #495057;\n}\n\n/* Content Area */\n.content-area {\n height: calc(100% - 180px);\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Details Grid */\n.details-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n padding: 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.detail-item label {\n font-size: 12px;\n color: #6c757d;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n font-weight: 600;\n}\n\n.detail-value {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn-link {\n background: none;\n border: none;\n color: #2196f3;\n cursor: pointer;\n font-size: 14px;\n padding: 4px;\n}\n\n.btn-link:hover {\n color: #1976d2;\n}\n\n.loading {\n color: #6c757d;\n font-size: 13px;\n}\n\n/* JSON Viewer */\n.json-viewer {\n padding: 20px;\n background: #f8f9fa;\n border-radius: 8px;\n}\n\n.json-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.json-label {\n background: #17a2b8;\n color: white;\n padding: 4px 12px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.btn-icon {\n width: 32px;\n height: 32px;\n border: 1px solid #dee2e6;\n background: white;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #6c757d;\n}\n\n.btn-icon:hover {\n background: #f8f9fa;\n border-color: #adb5bd;\n color: #495057;\n}\n\n/* Status badge colors based on data-status attribute */\n.status-badge[data-status=\"success\"],\n.status-badge[data-status=\"ok\"],\n.status-badge[data-status=\"completed\"],\n.status-badge[data-status=\"200\"] {\n background-color: #28a745;\n color: white;\n}\n\n.status-badge[data-status=\"error\"],\n.status-badge[data-status=\"failed\"],\n.status-badge[data-status=\"failure\"] {\n background-color: #dc3545;\n color: white;\n}\n\n.status-badge[data-status=\"warning\"],\n.status-badge[data-status=\"pending\"] {\n background-color: #ffc107;\n color: #212529;\n}\n\n.status-badge[data-status=\"info\"],\n.status-badge[data-status=\"running\"] {\n background-color: #17a2b8;\n color: white;\n}\n\n.status-badge {\n background-color: #6c757d;\n color: white;\n}\n\n/* Panel Bar overrides */\n.k-panelbar-item-content {\n padding: 0;\n}\n\n.k-panelbar > .k-item > .k-link {\n padding: 12px 16px;\n font-weight: 600;\n color: #495057;\n}\n\n.k-panelbar > .k-item > .k-link i {\n margin-right: 8px;\n color: #6c757d;\n}\n\n/* Empty state */\n.empty-state {\n text-align: center;\n padding: 40px;\n color: #6c757d;\n}\n\n.empty-state i {\n font-size: 48px;\n opacity: 0.3;\n margin-bottom: 16px;\n}\n\n.monospace {\n font-family: 'Courier New', Courier, monospace;\n font-size: 13px;\n}\n\n/* Responsive adjustments */\n@media (max-width: 768px) {\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n \n .header-stats {\n flex-wrap: wrap;\n }\n \n .details-grid {\n grid-template-columns: 1fr;\n }\n}"] }]
528
447
  }], () => [{ type: i0.ElementRef }, { type: i1.SharedService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }], null); })();
529
448
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActionExecutionLogFormComponentExtended, { className: "ActionExecutionLogFormComponentExtended", filePath: "src/lib/custom/Actions/action-execution-log-form.component.ts", lineNumber: 16 }); })();
530
449
  //# sourceMappingURL=action-execution-log-form.component.js.map