@memberjunction/ng-dashboards 5.22.0 → 5.24.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 +51 -0
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +364 -362
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.js +2 -2
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +947 -64
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +7645 -430
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +285 -6
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +2454 -277
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +191 -197
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.js +9 -8
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +305 -299
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +319 -313
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +20 -2
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +419 -232
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.js +10 -12
- package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.js +13 -19
- package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.js +12 -14
- package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.js +61 -68
- package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.js +10 -11
- package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
- package/dist/Actions/components/actions-list-view.component.js +82 -96
- package/dist/Actions/components/actions-list-view.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +130 -134
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/categories-list-view.component.js +40 -46
- package/dist/Actions/components/categories-list-view.component.js.map +1 -1
- package/dist/Actions/components/code-management.component.js +2 -2
- package/dist/Actions/components/code-management.component.js.map +1 -1
- package/dist/Actions/components/entity-integration.component.js +2 -2
- package/dist/Actions/components/entity-integration.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +127 -132
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/executions-list-view.component.js +2 -2
- package/dist/Actions/components/executions-list-view.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.js +11 -17
- package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +5 -11
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-list-item.component.js +8 -10
- package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-toolbar.component.js +112 -133
- package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-tree-panel.component.js +63 -83
- package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.js +17 -21
- package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.js +17 -21
- package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
- package/dist/Actions/components/scheduled-actions.component.js +2 -2
- package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
- package/dist/Actions/components/security-permissions.component.js +2 -2
- package/dist/Actions/components/security-permissions.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +13 -5
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +168 -145
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts +4 -5
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js +197 -200
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts +5 -7
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +142 -148
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/browser/component-browser.component.js +153 -166
- package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +15 -20
- package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +16 -21
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/requirements-editor.component.js +18 -23
- package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/spec-editor.component.js +25 -30
- package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +10 -11
- package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +24 -35
- package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/text-import-dialog.component.js +15 -17
- package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +7 -6
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +6 -5
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +7 -6
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js +9 -9
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +17 -17
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.js +4 -4
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +1 -0
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +5 -4
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +247 -259
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.d.ts.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +1 -0
- package/dist/Integration/components/overview/overview.component.js.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.js +1 -0
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.d.ts.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.js +1 -0
- package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
- package/dist/Integration/components/widgets/integration-card.component.js +7 -9
- package/dist/Integration/components/widgets/integration-card.component.js.map +1 -1
- package/dist/Integration/integration.module.d.ts +6 -10
- package/dist/Integration/integration.module.d.ts.map +1 -1
- package/dist/Integration/integration.module.js +12 -20
- package/dist/Integration/integration.module.js.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts +411 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +4266 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +140 -0
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +780 -0
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +8 -2
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +246 -195
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +75 -0
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +601 -0
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts +93 -12
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js +637 -107
- package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/index.d.ts +3 -0
- package/dist/KnowledgeHub/index.d.ts.map +1 -1
- package/dist/KnowledgeHub/index.js +3 -0
- package/dist/KnowledgeHub/index.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +9 -7
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +5 -4
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +10 -9
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.js +141 -132
- package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-log-detail-panel.component.js +4 -4
- package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +141 -128
- package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-test-tool-dialog.component.js +210 -218
- package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +2 -2
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/MCP/mcp.module.d.ts +6 -9
- package/dist/MCP/mcp.module.d.ts.map +1 -1
- package/dist/MCP/mcp.module.js +20 -22
- package/dist/MCP/mcp.module.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +5 -4
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +6 -5
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +93 -92
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +9 -10
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/__tests__/analytics-resource.test.d.ts +2 -0
- package/dist/__tests__/analytics-resource.test.d.ts.map +1 -0
- package/dist/__tests__/analytics-resource.test.js +181 -0
- package/dist/__tests__/analytics-resource.test.js.map +1 -0
- package/dist/__tests__/scheduling.test.d.ts +2 -0
- package/dist/__tests__/scheduling.test.d.ts.map +1 -0
- package/dist/__tests__/scheduling.test.js +205 -0
- package/dist/__tests__/scheduling.test.js.map +1 -0
- package/dist/actions-dashboards.module.d.ts +8 -13
- package/dist/actions-dashboards.module.d.ts.map +1 -1
- package/dist/actions-dashboards.module.js +6 -27
- package/dist/actions-dashboards.module.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +20 -20
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +43 -44
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +4 -8
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +0 -19
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/component-studio-dashboards.module.d.ts +7 -11
- package/dist/component-studio-dashboards.module.d.ts.map +1 -1
- package/dist/component-studio-dashboards.module.js +22 -34
- package/dist/component-studio-dashboards.module.js.map +1 -1
- package/dist/core-dashboards.module.d.ts +12 -18
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +15 -31
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/credentials-dashboards.module.d.ts +5 -8
- package/dist/credentials-dashboards.module.d.ts.map +1 -1
- package/dist/credentials-dashboards.module.js +3 -19
- package/dist/credentials-dashboards.module.js.map +1 -1
- package/dist/data-explorer-dashboards.module.d.ts +7 -13
- package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
- package/dist/data-explorer-dashboards.module.js +0 -27
- package/dist/data-explorer-dashboards.module.js.map +1 -1
- package/dist/lists-dashboards.module.d.ts +5 -8
- package/dist/lists-dashboards.module.d.ts.map +1 -1
- package/dist/lists-dashboards.module.js +3 -19
- package/dist/lists-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +2 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +2 -0
- package/dist/public-api.js.map +1 -1
- package/dist/scheduling-dashboards.module.d.ts +6 -10
- package/dist/scheduling-dashboards.module.d.ts.map +1 -1
- package/dist/scheduling-dashboards.module.js +3 -23
- package/dist/scheduling-dashboards.module.js.map +1 -1
- package/dist/shared/entity-field-display.d.ts +44 -0
- package/dist/shared/entity-field-display.d.ts.map +1 -0
- package/dist/shared/entity-field-display.js +118 -0
- package/dist/shared/entity-field-display.js.map +1 -0
- package/dist/testing-dashboards.module.d.ts +7 -13
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +0 -27
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +48 -55
|
@@ -12,25 +12,21 @@ import { Subject, BehaviorSubject, combineLatest } from 'rxjs';
|
|
|
12
12
|
import { debounceTime, takeUntil, distinctUntilChanged } from 'rxjs/operators';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
import * as i1 from "@memberjunction/ng-shared";
|
|
15
|
-
import * as i2 from "@
|
|
16
|
-
import * as i3 from "@
|
|
17
|
-
import * as i4 from "@
|
|
18
|
-
import * as i5 from "@
|
|
19
|
-
import * as i6 from "@angular/common";
|
|
15
|
+
import * as i2 from "@angular/forms";
|
|
16
|
+
import * as i3 from "@memberjunction/ng-ui-components";
|
|
17
|
+
import * as i4 from "@memberjunction/ng-shared-generic";
|
|
18
|
+
import * as i5 from "@angular/common";
|
|
20
19
|
const _forTrack0 = ($index, $item) => $item.date;
|
|
21
20
|
const _forTrack1 = ($index, $item) => $item.ID;
|
|
22
|
-
function
|
|
23
|
-
i0.ɵɵ
|
|
24
|
-
|
|
25
|
-
function ExecutionMonitoringComponent_Conditional_75_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
26
|
-
i0.ɵɵelementStart(0, "div", 42)(1, "div", 47);
|
|
27
|
-
i0.ɵɵelement(2, "div", 48)(3, "div", 49);
|
|
21
|
+
function ExecutionMonitoringComponent_Conditional_77_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
+
i0.ɵɵelementStart(0, "div", 43)(1, "div", 48);
|
|
23
|
+
i0.ɵɵelement(2, "div", 49)(3, "div", 50);
|
|
28
24
|
i0.ɵɵelementEnd();
|
|
29
|
-
i0.ɵɵelementStart(4, "div",
|
|
25
|
+
i0.ɵɵelementStart(4, "div", 51);
|
|
30
26
|
i0.ɵɵtext(5);
|
|
31
27
|
i0.ɵɵpipe(6, "date");
|
|
32
28
|
i0.ɵɵelementEnd();
|
|
33
|
-
i0.ɵɵelementStart(7, "div",
|
|
29
|
+
i0.ɵɵelementStart(7, "div", 52);
|
|
34
30
|
i0.ɵɵtext(8);
|
|
35
31
|
i0.ɵɵelementEnd()();
|
|
36
32
|
} if (rf & 2) {
|
|
@@ -44,17 +40,17 @@ function ExecutionMonitoringComponent_Conditional_75_For_2_Template(rf, ctx) { i
|
|
|
44
40
|
i0.ɵɵadvance(3);
|
|
45
41
|
i0.ɵɵtextInterpolate(trend_r1.total);
|
|
46
42
|
} }
|
|
47
|
-
function
|
|
48
|
-
i0.ɵɵelementStart(0, "div",
|
|
49
|
-
i0.ɵɵrepeaterCreate(1,
|
|
43
|
+
function ExecutionMonitoringComponent_Conditional_77_Template(rf, ctx) { if (rf & 1) {
|
|
44
|
+
i0.ɵɵelementStart(0, "div", 42);
|
|
45
|
+
i0.ɵɵrepeaterCreate(1, ExecutionMonitoringComponent_Conditional_77_For_2_Template, 9, 9, "div", 43, _forTrack0);
|
|
50
46
|
i0.ɵɵelementEnd();
|
|
51
|
-
i0.ɵɵelementStart(3, "div",
|
|
52
|
-
i0.ɵɵelement(5, "div",
|
|
47
|
+
i0.ɵɵelementStart(3, "div", 44)(4, "div", 45);
|
|
48
|
+
i0.ɵɵelement(5, "div", 46);
|
|
53
49
|
i0.ɵɵelementStart(6, "span");
|
|
54
50
|
i0.ɵɵtext(7, "Successful");
|
|
55
51
|
i0.ɵɵelementEnd()();
|
|
56
|
-
i0.ɵɵelementStart(8, "div",
|
|
57
|
-
i0.ɵɵelement(9, "div",
|
|
52
|
+
i0.ɵɵelementStart(8, "div", 45);
|
|
53
|
+
i0.ɵɵelement(9, "div", 47);
|
|
58
54
|
i0.ɵɵelementStart(10, "span");
|
|
59
55
|
i0.ɵɵtext(11, "Failed");
|
|
60
56
|
i0.ɵɵelementEnd()()();
|
|
@@ -63,39 +59,40 @@ function ExecutionMonitoringComponent_Conditional_75_Template(rf, ctx) { if (rf
|
|
|
63
59
|
i0.ɵɵadvance();
|
|
64
60
|
i0.ɵɵrepeater(ctx_r1.executionTrends);
|
|
65
61
|
} }
|
|
66
|
-
function
|
|
67
|
-
i0.ɵɵelementStart(0, "div",
|
|
68
|
-
i0.ɵɵelement(1, "i",
|
|
62
|
+
function ExecutionMonitoringComponent_Conditional_78_Template(rf, ctx) { if (rf & 1) {
|
|
63
|
+
i0.ɵɵelementStart(0, "div", 35);
|
|
64
|
+
i0.ɵɵelement(1, "i", 33);
|
|
69
65
|
i0.ɵɵelementStart(2, "p");
|
|
70
66
|
i0.ɵɵtext(3, "No execution trends available");
|
|
71
67
|
i0.ɵɵelementEnd()();
|
|
72
68
|
} }
|
|
73
|
-
function
|
|
69
|
+
function ExecutionMonitoringComponent_Conditional_87_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
74
70
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
75
|
-
i0.ɵɵelementStart(0, "div",
|
|
76
|
-
i0.ɵɵlistener("click", function
|
|
77
|
-
i0.ɵɵelementStart(1, "div",
|
|
71
|
+
i0.ɵɵelementStart(0, "div", 54);
|
|
72
|
+
i0.ɵɵlistener("click", function ExecutionMonitoringComponent_Conditional_87_For_1_Template_div_click_0_listener() { const execution_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openExecution(execution_r4)); });
|
|
73
|
+
i0.ɵɵelementStart(1, "div", 55);
|
|
78
74
|
i0.ɵɵelement(2, "i");
|
|
79
75
|
i0.ɵɵelementEnd();
|
|
80
|
-
i0.ɵɵelementStart(3, "div",
|
|
81
|
-
i0.ɵɵlistener("click", function
|
|
76
|
+
i0.ɵɵelementStart(3, "div", 56)(4, "div", 57);
|
|
77
|
+
i0.ɵɵlistener("click", function ExecutionMonitoringComponent_Conditional_87_For_1_Template_div_click_4_listener($event) { const execution_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); ctx_r1.openAction(execution_r4.ActionID); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
82
78
|
i0.ɵɵtext(5);
|
|
83
79
|
i0.ɵɵelementEnd();
|
|
84
|
-
i0.ɵɵelementStart(6, "div",
|
|
80
|
+
i0.ɵɵelementStart(6, "div", 58)(7, "span", 59);
|
|
85
81
|
i0.ɵɵtext(8);
|
|
86
82
|
i0.ɵɵpipe(9, "date");
|
|
87
83
|
i0.ɵɵelementEnd();
|
|
88
|
-
i0.ɵɵelementStart(10, "span",
|
|
84
|
+
i0.ɵɵelementStart(10, "span", 60);
|
|
89
85
|
i0.ɵɵtext(11);
|
|
90
86
|
i0.ɵɵelementEnd();
|
|
91
|
-
i0.ɵɵelementStart(12, "span",
|
|
87
|
+
i0.ɵɵelementStart(12, "span", 61);
|
|
92
88
|
i0.ɵɵtext(13);
|
|
93
89
|
i0.ɵɵelementEnd()()();
|
|
94
|
-
i0.ɵɵelementStart(14, "div",
|
|
90
|
+
i0.ɵɵelementStart(14, "div", 62)(15, "span", 63);
|
|
95
91
|
i0.ɵɵtext(16);
|
|
96
92
|
i0.ɵɵelementEnd()();
|
|
97
|
-
i0.ɵɵelementStart(17, "div",
|
|
98
|
-
i0.ɵɵlistener("click", function
|
|
93
|
+
i0.ɵɵelementStart(17, "div", 64)(18, "button", 65);
|
|
94
|
+
i0.ɵɵlistener("click", function ExecutionMonitoringComponent_Conditional_87_For_1_Template_button_click_18_listener($event) { i0.ɵɵrestoreView(_r3); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
95
|
+
i0.ɵɵelement(19, "i", 66);
|
|
99
96
|
i0.ɵɵelementEnd()()();
|
|
100
97
|
} if (rf & 2) {
|
|
101
98
|
const execution_r4 = ctx.$implicit;
|
|
@@ -105,27 +102,25 @@ function ExecutionMonitoringComponent_Conditional_85_For_1_Template(rf, ctx) { i
|
|
|
105
102
|
i0.ɵɵadvance(3);
|
|
106
103
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.getActionName(execution_r4.ActionID), " ");
|
|
107
104
|
i0.ɵɵadvance(3);
|
|
108
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(9,
|
|
105
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(9, 8, execution_r4.StartedAt, "MMM d, HH:mm:ss"));
|
|
109
106
|
i0.ɵɵadvance(3);
|
|
110
107
|
i0.ɵɵtextInterpolate(execution_r4.UserID);
|
|
111
108
|
i0.ɵɵadvance(2);
|
|
112
109
|
i0.ɵɵtextInterpolate(ctx_r1.getDuration(execution_r4));
|
|
113
110
|
i0.ɵɵadvance(2);
|
|
114
|
-
i0.ɵɵ
|
|
111
|
+
i0.ɵɵattribute("data-color", ctx_r1.getResultColor(execution_r4.ResultCode));
|
|
115
112
|
i0.ɵɵadvance();
|
|
116
113
|
i0.ɵɵtextInterpolate1(" ", execution_r4.ResultCode || "Unknown", " ");
|
|
117
|
-
i0.ɵɵadvance(2);
|
|
118
|
-
i0.ɵɵproperty("fillMode", "flat")("icon", "more-vertical");
|
|
119
114
|
} }
|
|
120
|
-
function
|
|
121
|
-
i0.ɵɵrepeaterCreate(0,
|
|
115
|
+
function ExecutionMonitoringComponent_Conditional_87_Template(rf, ctx) { if (rf & 1) {
|
|
116
|
+
i0.ɵɵrepeaterCreate(0, ExecutionMonitoringComponent_Conditional_87_For_1_Template, 20, 11, "div", 53, _forTrack1);
|
|
122
117
|
} if (rf & 2) {
|
|
123
118
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
124
119
|
i0.ɵɵrepeater(ctx_r1.filteredExecutions);
|
|
125
120
|
} }
|
|
126
|
-
function
|
|
127
|
-
i0.ɵɵelementStart(0, "div",
|
|
128
|
-
i0.ɵɵelement(1, "i",
|
|
121
|
+
function ExecutionMonitoringComponent_Conditional_88_Template(rf, ctx) { if (rf & 1) {
|
|
122
|
+
i0.ɵɵelementStart(0, "div", 40);
|
|
123
|
+
i0.ɵɵelement(1, "i", 67);
|
|
129
124
|
i0.ɵɵelementStart(2, "h5");
|
|
130
125
|
i0.ɵɵtext(3, "No executions found");
|
|
131
126
|
i0.ɵɵelementEnd();
|
|
@@ -133,9 +128,9 @@ function ExecutionMonitoringComponent_Conditional_86_Template(rf, ctx) { if (rf
|
|
|
133
128
|
i0.ɵɵtext(5, "Try adjusting your filters or search terms");
|
|
134
129
|
i0.ɵɵelementEnd()();
|
|
135
130
|
} }
|
|
136
|
-
function
|
|
137
|
-
i0.ɵɵelementStart(0, "div",
|
|
138
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
131
|
+
function ExecutionMonitoringComponent_Conditional_89_Template(rf, ctx) { if (rf & 1) {
|
|
132
|
+
i0.ɵɵelementStart(0, "div", 41);
|
|
133
|
+
i0.ɵɵelement(1, "mj-loading", 68);
|
|
139
134
|
i0.ɵɵelementEnd();
|
|
140
135
|
} if (rf & 2) {
|
|
141
136
|
i0.ɵɵadvance();
|
|
@@ -453,126 +448,126 @@ let ExecutionMonitoringComponent = class ExecutionMonitoringComponent extends Ba
|
|
|
453
448
|
return 'fa-solid fa-chart-line';
|
|
454
449
|
}
|
|
455
450
|
static ɵfac = function ExecutionMonitoringComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ExecutionMonitoringComponent)(i0.ɵɵdirectiveInject(i1.NavigationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
456
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ExecutionMonitoringComponent, selectors: [["mj-execution-monitoring"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
451
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ExecutionMonitoringComponent, selectors: [["mj-execution-monitoring"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 90, vars: 23, consts: [[1, "execution-monitoring"], [1, "monitoring-header"], [1, "header-title"], [1, "fa-solid", "fa-chart-line"], ["mjButton", "", "variant", "primary", 1, "refresh-btn", 3, "click"], [1, "fa-solid", "fa-refresh"], [1, "filters-row"], [1, "search-container"], [1, "search-input-wrapper"], [1, "fa-solid", "fa-search", "search-icon"], ["type", "text", "placeholder", "Search executions...", 1, "mj-input", 3, "input", "value"], [1, "filter-group"], ["TextField", "text", "ValueField", "value", 3, "ValueChange", "Data", "ValuePrimitive", "ngModel"], [1, "metrics-summary"], [1, "metric-card", "total", "clickable", 3, "click"], [1, "metric-icon"], [1, "fa-solid", "fa-play-circle"], [1, "metric-content"], [1, "metric-value"], [1, "metric-label"], [1, "metric-card", "success", "clickable", 3, "click"], [1, "fa-solid", "fa-check-circle"], [1, "metric-detail"], [1, "metric-card", "error", "clickable", 3, "click"], [1, "fa-solid", "fa-exclamation-circle"], [1, "metric-card", "duration"], [1, "fa-solid", "fa-clock"], [1, "metric-card", "activity"], [1, "fa-solid", "fa-calendar-day"], [1, "metric-card", "running", "clickable", 3, "click"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "trends-section"], [1, "section-header"], [1, "fa-solid", "fa-chart-area"], [1, "trends-chart"], [1, "empty-chart"], [1, "executions-section"], [1, "fa-solid", "fa-list"], [1, "results-count"], [1, "executions-list"], [1, "empty-state"], [1, "loading-overlay"], [1, "trend-bars"], [1, "trend-bar"], [1, "chart-legend"], [1, "legend-item"], [1, "legend-color", "success"], [1, "legend-color", "failed"], [1, "bar-container"], [1, "bar-success"], [1, "bar-failed"], [1, "bar-label"], [1, "bar-total"], [1, "execution-item"], [1, "execution-item", 3, "click"], [1, "execution-status"], [1, "execution-main"], [1, "execution-action", 3, "click"], [1, "execution-details"], [1, "execution-time"], [1, "execution-user"], [1, "execution-duration"], [1, "execution-result"], [1, "status-chip"], [1, "execution-actions"], ["mjButton", "", "variant", "flat", 3, "click"], [1, "fa-solid", "fa-ellipsis-vertical"], [1, "fa-solid", "fa-search"], ["size", "medium", 3, "showText"]], template: function ExecutionMonitoringComponent_Template(rf, ctx) { if (rf & 1) {
|
|
457
452
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "h3");
|
|
458
453
|
i0.ɵɵelement(4, "i", 3);
|
|
459
454
|
i0.ɵɵtext(5, " Execution Monitoring");
|
|
460
455
|
i0.ɵɵelementEnd();
|
|
461
456
|
i0.ɵɵelementStart(6, "button", 4);
|
|
462
457
|
i0.ɵɵlistener("click", function ExecutionMonitoringComponent_Template_button_click_6_listener() { return ctx.refreshData(); });
|
|
463
|
-
i0.ɵɵ
|
|
458
|
+
i0.ɵɵelement(7, "i", 5);
|
|
459
|
+
i0.ɵɵtext(8, " Refresh ");
|
|
464
460
|
i0.ɵɵelementEnd()();
|
|
465
|
-
i0.ɵɵelementStart(
|
|
466
|
-
i0.ɵɵ
|
|
467
|
-
i0.ɵɵ
|
|
468
|
-
i0.ɵɵ
|
|
469
|
-
i0.ɵɵ
|
|
470
|
-
i0.ɵɵ
|
|
461
|
+
i0.ɵɵelementStart(9, "div", 6)(10, "div", 7)(11, "div", 8);
|
|
462
|
+
i0.ɵɵelement(12, "i", 9);
|
|
463
|
+
i0.ɵɵelementStart(13, "input", 10);
|
|
464
|
+
i0.ɵɵlistener("input", function ExecutionMonitoringComponent_Template_input_input_13_listener($event) { return ctx.onSearchChange($event.target.value); });
|
|
465
|
+
i0.ɵɵelementEnd()()();
|
|
466
|
+
i0.ɵɵelementStart(14, "div", 11)(15, "mj-dropdown", 12);
|
|
467
|
+
i0.ɵɵlistener("ValueChange", function ExecutionMonitoringComponent_Template_mj_dropdown_ValueChange_15_listener($event) { return ctx.onTimeRangeChange($event); });
|
|
471
468
|
i0.ɵɵelementEnd();
|
|
472
|
-
i0.ɵɵelementStart(
|
|
473
|
-
i0.ɵɵlistener("
|
|
469
|
+
i0.ɵɵelementStart(16, "mj-dropdown", 12);
|
|
470
|
+
i0.ɵɵlistener("ValueChange", function ExecutionMonitoringComponent_Template_mj_dropdown_ValueChange_16_listener($event) { return ctx.onResultFilterChange($event); });
|
|
474
471
|
i0.ɵɵelementEnd();
|
|
475
|
-
i0.ɵɵelementStart(
|
|
476
|
-
i0.ɵɵlistener("
|
|
472
|
+
i0.ɵɵelementStart(17, "mj-dropdown", 12);
|
|
473
|
+
i0.ɵɵlistener("ValueChange", function ExecutionMonitoringComponent_Template_mj_dropdown_ValueChange_17_listener($event) { return ctx.onActionFilterChange($event); });
|
|
477
474
|
i0.ɵɵelementEnd()()()();
|
|
478
|
-
i0.ɵɵelementStart(
|
|
479
|
-
i0.ɵɵlistener("click", function
|
|
480
|
-
i0.ɵɵelementStart(
|
|
481
|
-
i0.ɵɵelement(
|
|
475
|
+
i0.ɵɵelementStart(18, "div", 13)(19, "div", 14);
|
|
476
|
+
i0.ɵɵlistener("click", function ExecutionMonitoringComponent_Template_div_click_19_listener() { return ctx.onTotalExecutionsClick(); });
|
|
477
|
+
i0.ɵɵelementStart(20, "div", 15);
|
|
478
|
+
i0.ɵɵelement(21, "i", 16);
|
|
482
479
|
i0.ɵɵelementEnd();
|
|
483
|
-
i0.ɵɵelementStart(
|
|
484
|
-
i0.ɵɵtext(
|
|
480
|
+
i0.ɵɵelementStart(22, "div", 17)(23, "div", 18);
|
|
481
|
+
i0.ɵɵtext(24);
|
|
485
482
|
i0.ɵɵelementEnd();
|
|
486
|
-
i0.ɵɵelementStart(
|
|
487
|
-
i0.ɵɵtext(
|
|
483
|
+
i0.ɵɵelementStart(25, "div", 19);
|
|
484
|
+
i0.ɵɵtext(26, "Total Executions");
|
|
488
485
|
i0.ɵɵelementEnd()()();
|
|
489
|
-
i0.ɵɵelementStart(
|
|
490
|
-
i0.ɵɵlistener("click", function
|
|
491
|
-
i0.ɵɵelementStart(
|
|
492
|
-
i0.ɵɵelement(
|
|
486
|
+
i0.ɵɵelementStart(27, "div", 20);
|
|
487
|
+
i0.ɵɵlistener("click", function ExecutionMonitoringComponent_Template_div_click_27_listener() { return ctx.onSuccessRateClick(); });
|
|
488
|
+
i0.ɵɵelementStart(28, "div", 15);
|
|
489
|
+
i0.ɵɵelement(29, "i", 21);
|
|
493
490
|
i0.ɵɵelementEnd();
|
|
494
|
-
i0.ɵɵelementStart(
|
|
495
|
-
i0.ɵɵtext(
|
|
491
|
+
i0.ɵɵelementStart(30, "div", 17)(31, "div", 18);
|
|
492
|
+
i0.ɵɵtext(32);
|
|
496
493
|
i0.ɵɵelementEnd();
|
|
497
|
-
i0.ɵɵelementStart(
|
|
498
|
-
i0.ɵɵtext(
|
|
494
|
+
i0.ɵɵelementStart(33, "div", 19);
|
|
495
|
+
i0.ɵɵtext(34, "Success Rate");
|
|
499
496
|
i0.ɵɵelementEnd();
|
|
500
|
-
i0.ɵɵelementStart(
|
|
501
|
-
i0.ɵɵtext(
|
|
497
|
+
i0.ɵɵelementStart(35, "div", 22);
|
|
498
|
+
i0.ɵɵtext(36);
|
|
502
499
|
i0.ɵɵelementEnd()()();
|
|
503
|
-
i0.ɵɵelementStart(
|
|
504
|
-
i0.ɵɵlistener("click", function
|
|
505
|
-
i0.ɵɵelementStart(
|
|
506
|
-
i0.ɵɵelement(
|
|
500
|
+
i0.ɵɵelementStart(37, "div", 23);
|
|
501
|
+
i0.ɵɵlistener("click", function ExecutionMonitoringComponent_Template_div_click_37_listener() { return ctx.onFailedExecutionsClick(); });
|
|
502
|
+
i0.ɵɵelementStart(38, "div", 15);
|
|
503
|
+
i0.ɵɵelement(39, "i", 24);
|
|
507
504
|
i0.ɵɵelementEnd();
|
|
508
|
-
i0.ɵɵelementStart(
|
|
509
|
-
i0.ɵɵtext(
|
|
505
|
+
i0.ɵɵelementStart(40, "div", 17)(41, "div", 18);
|
|
506
|
+
i0.ɵɵtext(42);
|
|
510
507
|
i0.ɵɵelementEnd();
|
|
511
|
-
i0.ɵɵelementStart(
|
|
512
|
-
i0.ɵɵtext(
|
|
508
|
+
i0.ɵɵelementStart(43, "div", 19);
|
|
509
|
+
i0.ɵɵtext(44, "Failed Executions");
|
|
513
510
|
i0.ɵɵelementEnd()()();
|
|
514
|
-
i0.ɵɵelementStart(
|
|
515
|
-
i0.ɵɵelement(
|
|
511
|
+
i0.ɵɵelementStart(45, "div", 25)(46, "div", 15);
|
|
512
|
+
i0.ɵɵelement(47, "i", 26);
|
|
516
513
|
i0.ɵɵelementEnd();
|
|
517
|
-
i0.ɵɵelementStart(
|
|
518
|
-
i0.ɵɵtext(
|
|
514
|
+
i0.ɵɵelementStart(48, "div", 17)(49, "div", 18);
|
|
515
|
+
i0.ɵɵtext(50);
|
|
519
516
|
i0.ɵɵelementEnd();
|
|
520
|
-
i0.ɵɵelementStart(
|
|
521
|
-
i0.ɵɵtext(
|
|
517
|
+
i0.ɵɵelementStart(51, "div", 19);
|
|
518
|
+
i0.ɵɵtext(52, "Avg Duration");
|
|
522
519
|
i0.ɵɵelementEnd()()();
|
|
523
|
-
i0.ɵɵelementStart(
|
|
524
|
-
i0.ɵɵelement(
|
|
520
|
+
i0.ɵɵelementStart(53, "div", 27)(54, "div", 15);
|
|
521
|
+
i0.ɵɵelement(55, "i", 28);
|
|
525
522
|
i0.ɵɵelementEnd();
|
|
526
|
-
i0.ɵɵelementStart(
|
|
527
|
-
i0.ɵɵtext(
|
|
523
|
+
i0.ɵɵelementStart(56, "div", 17)(57, "div", 18);
|
|
524
|
+
i0.ɵɵtext(58);
|
|
528
525
|
i0.ɵɵelementEnd();
|
|
529
|
-
i0.ɵɵelementStart(
|
|
530
|
-
i0.ɵɵtext(
|
|
526
|
+
i0.ɵɵelementStart(59, "div", 19);
|
|
527
|
+
i0.ɵɵtext(60, "Today");
|
|
531
528
|
i0.ɵɵelementEnd();
|
|
532
|
-
i0.ɵɵelementStart(
|
|
533
|
-
i0.ɵɵtext(
|
|
529
|
+
i0.ɵɵelementStart(61, "div", 22);
|
|
530
|
+
i0.ɵɵtext(62);
|
|
534
531
|
i0.ɵɵelementEnd()()();
|
|
535
|
-
i0.ɵɵelementStart(
|
|
536
|
-
i0.ɵɵlistener("click", function
|
|
537
|
-
i0.ɵɵelementStart(
|
|
538
|
-
i0.ɵɵelement(
|
|
532
|
+
i0.ɵɵelementStart(63, "div", 29);
|
|
533
|
+
i0.ɵɵlistener("click", function ExecutionMonitoringComponent_Template_div_click_63_listener() { return ctx.onRunningExecutionsClick(); });
|
|
534
|
+
i0.ɵɵelementStart(64, "div", 15);
|
|
535
|
+
i0.ɵɵelement(65, "i", 30);
|
|
539
536
|
i0.ɵɵelementEnd();
|
|
540
|
-
i0.ɵɵelementStart(
|
|
541
|
-
i0.ɵɵtext(
|
|
537
|
+
i0.ɵɵelementStart(66, "div", 17)(67, "div", 18);
|
|
538
|
+
i0.ɵɵtext(68);
|
|
542
539
|
i0.ɵɵelementEnd();
|
|
543
|
-
i0.ɵɵelementStart(
|
|
544
|
-
i0.ɵɵtext(
|
|
540
|
+
i0.ɵɵelementStart(69, "div", 19);
|
|
541
|
+
i0.ɵɵtext(70, "Currently Running");
|
|
545
542
|
i0.ɵɵelementEnd()()()();
|
|
546
|
-
i0.ɵɵelementStart(
|
|
547
|
-
i0.ɵɵelement(
|
|
548
|
-
i0.ɵɵtext(
|
|
543
|
+
i0.ɵɵelementStart(71, "div", 31)(72, "div", 32)(73, "h4");
|
|
544
|
+
i0.ɵɵelement(74, "i", 33);
|
|
545
|
+
i0.ɵɵtext(75, " 7-Day Execution Trends");
|
|
549
546
|
i0.ɵɵelementEnd()();
|
|
550
|
-
i0.ɵɵelementStart(
|
|
551
|
-
i0.ɵɵconditionalCreate(
|
|
547
|
+
i0.ɵɵelementStart(76, "div", 34);
|
|
548
|
+
i0.ɵɵconditionalCreate(77, ExecutionMonitoringComponent_Conditional_77_Template, 12, 0)(78, ExecutionMonitoringComponent_Conditional_78_Template, 4, 0, "div", 35);
|
|
552
549
|
i0.ɵɵelementEnd()();
|
|
553
|
-
i0.ɵɵelementStart(
|
|
554
|
-
i0.ɵɵelement(
|
|
555
|
-
i0.ɵɵtext(
|
|
550
|
+
i0.ɵɵelementStart(79, "div", 36)(80, "div", 32)(81, "h4");
|
|
551
|
+
i0.ɵɵelement(82, "i", 37);
|
|
552
|
+
i0.ɵɵtext(83, " Recent Executions");
|
|
556
553
|
i0.ɵɵelementEnd();
|
|
557
|
-
i0.ɵɵelementStart(
|
|
558
|
-
i0.ɵɵtext(
|
|
554
|
+
i0.ɵɵelementStart(84, "div", 38);
|
|
555
|
+
i0.ɵɵtext(85);
|
|
559
556
|
i0.ɵɵelementEnd()();
|
|
560
|
-
i0.ɵɵelementStart(
|
|
561
|
-
i0.ɵɵconditionalCreate(
|
|
557
|
+
i0.ɵɵelementStart(86, "div", 39);
|
|
558
|
+
i0.ɵɵconditionalCreate(87, ExecutionMonitoringComponent_Conditional_87_Template, 2, 0)(88, ExecutionMonitoringComponent_Conditional_88_Template, 6, 0, "div", 40);
|
|
562
559
|
i0.ɵɵelementEnd()();
|
|
563
|
-
i0.ɵɵconditionalCreate(
|
|
560
|
+
i0.ɵɵconditionalCreate(89, ExecutionMonitoringComponent_Conditional_89_Template, 2, 1, "div", 41);
|
|
564
561
|
i0.ɵɵelementEnd();
|
|
565
562
|
} if (rf & 2) {
|
|
566
|
-
i0.ɵɵadvance(
|
|
567
|
-
i0.ɵɵproperty("primary", true)("icon", "refresh");
|
|
568
|
-
i0.ɵɵadvance(4);
|
|
563
|
+
i0.ɵɵadvance(13);
|
|
569
564
|
i0.ɵɵproperty("value", ctx.searchTerm$.value);
|
|
570
|
-
i0.ɵɵadvance(
|
|
571
|
-
i0.ɵɵproperty("
|
|
565
|
+
i0.ɵɵadvance(2);
|
|
566
|
+
i0.ɵɵproperty("Data", ctx.timeRangeOptions)("ValuePrimitive", true)("ngModel", ctx.selectedTimeRange$.value);
|
|
572
567
|
i0.ɵɵadvance();
|
|
573
|
-
i0.ɵɵproperty("
|
|
568
|
+
i0.ɵɵproperty("Data", ctx.resultOptions)("ValuePrimitive", true)("ngModel", ctx.selectedResult$.value);
|
|
574
569
|
i0.ɵɵadvance();
|
|
575
|
-
i0.ɵɵproperty("
|
|
570
|
+
i0.ɵɵproperty("Data", ctx.actionOptions)("ValuePrimitive", true)("ngModel", ctx.selectedAction$.value);
|
|
576
571
|
i0.ɵɵadvance(7);
|
|
577
572
|
i0.ɵɵtextInterpolate(ctx.metrics.totalExecutions);
|
|
578
573
|
i0.ɵɵadvance(8);
|
|
@@ -590,14 +585,14 @@ let ExecutionMonitoringComponent = class ExecutionMonitoringComponent extends Ba
|
|
|
590
585
|
i0.ɵɵadvance(6);
|
|
591
586
|
i0.ɵɵtextInterpolate(ctx.metrics.currentlyRunning);
|
|
592
587
|
i0.ɵɵadvance(9);
|
|
593
|
-
i0.ɵɵconditional(ctx.executionTrends.length > 0 ?
|
|
588
|
+
i0.ɵɵconditional(ctx.executionTrends.length > 0 ? 77 : 78);
|
|
594
589
|
i0.ɵɵadvance(8);
|
|
595
590
|
i0.ɵɵtextInterpolate1("", ctx.filteredExecutions.length, " executions");
|
|
596
591
|
i0.ɵɵadvance(2);
|
|
597
|
-
i0.ɵɵconditional(ctx.filteredExecutions.length > 0 ?
|
|
592
|
+
i0.ɵɵconditional(ctx.filteredExecutions.length > 0 ? 87 : 88);
|
|
598
593
|
i0.ɵɵadvance(2);
|
|
599
|
-
i0.ɵɵconditional(ctx.isLoading ?
|
|
600
|
-
} }, dependencies: [i2.ButtonComponent, i2.ChipComponent, i3.DropDownListComponent, i4.TextBoxComponent, i4.TextBoxPrefixTemplateDirective, i5.LoadingComponent, i6.DatePipe], styles: [".execution-monitoring[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n padding: 1.5rem;\n height: 100%;\n overflow-y: auto;\n color: var(--mj-text-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 1rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%] .refresh-btn[_ngcontent-%COMP%] {\n gap: 0.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 200px;\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] kendo-textbox[_ngcontent-%COMP%] {\n width: 100%;\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .filter-group[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.75rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .filter-group[_ngcontent-%COMP%] kendo-dropdownlist[_ngcontent-%COMP%] {\n min-width: 140px;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 1rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1.25rem;\n border-radius: 0.75rem;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n box-shadow: 0 2px 4px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n transition: all 0.2s ease;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.clickable[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 8px color-mix(in srgb, var(--mj-text-primary) 15%, transparent);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 0.5rem;\n font-size: 1rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] {\n flex: 1;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n margin-bottom: 0.25rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 0.125rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-detail[_ngcontent-%COMP%] {\n font-size: 0.625rem;\n color: var(--mj-text-muted);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.total[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.success[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.error[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.duration[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.activity[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.running[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.75rem;\n padding: 1.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] {\n margin-bottom: 1.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] {\n display: flex;\n align-items: end;\n gap: 1rem;\n height: 120px;\n margin-bottom: 1rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] .trend-bar[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] .trend-bar[_ngcontent-%COMP%] .bar-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 80px;\n border-radius: 0.25rem;\n overflow: hidden;\n background: var(--mj-border-default);\n position: relative;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] .trend-bar[_ngcontent-%COMP%] .bar-container[_ngcontent-%COMP%] .bar-success[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n width: 100%;\n min-height: 2px;\n transition: height 0.3s ease;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] .trend-bar[_ngcontent-%COMP%] .bar-container[_ngcontent-%COMP%] .bar-failed[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n width: 100%;\n min-height: 2px;\n transition: height 0.3s ease;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] .trend-bar[_ngcontent-%COMP%] .bar-label[_ngcontent-%COMP%] {\n font-size: 0.625rem;\n color: var(--mj-text-muted);\n font-weight: 600;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] .trend-bar[_ngcontent-%COMP%] .bar-total[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .chart-legend[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n gap: 1.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .chart-legend[_ngcontent-%COMP%] .legend-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.75rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .chart-legend[_ngcontent-%COMP%] .legend-item[_ngcontent-%COMP%] .legend-color[_ngcontent-%COMP%] {\n width: 12px;\n height: 12px;\n border-radius: 2px;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .chart-legend[_ngcontent-%COMP%] .legend-item[_ngcontent-%COMP%] .legend-color.success[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .chart-legend[_ngcontent-%COMP%] .legend-item[_ngcontent-%COMP%] .legend-color.failed[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .empty-chart[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 120px;\n color: var(--mj-text-muted);\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .empty-chart[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n opacity: 0.5;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .empty-chart[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.875rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.75rem;\n display: flex;\n flex-direction: column;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1.5rem 1.5rem 0;\n margin-bottom: 1rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] .results-count[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n font-weight: 600;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 0 1.5rem 1.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n margin-bottom: 0.75rem;\n cursor: pointer;\n transition: all 0.2s ease;\n background: var(--mj-bg-surface-elevated);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-status[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-status[_ngcontent-%COMP%] i.fa-check-circle[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-status[_ngcontent-%COMP%] i.fa-exclamation-circle[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-status[_ngcontent-%COMP%] i.fa-spinner[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-status[_ngcontent-%COMP%] i.fa-info-circle[_ngcontent-%COMP%], .execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-status[_ngcontent-%COMP%] i.fa-question[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-main[_ngcontent-%COMP%] {\n flex: 1;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-main[_ngcontent-%COMP%] .execution-action[_ngcontent-%COMP%] {\n font-weight: 600;\n margin-bottom: 0.25rem;\n color: var(--mj-brand-primary);\n cursor: pointer;\n transition: color 0.2s ease;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-main[_ngcontent-%COMP%] .execution-action[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n text-decoration: underline;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-main[_ngcontent-%COMP%] .execution-details[_ngcontent-%COMP%] {\n display: flex;\n gap: 1rem;\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-main[_ngcontent-%COMP%] .execution-details[_ngcontent-%COMP%] .execution-time[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-main[_ngcontent-%COMP%] .execution-details[_ngcontent-%COMP%] .execution-user[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-main[_ngcontent-%COMP%] .execution-details[_ngcontent-%COMP%] .execution-duration[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-result[_ngcontent-%COMP%] {\n flex-shrink: 0;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-actions[_ngcontent-%COMP%] {\n flex-shrink: 0;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%]:hover .execution-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n opacity: 1;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 3rem 2rem;\n text-align: center;\n color: var(--mj-text-muted);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem 0;\n font-size: 1rem;\n font-weight: 600;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.875rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 80%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n@media (max-width: 1200px) {\n .execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] {\n grid-template-columns: repeat(3, 1fr);\n }\n .execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .filter-group[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n}\n@media (max-width: 768px) {\n .execution-monitoring[_ngcontent-%COMP%] {\n padding: 1rem;\n gap: 1rem;\n }\n .execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.75rem;\n }\n .execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n .execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n }\n .execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n gap: 1rem;\n }\n .execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n .execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%], \n .execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .filter-group[_ngcontent-%COMP%] {\n min-width: unset;\n }\n .execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .filter-group[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\n gap: 0.5rem;\n }\n .execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] {\n gap: 0.5rem;\n }\n}"] });
|
|
594
|
+
i0.ɵɵconditional(ctx.isLoading ? 89 : -1);
|
|
595
|
+
} }, dependencies: [i2.NgControlStatus, i2.NgModel, i3.MJButtonDirective, i3.MJDropdownComponent, i4.LoadingComponent, i5.DatePipe], styles: [".execution-monitoring[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n padding: 1.5rem;\n height: 100%;\n overflow-y: auto;\n color: var(--mj-text-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 1rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%] .refresh-btn[_ngcontent-%COMP%] {\n gap: 0.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 200px;\n}\n.execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .filter-group[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.75rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 1rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1.25rem;\n border-radius: 0.75rem;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n box-shadow: 0 2px 4px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n transition: all 0.2s ease;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.clickable[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 8px color-mix(in srgb, var(--mj-text-primary) 15%, transparent);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 0.5rem;\n font-size: 1rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] {\n flex: 1;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n margin-bottom: 0.25rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 0.125rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-detail[_ngcontent-%COMP%] {\n font-size: 0.625rem;\n color: var(--mj-text-muted);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.total[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.success[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.error[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.duration[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.activity[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n.execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card.running[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.75rem;\n padding: 1.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] {\n margin-bottom: 1.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] {\n display: flex;\n align-items: end;\n gap: 1rem;\n height: 120px;\n margin-bottom: 1rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] .trend-bar[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] .trend-bar[_ngcontent-%COMP%] .bar-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 80px;\n border-radius: 0.25rem;\n overflow: hidden;\n background: var(--mj-border-default);\n position: relative;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] .trend-bar[_ngcontent-%COMP%] .bar-container[_ngcontent-%COMP%] .bar-success[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n width: 100%;\n min-height: 2px;\n transition: height 0.3s ease;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] .trend-bar[_ngcontent-%COMP%] .bar-container[_ngcontent-%COMP%] .bar-failed[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n width: 100%;\n min-height: 2px;\n transition: height 0.3s ease;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] .trend-bar[_ngcontent-%COMP%] .bar-label[_ngcontent-%COMP%] {\n font-size: 0.625rem;\n color: var(--mj-text-muted);\n font-weight: 600;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] .trend-bar[_ngcontent-%COMP%] .bar-total[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .chart-legend[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n gap: 1.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .chart-legend[_ngcontent-%COMP%] .legend-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.75rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .chart-legend[_ngcontent-%COMP%] .legend-item[_ngcontent-%COMP%] .legend-color[_ngcontent-%COMP%] {\n width: 12px;\n height: 12px;\n border-radius: 2px;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .chart-legend[_ngcontent-%COMP%] .legend-item[_ngcontent-%COMP%] .legend-color.success[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .chart-legend[_ngcontent-%COMP%] .legend-item[_ngcontent-%COMP%] .legend-color.failed[_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .empty-chart[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 120px;\n color: var(--mj-text-muted);\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .empty-chart[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n opacity: 0.5;\n}\n.execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .empty-chart[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.875rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.75rem;\n display: flex;\n flex-direction: column;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1.5rem 1.5rem 0;\n margin-bottom: 1rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] .results-count[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n font-weight: 600;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 0 1.5rem 1.5rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n margin-bottom: 0.75rem;\n cursor: pointer;\n transition: all 0.2s ease;\n background: var(--mj-bg-surface-elevated);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-status[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-status[_ngcontent-%COMP%] i.fa-check-circle[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-status[_ngcontent-%COMP%] i.fa-exclamation-circle[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-status[_ngcontent-%COMP%] i.fa-spinner[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-status[_ngcontent-%COMP%] i.fa-info-circle[_ngcontent-%COMP%], .execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-status[_ngcontent-%COMP%] i.fa-question[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-main[_ngcontent-%COMP%] {\n flex: 1;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-main[_ngcontent-%COMP%] .execution-action[_ngcontent-%COMP%] {\n font-weight: 600;\n margin-bottom: 0.25rem;\n color: var(--mj-brand-primary);\n cursor: pointer;\n transition: color 0.2s ease;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-main[_ngcontent-%COMP%] .execution-action[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary-hover);\n text-decoration: underline;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-main[_ngcontent-%COMP%] .execution-details[_ngcontent-%COMP%] {\n display: flex;\n gap: 1rem;\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-main[_ngcontent-%COMP%] .execution-details[_ngcontent-%COMP%] .execution-time[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-main[_ngcontent-%COMP%] .execution-details[_ngcontent-%COMP%] .execution-user[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-main[_ngcontent-%COMP%] .execution-details[_ngcontent-%COMP%] .execution-duration[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-result[_ngcontent-%COMP%] {\n flex-shrink: 0;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-actions[_ngcontent-%COMP%] {\n flex-shrink: 0;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%]:hover .execution-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n opacity: 1;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 3rem 2rem;\n text-align: center;\n color: var(--mj-text-muted);\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem 0;\n font-size: 1rem;\n font-weight: 600;\n}\n.execution-monitoring[_ngcontent-%COMP%] .executions-section[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.875rem;\n}\n.execution-monitoring[_ngcontent-%COMP%] .loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 80%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n@media (max-width: 1200px) {\n .execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] {\n grid-template-columns: repeat(3, 1fr);\n }\n .execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .filter-group[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n}\n@media (max-width: 768px) {\n .execution-monitoring[_ngcontent-%COMP%] {\n padding: 1rem;\n gap: 1rem;\n }\n .execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.75rem;\n }\n .execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n .execution-monitoring[_ngcontent-%COMP%] .metrics-summary[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n }\n .execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .header-title[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n gap: 1rem;\n }\n .execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n .execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%], \n .execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .filter-group[_ngcontent-%COMP%] {\n min-width: unset;\n }\n .execution-monitoring[_ngcontent-%COMP%] .monitoring-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .filter-group[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\n gap: 0.5rem;\n }\n .execution-monitoring[_ngcontent-%COMP%] .trends-section[_ngcontent-%COMP%] .trends-chart[_ngcontent-%COMP%] .trend-bars[_ngcontent-%COMP%] {\n gap: 0.5rem;\n }\n}"] });
|
|
601
596
|
};
|
|
602
597
|
ExecutionMonitoringComponent = __decorate([
|
|
603
598
|
RegisterClass(BaseResourceComponent, 'ActionsMonitorResource')
|
|
@@ -605,7 +600,7 @@ ExecutionMonitoringComponent = __decorate([
|
|
|
605
600
|
export { ExecutionMonitoringComponent };
|
|
606
601
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ExecutionMonitoringComponent, [{
|
|
607
602
|
type: Component,
|
|
608
|
-
args: [{ standalone: false, selector: 'mj-execution-monitoring', template: "<div class=\"execution-monitoring\" >\n <!-- Header with filters -->\n <div class=\"monitoring-header\">\n <div class=\"header-title\">\n <h3><i class=\"fa-solid fa-chart-line\"></i> Execution Monitoring</h3>\n <button kendoButton [primary]=\"true\" [icon]=\"'refresh'\" (click)=\"refreshData()\" class=\"refresh-btn\">\n Refresh\n </button>\n </div>\n \n <div class=\"filters-row\">\n <div class=\"search-container\">\n <kendo-textbox \n placeholder=\"Search executions...\" \n [value]=\"searchTerm$.value\"\n (valueChange)=\"onSearchChange($event)\">\n <ng-template kendoTextBoxPrefixTemplate>\n <i class=\"fa-solid fa-search\"></i>\n </ng-template>\n </kendo-textbox>\n </div>\n \n <div class=\"filter-group\">\n <kendo-dropdownlist \n [data]=\"timeRangeOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n [value]=\"selectedTimeRange$.value\"\n (valueChange)=\"onTimeRangeChange($event)\">\n </kendo-dropdownlist>\n \n <kendo-dropdownlist \n [data]=\"resultOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n [value]=\"selectedResult$.value\"\n (valueChange)=\"onResultFilterChange($event)\">\n </kendo-dropdownlist>\n \n <kendo-dropdownlist \n [data]=\"actionOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n [value]=\"selectedAction$.value\"\n (valueChange)=\"onActionFilterChange($event)\">\n </kendo-dropdownlist>\n </div>\n </div>\n </div>\n\n <!-- Metrics Summary -->\n <div class=\"metrics-summary\">\n <div class=\"metric-card total clickable\" (click)=\"onTotalExecutionsClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-play-circle\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.totalExecutions }}</div>\n <div class=\"metric-label\">Total Executions</div>\n </div>\n </div>\n\n <div class=\"metric-card success clickable\" (click)=\"onSuccessRateClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-check-circle\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ getSuccessRate() }}%</div>\n <div class=\"metric-label\">Success Rate</div>\n <div class=\"metric-detail\">{{ metrics.successfulExecutions }}/{{ metrics.totalExecutions }}</div>\n </div>\n </div>\n\n <div class=\"metric-card error clickable\" (click)=\"onFailedExecutionsClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.failedExecutions }}</div>\n <div class=\"metric-label\">Failed Executions</div>\n </div>\n </div>\n\n <div class=\"metric-card duration\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-clock\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.averageDuration }}s</div>\n <div class=\"metric-label\">Avg Duration</div>\n </div>\n </div>\n\n <div class=\"metric-card activity\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-calendar-day\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.executionsToday }}</div>\n <div class=\"metric-label\">Today</div>\n <div class=\"metric-detail\">{{ metrics.executionsThisWeek }} this week</div>\n </div>\n </div>\n\n <div class=\"metric-card running clickable\" (click)=\"onRunningExecutionsClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.currentlyRunning }}</div>\n <div class=\"metric-label\">Currently Running</div>\n </div>\n </div>\n </div>\n\n <!-- Execution Trends Chart -->\n <div class=\"trends-section\">\n <div class=\"section-header\">\n <h4><i class=\"fa-solid fa-chart-area\"></i> 7-Day Execution Trends</h4>\n </div>\n <div class=\"trends-chart\">\n @if (executionTrends.length > 0) {\n <div class=\"trend-bars\">\n @for (trend of executionTrends; track trend.date) {\n <div class=\"trend-bar\">\n <div class=\"bar-container\">\n <div class=\"bar-success\" [style.height.%]=\"trend.total > 0 ? (trend.successful / trend.total) * 100 : 0\"></div>\n <div class=\"bar-failed\" [style.height.%]=\"trend.total > 0 ? (trend.failed / trend.total) * 100 : 0\"></div>\n </div>\n <div class=\"bar-label\">{{ trend.date | date:'MMM d' }}</div>\n <div class=\"bar-total\">{{ trend.total }}</div>\n </div>\n }\n </div>\n <div class=\"chart-legend\">\n <div class=\"legend-item\">\n <div class=\"legend-color success\"></div>\n <span>Successful</span>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-color failed\"></div>\n <span>Failed</span>\n </div>\n </div>\n } @else {\n <div class=\"empty-chart\">\n <i class=\"fa-solid fa-chart-area\"></i>\n <p>No execution trends available</p>\n </div>\n }\n </div>\n </div>\n\n <!-- Execution List -->\n <div class=\"executions-section\">\n <div class=\"section-header\">\n <h4><i class=\"fa-solid fa-list\"></i> Recent Executions</h4>\n <div class=\"results-count\">{{ filteredExecutions.length }} executions</div>\n </div>\n \n <div class=\"executions-list\">\n @if (filteredExecutions.length > 0) {\n @for (execution of filteredExecutions; track execution.ID) {\n <div class=\"execution-item\" (click)=\"openExecution(execution)\">\n <div class=\"execution-status\">\n <i [class]=\"getResultIcon(execution.ResultCode)\"></i>\n </div>\n \n <div class=\"execution-main\">\n <div class=\"execution-action\" (click)=\"openAction(execution.ActionID!); $event.stopPropagation()\">\n {{ getActionName(execution.ActionID!) }}\n </div>\n <div class=\"execution-details\">\n <span class=\"execution-time\">{{ execution.StartedAt | date:'MMM d, HH:mm:ss' }}</span>\n <span class=\"execution-user\">{{ execution.UserID }}</span>\n <span class=\"execution-duration\">{{ getDuration(execution) }}</span>\n </div>\n </div>\n \n <div class=\"execution-result\">\n <kendo-chip \n [themeColor]=\"getResultColor(execution.ResultCode)\"\n [size]=\"'small'\">\n {{ execution.ResultCode || 'Unknown' }}\n </kendo-chip>\n </div>\n \n <div class=\"execution-actions\">\n <button kendoButton \n [fillMode]=\"'flat'\" \n [icon]=\"'more-vertical'\"\n (click)=\"$event.stopPropagation()\">\n </button>\n </div>\n </div>\n }\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-search\"></i>\n <h5>No executions found</h5>\n <p>Try adjusting your filters or search terms</p>\n </div>\n }\n </div>\n </div>\n\n @if (isLoading) {\n <div class=\"loading-overlay\">\n <mj-loading [showText]=\"false\" size=\"medium\"></mj-loading>\n </div>\n }\n</div>", styles: [".execution-monitoring {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n padding: 1.5rem;\n height: 100%;\n overflow-y: auto;\n color: var(--mj-text-primary);\n}\n.execution-monitoring .monitoring-header .header-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 1rem;\n}\n.execution-monitoring .monitoring-header .header-title h3 {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring .monitoring-header .header-title h3 i {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring .monitoring-header .header-title .refresh-btn {\n gap: 0.5rem;\n}\n.execution-monitoring .monitoring-header .filters-row {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.execution-monitoring .monitoring-header .filters-row .search-container {\n flex: 1;\n min-width: 200px;\n}\n.execution-monitoring .monitoring-header .filters-row .search-container kendo-textbox {\n width: 100%;\n}\n.execution-monitoring .monitoring-header .filters-row .filter-group {\n display: flex;\n gap: 0.75rem;\n}\n.execution-monitoring .monitoring-header .filters-row .filter-group kendo-dropdownlist {\n min-width: 140px;\n}\n.execution-monitoring .metrics-summary {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 1rem;\n}\n.execution-monitoring .metrics-summary .metric-card {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1.25rem;\n border-radius: 0.75rem;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n box-shadow: 0 2px 4px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n transition: all 0.2s ease;\n}\n.execution-monitoring .metrics-summary .metric-card.clickable {\n cursor: pointer;\n}\n.execution-monitoring .metrics-summary .metric-card.clickable:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 8px color-mix(in srgb, var(--mj-text-primary) 15%, transparent);\n}\n.execution-monitoring .metrics-summary .metric-card .metric-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 0.5rem;\n font-size: 1rem;\n}\n.execution-monitoring .metrics-summary .metric-card .metric-icon i {\n color: var(--mj-text-inverse);\n}\n.execution-monitoring .metrics-summary .metric-card .metric-content {\n flex: 1;\n}\n.execution-monitoring .metrics-summary .metric-card .metric-content .metric-value {\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n margin-bottom: 0.25rem;\n}\n.execution-monitoring .metrics-summary .metric-card .metric-content .metric-label {\n font-size: 0.75rem;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 0.125rem;\n}\n.execution-monitoring .metrics-summary .metric-card .metric-content .metric-detail {\n font-size: 0.625rem;\n color: var(--mj-text-muted);\n}\n.execution-monitoring .metrics-summary .metric-card.total .metric-icon {\n background: var(--mj-brand-primary);\n}\n.execution-monitoring .metrics-summary .metric-card.success .metric-icon {\n background: var(--mj-status-success);\n}\n.execution-monitoring .metrics-summary .metric-card.error .metric-icon {\n background: var(--mj-status-error);\n}\n.execution-monitoring .metrics-summary .metric-card.duration .metric-icon {\n background: var(--mj-brand-primary);\n}\n.execution-monitoring .metrics-summary .metric-card.activity .metric-icon {\n background: var(--mj-status-warning);\n}\n.execution-monitoring .metrics-summary .metric-card.running .metric-icon {\n background: var(--mj-brand-primary);\n}\n.execution-monitoring .trends-section {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.75rem;\n padding: 1.5rem;\n}\n.execution-monitoring .trends-section .section-header {\n margin-bottom: 1.5rem;\n}\n.execution-monitoring .trends-section .section-header h4 {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring .trends-section .section-header h4 i {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring .trends-section .trends-chart .trend-bars {\n display: flex;\n align-items: end;\n gap: 1rem;\n height: 120px;\n margin-bottom: 1rem;\n}\n.execution-monitoring .trends-section .trends-chart .trend-bars .trend-bar {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring .trends-section .trends-chart .trend-bars .trend-bar .bar-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 80px;\n border-radius: 0.25rem;\n overflow: hidden;\n background: var(--mj-border-default);\n position: relative;\n}\n.execution-monitoring .trends-section .trends-chart .trend-bars .trend-bar .bar-container .bar-success {\n background: var(--mj-status-success);\n width: 100%;\n min-height: 2px;\n transition: height 0.3s ease;\n}\n.execution-monitoring .trends-section .trends-chart .trend-bars .trend-bar .bar-container .bar-failed {\n background: var(--mj-status-error);\n width: 100%;\n min-height: 2px;\n transition: height 0.3s ease;\n}\n.execution-monitoring .trends-section .trends-chart .trend-bars .trend-bar .bar-label {\n font-size: 0.625rem;\n color: var(--mj-text-muted);\n font-weight: 600;\n}\n.execution-monitoring .trends-section .trends-chart .trend-bars .trend-bar .bar-total {\n font-size: 0.75rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n.execution-monitoring .trends-section .trends-chart .chart-legend {\n display: flex;\n justify-content: center;\n gap: 1.5rem;\n}\n.execution-monitoring .trends-section .trends-chart .chart-legend .legend-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.75rem;\n}\n.execution-monitoring .trends-section .trends-chart .chart-legend .legend-item .legend-color {\n width: 12px;\n height: 12px;\n border-radius: 2px;\n}\n.execution-monitoring .trends-section .trends-chart .chart-legend .legend-item .legend-color.success {\n background: var(--mj-status-success);\n}\n.execution-monitoring .trends-section .trends-chart .chart-legend .legend-item .legend-color.failed {\n background: var(--mj-status-error);\n}\n.execution-monitoring .trends-section .trends-chart .empty-chart {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 120px;\n color: var(--mj-text-muted);\n}\n.execution-monitoring .trends-section .trends-chart .empty-chart i {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n opacity: 0.5;\n}\n.execution-monitoring .trends-section .trends-chart .empty-chart p {\n margin: 0;\n font-size: 0.875rem;\n}\n.execution-monitoring .executions-section {\n flex: 1;\n min-height: 0;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.75rem;\n display: flex;\n flex-direction: column;\n}\n.execution-monitoring .executions-section .section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1.5rem 1.5rem 0;\n margin-bottom: 1rem;\n}\n.execution-monitoring .executions-section .section-header h4 {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring .executions-section .section-header h4 i {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring .executions-section .section-header .results-count {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n font-weight: 600;\n}\n.execution-monitoring .executions-section .executions-list {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 0 1.5rem 1.5rem;\n}\n.execution-monitoring .executions-section .executions-list .execution-item {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n margin-bottom: 0.75rem;\n cursor: pointer;\n transition: all 0.2s ease;\n background: var(--mj-bg-surface-elevated);\n}\n.execution-monitoring .executions-section .executions-list .execution-item:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-status {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-status i {\n font-size: 1rem;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-status i.fa-check-circle {\n color: var(--mj-status-success);\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-status i.fa-exclamation-circle {\n color: var(--mj-status-error);\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-status i.fa-spinner {\n color: var(--mj-status-warning);\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-status i.fa-info-circle, .execution-monitoring .executions-section .executions-list .execution-item .execution-status i.fa-question {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-main {\n flex: 1;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-main .execution-action {\n font-weight: 600;\n margin-bottom: 0.25rem;\n color: var(--mj-brand-primary);\n cursor: pointer;\n transition: color 0.2s ease;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-main .execution-action:hover {\n color: var(--mj-brand-primary-hover);\n text-decoration: underline;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-main .execution-details {\n display: flex;\n gap: 1rem;\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-main .execution-details .execution-time {\n font-weight: 600;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-main .execution-details .execution-user {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-main .execution-details .execution-duration {\n font-weight: 600;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-result {\n flex-shrink: 0;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-actions {\n flex-shrink: 0;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-actions button {\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.execution-monitoring .executions-section .executions-list .execution-item:hover .execution-actions button {\n opacity: 1;\n}\n.execution-monitoring .executions-section .executions-list .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 3rem 2rem;\n text-align: center;\n color: var(--mj-text-muted);\n}\n.execution-monitoring .executions-section .executions-list .empty-state i {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n}\n.execution-monitoring .executions-section .executions-list .empty-state h5 {\n margin: 0 0 0.5rem 0;\n font-size: 1rem;\n font-weight: 600;\n}\n.execution-monitoring .executions-section .executions-list .empty-state p {\n margin: 0;\n font-size: 0.875rem;\n}\n.execution-monitoring .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 80%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n@media (max-width: 1200px) {\n .execution-monitoring .metrics-summary {\n grid-template-columns: repeat(3, 1fr);\n }\n .execution-monitoring .monitoring-header .filters-row .filter-group {\n flex-wrap: wrap;\n }\n}\n@media (max-width: 768px) {\n .execution-monitoring {\n padding: 1rem;\n gap: 1rem;\n }\n .execution-monitoring .metrics-summary {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.75rem;\n }\n .execution-monitoring .metrics-summary .metric-card {\n padding: 1rem;\n }\n .execution-monitoring .metrics-summary .metric-card .metric-content .metric-value {\n font-size: 1.25rem;\n }\n .execution-monitoring .monitoring-header .header-title {\n flex-direction: column;\n align-items: stretch;\n gap: 1rem;\n }\n .execution-monitoring .monitoring-header .filters-row {\n flex-direction: column;\n align-items: stretch;\n }\n .execution-monitoring .monitoring-header .filters-row .search-container,\n .execution-monitoring .monitoring-header .filters-row .filter-group {\n min-width: unset;\n }\n .execution-monitoring .monitoring-header .filters-row .filter-group {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\n gap: 0.5rem;\n }\n .execution-monitoring .trends-section .trends-chart .trend-bars {\n gap: 0.5rem;\n }\n}\n"] }]
|
|
603
|
+
args: [{ standalone: false, selector: 'mj-execution-monitoring', template: "<div class=\"execution-monitoring\" >\n <!-- Header with filters -->\n <div class=\"monitoring-header\">\n <div class=\"header-title\">\n <h3><i class=\"fa-solid fa-chart-line\"></i> Execution Monitoring</h3>\n <button mjButton variant=\"primary\" (click)=\"refreshData()\" class=\"refresh-btn\">\n <i class=\"fa-solid fa-refresh\"></i> Refresh\n </button>\n </div>\n \n <div class=\"filters-row\">\n <div class=\"search-container\">\n <div class=\"search-input-wrapper\">\n <i class=\"fa-solid fa-search search-icon\"></i>\n <input type=\"text\" class=\"mj-input\"\n placeholder=\"Search executions...\"\n [value]=\"searchTerm$.value\"\n (input)=\"onSearchChange($any($event.target).value)\" />\n </div>\n </div>\n\n <div class=\"filter-group\">\n <mj-dropdown\n [Data]=\"timeRangeOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n [ngModel]=\"selectedTimeRange$.value\"\n (ValueChange)=\"onTimeRangeChange($any($event))\">\n </mj-dropdown>\n\n <mj-dropdown\n [Data]=\"resultOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n [ngModel]=\"selectedResult$.value\"\n (ValueChange)=\"onResultFilterChange($any($event))\">\n </mj-dropdown>\n\n <mj-dropdown\n [Data]=\"actionOptions\"\n TextField=\"text\"\n ValueField=\"value\"\n [ValuePrimitive]=\"true\"\n [ngModel]=\"selectedAction$.value\"\n (ValueChange)=\"onActionFilterChange($any($event))\">\n </mj-dropdown>\n </div>\n </div>\n </div>\n\n <!-- Metrics Summary -->\n <div class=\"metrics-summary\">\n <div class=\"metric-card total clickable\" (click)=\"onTotalExecutionsClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-play-circle\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.totalExecutions }}</div>\n <div class=\"metric-label\">Total Executions</div>\n </div>\n </div>\n\n <div class=\"metric-card success clickable\" (click)=\"onSuccessRateClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-check-circle\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ getSuccessRate() }}%</div>\n <div class=\"metric-label\">Success Rate</div>\n <div class=\"metric-detail\">{{ metrics.successfulExecutions }}/{{ metrics.totalExecutions }}</div>\n </div>\n </div>\n\n <div class=\"metric-card error clickable\" (click)=\"onFailedExecutionsClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.failedExecutions }}</div>\n <div class=\"metric-label\">Failed Executions</div>\n </div>\n </div>\n\n <div class=\"metric-card duration\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-clock\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.averageDuration }}s</div>\n <div class=\"metric-label\">Avg Duration</div>\n </div>\n </div>\n\n <div class=\"metric-card activity\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-calendar-day\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.executionsToday }}</div>\n <div class=\"metric-label\">Today</div>\n <div class=\"metric-detail\">{{ metrics.executionsThisWeek }} this week</div>\n </div>\n </div>\n\n <div class=\"metric-card running clickable\" (click)=\"onRunningExecutionsClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.currentlyRunning }}</div>\n <div class=\"metric-label\">Currently Running</div>\n </div>\n </div>\n </div>\n\n <!-- Execution Trends Chart -->\n <div class=\"trends-section\">\n <div class=\"section-header\">\n <h4><i class=\"fa-solid fa-chart-area\"></i> 7-Day Execution Trends</h4>\n </div>\n <div class=\"trends-chart\">\n @if (executionTrends.length > 0) {\n <div class=\"trend-bars\">\n @for (trend of executionTrends; track trend.date) {\n <div class=\"trend-bar\">\n <div class=\"bar-container\">\n <div class=\"bar-success\" [style.height.%]=\"trend.total > 0 ? (trend.successful / trend.total) * 100 : 0\"></div>\n <div class=\"bar-failed\" [style.height.%]=\"trend.total > 0 ? (trend.failed / trend.total) * 100 : 0\"></div>\n </div>\n <div class=\"bar-label\">{{ trend.date | date:'MMM d' }}</div>\n <div class=\"bar-total\">{{ trend.total }}</div>\n </div>\n }\n </div>\n <div class=\"chart-legend\">\n <div class=\"legend-item\">\n <div class=\"legend-color success\"></div>\n <span>Successful</span>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-color failed\"></div>\n <span>Failed</span>\n </div>\n </div>\n } @else {\n <div class=\"empty-chart\">\n <i class=\"fa-solid fa-chart-area\"></i>\n <p>No execution trends available</p>\n </div>\n }\n </div>\n </div>\n\n <!-- Execution List -->\n <div class=\"executions-section\">\n <div class=\"section-header\">\n <h4><i class=\"fa-solid fa-list\"></i> Recent Executions</h4>\n <div class=\"results-count\">{{ filteredExecutions.length }} executions</div>\n </div>\n \n <div class=\"executions-list\">\n @if (filteredExecutions.length > 0) {\n @for (execution of filteredExecutions; track execution.ID) {\n <div class=\"execution-item\" (click)=\"openExecution(execution)\">\n <div class=\"execution-status\">\n <i [class]=\"getResultIcon(execution.ResultCode)\"></i>\n </div>\n \n <div class=\"execution-main\">\n <div class=\"execution-action\" (click)=\"openAction(execution.ActionID!); $event.stopPropagation()\">\n {{ getActionName(execution.ActionID!) }}\n </div>\n <div class=\"execution-details\">\n <span class=\"execution-time\">{{ execution.StartedAt | date:'MMM d, HH:mm:ss' }}</span>\n <span class=\"execution-user\">{{ execution.UserID }}</span>\n <span class=\"execution-duration\">{{ getDuration(execution) }}</span>\n </div>\n </div>\n \n <div class=\"execution-result\">\n <span class=\"status-chip\" [attr.data-color]=\"getResultColor(execution.ResultCode)\">\n {{ execution.ResultCode || 'Unknown' }}\n </span>\n </div>\n \n <div class=\"execution-actions\">\n <button mjButton\n variant=\"flat\"\n (click)=\"$event.stopPropagation()\">\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </button>\n </div>\n </div>\n }\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-search\"></i>\n <h5>No executions found</h5>\n <p>Try adjusting your filters or search terms</p>\n </div>\n }\n </div>\n </div>\n\n @if (isLoading) {\n <div class=\"loading-overlay\">\n <mj-loading [showText]=\"false\" size=\"medium\"></mj-loading>\n </div>\n }\n</div>", styles: [".execution-monitoring {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n padding: 1.5rem;\n height: 100%;\n overflow-y: auto;\n color: var(--mj-text-primary);\n}\n.execution-monitoring .monitoring-header .header-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 1rem;\n}\n.execution-monitoring .monitoring-header .header-title h3 {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring .monitoring-header .header-title h3 i {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring .monitoring-header .header-title .refresh-btn {\n gap: 0.5rem;\n}\n.execution-monitoring .monitoring-header .filters-row {\n display: flex;\n align-items: center;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.execution-monitoring .monitoring-header .filters-row .search-container {\n flex: 1;\n min-width: 200px;\n}\n.execution-monitoring .monitoring-header .filters-row .filter-group {\n display: flex;\n gap: 0.75rem;\n}\n.execution-monitoring .metrics-summary {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 1rem;\n}\n.execution-monitoring .metrics-summary .metric-card {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1.25rem;\n border-radius: 0.75rem;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n box-shadow: 0 2px 4px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n transition: all 0.2s ease;\n}\n.execution-monitoring .metrics-summary .metric-card.clickable {\n cursor: pointer;\n}\n.execution-monitoring .metrics-summary .metric-card.clickable:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 8px color-mix(in srgb, var(--mj-text-primary) 15%, transparent);\n}\n.execution-monitoring .metrics-summary .metric-card .metric-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 0.5rem;\n font-size: 1rem;\n}\n.execution-monitoring .metrics-summary .metric-card .metric-icon i {\n color: var(--mj-text-inverse);\n}\n.execution-monitoring .metrics-summary .metric-card .metric-content {\n flex: 1;\n}\n.execution-monitoring .metrics-summary .metric-card .metric-content .metric-value {\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n margin-bottom: 0.25rem;\n}\n.execution-monitoring .metrics-summary .metric-card .metric-content .metric-label {\n font-size: 0.75rem;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 0.125rem;\n}\n.execution-monitoring .metrics-summary .metric-card .metric-content .metric-detail {\n font-size: 0.625rem;\n color: var(--mj-text-muted);\n}\n.execution-monitoring .metrics-summary .metric-card.total .metric-icon {\n background: var(--mj-brand-primary);\n}\n.execution-monitoring .metrics-summary .metric-card.success .metric-icon {\n background: var(--mj-status-success);\n}\n.execution-monitoring .metrics-summary .metric-card.error .metric-icon {\n background: var(--mj-status-error);\n}\n.execution-monitoring .metrics-summary .metric-card.duration .metric-icon {\n background: var(--mj-brand-primary);\n}\n.execution-monitoring .metrics-summary .metric-card.activity .metric-icon {\n background: var(--mj-status-warning);\n}\n.execution-monitoring .metrics-summary .metric-card.running .metric-icon {\n background: var(--mj-brand-primary);\n}\n.execution-monitoring .trends-section {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.75rem;\n padding: 1.5rem;\n}\n.execution-monitoring .trends-section .section-header {\n margin-bottom: 1.5rem;\n}\n.execution-monitoring .trends-section .section-header h4 {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring .trends-section .section-header h4 i {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring .trends-section .trends-chart .trend-bars {\n display: flex;\n align-items: end;\n gap: 1rem;\n height: 120px;\n margin-bottom: 1rem;\n}\n.execution-monitoring .trends-section .trends-chart .trend-bars .trend-bar {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring .trends-section .trends-chart .trend-bars .trend-bar .bar-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 80px;\n border-radius: 0.25rem;\n overflow: hidden;\n background: var(--mj-border-default);\n position: relative;\n}\n.execution-monitoring .trends-section .trends-chart .trend-bars .trend-bar .bar-container .bar-success {\n background: var(--mj-status-success);\n width: 100%;\n min-height: 2px;\n transition: height 0.3s ease;\n}\n.execution-monitoring .trends-section .trends-chart .trend-bars .trend-bar .bar-container .bar-failed {\n background: var(--mj-status-error);\n width: 100%;\n min-height: 2px;\n transition: height 0.3s ease;\n}\n.execution-monitoring .trends-section .trends-chart .trend-bars .trend-bar .bar-label {\n font-size: 0.625rem;\n color: var(--mj-text-muted);\n font-weight: 600;\n}\n.execution-monitoring .trends-section .trends-chart .trend-bars .trend-bar .bar-total {\n font-size: 0.75rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n.execution-monitoring .trends-section .trends-chart .chart-legend {\n display: flex;\n justify-content: center;\n gap: 1.5rem;\n}\n.execution-monitoring .trends-section .trends-chart .chart-legend .legend-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.75rem;\n}\n.execution-monitoring .trends-section .trends-chart .chart-legend .legend-item .legend-color {\n width: 12px;\n height: 12px;\n border-radius: 2px;\n}\n.execution-monitoring .trends-section .trends-chart .chart-legend .legend-item .legend-color.success {\n background: var(--mj-status-success);\n}\n.execution-monitoring .trends-section .trends-chart .chart-legend .legend-item .legend-color.failed {\n background: var(--mj-status-error);\n}\n.execution-monitoring .trends-section .trends-chart .empty-chart {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 120px;\n color: var(--mj-text-muted);\n}\n.execution-monitoring .trends-section .trends-chart .empty-chart i {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n opacity: 0.5;\n}\n.execution-monitoring .trends-section .trends-chart .empty-chart p {\n margin: 0;\n font-size: 0.875rem;\n}\n.execution-monitoring .executions-section {\n flex: 1;\n min-height: 0;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 0.75rem;\n display: flex;\n flex-direction: column;\n}\n.execution-monitoring .executions-section .section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1.5rem 1.5rem 0;\n margin-bottom: 1rem;\n}\n.execution-monitoring .executions-section .section-header h4 {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.execution-monitoring .executions-section .section-header h4 i {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring .executions-section .section-header .results-count {\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n font-weight: 600;\n}\n.execution-monitoring .executions-section .executions-list {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 0 1.5rem 1.5rem;\n}\n.execution-monitoring .executions-section .executions-list .execution-item {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n border: 1px solid var(--mj-border-default);\n border-radius: 0.5rem;\n margin-bottom: 0.75rem;\n cursor: pointer;\n transition: all 0.2s ease;\n background: var(--mj-bg-surface-elevated);\n}\n.execution-monitoring .executions-section .executions-list .execution-item:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px color-mix(in srgb, var(--mj-text-primary) 10%, transparent);\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-status {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-status i {\n font-size: 1rem;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-status i.fa-check-circle {\n color: var(--mj-status-success);\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-status i.fa-exclamation-circle {\n color: var(--mj-status-error);\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-status i.fa-spinner {\n color: var(--mj-status-warning);\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-status i.fa-info-circle, .execution-monitoring .executions-section .executions-list .execution-item .execution-status i.fa-question {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-main {\n flex: 1;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-main .execution-action {\n font-weight: 600;\n margin-bottom: 0.25rem;\n color: var(--mj-brand-primary);\n cursor: pointer;\n transition: color 0.2s ease;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-main .execution-action:hover {\n color: var(--mj-brand-primary-hover);\n text-decoration: underline;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-main .execution-details {\n display: flex;\n gap: 1rem;\n font-size: 0.75rem;\n color: var(--mj-text-muted);\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-main .execution-details .execution-time {\n font-weight: 600;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-main .execution-details .execution-user {\n color: var(--mj-brand-primary);\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-main .execution-details .execution-duration {\n font-weight: 600;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-result {\n flex-shrink: 0;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-actions {\n flex-shrink: 0;\n}\n.execution-monitoring .executions-section .executions-list .execution-item .execution-actions button {\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.execution-monitoring .executions-section .executions-list .execution-item:hover .execution-actions button {\n opacity: 1;\n}\n.execution-monitoring .executions-section .executions-list .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 3rem 2rem;\n text-align: center;\n color: var(--mj-text-muted);\n}\n.execution-monitoring .executions-section .executions-list .empty-state i {\n font-size: 3rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n}\n.execution-monitoring .executions-section .executions-list .empty-state h5 {\n margin: 0 0 0.5rem 0;\n font-size: 1rem;\n font-weight: 600;\n}\n.execution-monitoring .executions-section .executions-list .empty-state p {\n margin: 0;\n font-size: 0.875rem;\n}\n.execution-monitoring .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 80%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n@media (max-width: 1200px) {\n .execution-monitoring .metrics-summary {\n grid-template-columns: repeat(3, 1fr);\n }\n .execution-monitoring .monitoring-header .filters-row .filter-group {\n flex-wrap: wrap;\n }\n}\n@media (max-width: 768px) {\n .execution-monitoring {\n padding: 1rem;\n gap: 1rem;\n }\n .execution-monitoring .metrics-summary {\n grid-template-columns: repeat(2, 1fr);\n gap: 0.75rem;\n }\n .execution-monitoring .metrics-summary .metric-card {\n padding: 1rem;\n }\n .execution-monitoring .metrics-summary .metric-card .metric-content .metric-value {\n font-size: 1.25rem;\n }\n .execution-monitoring .monitoring-header .header-title {\n flex-direction: column;\n align-items: stretch;\n gap: 1rem;\n }\n .execution-monitoring .monitoring-header .filters-row {\n flex-direction: column;\n align-items: stretch;\n }\n .execution-monitoring .monitoring-header .filters-row .search-container,\n .execution-monitoring .monitoring-header .filters-row .filter-group {\n min-width: unset;\n }\n .execution-monitoring .monitoring-header .filters-row .filter-group {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\n gap: 0.5rem;\n }\n .execution-monitoring .trends-section .trends-chart .trend-bars {\n gap: 0.5rem;\n }\n}\n"] }]
|
|
609
604
|
}], () => [{ type: i1.NavigationService }, { type: i0.ChangeDetectorRef }], null); })();
|
|
610
605
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ExecutionMonitoringComponent, { className: "ExecutionMonitoringComponent", filePath: "src/Actions/components/execution-monitoring.component.ts", lineNumber: 35 }); })();
|
|
611
606
|
//# sourceMappingURL=execution-monitoring.component.js.map
|