@memberjunction/ng-core-entity-forms 6.2.1 → 6.3.0-edge.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -6
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.d.ts.map +1 -1
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.js +3 -3
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-header.panel.js.map +1 -1
- package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.d.ts +12 -0
- package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.js +293 -230
- package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js +2 -2
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +2 -2
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +11 -0
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +862 -812
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +2 -2
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +2 -2
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +2 -2
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +2 -2
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +2 -2
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +2 -2
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +12 -0
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +821 -763
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +2 -2
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +10 -0
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +700 -605
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +10 -0
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.js +223 -175
- package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.d.ts +10 -0
- package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.js +502 -453
- package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
- package/dist/lib/custom/Companies/company-header.panel.d.ts.map +1 -1
- package/dist/lib/custom/Companies/company-header.panel.js +3 -3
- package/dist/lib/custom/Companies/company-header.panel.js.map +1 -1
- package/dist/lib/custom/Conversations/conversation-header.panel.d.ts.map +1 -1
- package/dist/lib/custom/Conversations/conversation-header.panel.js +3 -3
- package/dist/lib/custom/Conversations/conversation-header.panel.js.map +1 -1
- package/dist/lib/custom/Employees/employee-header.panel.d.ts.map +1 -1
- package/dist/lib/custom/Employees/employee-header.panel.js +3 -3
- package/dist/lib/custom/Employees/employee-header.panel.js.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.d.ts +15 -0
- package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.js +836 -801
- package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.js +2 -2
- package/dist/lib/custom/Files/file-form.component.js +2 -2
- package/dist/lib/custom/Lists/list-form.component.d.ts +5 -0
- package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.js +355 -338
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/MLModels/ml-model-form.component.js +3 -3
- package/dist/lib/custom/MLModels/ml-model-form.component.js.map +1 -1
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts +17 -35
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts.map +1 -1
- package/dist/lib/custom/MLModels/ml-model-view-models.js +55 -54
- package/dist/lib/custom/MLModels/ml-model-view-models.js.map +1 -1
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts +7 -99
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts.map +1 -1
- package/dist/lib/custom/MLModels/ps-model-detail.component.js +124 -303
- package/dist/lib/custom/MLModels/ps-model-detail.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.d.ts +9 -0
- package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +493 -444
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.js +2 -2
- package/dist/lib/custom/Templates/template-param-dialog.component.js +2 -2
- package/dist/lib/custom/Templates/templates-form.component.d.ts +9 -0
- package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +118 -74
- package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.d.ts +5 -0
- package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +471 -451
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.d.ts +5 -0
- package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.js +312 -289
- package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts +5 -0
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +697 -677
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +5 -0
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.js +453 -433
- package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
- package/dist/lib/custom/Users/user-header.panel.d.ts.map +1 -1
- package/dist/lib/custom/Users/user-header.panel.js +3 -3
- package/dist/lib/custom/Users/user-header.panel.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/agent-run-cost-split.d.ts +2 -2
- package/dist/lib/custom/ai-agent-run/agent-run-cost-split.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/agent-run-cost-split.js +30 -13
- package/dist/lib/custom/ai-agent-run/agent-run-cost-split.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +23 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +276 -216
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +7 -1
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +32 -14
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAction/mjaction.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js +119 -95
- package/dist/lib/generated/Entities/MJAction/mjaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJComment/mjcomment.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJComment/mjcomment.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJComment/mjcomment.form.component.js +124 -0
- package/dist/lib/generated/Entities/MJComment/mjcomment.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJCommentType/mjcommenttype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJCommentType/mjcommenttype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJCommentType/mjcommenttype.form.component.js +99 -0
- package/dist/lib/generated/Entities/MJCommentType/mjcommenttype.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js +2 -2
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversationType/mjconversationtype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJConversationType/mjconversationtype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJConversationType/mjconversationtype.form.component.js +95 -0
- package/dist/lib/generated/Entities/MJConversationType/mjconversationtype.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJDocumentSequenceCounter/mjdocumentsequencecounter.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJDocumentSequenceCounter/mjdocumentsequencecounter.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJDocumentSequenceCounter/mjdocumentsequencecounter.form.component.js +60 -0
- package/dist/lib/generated/Entities/MJDocumentSequenceCounter/mjdocumentsequencecounter.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +124 -106
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.js +12 -4
- package/dist/lib/generated/Entities/MJEntityFieldValue/mjentityfieldvalue.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.js +19 -11
- package/dist/lib/generated/Entities/MJEntityOrganicKey/mjentityorganickey.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityUniqueKey/mjentityuniquekey.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJEntityUniqueKey/mjentityuniquekey.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJEntityUniqueKey/mjentityuniquekey.form.component.js +62 -0
- package/dist/lib/generated/Entities/MJEntityUniqueKey/mjentityuniquekey.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js +26 -12
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFieldSuggestion/mjfieldsuggestion.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJFieldSuggestion/mjfieldsuggestion.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJFieldSuggestion/mjfieldsuggestion.form.component.js +140 -0
- package/dist/lib/generated/Entities/MJFieldSuggestion/mjfieldsuggestion.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJFile/mjfile.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js +69 -15
- package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js +31 -13
- package/dist/lib/generated/Entities/MJFileStorageProvider/mjfilestorageprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMLEvaluationProtocol/mjmlevaluationprotocol.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJMLEvaluationProtocol/mjmlevaluationprotocol.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJMLEvaluationProtocol/mjmlevaluationprotocol.form.component.js +205 -0
- package/dist/lib/generated/Entities/MJMLEvaluationProtocol/mjmlevaluationprotocol.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJMLModel/mjmlmodel.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJMLModel/mjmlmodel.form.component.js +24 -6
- package/dist/lib/generated/Entities/MJMLModel/mjmlmodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMLPredictionUnit/mjmlpredictionunit.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJMLPredictionUnit/mjmlpredictionunit.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJMLPredictionUnit/mjmlpredictionunit.form.component.js +173 -0
- package/dist/lib/generated/Entities/MJMLPredictionUnit/mjmlpredictionunit.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJMLTrainingPipeline/mjmltrainingpipeline.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJMLTrainingPipeline/mjmltrainingpipeline.form.component.js +46 -24
- package/dist/lib/generated/Entities/MJMLTrainingPipeline/mjmltrainingpipeline.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMLTrainingRun/mjmltrainingrun.form.component.js +22 -14
- package/dist/lib/generated/Entities/MJMLTrainingRun/mjmltrainingrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJMLTrainingSnapshot/mjmltrainingsnapshot.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJMLTrainingSnapshot/mjmltrainingsnapshot.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJMLTrainingSnapshot/mjmltrainingsnapshot.form.component.js +175 -0
- package/dist/lib/generated/Entities/MJMLTrainingSnapshot/mjmltrainingsnapshot.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.js +8 -6
- package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js +44 -36
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJTask/mjtask.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js +54 -32
- package/dist/lib/generated/Entities/MJTask/mjtask.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +452 -443
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +27 -0
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/panels/feature-values/feature-values.panel.js +1 -1
- package/dist/lib/panels/feature-values/feature-values.panel.js.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.js.map +1 -1
- package/dist/lib/shared/components/template-editor.component.js +2 -2
- package/dist/lib/shared/phone-hero.d.ts +17 -0
- package/dist/lib/shared/phone-hero.d.ts.map +1 -0
- package/dist/lib/shared/phone-hero.js +30 -0
- package/dist/lib/shared/phone-hero.js.map +1 -0
- package/dist/lib/shared/phone-sections-state.d.ts +28 -0
- package/dist/lib/shared/phone-sections-state.d.ts.map +1 -0
- package/dist/lib/shared/phone-sections-state.js +38 -0
- package/dist/lib/shared/phone-sections-state.js.map +1 -0
- package/package.json +50 -50
|
@@ -10,6 +10,8 @@ import { BaseFormComponent } from '@memberjunction/ng-base-forms';
|
|
|
10
10
|
import { SharedService } from '@memberjunction/ng-shared';
|
|
11
11
|
import { CompositeKey } from '@memberjunction/core';
|
|
12
12
|
import { MJActionExecutionLogFormComponent } from '../../generated/Entities/MJActionExecutionLog/mjactionexecutionlog.form.component';
|
|
13
|
+
import { JoinHeroSummary } from '../../shared/phone-hero';
|
|
14
|
+
import { PhoneSectionsState } from '../../shared/phone-sections-state';
|
|
13
15
|
import * as i0 from "@angular/core";
|
|
14
16
|
import * as i1 from "@angular/common";
|
|
15
17
|
import * as i2 from "@angular/forms";
|
|
@@ -51,10 +53,10 @@ function MJActionExecutionLogFormComponentExtended_Conditional_30_Template(rf, c
|
|
|
51
53
|
i0.ɵɵelementStart(0, "div", 18)(1, "span", 19);
|
|
52
54
|
i0.ɵɵtext(2, "Action");
|
|
53
55
|
i0.ɵɵelementEnd();
|
|
54
|
-
i0.ɵɵelementStart(3, "span", 20)(4, "button",
|
|
56
|
+
i0.ɵɵelementStart(3, "span", 20)(4, "button", 34);
|
|
55
57
|
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_30_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToAction()); });
|
|
56
58
|
i0.ɵɵtext(5);
|
|
57
|
-
i0.ɵɵelement(6, "i",
|
|
59
|
+
i0.ɵɵelement(6, "i", 35);
|
|
58
60
|
i0.ɵɵelementEnd()()();
|
|
59
61
|
} if (rf & 2) {
|
|
60
62
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -66,24 +68,39 @@ function MJActionExecutionLogFormComponentExtended_Conditional_31_Template(rf, c
|
|
|
66
68
|
i0.ɵɵelementStart(0, "div", 18)(1, "span", 19);
|
|
67
69
|
i0.ɵɵtext(2, "User");
|
|
68
70
|
i0.ɵɵelementEnd();
|
|
69
|
-
i0.ɵɵelementStart(3, "span", 20)(4, "button",
|
|
71
|
+
i0.ɵɵelementStart(3, "span", 20)(4, "button", 34);
|
|
70
72
|
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_31_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.navigateToUser()); });
|
|
71
73
|
i0.ɵɵtext(5);
|
|
72
|
-
i0.ɵɵelement(6, "i",
|
|
74
|
+
i0.ɵɵelement(6, "i", 35);
|
|
73
75
|
i0.ɵɵelementEnd()()();
|
|
74
76
|
} if (rf & 2) {
|
|
75
77
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
76
78
|
i0.ɵɵadvance(5);
|
|
77
79
|
i0.ɵɵtextInterpolate1(" ", ctx_r0.user.Name, " ");
|
|
78
80
|
} }
|
|
79
|
-
function
|
|
80
|
-
i0.ɵɵ
|
|
81
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_32_Template(rf, ctx) { if (rf & 1) {
|
|
82
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
83
|
+
i0.ɵɵelementStart(0, "button", 36);
|
|
84
|
+
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_32_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.ToggleHeroDetails()); });
|
|
85
|
+
i0.ɵɵelementStart(1, "span", 37);
|
|
86
|
+
i0.ɵɵtext(2);
|
|
87
|
+
i0.ɵɵelementEnd();
|
|
88
|
+
i0.ɵɵelement(3, "i", 38);
|
|
89
|
+
i0.ɵɵelementEnd();
|
|
90
|
+
} if (rf & 2) {
|
|
91
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
92
|
+
i0.ɵɵattribute("aria-expanded", ctx_r0.HeroDetailsOpen);
|
|
93
|
+
i0.ɵɵadvance(2);
|
|
94
|
+
i0.ɵɵtextInterpolate(ctx_r0.HeroSummary);
|
|
95
|
+
} }
|
|
96
|
+
function MJActionExecutionLogFormComponentExtended_ng_template_37_Template(rf, ctx) { if (rf & 1) {
|
|
97
|
+
i0.ɵɵelement(0, "i", 39);
|
|
81
98
|
i0.ɵɵtext(1, " Execution Details ");
|
|
82
99
|
} }
|
|
83
|
-
function
|
|
84
|
-
i0.ɵɵelement(0, "i",
|
|
100
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
101
|
+
i0.ɵɵelement(0, "i", 62);
|
|
85
102
|
i0.ɵɵtext(1, " Parameters ");
|
|
86
|
-
i0.ɵɵelementStart(2, "span",
|
|
103
|
+
i0.ɵɵelementStart(2, "span", 63);
|
|
87
104
|
i0.ɵɵtext(3);
|
|
88
105
|
i0.ɵɵelementEnd();
|
|
89
106
|
} if (rf & 2) {
|
|
@@ -91,36 +108,36 @@ function MJActionExecutionLogFormComponentExtended_Conditional_69_ng_template_1_
|
|
|
91
108
|
i0.ɵɵadvance(3);
|
|
92
109
|
i0.ɵɵtextInterpolate(ctx_r0.paramCounts.All);
|
|
93
110
|
} }
|
|
94
|
-
function
|
|
95
|
-
const
|
|
96
|
-
i0.ɵɵelementStart(0, "button",
|
|
97
|
-
i0.ɵɵlistener("click", function
|
|
98
|
-
i0.ɵɵelement(1, "i",
|
|
111
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_28_Template(rf, ctx) { if (rf & 1) {
|
|
112
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
113
|
+
i0.ɵɵelementStart(0, "button", 64);
|
|
114
|
+
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_28_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.searchText = ""); });
|
|
115
|
+
i0.ɵɵelement(1, "i", 65);
|
|
99
116
|
i0.ɵɵelementEnd();
|
|
100
117
|
} }
|
|
101
|
-
function
|
|
118
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_32_Template(rf, ctx) { if (rf & 1) {
|
|
102
119
|
i0.ɵɵelement(0, "i", 14);
|
|
103
120
|
} if (rf & 2) {
|
|
104
121
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
105
122
|
i0.ɵɵproperty("ngClass", ctx_r0.sortDir === "asc" ? "fa-arrow-down-short-wide" : "fa-arrow-up-wide-short");
|
|
106
123
|
} }
|
|
107
|
-
function
|
|
124
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_35_Template(rf, ctx) { if (rf & 1) {
|
|
108
125
|
i0.ɵɵelement(0, "i", 14);
|
|
109
126
|
} if (rf & 2) {
|
|
110
127
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
111
128
|
i0.ɵɵproperty("ngClass", ctx_r0.sortDir === "asc" ? "fa-arrow-down-a-z" : "fa-arrow-up-z-a");
|
|
112
129
|
} }
|
|
113
|
-
function
|
|
114
|
-
const
|
|
115
|
-
i0.ɵɵelementStart(0, "div",
|
|
130
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_39_Template(rf, ctx) { if (rf & 1) {
|
|
131
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
132
|
+
i0.ɵɵelementStart(0, "div", 61)(1, "div", 66)(2, "span", 67);
|
|
116
133
|
i0.ɵɵtext(3, "Raw JSON");
|
|
117
134
|
i0.ɵɵelementEnd();
|
|
118
|
-
i0.ɵɵelementStart(4, "button",
|
|
119
|
-
i0.ɵɵlistener("click", function
|
|
120
|
-
i0.ɵɵelement(5, "i",
|
|
135
|
+
i0.ɵɵelementStart(4, "button", 68);
|
|
136
|
+
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_39_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.copyToClipboard(ctx_r0.formattedParams)); });
|
|
137
|
+
i0.ɵɵelement(5, "i", 69);
|
|
121
138
|
i0.ɵɵelementEnd()();
|
|
122
|
-
i0.ɵɵelementStart(6, "mj-code-editor",
|
|
123
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
139
|
+
i0.ɵɵelementStart(6, "mj-code-editor", 70);
|
|
140
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_39_Template_mj_code_editor_ngModelChange_6_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.formattedParams, $event) || (ctx_r0.formattedParams = $event); return i0.ɵɵresetView($event); });
|
|
124
141
|
i0.ɵɵelementEnd()();
|
|
125
142
|
} if (rf & 2) {
|
|
126
143
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
@@ -128,169 +145,169 @@ function MJActionExecutionLogFormComponentExtended_Conditional_69_Conditional_39
|
|
|
128
145
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r0.formattedParams);
|
|
129
146
|
i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
|
|
130
147
|
} }
|
|
131
|
-
function
|
|
132
|
-
const
|
|
133
|
-
i0.ɵɵelementStart(0, "mj-empty-state",
|
|
134
|
-
i0.ɵɵlistener("Action", function
|
|
148
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
149
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
150
|
+
i0.ɵɵelementStart(0, "mj-empty-state", 73);
|
|
151
|
+
i0.ɵɵlistener("Action", function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_0_Template_mj_empty_state_Action_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.clearFilters()); });
|
|
135
152
|
i0.ɵɵelementEnd();
|
|
136
153
|
} }
|
|
137
|
-
function
|
|
138
|
-
i0.ɵɵelement(0, "i",
|
|
154
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
155
|
+
i0.ɵɵelement(0, "i", 46);
|
|
139
156
|
} }
|
|
140
|
-
function
|
|
141
|
-
i0.ɵɵelement(0, "i",
|
|
157
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
158
|
+
i0.ɵɵelement(0, "i", 50);
|
|
142
159
|
} }
|
|
143
|
-
function
|
|
144
|
-
i0.ɵɵelement(0, "i",
|
|
160
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
161
|
+
i0.ɵɵelement(0, "i", 48);
|
|
145
162
|
} }
|
|
146
|
-
function
|
|
147
|
-
const
|
|
148
|
-
i0.ɵɵelementStart(0, "button",
|
|
149
|
-
i0.ɵɵlistener("click", function
|
|
163
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
164
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
165
|
+
i0.ɵɵelementStart(0, "button", 85);
|
|
166
|
+
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Conditional_14_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const p_r11 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.toggleExpanded(p_r11)); });
|
|
150
167
|
i0.ɵɵelement(1, "i", 14);
|
|
151
168
|
i0.ɵɵelementEnd();
|
|
152
169
|
} if (rf & 2) {
|
|
153
|
-
const
|
|
154
|
-
i0.ɵɵclassProp("is-expanded",
|
|
155
|
-
i0.ɵɵproperty("title",
|
|
170
|
+
const p_r11 = i0.ɵɵnextContext().$implicit;
|
|
171
|
+
i0.ɵɵclassProp("is-expanded", p_r11.Expanded);
|
|
172
|
+
i0.ɵɵproperty("title", p_r11.Expanded ? "Collapse" : "Expand");
|
|
156
173
|
i0.ɵɵadvance();
|
|
157
|
-
i0.ɵɵproperty("ngClass",
|
|
174
|
+
i0.ɵɵproperty("ngClass", p_r11.Expanded ? "fa-chevron-up" : "fa-chevron-down");
|
|
158
175
|
} }
|
|
159
|
-
function
|
|
160
|
-
const
|
|
161
|
-
i0.ɵɵelementStart(0, "div",
|
|
162
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
176
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
177
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
178
|
+
i0.ɵɵelementStart(0, "div", 84)(1, "mj-code-editor", 86);
|
|
179
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Conditional_19_Template_mj_code_editor_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r12); const p_r11 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(p_r11.FormattedValue, $event) || (p_r11.FormattedValue = $event); return i0.ɵɵresetView($event); });
|
|
163
180
|
i0.ɵɵelementEnd()();
|
|
164
181
|
} if (rf & 2) {
|
|
165
|
-
const
|
|
182
|
+
const p_r11 = i0.ɵɵnextContext().$implicit;
|
|
166
183
|
i0.ɵɵadvance();
|
|
167
|
-
i0.ɵɵtwoWayProperty("ngModel",
|
|
168
|
-
i0.ɵɵproperty("name", "param-" +
|
|
184
|
+
i0.ɵɵtwoWayProperty("ngModel", p_r11.FormattedValue);
|
|
185
|
+
i0.ɵɵproperty("name", "param-" + p_r11.Name)("readonly", true)("language", "json")("lineWrapping", true);
|
|
169
186
|
} }
|
|
170
|
-
function
|
|
171
|
-
const
|
|
172
|
-
i0.ɵɵelementStart(0, "li",
|
|
173
|
-
i0.ɵɵconditionalCreate(3,
|
|
187
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
188
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
189
|
+
i0.ɵɵelementStart(0, "li", 74)(1, "div", 75)(2, "span", 76);
|
|
190
|
+
i0.ɵɵconditionalCreate(3, MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Conditional_3_Template, 1, 0, "i", 46)(4, MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Conditional_4_Template, 1, 0, "i", 50)(5, MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Conditional_5_Template, 1, 0, "i", 48);
|
|
174
191
|
i0.ɵɵtext(6);
|
|
175
192
|
i0.ɵɵelementEnd();
|
|
176
|
-
i0.ɵɵelementStart(7, "div",
|
|
193
|
+
i0.ɵɵelementStart(7, "div", 77)(8, "span", 78);
|
|
177
194
|
i0.ɵɵtext(9);
|
|
178
195
|
i0.ɵɵelementEnd();
|
|
179
|
-
i0.ɵɵelementStart(10, "span",
|
|
196
|
+
i0.ɵɵelementStart(10, "span", 79);
|
|
180
197
|
i0.ɵɵelement(11, "i", 14);
|
|
181
198
|
i0.ɵɵtext(12);
|
|
182
199
|
i0.ɵɵelementEnd()();
|
|
183
|
-
i0.ɵɵelementStart(13, "div",
|
|
184
|
-
i0.ɵɵconditionalCreate(14,
|
|
185
|
-
i0.ɵɵelementStart(15, "button",
|
|
186
|
-
i0.ɵɵlistener("click", function
|
|
187
|
-
i0.ɵɵelement(16, "i",
|
|
200
|
+
i0.ɵɵelementStart(13, "div", 80);
|
|
201
|
+
i0.ɵɵconditionalCreate(14, MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Conditional_14_Template, 2, 4, "button", 81);
|
|
202
|
+
i0.ɵɵelementStart(15, "button", 82);
|
|
203
|
+
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Template_button_click_15_listener() { const p_r11 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.copyParamValue(p_r11)); });
|
|
204
|
+
i0.ɵɵelement(16, "i", 69);
|
|
188
205
|
i0.ɵɵelementEnd()()();
|
|
189
|
-
i0.ɵɵelementStart(17, "div",
|
|
206
|
+
i0.ɵɵelementStart(17, "div", 83);
|
|
190
207
|
i0.ɵɵtext(18);
|
|
191
208
|
i0.ɵɵelementEnd();
|
|
192
|
-
i0.ɵɵconditionalCreate(19,
|
|
209
|
+
i0.ɵɵconditionalCreate(19, MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Conditional_19_Template, 2, 5, "div", 84);
|
|
193
210
|
i0.ɵɵelementEnd();
|
|
194
211
|
} if (rf & 2) {
|
|
195
|
-
const
|
|
212
|
+
const p_r11 = ctx.$implicit;
|
|
196
213
|
const ctx_r0 = i0.ɵɵnextContext(4);
|
|
197
|
-
i0.ɵɵattribute("data-type",
|
|
214
|
+
i0.ɵɵattribute("data-type", p_r11.Type);
|
|
198
215
|
i0.ɵɵadvance(2);
|
|
199
|
-
i0.ɵɵattribute("data-type",
|
|
216
|
+
i0.ɵɵattribute("data-type", p_r11.Type);
|
|
200
217
|
i0.ɵɵadvance();
|
|
201
|
-
i0.ɵɵconditional(
|
|
218
|
+
i0.ɵɵconditional(p_r11.Type === "Input" ? 3 : p_r11.Type === "Output" ? 4 : 5);
|
|
202
219
|
i0.ɵɵadvance(3);
|
|
203
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r0.getTypeLabel(
|
|
220
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.getTypeLabel(p_r11.Type), " ");
|
|
204
221
|
i0.ɵɵadvance(3);
|
|
205
|
-
i0.ɵɵtextInterpolate(
|
|
222
|
+
i0.ɵɵtextInterpolate(p_r11.Name);
|
|
206
223
|
i0.ɵɵadvance();
|
|
207
|
-
i0.ɵɵattribute("data-kind",
|
|
224
|
+
i0.ɵɵattribute("data-kind", p_r11.ValueKind);
|
|
208
225
|
i0.ɵɵadvance();
|
|
209
|
-
i0.ɵɵproperty("ngClass", ctx_r0.getValueKindIcon(
|
|
226
|
+
i0.ɵɵproperty("ngClass", ctx_r0.getValueKindIcon(p_r11.ValueKind));
|
|
210
227
|
i0.ɵɵadvance();
|
|
211
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
228
|
+
i0.ɵɵtextInterpolate1(" ", p_r11.ValueKind, " ");
|
|
212
229
|
i0.ɵɵadvance(2);
|
|
213
|
-
i0.ɵɵconditional(
|
|
230
|
+
i0.ɵɵconditional(p_r11.IsExpandable ? 14 : -1);
|
|
214
231
|
i0.ɵɵadvance(3);
|
|
215
|
-
i0.ɵɵattribute("data-kind",
|
|
232
|
+
i0.ɵɵattribute("data-kind", p_r11.ValueKind);
|
|
216
233
|
i0.ɵɵadvance();
|
|
217
|
-
i0.ɵɵtextInterpolate(
|
|
234
|
+
i0.ɵɵtextInterpolate(p_r11.Preview);
|
|
218
235
|
i0.ɵɵadvance();
|
|
219
|
-
i0.ɵɵconditional(
|
|
236
|
+
i0.ɵɵconditional(p_r11.IsExpandable && p_r11.Expanded ? 19 : -1);
|
|
220
237
|
} }
|
|
221
|
-
function
|
|
222
|
-
i0.ɵɵelementStart(0, "ul",
|
|
223
|
-
i0.ɵɵrepeaterCreate(1,
|
|
238
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
239
|
+
i0.ɵɵelementStart(0, "ul", 72);
|
|
240
|
+
i0.ɵɵrepeaterCreate(1, MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_For_2_Template, 20, 12, "li", 74, i0.ɵɵcomponentInstance().trackParam, true);
|
|
224
241
|
i0.ɵɵelementEnd();
|
|
225
242
|
} if (rf & 2) {
|
|
226
243
|
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
227
244
|
i0.ɵɵadvance();
|
|
228
245
|
i0.ɵɵrepeater(ctx_r0.filteredParameters);
|
|
229
246
|
} }
|
|
230
|
-
function
|
|
231
|
-
i0.ɵɵconditionalCreate(0,
|
|
247
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Template(rf, ctx) { if (rf & 1) {
|
|
248
|
+
i0.ɵɵconditionalCreate(0, MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_0_Template, 1, 0, "mj-empty-state", 71)(1, MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Conditional_1_Template, 3, 0, "ul", 72);
|
|
232
249
|
} if (rf & 2) {
|
|
233
250
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
234
251
|
i0.ɵɵconditional(ctx_r0.filteredParameters.length === 0 ? 0 : 1);
|
|
235
252
|
} }
|
|
236
|
-
function
|
|
237
|
-
const
|
|
238
|
-
i0.ɵɵelementStart(0, "mj-accordion-panel",
|
|
239
|
-
i0.ɵɵtemplate(1,
|
|
240
|
-
i0.ɵɵelementStart(2, "div",
|
|
241
|
-
i0.ɵɵlistener("click", function
|
|
253
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_71_Template(rf, ctx) { if (rf & 1) {
|
|
254
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
255
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 31);
|
|
256
|
+
i0.ɵɵtemplate(1, MJActionExecutionLogFormComponentExtended_Conditional_71_ng_template_1_Template, 4, 1, "ng-template", 26);
|
|
257
|
+
i0.ɵɵelementStart(2, "div", 40)(3, "div", 41)(4, "div", 42)(5, "button", 43);
|
|
258
|
+
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_71_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setTypeFilter("All")); });
|
|
242
259
|
i0.ɵɵtext(6, " All ");
|
|
243
|
-
i0.ɵɵelementStart(7, "span",
|
|
260
|
+
i0.ɵɵelementStart(7, "span", 44);
|
|
244
261
|
i0.ɵɵtext(8);
|
|
245
262
|
i0.ɵɵelementEnd()();
|
|
246
|
-
i0.ɵɵelementStart(9, "button",
|
|
247
|
-
i0.ɵɵlistener("click", function
|
|
248
|
-
i0.ɵɵelement(10, "i",
|
|
263
|
+
i0.ɵɵelementStart(9, "button", 45);
|
|
264
|
+
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_71_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setTypeFilter("Input")); });
|
|
265
|
+
i0.ɵɵelement(10, "i", 46);
|
|
249
266
|
i0.ɵɵtext(11, " Input ");
|
|
250
|
-
i0.ɵɵelementStart(12, "span",
|
|
267
|
+
i0.ɵɵelementStart(12, "span", 44);
|
|
251
268
|
i0.ɵɵtext(13);
|
|
252
269
|
i0.ɵɵelementEnd()();
|
|
253
|
-
i0.ɵɵelementStart(14, "button",
|
|
254
|
-
i0.ɵɵlistener("click", function
|
|
255
|
-
i0.ɵɵelement(15, "i",
|
|
270
|
+
i0.ɵɵelementStart(14, "button", 47);
|
|
271
|
+
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_71_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setTypeFilter("Both")); });
|
|
272
|
+
i0.ɵɵelement(15, "i", 48);
|
|
256
273
|
i0.ɵɵtext(16, " In/Out ");
|
|
257
|
-
i0.ɵɵelementStart(17, "span",
|
|
274
|
+
i0.ɵɵelementStart(17, "span", 44);
|
|
258
275
|
i0.ɵɵtext(18);
|
|
259
276
|
i0.ɵɵelementEnd()();
|
|
260
|
-
i0.ɵɵelementStart(19, "button",
|
|
261
|
-
i0.ɵɵlistener("click", function
|
|
262
|
-
i0.ɵɵelement(20, "i",
|
|
277
|
+
i0.ɵɵelementStart(19, "button", 49);
|
|
278
|
+
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_71_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setTypeFilter("Output")); });
|
|
279
|
+
i0.ɵɵelement(20, "i", 50);
|
|
263
280
|
i0.ɵɵtext(21, " Output ");
|
|
264
|
-
i0.ɵɵelementStart(22, "span",
|
|
281
|
+
i0.ɵɵelementStart(22, "span", 44);
|
|
265
282
|
i0.ɵɵtext(23);
|
|
266
283
|
i0.ɵɵelementEnd()()();
|
|
267
|
-
i0.ɵɵelementStart(24, "div",
|
|
268
|
-
i0.ɵɵelement(26, "i",
|
|
269
|
-
i0.ɵɵelementStart(27, "input",
|
|
270
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
284
|
+
i0.ɵɵelementStart(24, "div", 51)(25, "div", 52);
|
|
285
|
+
i0.ɵɵelement(26, "i", 53);
|
|
286
|
+
i0.ɵɵelementStart(27, "input", 54);
|
|
287
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJActionExecutionLogFormComponentExtended_Conditional_71_Template_input_ngModelChange_27_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.searchText, $event) || (ctx_r0.searchText = $event); return i0.ɵɵresetView($event); });
|
|
271
288
|
i0.ɵɵelementEnd();
|
|
272
|
-
i0.ɵɵconditionalCreate(28,
|
|
289
|
+
i0.ɵɵconditionalCreate(28, MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_28_Template, 2, 0, "button", 55);
|
|
273
290
|
i0.ɵɵelementEnd();
|
|
274
|
-
i0.ɵɵelementStart(29, "div",
|
|
275
|
-
i0.ɵɵlistener("click", function
|
|
291
|
+
i0.ɵɵelementStart(29, "div", 56)(30, "button", 57);
|
|
292
|
+
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_71_Template_button_click_30_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.toggleSort("type")); });
|
|
276
293
|
i0.ɵɵtext(31, " Type ");
|
|
277
|
-
i0.ɵɵconditionalCreate(32,
|
|
294
|
+
i0.ɵɵconditionalCreate(32, MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_32_Template, 1, 1, "i", 14);
|
|
278
295
|
i0.ɵɵelementEnd();
|
|
279
|
-
i0.ɵɵelementStart(33, "button",
|
|
280
|
-
i0.ɵɵlistener("click", function
|
|
296
|
+
i0.ɵɵelementStart(33, "button", 58);
|
|
297
|
+
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_71_Template_button_click_33_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.toggleSort("name")); });
|
|
281
298
|
i0.ɵɵtext(34, " Name ");
|
|
282
|
-
i0.ɵɵconditionalCreate(35,
|
|
299
|
+
i0.ɵɵconditionalCreate(35, MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_35_Template, 1, 1, "i", 14);
|
|
283
300
|
i0.ɵɵelementEnd()();
|
|
284
|
-
i0.ɵɵelementStart(36, "button",
|
|
285
|
-
i0.ɵɵlistener("click", function
|
|
286
|
-
i0.ɵɵelement(37, "i",
|
|
301
|
+
i0.ɵɵelementStart(36, "button", 59);
|
|
302
|
+
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_71_Template_button_click_36_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.toggleRawJson()); });
|
|
303
|
+
i0.ɵɵelement(37, "i", 60);
|
|
287
304
|
i0.ɵɵtext(38, " Raw ");
|
|
288
305
|
i0.ɵɵelementEnd()()();
|
|
289
|
-
i0.ɵɵconditionalCreate(39,
|
|
306
|
+
i0.ɵɵconditionalCreate(39, MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_39_Template, 7, 4, "div", 61)(40, MJActionExecutionLogFormComponentExtended_Conditional_71_Conditional_40_Template, 2, 1);
|
|
290
307
|
i0.ɵɵelementEnd()();
|
|
291
308
|
} if (rf & 2) {
|
|
292
309
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
293
|
-
i0.ɵɵproperty("Expanded", true);
|
|
310
|
+
i0.ɵɵproperty("SectionCount", ctx_r0.paramCounts.All)("Expanded", true);
|
|
294
311
|
i0.ɵɵadvance(5);
|
|
295
312
|
i0.ɵɵclassProp("active", ctx_r0.typeFilter === "All");
|
|
296
313
|
i0.ɵɵadvance(3);
|
|
@@ -327,23 +344,23 @@ function MJActionExecutionLogFormComponentExtended_Conditional_69_Template(rf, c
|
|
|
327
344
|
i0.ɵɵadvance(3);
|
|
328
345
|
i0.ɵɵconditional(ctx_r0.showRawJson ? 39 : 40);
|
|
329
346
|
} }
|
|
330
|
-
function
|
|
331
|
-
i0.ɵɵelement(0, "i",
|
|
347
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_72_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
348
|
+
i0.ɵɵelement(0, "i", 89);
|
|
332
349
|
i0.ɵɵtext(1, " Output Message ");
|
|
333
350
|
} }
|
|
334
|
-
function
|
|
335
|
-
const
|
|
336
|
-
i0.ɵɵelementStart(0, "mj-accordion-panel",
|
|
337
|
-
i0.ɵɵtemplate(1,
|
|
338
|
-
i0.ɵɵelementStart(2, "div",
|
|
351
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_72_Template(rf, ctx) { if (rf & 1) {
|
|
352
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
353
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 32);
|
|
354
|
+
i0.ɵɵtemplate(1, MJActionExecutionLogFormComponentExtended_Conditional_72_ng_template_1_Template, 2, 0, "ng-template", 26);
|
|
355
|
+
i0.ɵɵelementStart(2, "div", 87)(3, "div", 66)(4, "span", 67);
|
|
339
356
|
i0.ɵɵtext(5, "JSON");
|
|
340
357
|
i0.ɵɵelementEnd();
|
|
341
|
-
i0.ɵɵelementStart(6, "button",
|
|
342
|
-
i0.ɵɵlistener("click", function
|
|
343
|
-
i0.ɵɵelement(7, "i",
|
|
358
|
+
i0.ɵɵelementStart(6, "button", 68);
|
|
359
|
+
i0.ɵɵlistener("click", function MJActionExecutionLogFormComponentExtended_Conditional_72_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r13); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.copyToClipboard(ctx_r0.formattedMessage)); });
|
|
360
|
+
i0.ɵɵelement(7, "i", 69);
|
|
344
361
|
i0.ɵɵelementEnd()();
|
|
345
|
-
i0.ɵɵelementStart(8, "mj-code-editor",
|
|
346
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
362
|
+
i0.ɵɵelementStart(8, "mj-code-editor", 88);
|
|
363
|
+
i0.ɵɵtwoWayListener("ngModelChange", function MJActionExecutionLogFormComponentExtended_Conditional_72_Template_mj_code_editor_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.formattedMessage, $event) || (ctx_r0.formattedMessage = $event); return i0.ɵɵresetView($event); });
|
|
347
364
|
i0.ɵɵelementEnd()()();
|
|
348
365
|
} if (rf & 2) {
|
|
349
366
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -352,14 +369,14 @@ function MJActionExecutionLogFormComponentExtended_Conditional_70_Template(rf, c
|
|
|
352
369
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r0.formattedMessage);
|
|
353
370
|
i0.ɵɵproperty("readonly", true)("language", "json")("lineWrapping", true);
|
|
354
371
|
} }
|
|
355
|
-
function
|
|
356
|
-
i0.ɵɵelement(0, "i",
|
|
372
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_73_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
373
|
+
i0.ɵɵelement(0, "i", 91);
|
|
357
374
|
i0.ɵɵtext(1, " Execution Data ");
|
|
358
375
|
} }
|
|
359
|
-
function
|
|
360
|
-
i0.ɵɵelementStart(0, "mj-accordion-panel",
|
|
361
|
-
i0.ɵɵtemplate(1,
|
|
362
|
-
i0.ɵɵelement(2, "mj-empty-state",
|
|
376
|
+
function MJActionExecutionLogFormComponentExtended_Conditional_73_Template(rf, ctx) { if (rf & 1) {
|
|
377
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 33);
|
|
378
|
+
i0.ɵɵtemplate(1, MJActionExecutionLogFormComponentExtended_Conditional_73_ng_template_1_Template, 2, 0, "ng-template", 26);
|
|
379
|
+
i0.ɵɵelement(2, "mj-empty-state", 90);
|
|
363
380
|
i0.ɵɵelementEnd();
|
|
364
381
|
} if (rf & 2) {
|
|
365
382
|
i0.ɵɵproperty("Expanded", true);
|
|
@@ -367,6 +384,10 @@ function MJActionExecutionLogFormComponentExtended_Conditional_71_Template(rf, c
|
|
|
367
384
|
let MJActionExecutionLogFormComponentExtended = class MJActionExecutionLogFormComponentExtended extends MJActionExecutionLogFormComponent {
|
|
368
385
|
constructor() {
|
|
369
386
|
super(...arguments);
|
|
387
|
+
/** Phone width shows the stacked accordions as sections behind one picker (design call 7A). */
|
|
388
|
+
this.Phone = new PhoneSectionsState(() => this.cdr.markForCheck());
|
|
389
|
+
/** Phone hero (6A): whether the summary line is expanded to show the rest of the hero. */
|
|
390
|
+
this.HeroDetailsOpen = false;
|
|
370
391
|
// Related entities
|
|
371
392
|
this.Action = null;
|
|
372
393
|
this.User = null;
|
|
@@ -387,6 +408,23 @@ let MJActionExecutionLogFormComponentExtended = class MJActionExecutionLogFormCo
|
|
|
387
408
|
this.SortDir = 'asc';
|
|
388
409
|
this.ShowRawJson = false;
|
|
389
410
|
}
|
|
411
|
+
ngOnDestroy() {
|
|
412
|
+
super.ngOnDestroy();
|
|
413
|
+
this.Phone.Stop();
|
|
414
|
+
}
|
|
415
|
+
/** Toggles the phone hero between its compact identity row and the full hero. */
|
|
416
|
+
ToggleHeroDetails() {
|
|
417
|
+
this.HeroDetailsOpen = !this.HeroDetailsOpen;
|
|
418
|
+
this.cdr.markForCheck();
|
|
419
|
+
}
|
|
420
|
+
/** The phone hero's one-line summary of what the compact hero leaves out. */
|
|
421
|
+
get HeroSummary() {
|
|
422
|
+
return JoinHeroSummary([
|
|
423
|
+
this.Action?.Name,
|
|
424
|
+
this.formatDuration(this.getExecutionDuration()),
|
|
425
|
+
this.User?.Name,
|
|
426
|
+
]);
|
|
427
|
+
}
|
|
390
428
|
/** @deprecated Use {@link Action}. */
|
|
391
429
|
get action() {
|
|
392
430
|
return this.Action;
|
|
@@ -898,7 +936,7 @@ let MJActionExecutionLogFormComponentExtended = class MJActionExecutionLogFormCo
|
|
|
898
936
|
return this.CopyToClipboard(text);
|
|
899
937
|
}
|
|
900
938
|
static { this.ɵfac = /*@__PURE__*/ (() => { let ɵMJActionExecutionLogFormComponentExtended_BaseFactory; return function MJActionExecutionLogFormComponentExtended_Factory(__ngFactoryType__) { return (ɵMJActionExecutionLogFormComponentExtended_BaseFactory || (ɵMJActionExecutionLogFormComponentExtended_BaseFactory = i0.ɵɵgetInheritedFactory(MJActionExecutionLogFormComponentExtended)))(__ngFactoryType__ || MJActionExecutionLogFormComponentExtended); }; })(); }
|
|
901
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJActionExecutionLogFormComponentExtended, selectors: [["mj-action-execution-log-form"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
939
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJActionExecutionLogFormComponentExtended, selectors: [["mj-action-execution-log-form"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 74, vars: 36, consts: [[1, "record-form-container", "action-execution-log-form", 2, "height", "100%", "display", "flex", "flex-direction", "column"], [1, "record-form", 2, "display", "flex", "flex-direction", "column", "height", "100%", "overflow", "hidden"], [1, "header", "phone-hero"], [1, "header-content"], [1, "header-left"], [1, "icon-wrapper"], [3, "ngClass"], [1, "fas", "fa-terminal"], [1, "header-info"], [1, "meta-info", "phone-hero-detail"], [1, "action-name"], [1, "log-id"], [1, "header-right"], [1, "status-badge"], [1, "fas", 3, "ngClass"], [1, "execution-time", "phone-hero-detail"], [1, "fas", "fa-clock"], [1, "header-stats", "phone-hero-detail", "phone-hero-stats"], [1, "stat"], [1, "label"], [1, "value"], ["type", "button", 1, "phone-hero-summary"], [1, "content-area"], [1, "accordion-container"], [3, "ActiveKeyChange", "Enabled", "ActiveKey"], ["SectionKey", "details", "SectionTitle", "Execution Details", "SectionIcon", "fas fa-info-circle", 3, "Expanded"], ["mjAccordionTitle", ""], [1, "details-grid"], [1, "detail-item"], [1, "monospace"], [1, "detail-value"], ["SectionKey", "parameters", "SectionTitle", "Parameters", "SectionIcon", "fas fa-sliders-h", 3, "SectionCount", "Expanded"], ["SectionKey", "message", "SectionTitle", "Output Message", "SectionIcon", "fas fa-comment-alt", 3, "Expanded"], ["SectionKey", "data", "SectionTitle", "Execution Data", "SectionIcon", "fas fa-database", 3, "Expanded"], [1, "btn-link", 3, "click"], [1, "fas", "fa-external-link-alt"], ["type", "button", 1, "phone-hero-summary", 3, "click"], [1, "phone-hero-summary-text"], ["aria-hidden", "true", 1, "fa-solid", "fa-chevron-down"], [1, "fas", "fa-info-circle"], [1, "params-panel"], [1, "params-toolbar"], [1, "filter-chips"], ["type", "button", 1, "chip", 3, "click"], [1, "chip-count"], ["type", "button", 1, "chip", "chip-input", 3, "click", "disabled"], [1, "fas", "fa-sign-in-alt"], ["type", "button", 1, "chip", "chip-both", 3, "click", "disabled"], [1, "fas", "fa-exchange-alt"], ["type", "button", 1, "chip", "chip-output", 3, "click", "disabled"], [1, "fas", "fa-sign-out-alt"], [1, "toolbar-right"], [1, "search-wrapper"], [1, "fas", "fa-search", "search-icon"], ["type", "text", "placeholder", "Search name or value\u2026", "name", "paramSearch", 1, "mj-input", "params-search", 3, "ngModelChange", "ngModel"], ["type", "button", "title", "Clear search", 1, "search-clear"], ["role", "group", "aria-label", "Sort parameters", 1, "sort-group"], ["type", "button", "title", "Sort by type", 1, "sort-btn", 3, "click"], ["type", "button", "title", "Sort by name", 1, "sort-btn", 3, "click"], ["type", "button", "title", "Toggle raw JSON view", 1, "raw-toggle", 3, "click"], [1, "fas", "fa-code"], [1, "json-viewer", "raw-json-viewer"], [1, "fas", "fa-sliders-h"], [1, "mj-accordion-badge", "mj-accordion-badge--right"], ["type", "button", "title", "Clear search", 1, "search-clear", 3, "click"], [1, "fas", "fa-times"], [1, "json-toolbar"], [1, "json-label"], ["title", "Copy JSON", 1, "btn-icon", 3, "click"], [1, "fas", "fa-copy"], ["name", "formattedParamsRaw", 2, "height", "360px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], ["Variant", "no-results", "Size", "compact", "Icon", "fa-solid fa-filter-circle-xmark", "Title", "No parameters match the current filter.", "ActionText", "Clear filters", "ActionIcon", "fa-solid fa-rotate-left", "ActionVariant", "flat"], [1, "params-list"], ["Variant", "no-results", "Size", "compact", "Icon", "fa-solid fa-filter-circle-xmark", "Title", "No parameters match the current filter.", "ActionText", "Clear filters", "ActionIcon", "fa-solid fa-rotate-left", "ActionVariant", "flat", 3, "Action"], [1, "param-row"], [1, "param-header"], [1, "type-badge"], [1, "param-name-wrap"], [1, "param-name"], [1, "value-kind-chip"], [1, "param-actions"], ["type", "button", 1, "btn-icon", "param-expand", 3, "is-expanded", "title"], ["type", "button", "title", "Copy value", 1, "btn-icon", 3, "click"], [1, "param-preview"], [1, "param-expanded"], ["type", "button", 1, "btn-icon", "param-expand", 3, "click", "title"], [2, "height", "240px", "width", "100%", 3, "ngModelChange", "ngModel", "name", "readonly", "language", "lineWrapping"], [1, "json-viewer"], ["name", "formattedMessage", 2, "height", "300px", "width", "100%", 3, "ngModelChange", "ngModel", "readonly", "language", "lineWrapping"], [1, "fas", "fa-comment-alt"], ["Size", "compact", "Icon", "fa-solid fa-inbox", "Title", "No execution data recorded"], [1, "fas", "fa-database"]], template: function MJActionExecutionLogFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
902
940
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div", 4)(5, "div", 5);
|
|
903
941
|
i0.ɵɵconditionalCreate(6, MJActionExecutionLogFormComponentExtended_Conditional_6_Template, 1, 1, "i", 6)(7, MJActionExecutionLogFormComponentExtended_Conditional_7_Template, 1, 0, "i", 7);
|
|
904
942
|
i0.ɵɵelementEnd();
|
|
@@ -928,53 +966,59 @@ let MJActionExecutionLogFormComponentExtended = class MJActionExecutionLogFormCo
|
|
|
928
966
|
i0.ɵɵconditionalCreate(29, MJActionExecutionLogFormComponentExtended_Conditional_29_Template, 6, 4, "div", 18);
|
|
929
967
|
i0.ɵɵconditionalCreate(30, MJActionExecutionLogFormComponentExtended_Conditional_30_Template, 7, 1, "div", 18);
|
|
930
968
|
i0.ɵɵconditionalCreate(31, MJActionExecutionLogFormComponentExtended_Conditional_31_Template, 7, 1, "div", 18);
|
|
931
|
-
i0.ɵɵelementEnd()();
|
|
932
|
-
i0.ɵɵelementStart(32, "div", 21)(33, "div", 22)(34, "mj-accordion-panel", 23);
|
|
933
|
-
i0.ɵɵtemplate(35, MJActionExecutionLogFormComponentExtended_ng_template_35_Template, 2, 0, "ng-template", 24);
|
|
934
|
-
i0.ɵɵelementStart(36, "div", 25)(37, "div", 26)(38, "label");
|
|
935
|
-
i0.ɵɵtext(39, "Execution ID");
|
|
936
969
|
i0.ɵɵelementEnd();
|
|
937
|
-
i0.ɵɵ
|
|
938
|
-
i0.ɵɵ
|
|
970
|
+
i0.ɵɵconditionalCreate(32, MJActionExecutionLogFormComponentExtended_Conditional_32_Template, 4, 2, "button", 21);
|
|
971
|
+
i0.ɵɵelementEnd();
|
|
972
|
+
i0.ɵɵelementStart(33, "div", 22)(34, "div", 23)(35, "mj-accordion-sections", 24);
|
|
973
|
+
i0.ɵɵlistener("ActiveKeyChange", function MJActionExecutionLogFormComponentExtended_Template_mj_accordion_sections_ActiveKeyChange_35_listener($event) { return ctx.Phone.Pick($event); });
|
|
974
|
+
i0.ɵɵelementStart(36, "mj-accordion-panel", 25);
|
|
975
|
+
i0.ɵɵtemplate(37, MJActionExecutionLogFormComponentExtended_ng_template_37_Template, 2, 0, "ng-template", 26);
|
|
976
|
+
i0.ɵɵelementStart(38, "div", 27)(39, "div", 28)(40, "label");
|
|
977
|
+
i0.ɵɵtext(41, "Execution ID");
|
|
978
|
+
i0.ɵɵelementEnd();
|
|
979
|
+
i0.ɵɵelementStart(42, "span", 29);
|
|
980
|
+
i0.ɵɵtext(43);
|
|
939
981
|
i0.ɵɵelementEnd()();
|
|
940
|
-
i0.ɵɵelementStart(
|
|
941
|
-
i0.ɵɵtext(
|
|
982
|
+
i0.ɵɵelementStart(44, "div", 28)(45, "label");
|
|
983
|
+
i0.ɵɵtext(46, "Action ID");
|
|
942
984
|
i0.ɵɵelementEnd();
|
|
943
|
-
i0.ɵɵelementStart(
|
|
944
|
-
i0.ɵɵtext(
|
|
985
|
+
i0.ɵɵelementStart(47, "span", 29);
|
|
986
|
+
i0.ɵɵtext(48);
|
|
945
987
|
i0.ɵɵelementEnd()();
|
|
946
|
-
i0.ɵɵelementStart(
|
|
947
|
-
i0.ɵɵtext(
|
|
988
|
+
i0.ɵɵelementStart(49, "div", 28)(50, "label");
|
|
989
|
+
i0.ɵɵtext(51, "User ID");
|
|
948
990
|
i0.ɵɵelementEnd();
|
|
949
|
-
i0.ɵɵelementStart(
|
|
950
|
-
i0.ɵɵtext(
|
|
991
|
+
i0.ɵɵelementStart(52, "span", 29);
|
|
992
|
+
i0.ɵɵtext(53);
|
|
951
993
|
i0.ɵɵelementEnd()();
|
|
952
|
-
i0.ɵɵelementStart(
|
|
953
|
-
i0.ɵɵtext(
|
|
994
|
+
i0.ɵɵelementStart(54, "div", 28)(55, "label");
|
|
995
|
+
i0.ɵɵtext(56, "Result Code");
|
|
954
996
|
i0.ɵɵelementEnd();
|
|
955
|
-
i0.ɵɵelementStart(
|
|
956
|
-
i0.ɵɵelement(
|
|
957
|
-
i0.ɵɵelementStart(
|
|
958
|
-
i0.ɵɵtext(
|
|
997
|
+
i0.ɵɵelementStart(57, "span", 30);
|
|
998
|
+
i0.ɵɵelement(58, "i", 14);
|
|
999
|
+
i0.ɵɵelementStart(59, "span");
|
|
1000
|
+
i0.ɵɵtext(60);
|
|
959
1001
|
i0.ɵɵelementEnd()()();
|
|
960
|
-
i0.ɵɵelementStart(
|
|
961
|
-
i0.ɵɵtext(
|
|
1002
|
+
i0.ɵɵelementStart(61, "div", 28)(62, "label");
|
|
1003
|
+
i0.ɵɵtext(63, "Duration");
|
|
962
1004
|
i0.ɵɵelementEnd();
|
|
963
|
-
i0.ɵɵelementStart(
|
|
964
|
-
i0.ɵɵtext(
|
|
1005
|
+
i0.ɵɵelementStart(64, "span");
|
|
1006
|
+
i0.ɵɵtext(65);
|
|
965
1007
|
i0.ɵɵelementEnd()();
|
|
966
|
-
i0.ɵɵelementStart(
|
|
967
|
-
i0.ɵɵtext(
|
|
1008
|
+
i0.ɵɵelementStart(66, "div", 28)(67, "label");
|
|
1009
|
+
i0.ɵɵtext(68, "Retention Period");
|
|
968
1010
|
i0.ɵɵelementEnd();
|
|
969
|
-
i0.ɵɵelementStart(
|
|
970
|
-
i0.ɵɵtext(
|
|
971
|
-
i0.ɵɵelementEnd()()()();
|
|
972
|
-
i0.ɵɵconditionalCreate(69, MJActionExecutionLogFormComponentExtended_Conditional_69_Template, 41, 27, "mj-accordion-panel", 23);
|
|
973
|
-
i0.ɵɵconditionalCreate(70, MJActionExecutionLogFormComponentExtended_Conditional_70_Template, 9, 5, "mj-accordion-panel", 23);
|
|
974
|
-
i0.ɵɵconditionalCreate(71, MJActionExecutionLogFormComponentExtended_Conditional_71_Template, 3, 1, "mj-accordion-panel", 23);
|
|
1011
|
+
i0.ɵɵelementStart(69, "span");
|
|
1012
|
+
i0.ɵɵtext(70);
|
|
975
1013
|
i0.ɵɵelementEnd()()()();
|
|
1014
|
+
i0.ɵɵconditionalCreate(71, MJActionExecutionLogFormComponentExtended_Conditional_71_Template, 41, 28, "mj-accordion-panel", 31);
|
|
1015
|
+
i0.ɵɵconditionalCreate(72, MJActionExecutionLogFormComponentExtended_Conditional_72_Template, 9, 5, "mj-accordion-panel", 32);
|
|
1016
|
+
i0.ɵɵconditionalCreate(73, MJActionExecutionLogFormComponentExtended_Conditional_73_Template, 3, 1, "mj-accordion-panel", 33);
|
|
1017
|
+
i0.ɵɵelementEnd()()()()();
|
|
976
1018
|
} if (rf & 2) {
|
|
977
|
-
i0.ɵɵadvance(
|
|
1019
|
+
i0.ɵɵadvance(2);
|
|
1020
|
+
i0.ɵɵclassProp("hero-view", !ctx.EditMode)("hero-compact", !ctx.EditMode && !ctx.HeroDetailsOpen);
|
|
1021
|
+
i0.ɵɵadvance(4);
|
|
978
1022
|
i0.ɵɵconditional(ctx.action && ctx.action.IconClass ? 6 : 7);
|
|
979
1023
|
i0.ɵɵadvance(6);
|
|
980
1024
|
i0.ɵɵconditional(ctx.action ? 12 : -1);
|
|
@@ -989,14 +1033,18 @@ let MJActionExecutionLogFormComponentExtended = class MJActionExecutionLogFormCo
|
|
|
989
1033
|
i0.ɵɵadvance(3);
|
|
990
1034
|
i0.ɵɵtextInterpolate1(" ", ctx.formatDuration(ctx.getExecutionDuration()), " ");
|
|
991
1035
|
i0.ɵɵadvance(6);
|
|
992
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(28,
|
|
1036
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(28, 33, ctx.record.StartedAt, "short"));
|
|
993
1037
|
i0.ɵɵadvance(2);
|
|
994
1038
|
i0.ɵɵconditional(ctx.record.EndedAt ? 29 : -1);
|
|
995
1039
|
i0.ɵɵadvance();
|
|
996
1040
|
i0.ɵɵconditional(ctx.action ? 30 : -1);
|
|
997
1041
|
i0.ɵɵadvance();
|
|
998
1042
|
i0.ɵɵconditional(ctx.user ? 31 : -1);
|
|
1043
|
+
i0.ɵɵadvance();
|
|
1044
|
+
i0.ɵɵconditional(!ctx.EditMode && ctx.HeroSummary ? 32 : -1);
|
|
999
1045
|
i0.ɵɵadvance(3);
|
|
1046
|
+
i0.ɵɵproperty("Enabled", ctx.Phone.IsPhone)("ActiveKey", ctx.Phone.Section);
|
|
1047
|
+
i0.ɵɵadvance();
|
|
1000
1048
|
i0.ɵɵproperty("Expanded", true);
|
|
1001
1049
|
i0.ɵɵadvance(7);
|
|
1002
1050
|
i0.ɵɵtextInterpolate(ctx.record.ID);
|
|
@@ -1016,12 +1064,12 @@ let MJActionExecutionLogFormComponentExtended = class MJActionExecutionLogFormCo
|
|
|
1016
1064
|
i0.ɵɵadvance(5);
|
|
1017
1065
|
i0.ɵɵtextInterpolate(ctx.record.RetentionPeriod ? ctx.record.RetentionPeriod + " days" : "Indefinite");
|
|
1018
1066
|
i0.ɵɵadvance();
|
|
1019
|
-
i0.ɵɵconditional(ctx.hasAnyParameters ?
|
|
1067
|
+
i0.ɵɵconditional(ctx.hasAnyParameters ? 71 : -1);
|
|
1020
1068
|
i0.ɵɵadvance();
|
|
1021
|
-
i0.ɵɵconditional(ctx.record.Message ?
|
|
1069
|
+
i0.ɵɵconditional(ctx.record.Message ? 72 : -1);
|
|
1022
1070
|
i0.ɵɵadvance();
|
|
1023
|
-
i0.ɵɵconditional(!ctx.record.Params && !ctx.record.Message && !ctx.hasAnyParameters ?
|
|
1024
|
-
} }, dependencies: [i1.NgClass, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.MJEmptyStateComponent, i3.MJAccordionPanelComponent, i3.MJAccordionTitleDirective, i4.CodeEditorComponent, i1.DatePipe], styles: ["\n[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n.action-execution-log-form[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--mj-bg-page);\n color: var(--mj-text-primary);\n}\n\n\n.header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 20px;\n box-shadow: var(--mj-shadow-sm);\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: var(--mj-status-info);\n border-radius: var(--mj-radius-lg);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n font-size: var(--mj-text-xl);\n box-shadow: var(--mj-shadow-sm);\n}\n\n.header-info[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-2xl);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.meta-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n}\n\n.action-name[_ngcontent-%COMP%] {\n font-weight: var(--mj-font-medium);\n color: var(--mj-text-secondary);\n}\n\n.log-id[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: var(--mj-text-xs);\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: var(--mj-radius-full);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: var(--mj-text-inverse);\n}\n\n.execution-time[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n}\n\n.header-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid var(--mj-border-default);\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: var(--mj-text-xs);\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n color: var(--mj-text-secondary);\n}\n\n.record-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n\n.content-area[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 20px;\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: var(--mj-text-xs);\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n font-weight: var(--mj-font-semibold);\n}\n\n.detail-value[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-primary);\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: var(--mj-text-sm);\n padding: 4px;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n.loading[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: var(--mj-text-xs);\n}\n\n\n.json-viewer[_ngcontent-%COMP%] {\n padding: 20px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n margin-bottom: 20px;\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: var(--mj-status-info);\n color: var(--mj-text-inverse);\n padding: 4px 12px;\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n font-weight: var(--mj-font-semibold);\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 var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-sm);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all var(--mj-transition-base);\n color: var(--mj-text-muted);\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\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: var(--mj-status-success);\n color: var(--mj-text-inverse);\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: var(--mj-status-error);\n color: var(--mj-text-inverse);\n}\n\n.status-badge[data-status=\"warning\"][_ngcontent-%COMP%], \n.status-badge[data-status=\"pending\"][_ngcontent-%COMP%] {\n background-color: var(--mj-status-warning);\n color: var(--mj-color-warning-800);\n}\n\n.status-badge[data-status=\"info\"][_ngcontent-%COMP%], \n.status-badge[data-status=\"running\"][_ngcontent-%COMP%] {\n background-color: var(--mj-status-info);\n color: var(--mj-text-inverse);\n}\n\n.status-badge[_ngcontent-%COMP%] {\n background-color: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.monospace[_ngcontent-%COMP%] {\n font-family: 'Courier New', Courier, monospace;\n font-size: var(--mj-text-xs);\n}\n\n\n\n\n\n.params-panel[_ngcontent-%COMP%] {\n padding: 18px 20px 22px;\n}\n\n\n.params-toolbar[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 14px;\n align-items: center;\n justify-content: space-between;\n padding: 12px 14px;\n margin-bottom: 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle);\n border-radius: var(--mj-radius-lg);\n}\n\n.filter-chips[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 6px 13px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n cursor: pointer;\n transition: all var(--mj-transition-base);\n}\n.chip[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\n}\n.chip[_ngcontent-%COMP%]:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n.chip[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 18px;\n padding: 0 6px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n font-weight: var(--mj-font-semibold);\n}\n.chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.chip.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 22%, transparent);\n}\n.chip.active[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-text-inverse) 25%, transparent);\n color: var(--mj-text-inverse);\n}\n\n\n.chip.chip-input.active[_ngcontent-%COMP%] {\n background: var(--mj-status-info);\n border-color: var(--mj-status-info);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-status-info) 22%, transparent);\n}\n.chip.chip-output.active[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-status-success) 22%, transparent);\n}\n.chip.chip-both.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 75%, var(--mj-status-warning) 25%);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 75%, var(--mj-status-warning) 25%);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 22%, transparent);\n}\n\n.toolbar-right[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.search-wrapper[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n}\n.search-icon[_ngcontent-%COMP%] {\n position: absolute;\n left: 10px;\n color: var(--mj-text-muted);\n font-size: 12px;\n pointer-events: none;\n}\n.params-search[_ngcontent-%COMP%] {\n min-width: 220px;\n padding: 7px 30px 7px 30px;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n}\n.search-clear[_ngcontent-%COMP%] {\n position: absolute;\n right: 6px;\n width: 22px;\n height: 22px;\n border: none;\n background: transparent;\n color: var(--mj-text-muted);\n border-radius: var(--mj-radius-full);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n.search-clear[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface-hover);\n}\n\n.sort-group[_ngcontent-%COMP%] {\n display: inline-flex;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n background: var(--mj-bg-surface);\n}\n.sort-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 7px 12px;\n background: transparent;\n border: none;\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n cursor: pointer;\n transition: background var(--mj-transition-base);\n}\n.sort-btn[_ngcontent-%COMP%] + .sort-btn[_ngcontent-%COMP%] {\n border-left: 1px solid var(--mj-border-default);\n}\n.sort-btn[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n.sort-btn.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n.sort-btn.active[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n\n.raw-toggle[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 7px 12px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n cursor: pointer;\n transition: all var(--mj-transition-base);\n}\n.raw-toggle[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n.raw-toggle.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 35%, var(--mj-border-default));\n}\n\n\n.params-list[_ngcontent-%COMP%] {\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.param-row[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-left: 3px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 12px 14px;\n transition: border-color var(--mj-transition-base), box-shadow var(--mj-transition-base);\n}\n.param-row[_ngcontent-%COMP%]:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 35%, var(--mj-border-default));\n box-shadow: 0 1px 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n.param-row[data-type=\"Input\"][_ngcontent-%COMP%] { border-left-color: var(--mj-status-info); }\n.param-row[data-type=\"Output\"][_ngcontent-%COMP%] { border-left-color: var(--mj-status-success); }\n.param-row[data-type=\"Both\"][_ngcontent-%COMP%] { border-left-color: color-mix(in srgb, var(--mj-brand-primary) 75%, var(--mj-status-warning) 25%); }\n\n.param-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.type-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 3px 10px;\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n font-weight: var(--mj-font-semibold);\n text-transform: uppercase;\n letter-spacing: 0.4px;\n flex-shrink: 0;\n}\n.type-badge[data-type=\"Input\"][_ngcontent-%COMP%] {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n border: 1px solid color-mix(in srgb, var(--mj-status-info) 30%, transparent);\n}\n.type-badge[data-type=\"Output\"][_ngcontent-%COMP%] {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n border: 1px solid color-mix(in srgb, var(--mj-status-success) 30%, transparent);\n}\n.type-badge[data-type=\"Both\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n.param-name-wrap[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n}\n.param-name[_ngcontent-%COMP%] {\n font-family: 'SF Mono', 'Fira Code', Menlo, Consolas, monospace;\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.value-kind-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: var(--mj-radius-full);\n font-size: 10px;\n font-weight: var(--mj-font-medium);\n text-transform: lowercase;\n letter-spacing: 0.3px;\n flex-shrink: 0;\n}\n.value-kind-chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 9px; }\n.value-kind-chip[data-kind=\"number\"][_ngcontent-%COMP%] { color: var(--mj-status-info-text); background: var(--mj-status-info-bg); }\n.value-kind-chip[data-kind=\"boolean\"][_ngcontent-%COMP%] { color: var(--mj-status-warning-text); background: var(--mj-status-warning-bg); }\n.value-kind-chip[data-kind=\"array\"][_ngcontent-%COMP%] { color: var(--mj-brand-primary); background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface)); }\n.value-kind-chip[data-kind=\"object\"][_ngcontent-%COMP%] { color: var(--mj-brand-primary); background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface)); }\n.value-kind-chip[data-kind=\"null\"][_ngcontent-%COMP%], \n.value-kind-chip[data-kind=\"undefined\"][_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n}\n\n.param-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n flex-shrink: 0;\n}\n.param-actions[_ngcontent-%COMP%] .btn-icon[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n}\n.param-expand.is-expanded[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 35%, var(--mj-border-default));\n}\n\n.param-preview[_ngcontent-%COMP%] {\n margin-top: 8px;\n padding-left: calc(64px + 12px); \n font-family: 'SF Mono', 'Fira Code', Menlo, Consolas, monospace;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n word-break: break-word;\n line-height: 1.55;\n}\n.param-preview[data-kind=\"string\"][_ngcontent-%COMP%] { color: var(--mj-status-success-text); }\n.param-preview[data-kind=\"number\"][_ngcontent-%COMP%] { color: var(--mj-status-info-text); }\n.param-preview[data-kind=\"boolean\"][_ngcontent-%COMP%] { color: var(--mj-status-warning-text); }\n.param-preview[data-kind=\"null\"][_ngcontent-%COMP%], \n.param-preview[data-kind=\"undefined\"][_ngcontent-%COMP%] { color: var(--mj-text-disabled); font-style: italic; }\n.param-preview[data-kind=\"array\"][_ngcontent-%COMP%], \n.param-preview[data-kind=\"object\"][_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n\n.param-expanded[_ngcontent-%COMP%] {\n margin-top: 10px;\n margin-left: calc(64px + 12px);\n border: 1px solid var(--mj-border-subtle);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n background: var(--mj-bg-surface-sunken);\n}\n\n.raw-json-viewer[_ngcontent-%COMP%] { margin-top: 4px; }\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\n .params-toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n .toolbar-right[_ngcontent-%COMP%] {\n justify-content: space-between;\n }\n .params-search[_ngcontent-%COMP%] { min-width: 0; width: 100%; }\n .search-wrapper[_ngcontent-%COMP%] { flex: 1; }\n\n .param-preview[_ngcontent-%COMP%], \n .param-expanded[_ngcontent-%COMP%] {\n padding-left: 0;\n margin-left: 0;\n }\n}"] }); }
|
|
1071
|
+
i0.ɵɵconditional(!ctx.record.Params && !ctx.record.Message && !ctx.hasAnyParameters ? 73 : -1);
|
|
1072
|
+
} }, dependencies: [i1.NgClass, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.MJEmptyStateComponent, i3.MJAccordionSectionsComponent, i3.MJAccordionPanelComponent, i3.MJAccordionTitleDirective, i4.CodeEditorComponent, i1.DatePipe], styles: ["\n[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n.action-execution-log-form[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--mj-bg-page);\n color: var(--mj-text-primary);\n}\n\n\n.header[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 20px;\n box-shadow: var(--mj-shadow-sm);\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: var(--mj-status-info);\n border-radius: var(--mj-radius-lg);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n font-size: var(--mj-text-xl);\n box-shadow: var(--mj-shadow-sm);\n}\n\n.header-info[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-2xl);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.meta-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n}\n\n.action-name[_ngcontent-%COMP%] {\n font-weight: var(--mj-font-medium);\n color: var(--mj-text-secondary);\n}\n\n.log-id[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: var(--mj-text-xs);\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: var(--mj-radius-full);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: var(--mj-text-inverse);\n}\n\n.execution-time[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n}\n\n.header-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid var(--mj-border-default);\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: var(--mj-text-xs);\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n color: var(--mj-text-secondary);\n}\n\n.record-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n\n.content-area[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 20px;\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: var(--mj-text-xs);\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n font-weight: var(--mj-font-semibold);\n}\n\n.detail-value[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-primary);\n}\n\n.btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: var(--mj-text-sm);\n padding: 4px;\n}\n\n.btn-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n.loading[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: var(--mj-text-xs);\n}\n\n\n.json-viewer[_ngcontent-%COMP%] {\n padding: 20px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n margin-bottom: 20px;\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: var(--mj-status-info);\n color: var(--mj-text-inverse);\n padding: 4px 12px;\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n font-weight: var(--mj-font-semibold);\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 var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-sm);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all var(--mj-transition-base);\n color: var(--mj-text-muted);\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\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: var(--mj-status-success);\n color: var(--mj-text-inverse);\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: var(--mj-status-error);\n color: var(--mj-text-inverse);\n}\n\n.status-badge[data-status=\"warning\"][_ngcontent-%COMP%], \n.status-badge[data-status=\"pending\"][_ngcontent-%COMP%] {\n background-color: var(--mj-status-warning);\n color: var(--mj-color-warning-800);\n}\n\n.status-badge[data-status=\"info\"][_ngcontent-%COMP%], \n.status-badge[data-status=\"running\"][_ngcontent-%COMP%] {\n background-color: var(--mj-status-info);\n color: var(--mj-text-inverse);\n}\n\n.status-badge[_ngcontent-%COMP%] {\n background-color: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.monospace[_ngcontent-%COMP%] {\n font-family: 'Courier New', Courier, monospace;\n font-size: var(--mj-text-xs);\n}\n\n\n\n\n\n.params-panel[_ngcontent-%COMP%] {\n padding: 18px 20px 22px;\n}\n\n\n.params-toolbar[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 14px;\n align-items: center;\n justify-content: space-between;\n padding: 12px 14px;\n margin-bottom: 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle);\n border-radius: var(--mj-radius-lg);\n}\n\n.filter-chips[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 6px 13px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n cursor: pointer;\n transition: all var(--mj-transition-base);\n}\n.chip[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\n}\n.chip[_ngcontent-%COMP%]:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n.chip[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 18px;\n padding: 0 6px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n font-weight: var(--mj-font-semibold);\n}\n.chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.chip.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 22%, transparent);\n}\n.chip.active[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-text-inverse) 25%, transparent);\n color: var(--mj-text-inverse);\n}\n\n\n.chip.chip-input.active[_ngcontent-%COMP%] {\n background: var(--mj-status-info);\n border-color: var(--mj-status-info);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-status-info) 22%, transparent);\n}\n.chip.chip-output.active[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-status-success) 22%, transparent);\n}\n.chip.chip-both.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 75%, var(--mj-status-warning) 25%);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 75%, var(--mj-status-warning) 25%);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 22%, transparent);\n}\n\n.toolbar-right[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.search-wrapper[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n}\n.search-icon[_ngcontent-%COMP%] {\n position: absolute;\n left: 10px;\n color: var(--mj-text-muted);\n font-size: 12px;\n pointer-events: none;\n}\n.params-search[_ngcontent-%COMP%] {\n min-width: 220px;\n padding: 7px 30px 7px 30px;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n}\n.search-clear[_ngcontent-%COMP%] {\n position: absolute;\n right: 6px;\n width: 22px;\n height: 22px;\n border: none;\n background: transparent;\n color: var(--mj-text-muted);\n border-radius: var(--mj-radius-full);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n.search-clear[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface-hover);\n}\n\n.sort-group[_ngcontent-%COMP%] {\n display: inline-flex;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n background: var(--mj-bg-surface);\n}\n.sort-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 7px 12px;\n background: transparent;\n border: none;\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n cursor: pointer;\n transition: background var(--mj-transition-base);\n}\n.sort-btn[_ngcontent-%COMP%] + .sort-btn[_ngcontent-%COMP%] {\n border-left: 1px solid var(--mj-border-default);\n}\n.sort-btn[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n.sort-btn.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n.sort-btn.active[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n\n.raw-toggle[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 7px 12px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n cursor: pointer;\n transition: all var(--mj-transition-base);\n}\n.raw-toggle[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n.raw-toggle.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 35%, var(--mj-border-default));\n}\n\n\n.params-list[_ngcontent-%COMP%] {\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.param-row[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-left: 3px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 12px 14px;\n transition: border-color var(--mj-transition-base), box-shadow var(--mj-transition-base);\n}\n.param-row[_ngcontent-%COMP%]:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 35%, var(--mj-border-default));\n box-shadow: 0 1px 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n.param-row[data-type=\"Input\"][_ngcontent-%COMP%] { border-left-color: var(--mj-status-info); }\n.param-row[data-type=\"Output\"][_ngcontent-%COMP%] { border-left-color: var(--mj-status-success); }\n.param-row[data-type=\"Both\"][_ngcontent-%COMP%] { border-left-color: color-mix(in srgb, var(--mj-brand-primary) 75%, var(--mj-status-warning) 25%); }\n\n.param-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.type-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 3px 10px;\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n font-weight: var(--mj-font-semibold);\n text-transform: uppercase;\n letter-spacing: 0.4px;\n flex-shrink: 0;\n}\n.type-badge[data-type=\"Input\"][_ngcontent-%COMP%] {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n border: 1px solid color-mix(in srgb, var(--mj-status-info) 30%, transparent);\n}\n.type-badge[data-type=\"Output\"][_ngcontent-%COMP%] {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n border: 1px solid color-mix(in srgb, var(--mj-status-success) 30%, transparent);\n}\n.type-badge[data-type=\"Both\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n.param-name-wrap[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n}\n.param-name[_ngcontent-%COMP%] {\n font-family: 'SF Mono', 'Fira Code', Menlo, Consolas, monospace;\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.value-kind-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: var(--mj-radius-full);\n font-size: 10px;\n font-weight: var(--mj-font-medium);\n text-transform: lowercase;\n letter-spacing: 0.3px;\n flex-shrink: 0;\n}\n.value-kind-chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 9px; }\n.value-kind-chip[data-kind=\"number\"][_ngcontent-%COMP%] { color: var(--mj-status-info-text); background: var(--mj-status-info-bg); }\n.value-kind-chip[data-kind=\"boolean\"][_ngcontent-%COMP%] { color: var(--mj-status-warning-text); background: var(--mj-status-warning-bg); }\n.value-kind-chip[data-kind=\"array\"][_ngcontent-%COMP%] { color: var(--mj-brand-primary); background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface)); }\n.value-kind-chip[data-kind=\"object\"][_ngcontent-%COMP%] { color: var(--mj-brand-primary); background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface)); }\n.value-kind-chip[data-kind=\"null\"][_ngcontent-%COMP%], \n.value-kind-chip[data-kind=\"undefined\"][_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n}\n\n.param-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n flex-shrink: 0;\n}\n.param-actions[_ngcontent-%COMP%] .btn-icon[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n}\n.param-expand.is-expanded[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 35%, var(--mj-border-default));\n}\n\n.param-preview[_ngcontent-%COMP%] {\n margin-top: 8px;\n padding-left: calc(64px + 12px); \n font-family: 'SF Mono', 'Fira Code', Menlo, Consolas, monospace;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n word-break: break-word;\n line-height: 1.55;\n}\n.param-preview[data-kind=\"string\"][_ngcontent-%COMP%] { color: var(--mj-status-success-text); }\n.param-preview[data-kind=\"number\"][_ngcontent-%COMP%] { color: var(--mj-status-info-text); }\n.param-preview[data-kind=\"boolean\"][_ngcontent-%COMP%] { color: var(--mj-status-warning-text); }\n.param-preview[data-kind=\"null\"][_ngcontent-%COMP%], \n.param-preview[data-kind=\"undefined\"][_ngcontent-%COMP%] { color: var(--mj-text-disabled); font-style: italic; }\n.param-preview[data-kind=\"array\"][_ngcontent-%COMP%], \n.param-preview[data-kind=\"object\"][_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n\n.param-expanded[_ngcontent-%COMP%] {\n margin-top: 10px;\n margin-left: calc(64px + 12px);\n border: 1px solid var(--mj-border-subtle);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n background: var(--mj-bg-surface-sunken);\n}\n\n.raw-json-viewer[_ngcontent-%COMP%] { margin-top: 4px; }\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\n .params-toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n .toolbar-right[_ngcontent-%COMP%] {\n justify-content: space-between;\n }\n .params-search[_ngcontent-%COMP%] { min-width: 0; width: 100%; }\n .search-wrapper[_ngcontent-%COMP%] { flex: 1; }\n\n .param-preview[_ngcontent-%COMP%], \n .param-expanded[_ngcontent-%COMP%] {\n padding-left: 0;\n margin-left: 0;\n }\n}\n\n\n\n\n@media (max-width: 768px) {\n .content-area[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .params-panel[_ngcontent-%COMP%] {\n padding-left: 0;\n padding-right: 0;\n }\n\n .param-header[_ngcontent-%COMP%], \n .param-name[_ngcontent-%COMP%] {\n min-width: 0;\n }\n}", "\n\n\n\n\n\n\n\n\n\n\n\n\n\n.phone-hero-summary[_ngcontent-%COMP%], \n.phone-hero-only[_ngcontent-%COMP%] {\n display: none;\n}\n\n@media (max-width: 768px) {\n .phone-hero[_ngcontent-%COMP%] {\n padding: 12px !important;\n }\n\n \n .phone-hero.hero-compact[_ngcontent-%COMP%] .phone-hero-detail[_ngcontent-%COMP%], \n .phone-hero.hero-view[_ngcontent-%COMP%] .phone-hero-hide[_ngcontent-%COMP%] {\n display: none !important;\n }\n\n .phone-hero-only[_ngcontent-%COMP%] {\n display: inline-flex;\n }\n\n \n .phone-hero[_ngcontent-%COMP%] .phone-hero-stats[_ngcontent-%COMP%] {\n display: grid !important;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 8px;\n }\n\n .phone-hero-status[_ngcontent-%COMP%] {\n align-items: center;\n gap: 4px;\n margin-left: 8px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 999px);\n color: var(--mj-text-secondary);\n background: var(--mj-bg-surface-sunken);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n vertical-align: middle;\n white-space: nowrap;\n }\n\n \n .phone-hero-status[data-status=\"running\"][_ngcontent-%COMP%] { color: var(--mj-status-warning-text); background: var(--mj-status-warning-bg); }\n .phone-hero-status[data-status=\"success\"][_ngcontent-%COMP%] { color: var(--mj-status-success-text); background: var(--mj-status-success-bg); }\n .phone-hero-status[data-status=\"error\"][_ngcontent-%COMP%] { color: var(--mj-status-error-text); background: var(--mj-status-error-bg); }\n .phone-hero-status[data-status=\"info\"][_ngcontent-%COMP%] { color: var(--mj-status-info-text); background: var(--mj-status-info-bg); }\n\n .phone-hero-top[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n gap: 10px;\n }\n\n .phone-hero-actions[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .phone-hero[_ngcontent-%COMP%] .phone-hero-run[_ngcontent-%COMP%] {\n width: 100%;\n min-height: 44px;\n justify-content: center;\n }\n\n \n\n .phone-hero-summary[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n min-height: 44px;\n margin-top: 8px;\n padding: 0 4px;\n border: 0;\n border-top: 1px solid color-mix(in srgb, currentColor 20%, transparent);\n background: transparent;\n color: inherit;\n font: inherit;\n font-size: var(--mj-text-sm);\n text-align: left;\n cursor: pointer;\n opacity: 0.85;\n }\n\n .phone-hero-summary[_ngcontent-%COMP%]:focus-visible {\n outline: none;\n box-shadow: var(--mj-focus-ring);\n }\n\n .phone-hero-summary-text[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .phone-hero-summary[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n flex-shrink: 0;\n transition: transform 0.15s ease;\n }\n\n .phone-hero-summary[aria-expanded=\"true\"][_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n transform: rotate(180deg);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .phone-hero-summary[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n transition: none;\n }\n}"] }); }
|
|
1025
1073
|
};
|
|
1026
1074
|
MJActionExecutionLogFormComponentExtended = __decorate([
|
|
1027
1075
|
RegisterClass(BaseFormComponent, 'MJ: Action Execution Logs')
|
|
@@ -1029,7 +1077,7 @@ MJActionExecutionLogFormComponentExtended = __decorate([
|
|
|
1029
1077
|
export { MJActionExecutionLogFormComponentExtended };
|
|
1030
1078
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJActionExecutionLogFormComponentExtended, [{
|
|
1031
1079
|
type: Component,
|
|
1032
|
-
args: [{ standalone: false, selector: 'mj-action-execution-log-form', template: "<div class=\"record-form-container action-execution-log-form\" style=\"height: 100%; display: flex; flex-direction: column;\">\n <div class=\"record-form\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n <!-- Header -->\n <div class=\"header\">\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"icon-wrapper\">\n <!-- The action's own icon when it has one, matching how the same action is\n drawn in the run timeline. `fa-terminal` stays as the fallback: it is\n what this form has always shown, and it is the honest answer for an\n action whose metadata names no icon. -->\n @if (action && action.IconClass) {\n <i [ngClass]=\"action.IconClass\"></i>\n } @else {\n <i class=\"fas fa-terminal\"></i>\n }\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 <div class=\"accordion-container\">\n <!-- Execution Details -->\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-info-circle\"></i> Execution Details\n </ng-template>\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 </mj-accordion-panel>\n\n <!-- Unified Parameters section -->\n @if (hasAnyParameters) {\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-sliders-h\"></i>\n Parameters\n <span class=\"mj-accordion-badge mj-accordion-badge--right\">{{ paramCounts.All }}</span>\n </ng-template>\n <div class=\"params-panel\">\n <!-- Toolbar: filter chips, search, sort, raw toggle -->\n <div class=\"params-toolbar\">\n <div class=\"filter-chips\">\n <button\n type=\"button\"\n class=\"chip\"\n [class.active]=\"typeFilter === 'All'\"\n (click)=\"setTypeFilter('All')\">\n All <span class=\"chip-count\">{{ paramCounts.All }}</span>\n </button>\n <button\n type=\"button\"\n class=\"chip chip-input\"\n [class.active]=\"typeFilter === 'Input'\"\n [disabled]=\"paramCounts.Input === 0\"\n (click)=\"setTypeFilter('Input')\">\n <i class=\"fas fa-sign-in-alt\"></i>\n Input <span class=\"chip-count\">{{ paramCounts.Input }}</span>\n </button>\n <button\n type=\"button\"\n class=\"chip chip-both\"\n [class.active]=\"typeFilter === 'Both'\"\n [disabled]=\"paramCounts.Both === 0\"\n (click)=\"setTypeFilter('Both')\">\n <i class=\"fas fa-exchange-alt\"></i>\n In/Out <span class=\"chip-count\">{{ paramCounts.Both }}</span>\n </button>\n <button\n type=\"button\"\n class=\"chip chip-output\"\n [class.active]=\"typeFilter === 'Output'\"\n [disabled]=\"paramCounts.Output === 0\"\n (click)=\"setTypeFilter('Output')\">\n <i class=\"fas fa-sign-out-alt\"></i>\n Output <span class=\"chip-count\">{{ paramCounts.Output }}</span>\n </button>\n </div>\n\n <div class=\"toolbar-right\">\n <div class=\"search-wrapper\">\n <i class=\"fas fa-search search-icon\"></i>\n <input\n type=\"text\"\n class=\"mj-input params-search\"\n placeholder=\"Search name or value\u2026\"\n [(ngModel)]=\"searchText\"\n name=\"paramSearch\" />\n @if (searchText) {\n <button type=\"button\" class=\"search-clear\" (click)=\"searchText = ''\" title=\"Clear search\">\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n\n <div class=\"sort-group\" role=\"group\" aria-label=\"Sort parameters\">\n <button\n type=\"button\"\n class=\"sort-btn\"\n [class.active]=\"sortKey === 'type'\"\n (click)=\"toggleSort('type')\"\n title=\"Sort by type\">\n Type\n @if (sortKey === 'type') {\n <i class=\"fas\" [ngClass]=\"sortDir === 'asc' ? 'fa-arrow-down-short-wide' : 'fa-arrow-up-wide-short'\"></i>\n }\n </button>\n <button\n type=\"button\"\n class=\"sort-btn\"\n [class.active]=\"sortKey === 'name'\"\n (click)=\"toggleSort('name')\"\n title=\"Sort by name\">\n Name\n @if (sortKey === 'name') {\n <i class=\"fas\" [ngClass]=\"sortDir === 'asc' ? 'fa-arrow-down-a-z' : 'fa-arrow-up-z-a'\"></i>\n }\n </button>\n </div>\n\n <button\n type=\"button\"\n class=\"raw-toggle\"\n [class.active]=\"showRawJson\"\n (click)=\"toggleRawJson()\"\n title=\"Toggle raw JSON view\">\n <i class=\"fas fa-code\"></i>\n Raw\n </button>\n </div>\n </div>\n\n @if (showRawJson) {\n <div class=\"json-viewer raw-json-viewer\">\n <div class=\"json-toolbar\">\n <span class=\"json-label\">Raw 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=\"formattedParamsRaw\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 360px; width: 100%;\">\n </mj-code-editor>\n </div>\n } @else {\n <!-- Rich param list -->\n @if (filteredParameters.length === 0) {\n <mj-empty-state\n Variant=\"no-results\"\n Size=\"compact\"\n Icon=\"fa-solid fa-filter-circle-xmark\"\n Title=\"No parameters match the current filter.\"\n ActionText=\"Clear filters\"\n ActionIcon=\"fa-solid fa-rotate-left\"\n ActionVariant=\"flat\"\n (Action)=\"clearFilters()\" />\n } @else {\n <ul class=\"params-list\">\n @for (p of filteredParameters; track trackParam($index, p)) {\n <li class=\"param-row\" [attr.data-type]=\"p.Type\">\n <div class=\"param-header\">\n <span class=\"type-badge\" [attr.data-type]=\"p.Type\">\n @if (p.Type === 'Input') {\n <i class=\"fas fa-sign-in-alt\"></i>\n } @else if (p.Type === 'Output') {\n <i class=\"fas fa-sign-out-alt\"></i>\n } @else {\n <i class=\"fas fa-exchange-alt\"></i>\n }\n {{ getTypeLabel(p.Type) }}\n </span>\n <div class=\"param-name-wrap\">\n <span class=\"param-name\">{{ p.Name }}</span>\n <span class=\"value-kind-chip\" [attr.data-kind]=\"p.ValueKind\">\n <i class=\"fas\" [ngClass]=\"getValueKindIcon(p.ValueKind)\"></i>\n {{ p.ValueKind }}\n </span>\n </div>\n <div class=\"param-actions\">\n @if (p.IsExpandable) {\n <button type=\"button\" class=\"btn-icon param-expand\" [class.is-expanded]=\"p.Expanded\" (click)=\"toggleExpanded(p)\" [title]=\"p.Expanded ? 'Collapse' : 'Expand'\">\n <i class=\"fas\" [ngClass]=\"p.Expanded ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </button>\n }\n <button type=\"button\" class=\"btn-icon\" (click)=\"copyParamValue(p)\" title=\"Copy value\">\n <i class=\"fas fa-copy\"></i>\n </button>\n </div>\n </div>\n <div class=\"param-preview\" [attr.data-kind]=\"p.ValueKind\">{{ p.Preview }}</div>\n @if (p.IsExpandable && p.Expanded) {\n <div class=\"param-expanded\">\n <mj-code-editor\n [(ngModel)]=\"p.FormattedValue\"\n [name]=\"'param-' + p.Name\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 240px; width: 100%;\">\n </mj-code-editor>\n </div>\n }\n </li>\n }\n </ul>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Output Message -->\n @if (record.Message) {\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-comment-alt\"></i> Output Message\n </ng-template>\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 </mj-accordion-panel>\n }\n\n <!-- Empty States for missing data -->\n @if (!record.Params && !record.Message && !hasAnyParameters) {\n <mj-accordion-panel [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-database\"></i> Execution Data\n </ng-template>\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-inbox\"\n Title=\"No execution data recorded\" />\n </mj-accordion-panel>\n }\n </div>\n </div>\n </div>\n</div>", styles: ["/* Action Execution Log Form Styles */\n:host {\n display: block;\n height: 100%;\n}\n\n.action-execution-log-form {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--mj-bg-page);\n color: var(--mj-text-primary);\n}\n\n/* Header Styles */\n.header {\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 20px;\n box-shadow: var(--mj-shadow-sm);\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: var(--mj-status-info);\n border-radius: var(--mj-radius-lg);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n font-size: var(--mj-text-xl);\n box-shadow: var(--mj-shadow-sm);\n}\n\n.header-info h2 {\n margin: 0;\n font-size: var(--mj-text-2xl);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.meta-info {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n}\n\n.action-name {\n font-weight: var(--mj-font-medium);\n color: var(--mj-text-secondary);\n}\n\n.log-id {\n font-family: monospace;\n font-size: var(--mj-text-xs);\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: var(--mj-radius-full);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: var(--mj-text-inverse);\n}\n\n.execution-time {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n}\n\n.header-stats {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.stat {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat .label {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat .value {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n color: var(--mj-text-secondary);\n}\n\n.record-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n/* Content Area */\n.content-area {\n flex: 1;\n min-height: 0;\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: var(--mj-text-xs);\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n font-weight: var(--mj-font-semibold);\n}\n\n.detail-value {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-primary);\n}\n\n.btn-link {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: var(--mj-text-sm);\n padding: 4px;\n}\n\n.btn-link:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n.loading {\n color: var(--mj-text-muted);\n font-size: var(--mj-text-xs);\n}\n\n/* JSON Viewer */\n.json-viewer {\n padding: 20px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n margin-bottom: 20px;\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: var(--mj-status-info);\n color: var(--mj-text-inverse);\n padding: 4px 12px;\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n font-weight: var(--mj-font-semibold);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.btn-icon {\n width: 32px;\n height: 32px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-sm);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all var(--mj-transition-base);\n color: var(--mj-text-muted);\n}\n\n.btn-icon:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\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: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n\n.status-badge[data-status=\"error\"],\n.status-badge[data-status=\"failed\"],\n.status-badge[data-status=\"failure\"] {\n background-color: var(--mj-status-error);\n color: var(--mj-text-inverse);\n}\n\n.status-badge[data-status=\"warning\"],\n.status-badge[data-status=\"pending\"] {\n background-color: var(--mj-status-warning);\n color: var(--mj-color-warning-800);\n}\n\n.status-badge[data-status=\"info\"],\n.status-badge[data-status=\"running\"] {\n background-color: var(--mj-status-info);\n color: var(--mj-text-inverse);\n}\n\n.status-badge {\n background-color: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.monospace {\n font-family: 'Courier New', Courier, monospace;\n font-size: var(--mj-text-xs);\n}\n\n/* ============================================================\n Unified Parameters Panel\n ============================================================ */\n\n.params-panel {\n padding: 18px 20px 22px;\n}\n\n/* Toolbar --------------------------------------------------------------- */\n.params-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 14px;\n align-items: center;\n justify-content: space-between;\n padding: 12px 14px;\n margin-bottom: 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle);\n border-radius: var(--mj-radius-lg);\n}\n\n.filter-chips {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.chip {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 6px 13px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n cursor: pointer;\n transition: all var(--mj-transition-base);\n}\n.chip:hover:not(:disabled) {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\n}\n.chip:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n.chip .chip-count {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 18px;\n padding: 0 6px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n font-weight: var(--mj-font-semibold);\n}\n.chip i {\n font-size: 11px;\n}\n\n.chip.active {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 22%, transparent);\n}\n.chip.active .chip-count {\n background: color-mix(in srgb, var(--mj-text-inverse) 25%, transparent);\n color: var(--mj-text-inverse);\n}\n\n/* Chip type flavors (active state tints per Input/Output/Both). */\n.chip.chip-input.active {\n background: var(--mj-status-info);\n border-color: var(--mj-status-info);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-status-info) 22%, transparent);\n}\n.chip.chip-output.active {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-status-success) 22%, transparent);\n}\n.chip.chip-both.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 75%, var(--mj-status-warning) 25%);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 75%, var(--mj-status-warning) 25%);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 22%, transparent);\n}\n\n.toolbar-right {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.search-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n}\n.search-icon {\n position: absolute;\n left: 10px;\n color: var(--mj-text-muted);\n font-size: 12px;\n pointer-events: none;\n}\n.params-search {\n min-width: 220px;\n padding: 7px 30px 7px 30px;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n}\n.search-clear {\n position: absolute;\n right: 6px;\n width: 22px;\n height: 22px;\n border: none;\n background: transparent;\n color: var(--mj-text-muted);\n border-radius: var(--mj-radius-full);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n.search-clear:hover {\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface-hover);\n}\n\n.sort-group {\n display: inline-flex;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n background: var(--mj-bg-surface);\n}\n.sort-btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 7px 12px;\n background: transparent;\n border: none;\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n cursor: pointer;\n transition: background var(--mj-transition-base);\n}\n.sort-btn + .sort-btn {\n border-left: 1px solid var(--mj-border-default);\n}\n.sort-btn:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n.sort-btn.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n.sort-btn.active i { color: var(--mj-brand-primary); }\n\n.raw-toggle {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 7px 12px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n cursor: pointer;\n transition: all var(--mj-transition-base);\n}\n.raw-toggle:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n.raw-toggle.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 35%, var(--mj-border-default));\n}\n\n/* Param list rows -------------------------------------------------------- */\n.params-list {\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.param-row {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-left: 3px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 12px 14px;\n transition: border-color var(--mj-transition-base), box-shadow var(--mj-transition-base);\n}\n.param-row:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 35%, var(--mj-border-default));\n box-shadow: 0 1px 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n.param-row[data-type=\"Input\"] { border-left-color: var(--mj-status-info); }\n.param-row[data-type=\"Output\"] { border-left-color: var(--mj-status-success); }\n.param-row[data-type=\"Both\"] { border-left-color: color-mix(in srgb, var(--mj-brand-primary) 75%, var(--mj-status-warning) 25%); }\n\n.param-header {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.type-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 3px 10px;\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n font-weight: var(--mj-font-semibold);\n text-transform: uppercase;\n letter-spacing: 0.4px;\n flex-shrink: 0;\n}\n.type-badge[data-type=\"Input\"] {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n border: 1px solid color-mix(in srgb, var(--mj-status-info) 30%, transparent);\n}\n.type-badge[data-type=\"Output\"] {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n border: 1px solid color-mix(in srgb, var(--mj-status-success) 30%, transparent);\n}\n.type-badge[data-type=\"Both\"] {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n.param-name-wrap {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n}\n.param-name {\n font-family: 'SF Mono', 'Fira Code', Menlo, Consolas, monospace;\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.value-kind-chip {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: var(--mj-radius-full);\n font-size: 10px;\n font-weight: var(--mj-font-medium);\n text-transform: lowercase;\n letter-spacing: 0.3px;\n flex-shrink: 0;\n}\n.value-kind-chip i { font-size: 9px; }\n.value-kind-chip[data-kind=\"number\"] { color: var(--mj-status-info-text); background: var(--mj-status-info-bg); }\n.value-kind-chip[data-kind=\"boolean\"] { color: var(--mj-status-warning-text); background: var(--mj-status-warning-bg); }\n.value-kind-chip[data-kind=\"array\"] { color: var(--mj-brand-primary); background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface)); }\n.value-kind-chip[data-kind=\"object\"] { color: var(--mj-brand-primary); background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface)); }\n.value-kind-chip[data-kind=\"null\"],\n.value-kind-chip[data-kind=\"undefined\"] {\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n}\n\n.param-actions {\n display: flex;\n gap: 4px;\n flex-shrink: 0;\n}\n.param-actions .btn-icon {\n width: 28px;\n height: 28px;\n}\n.param-expand.is-expanded {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 35%, var(--mj-border-default));\n}\n\n.param-preview {\n margin-top: 8px;\n padding-left: calc(64px + 12px); /* align under param name (after type badge) */\n font-family: 'SF Mono', 'Fira Code', Menlo, Consolas, monospace;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n word-break: break-word;\n line-height: 1.55;\n}\n.param-preview[data-kind=\"string\"] { color: var(--mj-status-success-text); }\n.param-preview[data-kind=\"number\"] { color: var(--mj-status-info-text); }\n.param-preview[data-kind=\"boolean\"] { color: var(--mj-status-warning-text); }\n.param-preview[data-kind=\"null\"],\n.param-preview[data-kind=\"undefined\"] { color: var(--mj-text-disabled); font-style: italic; }\n.param-preview[data-kind=\"array\"],\n.param-preview[data-kind=\"object\"] { color: var(--mj-brand-primary); }\n\n.param-expanded {\n margin-top: 10px;\n margin-left: calc(64px + 12px);\n border: 1px solid var(--mj-border-subtle);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n background: var(--mj-bg-surface-sunken);\n}\n\n.raw-json-viewer { margin-top: 4px; }\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\n .params-toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n .toolbar-right {\n justify-content: space-between;\n }\n .params-search { min-width: 0; width: 100%; }\n .search-wrapper { flex: 1; }\n\n .param-preview,\n .param-expanded {\n padding-left: 0;\n margin-left: 0;\n }\n}\n"] }]
|
|
1080
|
+
args: [{ standalone: false, selector: 'mj-action-execution-log-form', template: "<div class=\"record-form-container action-execution-log-form\" style=\"height: 100%; display: flex; flex-direction: column;\">\n <div class=\"record-form\" style=\"display: flex; flex-direction: column; height: 100%; overflow: hidden;\">\n <!-- Header -->\n <div class=\"header phone-hero\" [class.hero-view]=\"!EditMode\" [class.hero-compact]=\"!EditMode && !HeroDetailsOpen\">\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"icon-wrapper\">\n <!-- The action's own icon when it has one, matching how the same action is\n drawn in the run timeline. `fa-terminal` stays as the fallback: it is\n what this form has always shown, and it is the honest answer for an\n action whose metadata names no icon. -->\n @if (action && action.IconClass) {\n <i [ngClass]=\"action.IconClass\"></i>\n } @else {\n <i class=\"fas fa-terminal\"></i>\n }\n </div>\n <div class=\"header-info\">\n <h2>Action Execution Log</h2>\n <div class=\"meta-info phone-hero-detail\">\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 phone-hero-detail\">\n <i class=\"fas fa-clock\"></i>\n {{ formatDuration(getExecutionDuration()) }}\n </div>\n </div>\n </div>\n <div class=\"header-stats phone-hero-detail phone-hero-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 @if (!EditMode && HeroSummary) {\n <button type=\"button\" class=\"phone-hero-summary\" [attr.aria-expanded]=\"HeroDetailsOpen\" (click)=\"ToggleHeroDetails()\">\n <span class=\"phone-hero-summary-text\">{{ HeroSummary }}</span>\n <i class=\"fa-solid fa-chevron-down\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n\n <!-- Content Area -->\n <div class=\"content-area\">\n <div class=\"accordion-container\">\n <!-- Phone: one section at a time behind a picker; desktop keeps the accordions -->\n <mj-accordion-sections [Enabled]=\"Phone.IsPhone\" [ActiveKey]=\"Phone.Section\" (ActiveKeyChange)=\"Phone.Pick($event)\">\n <!-- Execution Details -->\n <mj-accordion-panel SectionKey=\"details\" SectionTitle=\"Execution Details\" SectionIcon=\"fas fa-info-circle\" [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-info-circle\"></i> Execution Details\n </ng-template>\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 </mj-accordion-panel>\n\n <!-- Unified Parameters section -->\n @if (hasAnyParameters) {\n <mj-accordion-panel SectionKey=\"parameters\" SectionTitle=\"Parameters\" SectionIcon=\"fas fa-sliders-h\" [SectionCount]=\"paramCounts.All\" [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-sliders-h\"></i>\n Parameters\n <span class=\"mj-accordion-badge mj-accordion-badge--right\">{{ paramCounts.All }}</span>\n </ng-template>\n <div class=\"params-panel\">\n <!-- Toolbar: filter chips, search, sort, raw toggle -->\n <div class=\"params-toolbar\">\n <div class=\"filter-chips\">\n <button\n type=\"button\"\n class=\"chip\"\n [class.active]=\"typeFilter === 'All'\"\n (click)=\"setTypeFilter('All')\">\n All <span class=\"chip-count\">{{ paramCounts.All }}</span>\n </button>\n <button\n type=\"button\"\n class=\"chip chip-input\"\n [class.active]=\"typeFilter === 'Input'\"\n [disabled]=\"paramCounts.Input === 0\"\n (click)=\"setTypeFilter('Input')\">\n <i class=\"fas fa-sign-in-alt\"></i>\n Input <span class=\"chip-count\">{{ paramCounts.Input }}</span>\n </button>\n <button\n type=\"button\"\n class=\"chip chip-both\"\n [class.active]=\"typeFilter === 'Both'\"\n [disabled]=\"paramCounts.Both === 0\"\n (click)=\"setTypeFilter('Both')\">\n <i class=\"fas fa-exchange-alt\"></i>\n In/Out <span class=\"chip-count\">{{ paramCounts.Both }}</span>\n </button>\n <button\n type=\"button\"\n class=\"chip chip-output\"\n [class.active]=\"typeFilter === 'Output'\"\n [disabled]=\"paramCounts.Output === 0\"\n (click)=\"setTypeFilter('Output')\">\n <i class=\"fas fa-sign-out-alt\"></i>\n Output <span class=\"chip-count\">{{ paramCounts.Output }}</span>\n </button>\n </div>\n\n <div class=\"toolbar-right\">\n <div class=\"search-wrapper\">\n <i class=\"fas fa-search search-icon\"></i>\n <input\n type=\"text\"\n class=\"mj-input params-search\"\n placeholder=\"Search name or value\u2026\"\n [(ngModel)]=\"searchText\"\n name=\"paramSearch\" />\n @if (searchText) {\n <button type=\"button\" class=\"search-clear\" (click)=\"searchText = ''\" title=\"Clear search\">\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n\n <div class=\"sort-group\" role=\"group\" aria-label=\"Sort parameters\">\n <button\n type=\"button\"\n class=\"sort-btn\"\n [class.active]=\"sortKey === 'type'\"\n (click)=\"toggleSort('type')\"\n title=\"Sort by type\">\n Type\n @if (sortKey === 'type') {\n <i class=\"fas\" [ngClass]=\"sortDir === 'asc' ? 'fa-arrow-down-short-wide' : 'fa-arrow-up-wide-short'\"></i>\n }\n </button>\n <button\n type=\"button\"\n class=\"sort-btn\"\n [class.active]=\"sortKey === 'name'\"\n (click)=\"toggleSort('name')\"\n title=\"Sort by name\">\n Name\n @if (sortKey === 'name') {\n <i class=\"fas\" [ngClass]=\"sortDir === 'asc' ? 'fa-arrow-down-a-z' : 'fa-arrow-up-z-a'\"></i>\n }\n </button>\n </div>\n\n <button\n type=\"button\"\n class=\"raw-toggle\"\n [class.active]=\"showRawJson\"\n (click)=\"toggleRawJson()\"\n title=\"Toggle raw JSON view\">\n <i class=\"fas fa-code\"></i>\n Raw\n </button>\n </div>\n </div>\n\n @if (showRawJson) {\n <div class=\"json-viewer raw-json-viewer\">\n <div class=\"json-toolbar\">\n <span class=\"json-label\">Raw 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=\"formattedParamsRaw\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 360px; width: 100%;\">\n </mj-code-editor>\n </div>\n } @else {\n <!-- Rich param list -->\n @if (filteredParameters.length === 0) {\n <mj-empty-state\n Variant=\"no-results\"\n Size=\"compact\"\n Icon=\"fa-solid fa-filter-circle-xmark\"\n Title=\"No parameters match the current filter.\"\n ActionText=\"Clear filters\"\n ActionIcon=\"fa-solid fa-rotate-left\"\n ActionVariant=\"flat\"\n (Action)=\"clearFilters()\" />\n } @else {\n <ul class=\"params-list\">\n @for (p of filteredParameters; track trackParam($index, p)) {\n <li class=\"param-row\" [attr.data-type]=\"p.Type\">\n <div class=\"param-header\">\n <span class=\"type-badge\" [attr.data-type]=\"p.Type\">\n @if (p.Type === 'Input') {\n <i class=\"fas fa-sign-in-alt\"></i>\n } @else if (p.Type === 'Output') {\n <i class=\"fas fa-sign-out-alt\"></i>\n } @else {\n <i class=\"fas fa-exchange-alt\"></i>\n }\n {{ getTypeLabel(p.Type) }}\n </span>\n <div class=\"param-name-wrap\">\n <span class=\"param-name\">{{ p.Name }}</span>\n <span class=\"value-kind-chip\" [attr.data-kind]=\"p.ValueKind\">\n <i class=\"fas\" [ngClass]=\"getValueKindIcon(p.ValueKind)\"></i>\n {{ p.ValueKind }}\n </span>\n </div>\n <div class=\"param-actions\">\n @if (p.IsExpandable) {\n <button type=\"button\" class=\"btn-icon param-expand\" [class.is-expanded]=\"p.Expanded\" (click)=\"toggleExpanded(p)\" [title]=\"p.Expanded ? 'Collapse' : 'Expand'\">\n <i class=\"fas\" [ngClass]=\"p.Expanded ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </button>\n }\n <button type=\"button\" class=\"btn-icon\" (click)=\"copyParamValue(p)\" title=\"Copy value\">\n <i class=\"fas fa-copy\"></i>\n </button>\n </div>\n </div>\n <div class=\"param-preview\" [attr.data-kind]=\"p.ValueKind\">{{ p.Preview }}</div>\n @if (p.IsExpandable && p.Expanded) {\n <div class=\"param-expanded\">\n <mj-code-editor\n [(ngModel)]=\"p.FormattedValue\"\n [name]=\"'param-' + p.Name\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 240px; width: 100%;\">\n </mj-code-editor>\n </div>\n }\n </li>\n }\n </ul>\n }\n }\n </div>\n </mj-accordion-panel>\n }\n\n <!-- Output Message -->\n @if (record.Message) {\n <mj-accordion-panel SectionKey=\"message\" SectionTitle=\"Output Message\" SectionIcon=\"fas fa-comment-alt\" [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-comment-alt\"></i> Output Message\n </ng-template>\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 </mj-accordion-panel>\n }\n\n <!-- Empty States for missing data -->\n @if (!record.Params && !record.Message && !hasAnyParameters) {\n <mj-accordion-panel SectionKey=\"data\" SectionTitle=\"Execution Data\" SectionIcon=\"fas fa-database\" [Expanded]=\"true\">\n <ng-template mjAccordionTitle>\n <i class=\"fas fa-database\"></i> Execution Data\n </ng-template>\n <mj-empty-state\n Size=\"compact\"\n Icon=\"fa-solid fa-inbox\"\n Title=\"No execution data recorded\" />\n </mj-accordion-panel>\n }\n </mj-accordion-sections>\n </div>\n </div>\n </div>\n</div>", styles: ["/* Action Execution Log Form Styles */\n:host {\n display: block;\n height: 100%;\n}\n\n.action-execution-log-form {\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--mj-bg-page);\n color: var(--mj-text-primary);\n}\n\n/* Header Styles */\n.header {\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n padding: 20px;\n box-shadow: var(--mj-shadow-sm);\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: var(--mj-status-info);\n border-radius: var(--mj-radius-lg);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-inverse);\n font-size: var(--mj-text-xl);\n box-shadow: var(--mj-shadow-sm);\n}\n\n.header-info h2 {\n margin: 0;\n font-size: var(--mj-text-2xl);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.meta-info {\n display: flex;\n gap: 12px;\n margin-top: 4px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n}\n\n.action-name {\n font-weight: var(--mj-font-medium);\n color: var(--mj-text-secondary);\n}\n\n.log-id {\n font-family: monospace;\n font-size: var(--mj-text-xs);\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: var(--mj-radius-full);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n color: var(--mj-text-inverse);\n}\n\n.execution-time {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n}\n\n.header-stats {\n display: flex;\n gap: 24px;\n padding-top: 12px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.stat {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat .label {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat .value {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n color: var(--mj-text-secondary);\n}\n\n.record-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n/* Content Area */\n.content-area {\n flex: 1;\n min-height: 0;\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: var(--mj-text-xs);\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n font-weight: var(--mj-font-semibold);\n}\n\n.detail-value {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-primary);\n}\n\n.btn-link {\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: var(--mj-text-sm);\n padding: 4px;\n}\n\n.btn-link:hover {\n color: var(--mj-brand-primary-hover);\n}\n\n.loading {\n color: var(--mj-text-muted);\n font-size: var(--mj-text-xs);\n}\n\n/* JSON Viewer */\n.json-viewer {\n padding: 20px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n margin-bottom: 20px;\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: var(--mj-status-info);\n color: var(--mj-text-inverse);\n padding: 4px 12px;\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n font-weight: var(--mj-font-semibold);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.btn-icon {\n width: 32px;\n height: 32px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-sm);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all var(--mj-transition-base);\n color: var(--mj-text-muted);\n}\n\n.btn-icon:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-secondary);\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: var(--mj-status-success);\n color: var(--mj-text-inverse);\n}\n\n.status-badge[data-status=\"error\"],\n.status-badge[data-status=\"failed\"],\n.status-badge[data-status=\"failure\"] {\n background-color: var(--mj-status-error);\n color: var(--mj-text-inverse);\n}\n\n.status-badge[data-status=\"warning\"],\n.status-badge[data-status=\"pending\"] {\n background-color: var(--mj-status-warning);\n color: var(--mj-color-warning-800);\n}\n\n.status-badge[data-status=\"info\"],\n.status-badge[data-status=\"running\"] {\n background-color: var(--mj-status-info);\n color: var(--mj-text-inverse);\n}\n\n.status-badge {\n background-color: var(--mj-text-muted);\n color: var(--mj-text-inverse);\n}\n\n.monospace {\n font-family: 'Courier New', Courier, monospace;\n font-size: var(--mj-text-xs);\n}\n\n/* ============================================================\n Unified Parameters Panel\n ============================================================ */\n\n.params-panel {\n padding: 18px 20px 22px;\n}\n\n/* Toolbar --------------------------------------------------------------- */\n.params-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 14px;\n align-items: center;\n justify-content: space-between;\n padding: 12px 14px;\n margin-bottom: 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle);\n border-radius: var(--mj-radius-lg);\n}\n\n.filter-chips {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.chip {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 6px 13px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n cursor: pointer;\n transition: all var(--mj-transition-base);\n}\n.chip:hover:not(:disabled) {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\n}\n.chip:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n.chip .chip-count {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 18px;\n padding: 0 6px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n font-weight: var(--mj-font-semibold);\n}\n.chip i {\n font-size: 11px;\n}\n\n.chip.active {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 22%, transparent);\n}\n.chip.active .chip-count {\n background: color-mix(in srgb, var(--mj-text-inverse) 25%, transparent);\n color: var(--mj-text-inverse);\n}\n\n/* Chip type flavors (active state tints per Input/Output/Both). */\n.chip.chip-input.active {\n background: var(--mj-status-info);\n border-color: var(--mj-status-info);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-status-info) 22%, transparent);\n}\n.chip.chip-output.active {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-status-success) 22%, transparent);\n}\n.chip.chip-both.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 75%, var(--mj-status-warning) 25%);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 75%, var(--mj-status-warning) 25%);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 22%, transparent);\n}\n\n.toolbar-right {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.search-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n}\n.search-icon {\n position: absolute;\n left: 10px;\n color: var(--mj-text-muted);\n font-size: 12px;\n pointer-events: none;\n}\n.params-search {\n min-width: 220px;\n padding: 7px 30px 7px 30px;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n}\n.search-clear {\n position: absolute;\n right: 6px;\n width: 22px;\n height: 22px;\n border: none;\n background: transparent;\n color: var(--mj-text-muted);\n border-radius: var(--mj-radius-full);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n.search-clear:hover {\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface-hover);\n}\n\n.sort-group {\n display: inline-flex;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n background: var(--mj-bg-surface);\n}\n.sort-btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 7px 12px;\n background: transparent;\n border: none;\n color: var(--mj-text-secondary);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n cursor: pointer;\n transition: background var(--mj-transition-base);\n}\n.sort-btn + .sort-btn {\n border-left: 1px solid var(--mj-border-default);\n}\n.sort-btn:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n.sort-btn.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n.sort-btn.active i { color: var(--mj-brand-primary); }\n\n.raw-toggle {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 7px 12px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-medium);\n cursor: pointer;\n transition: all var(--mj-transition-base);\n}\n.raw-toggle:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }\n.raw-toggle.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 35%, var(--mj-border-default));\n}\n\n/* Param list rows -------------------------------------------------------- */\n.params-list {\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.param-row {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-left: 3px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 12px 14px;\n transition: border-color var(--mj-transition-base), box-shadow var(--mj-transition-base);\n}\n.param-row:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 35%, var(--mj-border-default));\n box-shadow: 0 1px 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n.param-row[data-type=\"Input\"] { border-left-color: var(--mj-status-info); }\n.param-row[data-type=\"Output\"] { border-left-color: var(--mj-status-success); }\n.param-row[data-type=\"Both\"] { border-left-color: color-mix(in srgb, var(--mj-brand-primary) 75%, var(--mj-status-warning) 25%); }\n\n.param-header {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.type-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 3px 10px;\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n font-weight: var(--mj-font-semibold);\n text-transform: uppercase;\n letter-spacing: 0.4px;\n flex-shrink: 0;\n}\n.type-badge[data-type=\"Input\"] {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n border: 1px solid color-mix(in srgb, var(--mj-status-info) 30%, transparent);\n}\n.type-badge[data-type=\"Output\"] {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n border: 1px solid color-mix(in srgb, var(--mj-status-success) 30%, transparent);\n}\n.type-badge[data-type=\"Both\"] {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 35%, transparent);\n}\n\n.param-name-wrap {\n flex: 1;\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n}\n.param-name {\n font-family: 'SF Mono', 'Fira Code', Menlo, Consolas, monospace;\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.value-kind-chip {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: var(--mj-radius-full);\n font-size: 10px;\n font-weight: var(--mj-font-medium);\n text-transform: lowercase;\n letter-spacing: 0.3px;\n flex-shrink: 0;\n}\n.value-kind-chip i { font-size: 9px; }\n.value-kind-chip[data-kind=\"number\"] { color: var(--mj-status-info-text); background: var(--mj-status-info-bg); }\n.value-kind-chip[data-kind=\"boolean\"] { color: var(--mj-status-warning-text); background: var(--mj-status-warning-bg); }\n.value-kind-chip[data-kind=\"array\"] { color: var(--mj-brand-primary); background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface)); }\n.value-kind-chip[data-kind=\"object\"] { color: var(--mj-brand-primary); background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface)); }\n.value-kind-chip[data-kind=\"null\"],\n.value-kind-chip[data-kind=\"undefined\"] {\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n}\n\n.param-actions {\n display: flex;\n gap: 4px;\n flex-shrink: 0;\n}\n.param-actions .btn-icon {\n width: 28px;\n height: 28px;\n}\n.param-expand.is-expanded {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 35%, var(--mj-border-default));\n}\n\n.param-preview {\n margin-top: 8px;\n padding-left: calc(64px + 12px); /* align under param name (after type badge) */\n font-family: 'SF Mono', 'Fira Code', Menlo, Consolas, monospace;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n word-break: break-word;\n line-height: 1.55;\n}\n.param-preview[data-kind=\"string\"] { color: var(--mj-status-success-text); }\n.param-preview[data-kind=\"number\"] { color: var(--mj-status-info-text); }\n.param-preview[data-kind=\"boolean\"] { color: var(--mj-status-warning-text); }\n.param-preview[data-kind=\"null\"],\n.param-preview[data-kind=\"undefined\"] { color: var(--mj-text-disabled); font-style: italic; }\n.param-preview[data-kind=\"array\"],\n.param-preview[data-kind=\"object\"] { color: var(--mj-brand-primary); }\n\n.param-expanded {\n margin-top: 10px;\n margin-left: calc(64px + 12px);\n border: 1px solid var(--mj-border-subtle);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n background: var(--mj-bg-surface-sunken);\n}\n\n.raw-json-viewer { margin-top: 4px; }\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\n .params-toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n .toolbar-right {\n justify-content: space-between;\n }\n .params-search { min-width: 0; width: 100%; }\n .search-wrapper { flex: 1; }\n\n .param-preview,\n .param-expanded {\n padding-left: 0;\n margin-left: 0;\n }\n}\n\n/* Phone: sections sit on the page's 12px gutter instead of the desktop 20px content padding,\n and the params panel drops its own sides for the same reason. The param header can shrink,\n so a long name ellipses instead of widening the row. */\n@media (max-width: 768px) {\n .content-area {\n padding: 12px;\n }\n\n .params-panel {\n padding-left: 0;\n padding-right: 0;\n }\n\n .param-header,\n .param-name {\n min-width: 0;\n }\n}\n", "/* ============================================\n PHONE HERO (design call 6A), shared by the custom forms that own a hero.\n Under 768px the hero keeps icon, name, status and the primary action. Anything tagged\n .phone-hero-detail hides while the hero is compact and comes back when the summary line is\n tapped. Edit mode is untouched: the host only gets .hero-compact / .hero-view in view mode.\n Host: .phone-hero [class.hero-view]=\"!EditMode\" [class.hero-compact]=\"!EditMode && !HeroDetailsOpen\"\n Tags: .phone-hero-detail hidden while compact\n .phone-hero-hide hidden in view mode (said elsewhere on the phone hero)\n .phone-hero-only shown only on phones\n .phone-hero-top a title + action row that stacks\n .phone-hero-actions / .phone-hero-run the primary action, full width at 44px\n .phone-hero-stats a metric row that reflows to a 2-up grid when the hero is expanded\n .phone-hero-status a status chip in the identity row (with .phone-hero-only)\n ============================================ */\n.phone-hero-summary,\n.phone-hero-only {\n display: none;\n}\n\n@media (max-width: 768px) {\n .phone-hero {\n padding: 12px !important;\n }\n\n /* !important: several heroes carry inline display/padding styles on these rows */\n .phone-hero.hero-compact .phone-hero-detail,\n .phone-hero.hero-view .phone-hero-hide {\n display: none !important;\n }\n\n .phone-hero-only {\n display: inline-flex;\n }\n\n /* Lower specificity than the compact rule above, so a compact hero still hides it */\n .phone-hero .phone-hero-stats {\n display: grid !important;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 8px;\n }\n\n .phone-hero-status {\n align-items: center;\n gap: 4px;\n margin-left: 8px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 999px);\n color: var(--mj-text-secondary);\n background: var(--mj-bg-surface-sunken);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n vertical-align: middle;\n white-space: nowrap;\n }\n\n /* data-status comes from RunStatusKind(); the -text / -bg pairs keep contrast in both themes */\n .phone-hero-status[data-status=\"running\"] { color: var(--mj-status-warning-text); background: var(--mj-status-warning-bg); }\n .phone-hero-status[data-status=\"success\"] { color: var(--mj-status-success-text); background: var(--mj-status-success-bg); }\n .phone-hero-status[data-status=\"error\"] { color: var(--mj-status-error-text); background: var(--mj-status-error-bg); }\n .phone-hero-status[data-status=\"info\"] { color: var(--mj-status-info-text); background: var(--mj-status-info-bg); }\n\n .phone-hero-top {\n flex-direction: column;\n align-items: stretch;\n gap: 10px;\n }\n\n .phone-hero-actions {\n width: 100%;\n }\n\n .phone-hero .phone-hero-run {\n width: 100%;\n min-height: 44px;\n justify-content: center;\n }\n\n /* Inherits the hero's text colour, so it reads on light heroes and on the brand-blue\n Queries hero alike; a muted token would be grey on blue. */\n .phone-hero-summary {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n min-height: 44px;\n margin-top: 8px;\n padding: 0 4px;\n border: 0;\n border-top: 1px solid color-mix(in srgb, currentColor 20%, transparent);\n background: transparent;\n color: inherit;\n font: inherit;\n font-size: var(--mj-text-sm);\n text-align: left;\n cursor: pointer;\n opacity: 0.85;\n }\n\n .phone-hero-summary:focus-visible {\n outline: none;\n box-shadow: var(--mj-focus-ring);\n }\n\n .phone-hero-summary-text {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .phone-hero-summary > i {\n flex-shrink: 0;\n transition: transform 0.15s ease;\n }\n\n .phone-hero-summary[aria-expanded=\"true\"] > i {\n transform: rotate(180deg);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .phone-hero-summary > i {\n transition: none;\n }\n}\n"] }]
|
|
1033
1081
|
}], null, null); })();
|
|
1034
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJActionExecutionLogFormComponentExtended, { className: "MJActionExecutionLogFormComponentExtended", filePath: "src/lib/custom/Actions/action-execution-log-form.component.ts", lineNumber:
|
|
1082
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJActionExecutionLogFormComponentExtended, { className: "MJActionExecutionLogFormComponentExtended", filePath: "src/lib/custom/Actions/action-execution-log-form.component.ts", lineNumber: 37 }); })();
|
|
1035
1083
|
//# sourceMappingURL=action-execution-log-form.component.js.map
|