@memberjunction/ng-dashboards 6.2.0-edge.6 → 6.2.0-edge.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/README.md +23 -16
  2. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +2 -2
  3. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  4. package/dist/AI/components/analytics/realtime/realtime-management.component.d.ts.map +1 -1
  5. package/dist/AI/components/analytics/realtime/realtime-management.component.js +3 -1
  6. package/dist/AI/components/analytics/realtime/realtime-management.component.js.map +1 -1
  7. package/dist/AI/components/analytics/realtime/realtime-overview.component.d.ts +1 -1
  8. package/dist/AI/components/analytics/realtime/realtime-overview.component.js +3 -3
  9. package/dist/AI/components/analytics/realtime/realtime-overview.component.js.map +1 -1
  10. package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts +6 -4
  11. package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts.map +1 -1
  12. package/dist/AI/components/analytics/realtime/realtime-session-data.js +8 -2
  13. package/dist/AI/components/analytics/realtime/realtime-session-data.js.map +1 -1
  14. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +6 -6
  15. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  16. package/dist/AI/components/autotagging/components/classify-item-grid.component.js +1 -1
  17. package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -1
  18. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -1
  19. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +1 -0
  20. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -1
  21. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -1
  22. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +1 -0
  23. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -1
  24. package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -1
  25. package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1 -0
  26. package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -1
  27. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  28. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +1 -0
  29. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  30. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +2 -2
  31. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
  32. package/dist/AI/components/tags/tags-resource.component.js +3 -2
  33. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  34. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  35. package/dist/AI/components/vectors/vector-management-resource.component.js +12 -6
  36. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  37. package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
  38. package/dist/AI/services/ai-instrumentation.service.js +4 -2
  39. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  40. package/dist/Actions/action-result-code.d.ts +80 -0
  41. package/dist/Actions/action-result-code.d.ts.map +1 -0
  42. package/dist/Actions/action-result-code.js +163 -0
  43. package/dist/Actions/action-result-code.js.map +1 -0
  44. package/dist/Actions/components/actions-overview.component.d.ts +8 -0
  45. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  46. package/dist/Actions/components/actions-overview.component.js +12 -9
  47. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  48. package/dist/Actions/components/execution-monitoring.component.d.ts +29 -9
  49. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  50. package/dist/Actions/components/execution-monitoring.component.js +65 -42
  51. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  52. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
  53. package/dist/Actions/components/explorer/action-card.component.js +5 -4
  54. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  55. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +92 -130
  56. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -1
  57. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +189 -274
  58. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -1
  59. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts +29 -0
  60. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts.map +1 -0
  61. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js +666 -0
  62. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js.map +1 -0
  63. package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts +56 -0
  64. package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts.map +1 -0
  65. package/dist/ChiefOfStaff/chief-of-staff-governance.component.js +515 -0
  66. package/dist/ChiefOfStaff/chief-of-staff-governance.component.js.map +1 -0
  67. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts +14 -0
  68. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts.map +1 -0
  69. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js +39 -0
  70. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js.map +1 -0
  71. package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts +17 -0
  72. package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts.map +1 -0
  73. package/dist/ChiefOfStaff/chief-of-staff-overview.component.js +485 -0
  74. package/dist/ChiefOfStaff/chief-of-staff-overview.component.js.map +1 -0
  75. package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts +139 -0
  76. package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts.map +1 -0
  77. package/dist/ChiefOfStaff/chief-of-staff-page-base.js +602 -0
  78. package/dist/ChiefOfStaff/chief-of-staff-page-base.js.map +1 -0
  79. package/dist/ChiefOfStaff/index.d.ts +4 -1
  80. package/dist/ChiefOfStaff/index.d.ts.map +1 -1
  81. package/dist/ChiefOfStaff/index.js +4 -1
  82. package/dist/ChiefOfStaff/index.js.map +1 -1
  83. package/dist/Communication/communication-monitor-resource.component.js +3 -3
  84. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  85. package/dist/Communication/communication-runs-resource.component.js +3 -3
  86. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  87. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  88. package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
  89. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  90. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  91. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +2 -1
  92. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  93. package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -1
  94. package/dist/ComponentStudio/services/component-version.service.js +3 -0
  95. package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
  96. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +21 -2
  97. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  98. package/dist/DataExplorer/data-explorer-dashboard.component.js +32 -5
  99. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  100. package/dist/DevTools/graphql-console.component.js +2 -2
  101. package/dist/DevTools/lazy-module-status.component.js +2 -2
  102. package/dist/FormBuilder/form-builder-resource.component.d.ts.map +1 -1
  103. package/dist/FormBuilder/form-builder-resource.component.js +5 -0
  104. package/dist/FormBuilder/form-builder-resource.component.js.map +1 -1
  105. package/dist/Integration/components/connections/connections.component.js +2 -2
  106. package/dist/Integration/services/integration-data.service.d.ts +1 -1
  107. package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
  108. package/dist/Integration/services/integration-data.service.js +4 -3
  109. package/dist/Integration/services/integration-data.service.js.map +1 -1
  110. package/dist/Lists/components/lists-browse-resource.component.js +1 -1
  111. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  112. package/dist/Lists/components/lists-my-lists-resource.component.js +1 -1
  113. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  114. package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -1
  115. package/dist/LoginStudio/login-studio-resource.component.js +1 -0
  116. package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
  117. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
  118. package/dist/PredictiveStudio/components/ps-experiments.component.js +1 -0
  119. package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
  120. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +2 -2
  121. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
  122. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +3 -0
  123. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
  124. package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
  125. package/dist/PredictiveStudio/engine/predictive-studio.engine.js +1 -0
  126. package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
  127. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
  128. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +1 -0
  129. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
  130. package/dist/QueryBrowser/query-browser-resource.component.d.ts +26 -0
  131. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  132. package/dist/QueryBrowser/query-browser-resource.component.js +375 -252
  133. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  134. package/dist/UserRoutines/user-routines-resource.component.d.ts +8 -1
  135. package/dist/UserRoutines/user-routines-resource.component.d.ts.map +1 -1
  136. package/dist/UserRoutines/user-routines-resource.component.js +22 -4
  137. package/dist/UserRoutines/user-routines-resource.component.js.map +1 -1
  138. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
  139. package/dist/VersionHistory/components/diff-resource.component.js +1 -0
  140. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  141. package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts +162 -0
  142. package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts.map +1 -0
  143. package/dist/VideoStudio/components/vs-archetype-editor.component.js +1105 -0
  144. package/dist/VideoStudio/components/vs-archetype-editor.component.js.map +1 -0
  145. package/dist/VideoStudio/components/vs-audio-options.component.d.ts +27 -0
  146. package/dist/VideoStudio/components/vs-audio-options.component.d.ts.map +1 -0
  147. package/dist/VideoStudio/components/vs-audio-options.component.js +119 -0
  148. package/dist/VideoStudio/components/vs-audio-options.component.js.map +1 -0
  149. package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts +105 -0
  150. package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts.map +1 -0
  151. package/dist/VideoStudio/components/vs-copilot-panel.component.js +560 -0
  152. package/dist/VideoStudio/components/vs-copilot-panel.component.js.map +1 -0
  153. package/dist/VideoStudio/components/vs-production-brief.component.d.ts +163 -0
  154. package/dist/VideoStudio/components/vs-production-brief.component.d.ts.map +1 -0
  155. package/dist/VideoStudio/components/vs-production-brief.component.js +1054 -0
  156. package/dist/VideoStudio/components/vs-production-brief.component.js.map +1 -0
  157. package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts +43 -0
  158. package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts.map +1 -0
  159. package/dist/VideoStudio/components/vs-setup-health-card.component.js +412 -0
  160. package/dist/VideoStudio/components/vs-setup-health-card.component.js.map +1 -0
  161. package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts +73 -0
  162. package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts.map +1 -0
  163. package/dist/VideoStudio/components/vs-studio-slide-in.component.js +271 -0
  164. package/dist/VideoStudio/components/vs-studio-slide-in.component.js.map +1 -0
  165. package/dist/VideoStudio/index.d.ts +12 -0
  166. package/dist/VideoStudio/index.d.ts.map +1 -0
  167. package/dist/VideoStudio/index.js +12 -0
  168. package/dist/VideoStudio/index.js.map +1 -0
  169. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts +118 -0
  170. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts.map +1 -0
  171. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js +964 -0
  172. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js.map +1 -0
  173. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts +70 -0
  174. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts.map +1 -0
  175. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js +600 -0
  176. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js.map +1 -0
  177. package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts +182 -0
  178. package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts.map +1 -0
  179. package/dist/VideoStudio/resources/video-studio-productions-resource.component.js +1481 -0
  180. package/dist/VideoStudio/resources/video-studio-productions-resource.component.js.map +1 -0
  181. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts +102 -0
  182. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts.map +1 -0
  183. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js +240 -0
  184. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js.map +1 -0
  185. package/dist/VideoStudio/video-studio-agent-context.d.ts +495 -0
  186. package/dist/VideoStudio/video-studio-agent-context.d.ts.map +1 -0
  187. package/dist/VideoStudio/video-studio-agent-context.js +992 -0
  188. package/dist/VideoStudio/video-studio-agent-context.js.map +1 -0
  189. package/dist/ai-dashboards.module.d.ts +25 -22
  190. package/dist/ai-dashboards.module.d.ts.map +1 -1
  191. package/dist/ai-dashboards.module.js +23 -7
  192. package/dist/ai-dashboards.module.js.map +1 -1
  193. package/dist/module.d.ts +13 -12
  194. package/dist/module.d.ts.map +1 -1
  195. package/dist/module.js +7 -0
  196. package/dist/module.js.map +1 -1
  197. package/dist/public-api.d.ts +7 -1
  198. package/dist/public-api.d.ts.map +1 -1
  199. package/dist/public-api.js +9 -2
  200. package/dist/public-api.js.map +1 -1
  201. package/dist/shared/action-scheduled-job.d.ts.map +1 -1
  202. package/dist/shared/action-scheduled-job.js +2 -0
  203. package/dist/shared/action-scheduled-job.js.map +1 -1
  204. package/dist/video-studio-dashboards.module.d.ts +40 -0
  205. package/dist/video-studio-dashboards.module.d.ts.map +1 -0
  206. package/dist/video-studio-dashboards.module.js +159 -0
  207. package/dist/video-studio-dashboards.module.js.map +1 -0
  208. package/package.json +77 -71
  209. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts +0 -195
  210. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts.map +0 -1
  211. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js +0 -2910
  212. package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js.map +0 -1
@@ -4,6 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ var ActionExecutionMonitoringComponent_1;
7
8
  import { Component } from '@angular/core';
8
9
  import { CompositeKey, RunView, LogError } from '@memberjunction/core';
9
10
  import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
@@ -12,6 +13,7 @@ import { Subject, BehaviorSubject, combineLatest } from 'rxjs';
12
13
  import { debounceTime, takeUntil, distinctUntilChanged } from 'rxjs/operators';
13
14
  import { ValidateEnumParam, BoundNameList } from '../../shared/agent-tool-validation';
14
15
  import { FindByIdOrError, FindByIdOrNameOrError } from '../agent-tool-helpers';
16
+ import { ActionResultColor, ActionResultIcon, ActionSuccessRate, ClassifyActionResultCode, } from '../action-result-code';
15
17
  import * as i0 from "@angular/core";
16
18
  import * as i1 from "@memberjunction/ng-ui-components";
17
19
  import * as i2 from "@memberjunction/ng-shared-generic";
@@ -129,6 +131,7 @@ function ActionExecutionMonitoringComponent_Conditional_81_Template(rf, ctx) { i
129
131
  * Execution Monitoring Resource - displays action execution logs and metrics
130
132
  */
131
133
  let ActionExecutionMonitoringComponent = class ActionExecutionMonitoringComponent extends BaseResourceComponent {
134
+ static { ActionExecutionMonitoringComponent_1 = this; }
132
135
  cdr;
133
136
  isLoading = true;
134
137
  Executions = [];
@@ -234,21 +237,43 @@ let ActionExecutionMonitoringComponent = class ActionExecutionMonitoringComponen
234
237
  set timeRangeOptions(value) {
235
238
  this.TimeRangeOptions = value;
236
239
  }
237
- ResultOptions = [
240
+ /**
241
+ * The visible result filter. `Failed` and `Error` were two separate options that both
242
+ * matched the stored code literally; they are one option now because they are one OUTCOME —
243
+ * a run that ended without succeeding — and the codes for it (`RUNTIME_ERROR`, `TIMEOUT`,
244
+ * `NOT_APPROVED`, legacy `Failed`…) never matched either label anyway. `Error` is still
245
+ * ACCEPTED as an alias (see {@link RESULT_FILTER_CLASSES}) so an agent or a restored filter
246
+ * asking for it keeps working.
247
+ */
248
+ static RESULT_OPTIONS = [
238
249
  { text: 'All Results', value: 'all' },
239
- { text: 'Success', value: 'Success' },
240
- { text: 'Failed', value: 'Failed' },
241
- { text: 'Error', value: 'Error' },
250
+ { text: 'Successful', value: 'Success' },
251
+ { text: 'Failed or errored', value: 'Failed' },
242
252
  { text: 'Running', value: 'Running' }
243
253
  ];
254
+ /**
255
+ * A constant list, so it lives on the class rather than on each instance — which also makes
256
+ * it readable without constructing the component, and therefore testable alongside
257
+ * {@link RESULT_FILTER_CLASSES}. Those two must agree: every offered value has to select
258
+ * something.
259
+ */
260
+ get ResultOptions() {
261
+ return ActionExecutionMonitoringComponent_1.RESULT_OPTIONS;
262
+ }
244
263
  /** @deprecated Use {@link ResultOptions}. */
245
264
  get resultOptions() {
246
265
  return this.ResultOptions;
247
266
  }
248
- /** @deprecated Use {@link ResultOptions}. */
249
- set resultOptions(value) {
250
- this.ResultOptions = value;
251
- }
267
+ /**
268
+ * Which outcome class each accepted filter value selects. `Failed` and `Error` deliberately
269
+ * map to the same class — see {@link ResultOptions}.
270
+ */
271
+ static RESULT_FILTER_CLASSES = {
272
+ Success: 'success',
273
+ Failed: 'failure',
274
+ Error: 'failure',
275
+ Running: 'running',
276
+ };
252
277
  ActionOptions = [
253
278
  { text: 'All Actions', value: 'all' }
254
279
  ];
@@ -392,7 +417,7 @@ let ActionExecutionMonitoringComponent = class ActionExecutionMonitoringComponen
392
417
  },
393
418
  {
394
419
  Name: 'FilterExecutionsByResult',
395
- Description: 'Filter executions by result. Allowed: all, Success, Failed, Error, Running.',
420
+ Description: 'Filter executions by result outcome, not by literal result code. Allowed: all, Success, Failed, Error (an alias for Failed), Running.',
396
421
  ParameterSchema: { type: 'object', properties: { result: { type: 'string', enum: [...this.resultFilterValues] } }, required: ['result'] },
397
422
  Handler: async (params) => {
398
423
  const v = ValidateEnumParam(params['result'], this.resultFilterValues, 'result');
@@ -578,12 +603,16 @@ let ActionExecutionMonitoringComponent = class ActionExecutionMonitoringComponen
578
603
  const weekAgo = new Date(today.getTime() - 7 * 24 * 60 * 60 * 1000);
579
604
  this.Metrics = {
580
605
  totalExecutions: this.Executions.length,
581
- successfulExecutions: this.Executions.filter(e => e.ResultCode === 'Success').length,
582
- failedExecutions: this.Executions.filter(e => e.ResultCode && ['Failed', 'Error'].includes(e.ResultCode)).length,
606
+ // Classified, not string-compared. The writer emits UPPER_SNAKE (`SUCCESS`,
607
+ // `RUNTIME_ERROR`, …) while these comparisons looked for Title Case, so a database of
608
+ // successful runs reported 0 successes and 0 failures — beside rows that rendered
609
+ // green, because the colour helpers lowercased and these did not.
610
+ successfulExecutions: this.Executions.filter(e => ClassifyActionResultCode(e.ResultCode) === 'success').length,
611
+ failedExecutions: this.Executions.filter(e => ClassifyActionResultCode(e.ResultCode) === 'failure').length,
583
612
  averageDuration: this.calculateAverageDuration(),
584
613
  executionsToday: this.Executions.filter(e => new Date(e.StartedAt) >= today).length,
585
614
  executionsThisWeek: this.Executions.filter(e => new Date(e.StartedAt) >= weekAgo).length,
586
- currentlyRunning: this.Executions.filter(e => e.ResultCode === 'Running' || !e.EndedAt).length
615
+ currentlyRunning: this.Executions.filter(e => ClassifyActionResultCode(e.ResultCode) === 'running' || !e.EndedAt).length
587
616
  };
588
617
  }
589
618
  calculateAverageDuration() {
@@ -621,10 +650,11 @@ let ActionExecutionMonitoringComponent = class ActionExecutionMonitoringComponen
621
650
  const trend = trends.get(date);
622
651
  if (trend) {
623
652
  trend.total++;
624
- if (execution.ResultCode === 'Success') {
653
+ const klass = ClassifyActionResultCode(execution.ResultCode);
654
+ if (klass === 'success') {
625
655
  trend.successful++;
626
656
  }
627
- else if (execution.ResultCode && ['Failed', 'Error'].includes(execution.ResultCode)) {
657
+ else if (klass === 'failure') {
628
658
  trend.failed++;
629
659
  }
630
660
  }
@@ -642,11 +672,15 @@ let ActionExecutionMonitoringComponent = class ActionExecutionMonitoringComponen
642
672
  // Apply result filter
643
673
  const result = this.SelectedResult$.value;
644
674
  if (result !== 'all') {
645
- if (result === 'Running') {
646
- filtered = filtered.filter(e => !e.EndedAt || e.ResultCode === 'Running');
675
+ const wanted = ActionExecutionMonitoringComponent_1.RESULT_FILTER_CLASSES[result];
676
+ if (wanted === 'running') {
677
+ filtered = filtered.filter(e => !e.EndedAt || ClassifyActionResultCode(e.ResultCode) === 'running');
647
678
  }
648
- else {
649
- filtered = filtered.filter(e => e.ResultCode === result);
679
+ else if (wanted) {
680
+ // Compared by CLASS, not by literal equality. The old `e.ResultCode === result`
681
+ // matched the chip label against the stored code, so every chip returned an empty
682
+ // list on a database written by the Runtime executor.
683
+ filtered = filtered.filter(e => ClassifyActionResultCode(e.ResultCode) === wanted);
650
684
  }
651
685
  }
652
686
  // Apply action filter
@@ -724,7 +758,9 @@ let ActionExecutionMonitoringComponent = class ActionExecutionMonitoringComponen
724
758
  type: 'dropdown',
725
759
  label: 'Result',
726
760
  icon: 'fa-solid fa-circle-info',
727
- options: this.ResultOptions
761
+ // Copied because FilterFieldConfig.options is a mutable array and the source list is
762
+ // a shared constant — the panel must not be able to reorder it for every instance.
763
+ options: [...this.ResultOptions]
728
764
  },
729
765
  {
730
766
  key: 'action',
@@ -803,30 +839,14 @@ let ActionExecutionMonitoringComponent = class ActionExecutionMonitoringComponen
803
839
  return this.GetActionName(actionId);
804
840
  }
805
841
  GetResultColor(resultCode) {
806
- if (!resultCode)
807
- return 'info';
808
- switch (resultCode.toLowerCase()) {
809
- case 'success': return 'success';
810
- case 'failed':
811
- case 'error': return 'error';
812
- case 'running': return 'warning';
813
- default: return 'info';
814
- }
842
+ return ActionResultColor(resultCode);
815
843
  }
816
844
  /** @deprecated Use {@link GetResultColor}. */
817
845
  getResultColor(resultCode) {
818
846
  return this.GetResultColor(resultCode);
819
847
  }
820
848
  GetResultIcon(resultCode) {
821
- if (!resultCode)
822
- return 'fa-solid fa-question';
823
- switch (resultCode.toLowerCase()) {
824
- case 'success': return 'fa-solid fa-check-circle';
825
- case 'failed':
826
- case 'error': return 'fa-solid fa-exclamation-circle';
827
- case 'running': return 'fa-solid fa-spinner fa-spin';
828
- default: return 'fa-solid fa-info-circle';
829
- }
849
+ return ActionResultIcon(resultCode);
830
850
  }
831
851
  /** @deprecated Use {@link GetResultIcon}. */
832
852
  getResultIcon(resultCode) {
@@ -849,10 +869,13 @@ let ActionExecutionMonitoringComponent = class ActionExecutionMonitoringComponen
849
869
  getDuration(execution) {
850
870
  return this.GetDuration(execution);
851
871
  }
872
+ /**
873
+ * Successes as a share of SETTLED runs — see {@link ActionSuccessRate}. Dividing by
874
+ * `totalExecutions` put still-running and unrecognised-code rows in the denominator, which
875
+ * drags the rate down for reasons that are not failures.
876
+ */
852
877
  GetSuccessRate() {
853
- if (this.Metrics.totalExecutions === 0)
854
- return 0;
855
- return Math.round((this.Metrics.successfulExecutions / this.Metrics.totalExecutions) * 100);
878
+ return ActionSuccessRate(this.Executions.map(e => e.ResultCode));
856
879
  }
857
880
  /** @deprecated Use {@link GetSuccessRate}. */
858
881
  getSuccessRate() {
@@ -1036,7 +1059,7 @@ let ActionExecutionMonitoringComponent = class ActionExecutionMonitoringComponen
1036
1059
  i0.ɵɵconditional(ctx.isLoading ? 81 : -1);
1037
1060
  } }, dependencies: [i1.MJButtonDirective, i1.MJPageBodyComponent, i1.MJPageHeaderComponent, i1.MJPageLayoutComponent, i1.MJPageSearchComponent, i1.MJFilterPopoverComponent, i1.MJFilterPanelComponent, i1.MJRefreshButtonComponent, i1.MJEmptyStateComponent, i2.LoadingComponent, i3.DatePipe], styles: [".execution-monitoring[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n color: var(--mj-text-primary);\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%] .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}"] });
1038
1061
  };
1039
- ActionExecutionMonitoringComponent = __decorate([
1062
+ ActionExecutionMonitoringComponent = ActionExecutionMonitoringComponent_1 = __decorate([
1040
1063
  RegisterClass(BaseResourceComponent, 'ActionsMonitorResource')
1041
1064
  ], ActionExecutionMonitoringComponent);
1042
1065
  export { ActionExecutionMonitoringComponent };
@@ -1044,5 +1067,5 @@ export { ActionExecutionMonitoringComponent };
1044
1067
  type: Component,
1045
1068
  args: [{ standalone: false, selector: 'mj-execution-monitoring', template: "<mj-page-layout>\n <mj-page-header\n Title=\"Execution Monitor\"\n Icon=\"fa-solid fa-chart-line\"\n Subtitle=\"Action execution history, latency, and error rates\">\n <!-- [meta] intentionally omitted \u2014 chrome slot discipline audit Task B.\n totalExecutions was a single inventory count duplicated by the\n body's metrics cards. -->\n <div actions>\n <mj-refresh-button (Clicked)=\"refreshData()\"></mj-refresh-button>\n </div>\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search executions...\"\n [Value]=\"searchTerm$.value\"\n (ValueChange)=\"onSearchChange($event)\">\n </mj-page-search>\n <mj-filter-popover\n [ActiveCount]=\"ActiveFilterCount\"\n [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"resetFilters()\">\n <mj-filter-panel\n [Fields]=\"FilterFields\"\n [Values]=\"FilterValues\"\n (ValuesChange)=\"onFilterValuesChange($event)\"\n (Reset)=\"resetFilters()\">\n </mj-filter-panel>\n </mj-filter-popover>\n </div>\n </mj-page-header>\n\n <mj-page-body>\n <div class=\"execution-monitoring\" >\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 <mj-empty-state class=\"empty-chart\" Size=\"compact\"\n Icon=\"fa-solid fa-chart-area\"\n Title=\"No execution trends available\" />\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 <mj-empty-state Variant=\"no-results\"\n Title=\"No executions found\"\n Message=\"Try adjusting your filters or search terms\" />\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>\n </mj-page-body>\n</mj-page-layout>", styles: [".execution-monitoring {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n color: var(--mj-text-primary);\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 .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"] }]
1046
1069
  }], () => [{ type: i0.ChangeDetectorRef }], null); })();
1047
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActionExecutionMonitoringComponent, { className: "ActionExecutionMonitoringComponent", filePath: "src/Actions/components/execution-monitoring.component.ts", lineNumber: 50 }); })();
1070
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActionExecutionMonitoringComponent, { className: "ActionExecutionMonitoringComponent", filePath: "src/Actions/components/execution-monitoring.component.ts", lineNumber: 57 }); })();
1048
1071
  //# sourceMappingURL=execution-monitoring.component.js.map