@memberjunction/ng-dashboards 5.34.1 → 5.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts +51 -0
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +399 -292
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +8 -2
  6. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
  7. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +87 -85
  8. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  9. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +96 -0
  10. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
  11. package/dist/AI/components/analytics/ai-analytics-resource.component.js +453 -122
  12. package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
  13. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts +5 -0
  14. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts.map +1 -1
  15. package/dist/AI/components/analytics/analytics-filter-bar.component.js +184 -135
  16. package/dist/AI/components/analytics/analytics-filter-bar.component.js.map +1 -1
  17. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +8 -2
  18. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
  19. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +104 -103
  20. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
  21. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +8 -2
  22. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
  23. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +76 -74
  24. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
  25. package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
  26. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +67 -87
  27. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
  28. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +12 -19
  29. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
  30. package/dist/AI/components/analytics/model-performance/model-performance.component.js +96 -203
  31. package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
  32. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
  33. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +110 -126
  34. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
  35. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
  36. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +61 -77
  37. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
  38. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +28 -0
  39. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  40. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +2084 -2079
  41. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  42. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
  43. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  44. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
  45. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  46. package/dist/AI/components/models/model-management.component.d.ts +17 -0
  47. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  48. package/dist/AI/components/models/model-management.component.js +370 -425
  49. package/dist/AI/components/models/model-management.component.js.map +1 -1
  50. package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
  51. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  52. package/dist/AI/components/prompts/prompt-management.component.js +317 -357
  53. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  54. package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
  55. package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
  56. package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
  57. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  58. package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
  59. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  60. package/dist/AI/components/system/system-configuration.component.js +403 -362
  61. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  62. package/dist/AI/components/tags/tags-resource.component.d.ts +15 -0
  63. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
  64. package/dist/AI/components/tags/tags-resource.component.js +1423 -1438
  65. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  66. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
  67. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  68. package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
  69. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  70. package/dist/APIKeys/api-keys-resource.component.d.ts +12 -8
  71. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
  72. package/dist/APIKeys/api-keys-resource.component.js +329 -371
  73. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  74. package/dist/Actions/components/actions-overview.component.d.ts +6 -0
  75. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  76. package/dist/Actions/components/actions-overview.component.js +202 -158
  77. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  78. package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
  79. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  80. package/dist/Actions/components/execution-monitoring.component.js +191 -142
  81. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  82. package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
  83. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  84. package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
  85. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  86. package/dist/Actions/components/explorer/index.d.ts +0 -1
  87. package/dist/Actions/components/explorer/index.d.ts.map +1 -1
  88. package/dist/Actions/components/explorer/index.js +0 -1
  89. package/dist/Actions/components/explorer/index.js.map +1 -1
  90. package/dist/Admin/admin-data-schema.component.js +19 -79
  91. package/dist/Admin/admin-data-schema.component.js.map +1 -1
  92. package/dist/Admin/admin-dev-tools-resource.component.js +19 -79
  93. package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
  94. package/dist/Admin/admin-identity-access.component.js +19 -79
  95. package/dist/Admin/admin-identity-access.component.js.map +1 -1
  96. package/dist/Admin/admin-monitoring.component.js +19 -79
  97. package/dist/Admin/admin-monitoring.component.js.map +1 -1
  98. package/dist/Admin/base-admin-container.component.d.ts +9 -7
  99. package/dist/Admin/base-admin-container.component.d.ts.map +1 -1
  100. package/dist/Admin/base-admin-container.component.js +26 -17
  101. package/dist/Admin/base-admin-container.component.js.map +1 -1
  102. package/dist/ApplicationRoles/application-roles-resource.component.js +92 -91
  103. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  104. package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
  105. package/dist/Archiving/components/archive-config-resource.component.js +24 -5
  106. package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
  107. package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
  108. package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
  109. package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
  110. package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
  111. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  112. package/dist/Communication/communication-logs-resource.component.js +80 -99
  113. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  114. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  115. package/dist/Communication/communication-monitor-resource.component.js +127 -106
  116. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  117. package/dist/Communication/communication-new-message-resource.component.d.ts +93 -0
  118. package/dist/Communication/communication-new-message-resource.component.d.ts.map +1 -0
  119. package/dist/Communication/communication-new-message-resource.component.js +661 -0
  120. package/dist/Communication/communication-new-message-resource.component.js.map +1 -0
  121. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  122. package/dist/Communication/communication-providers-resource.component.js +44 -45
  123. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  124. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  125. package/dist/Communication/communication-runs-resource.component.js +60 -58
  126. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  127. package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
  128. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  129. package/dist/Communication/communication-templates-resource.component.js +139 -162
  130. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  131. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
  132. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  133. package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
  134. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  135. package/dist/Credentials/components/credentials-categories-resource.component.js +238 -266
  136. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  137. package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
  138. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  139. package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
  140. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  141. package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
  142. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  143. package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
  144. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  145. package/dist/Credentials/components/credentials-types-resource.component.js +290 -305
  146. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  147. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
  148. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
  149. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +41 -21
  150. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
  151. package/dist/DatabaseDesigner/components/entity-list.component.d.ts +2 -0
  152. package/dist/DatabaseDesigner/components/entity-list.component.d.ts.map +1 -1
  153. package/dist/DatabaseDesigner/components/entity-list.component.js +148 -155
  154. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
  155. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
  156. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
  157. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +25 -1
  158. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
  159. package/dist/DevTools/app-state-inspector.component.d.ts +5 -0
  160. package/dist/DevTools/app-state-inspector.component.d.ts.map +1 -1
  161. package/dist/DevTools/app-state-inspector.component.js +46 -72
  162. package/dist/DevTools/app-state-inspector.component.js.map +1 -1
  163. package/dist/DevTools/class-registry.component.js +88 -100
  164. package/dist/DevTools/class-registry.component.js.map +1 -1
  165. package/dist/DevTools/event-monitor.component.js +158 -168
  166. package/dist/DevTools/event-monitor.component.js.map +1 -1
  167. package/dist/DevTools/graphql-console.component.js +257 -264
  168. package/dist/DevTools/graphql-console.component.js.map +1 -1
  169. package/dist/DevTools/layout-inspector.component.d.ts +5 -0
  170. package/dist/DevTools/layout-inspector.component.d.ts.map +1 -1
  171. package/dist/DevTools/layout-inspector.component.js +46 -64
  172. package/dist/DevTools/layout-inspector.component.js.map +1 -1
  173. package/dist/DevTools/lazy-module-status.component.js +75 -84
  174. package/dist/DevTools/lazy-module-status.component.js.map +1 -1
  175. package/dist/DevTools/settings-explorer.component.js +76 -85
  176. package/dist/DevTools/settings-explorer.component.js.map +1 -1
  177. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +2 -0
  178. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
  179. package/dist/EntityAdmin/entity-admin-dashboard.component.js +24 -16
  180. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  181. package/dist/Home/home-dashboard.component.d.ts +6 -0
  182. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  183. package/dist/Home/home-dashboard.component.js +521 -485
  184. package/dist/Home/home-dashboard.component.js.map +1 -1
  185. package/dist/Integration/components/activity/activity.component.d.ts +8 -0
  186. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  187. package/dist/Integration/components/activity/activity.component.js +307 -318
  188. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  189. package/dist/Integration/components/connections/connections.component.js +654 -648
  190. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  191. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
  192. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  193. package/dist/Integration/components/overview/overview.component.js +182 -163
  194. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  195. package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
  196. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  197. package/dist/Integration/components/pipelines/pipelines.component.js +595 -606
  198. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  199. package/dist/Integration/components/schedules/schedules.component.js +230 -241
  200. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  201. package/dist/Integration/integration.module.d.ts +1 -1
  202. package/dist/Integration/integration.module.d.ts.map +1 -1
  203. package/dist/Integration/integration.module.js +28 -1
  204. package/dist/Integration/integration.module.js.map +1 -1
  205. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts +5 -0
  206. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
  207. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +1138 -1147
  208. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  209. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
  210. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  211. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +11 -0
  212. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
  213. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +684 -697
  214. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  215. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
  216. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
  217. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
  218. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
  219. package/dist/Lists/components/lists-browse-resource.component.d.ts +120 -1
  220. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  221. package/dist/Lists/components/lists-browse-resource.component.js +1239 -610
  222. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  223. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  224. package/dist/Lists/components/lists-categories-resource.component.js +152 -160
  225. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  226. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  227. package/dist/Lists/components/lists-my-lists-resource.component.js +302 -319
  228. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  229. package/dist/Lists/components/lists-operations-resource.component.d.ts +133 -3
  230. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  231. package/dist/Lists/components/lists-operations-resource.component.js +1460 -272
  232. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  233. package/dist/Lists/components/lists-shared-with-me-resource.component.d.ts +29 -0
  234. package/dist/Lists/components/lists-shared-with-me-resource.component.d.ts.map +1 -0
  235. package/dist/Lists/components/lists-shared-with-me-resource.component.js +77 -0
  236. package/dist/Lists/components/lists-shared-with-me-resource.component.js.map +1 -0
  237. package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts +6 -0
  238. package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
  239. package/dist/Lists/components/venn-diagram/venn-diagram.component.js +35 -7
  240. package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
  241. package/dist/Lists/index.d.ts +1 -0
  242. package/dist/Lists/index.d.ts.map +1 -1
  243. package/dist/Lists/index.js +1 -0
  244. package/dist/Lists/index.js.map +1 -1
  245. package/dist/Lists/services/list-set-operations.service.d.ts +93 -2
  246. package/dist/Lists/services/list-set-operations.service.d.ts.map +1 -1
  247. package/dist/Lists/services/list-set-operations.service.js +236 -10
  248. package/dist/Lists/services/list-set-operations.service.js.map +1 -1
  249. package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
  250. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  251. package/dist/MCP/mcp-dashboard.component.js +1248 -1338
  252. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  253. package/dist/MCP/mcp.module.d.ts +1 -1
  254. package/dist/MCP/mcp.module.d.ts.map +1 -1
  255. package/dist/MCP/mcp.module.js +34 -1
  256. package/dist/MCP/mcp.module.js.map +1 -1
  257. package/dist/Permissions/audit-log-resource.component.js +76 -85
  258. package/dist/Permissions/audit-log-resource.component.js.map +1 -1
  259. package/dist/Permissions/resource-access-resource.component.js +64 -69
  260. package/dist/Permissions/resource-access-resource.component.js.map +1 -1
  261. package/dist/Permissions/user-access-resource.component.js +63 -74
  262. package/dist/Permissions/user-access-resource.component.js.map +1 -1
  263. package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
  264. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  265. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
  266. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  267. package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
  268. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  269. package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
  270. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  271. package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
  272. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  273. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
  274. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  275. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
  276. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  277. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
  278. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  279. package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
  280. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  281. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
  282. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  283. package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
  284. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  285. package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
  286. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
  287. package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
  288. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  289. package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
  290. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  291. package/dist/Scheduling/scheduling-dashboard.component.js +259 -103
  292. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  293. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +13 -3
  294. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  295. package/dist/SystemDiagnostics/system-diagnostics.component.js +1009 -1264
  296. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  297. package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
  298. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  299. package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
  300. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  301. package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
  302. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  303. package/dist/Testing/components/testing-analytics.component.js +420 -393
  304. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  305. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
  306. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  307. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
  308. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  309. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
  310. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  311. package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
  312. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  313. package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
  314. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  315. package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
  316. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  317. package/dist/Testing/components/testing-explorer.component.d.ts +38 -6
  318. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  319. package/dist/Testing/components/testing-explorer.component.js +679 -786
  320. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  321. package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
  322. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  323. package/dist/Testing/components/testing-review-resource.component.js +9 -12
  324. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  325. package/dist/Testing/components/testing-review.component.d.ts +3 -1
  326. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  327. package/dist/Testing/components/testing-review.component.js +310 -274
  328. package/dist/Testing/components/testing-review.component.js.map +1 -1
  329. package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
  330. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  331. package/dist/Testing/components/testing-runs-resource.component.js +16 -19
  332. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  333. package/dist/Testing/components/testing-runs.component.d.ts +3 -1
  334. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  335. package/dist/Testing/components/testing-runs.component.js +307 -273
  336. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  337. package/dist/Testing/testing-dashboard.component.d.ts +2 -0
  338. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  339. package/dist/Testing/testing-dashboard.component.js +114 -99
  340. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  341. package/dist/VersionHistory/components/diff-resource.component.js +185 -188
  342. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  343. package/dist/VersionHistory/components/graph-resource.component.js +154 -184
  344. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  345. package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
  346. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  347. package/dist/VersionHistory/components/labels-resource.component.js +350 -354
  348. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  349. package/dist/VersionHistory/components/restore-resource.component.js +163 -169
  350. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  351. package/dist/actions-dashboards.module.d.ts +15 -16
  352. package/dist/actions-dashboards.module.d.ts.map +1 -1
  353. package/dist/actions-dashboards.module.js +34 -11
  354. package/dist/actions-dashboards.module.js.map +1 -1
  355. package/dist/ai-dashboards.module.d.ts +45 -48
  356. package/dist/ai-dashboards.module.d.ts.map +1 -1
  357. package/dist/ai-dashboards.module.js +51 -10
  358. package/dist/ai-dashboards.module.js.map +1 -1
  359. package/dist/archiving-dashboards.module.d.ts +2 -1
  360. package/dist/archiving-dashboards.module.d.ts.map +1 -1
  361. package/dist/archiving-dashboards.module.js +12 -2
  362. package/dist/archiving-dashboards.module.js.map +1 -1
  363. package/dist/communication-dashboards.module.d.ts +9 -6
  364. package/dist/communication-dashboards.module.d.ts.map +1 -1
  365. package/dist/communication-dashboards.module.js +37 -7
  366. package/dist/communication-dashboards.module.js.map +1 -1
  367. package/dist/core-dashboards.module.d.ts +1 -1
  368. package/dist/core-dashboards.module.d.ts.map +1 -1
  369. package/dist/core-dashboards.module.js +46 -1
  370. package/dist/core-dashboards.module.js.map +1 -1
  371. package/dist/credentials-dashboards.module.d.ts +1 -1
  372. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  373. package/dist/credentials-dashboards.module.js +28 -1
  374. package/dist/credentials-dashboards.module.js.map +1 -1
  375. package/dist/lists-dashboards.module.d.ts +10 -9
  376. package/dist/lists-dashboards.module.d.ts.map +1 -1
  377. package/dist/lists-dashboards.module.js +40 -2
  378. package/dist/lists-dashboards.module.js.map +1 -1
  379. package/dist/public-api.d.ts +3 -2
  380. package/dist/public-api.d.ts.map +1 -1
  381. package/dist/public-api.js +4 -3
  382. package/dist/public-api.js.map +1 -1
  383. package/dist/scheduling-dashboards.module.d.ts +1 -1
  384. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  385. package/dist/scheduling-dashboards.module.js +31 -1
  386. package/dist/scheduling-dashboards.module.js.map +1 -1
  387. package/dist/testing-dashboards.module.d.ts +8 -7
  388. package/dist/testing-dashboards.module.d.ts.map +1 -1
  389. package/dist/testing-dashboards.module.js +42 -0
  390. package/dist/testing-dashboards.module.js.map +1 -1
  391. package/package.json +53 -52
  392. package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
  393. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
  394. package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
  395. package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
  396. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
  397. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
  398. package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
  399. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
  400. package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
  401. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
  402. package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
  403. package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
  404. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
  405. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
  406. package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
  407. package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
@@ -10,463 +10,416 @@ import { BaseResourceComponent } from '@memberjunction/ng-shared';
10
10
  import { RunView } from '@memberjunction/core';
11
11
  import { IntegrationDataService, } from '../../services/integration-data.service';
12
12
  import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/forms";
13
+ import * as i1 from "@memberjunction/ng-ui-components";
14
14
  import * as i2 from "@memberjunction/ng-shared-generic";
15
15
  import * as i3 from "@angular/common";
16
- const _forTrack0 = ($index, $item) => $item.ID;
17
- const _forTrack1 = ($index, $item) => $item.Value;
16
+ const _forTrack0 = ($index, $item) => $item.Value;
17
+ const _forTrack1 = ($index, $item) => $item.ID;
18
18
  const _forTrack2 = ($index, $item) => $item.EntityID;
19
- function ActivityComponent_For_4_Template(rf, ctx) { if (rf & 1) {
20
- const _r1 = i0.ɵɵgetCurrentView();
21
- i0.ɵɵelementStart(0, "button", 15);
22
- i0.ɵɵlistener("click", function ActivityComponent_For_4_Template_button_click_0_listener() { const status_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetStatusFilter(status_r2)); });
23
- i0.ɵɵtext(1);
19
+ function ActivityComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
20
+ i0.ɵɵelementStart(0, "div", 1);
21
+ i0.ɵɵelement(1, "mj-stat-badge", 15)(2, "mj-stat-badge", 16)(3, "mj-stat-badge", 17);
22
+ i0.ɵɵpipe(4, "number");
24
23
  i0.ɵɵelementEnd();
25
24
  } if (rf & 2) {
26
- const status_r2 = ctx.$implicit;
27
- const ctx_r2 = i0.ɵɵnextContext();
28
- i0.ɵɵclassProp("active", ctx_r2.StatusFilter === status_r2);
25
+ const ctx_r0 = i0.ɵɵnextContext();
29
26
  i0.ɵɵadvance();
30
- i0.ɵɵtextInterpolate1(" ", status_r2, " ");
27
+ i0.ɵɵproperty("Count", ctx_r0.SuccessfulRuns);
28
+ i0.ɵɵadvance();
29
+ i0.ɵɵproperty("Count", ctx_r0.FailedRuns);
30
+ i0.ɵɵadvance();
31
+ i0.ɵɵproperty("Count", i0.ɵɵpipeBind1(4, 3, ctx_r0.TotalRecordsProcessed));
31
32
  } }
32
33
  function ActivityComponent_For_10_Template(rf, ctx) { if (rf & 1) {
33
- i0.ɵɵelementStart(0, "option", 7);
34
- i0.ɵɵtext(1);
34
+ const _r2 = i0.ɵɵgetCurrentView();
35
+ i0.ɵɵelementStart(0, "mj-filter-chip", 18);
36
+ i0.ɵɵlistener("Clicked", function ActivityComponent_For_10_Template_mj_filter_chip_Clicked_0_listener() { const status_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.SetStatusFilter(status_r3)); });
35
37
  i0.ɵɵelementEnd();
36
38
  } if (rf & 2) {
37
- const opt_r4 = ctx.$implicit;
38
- i0.ɵɵproperty("value", opt_r4.ID);
39
- i0.ɵɵadvance();
40
- i0.ɵɵtextInterpolate(opt_r4.Name);
39
+ const status_r3 = ctx.$implicit;
40
+ const ctx_r0 = i0.ɵɵnextContext();
41
+ i0.ɵɵproperty("Label", status_r3)("Active", ctx_r0.StatusFilter === status_r3);
41
42
  } }
42
43
  function ActivityComponent_For_13_Template(rf, ctx) { if (rf & 1) {
43
- const _r5 = i0.ɵɵgetCurrentView();
44
- i0.ɵɵelementStart(0, "button", 15);
45
- i0.ɵɵlistener("click", function ActivityComponent_For_13_Template_button_click_0_listener() { const d_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetDateFilter(d_r6.Value)); });
46
- i0.ɵɵtext(1);
47
- i0.ɵɵelementEnd();
48
- } if (rf & 2) {
49
- const d_r6 = ctx.$implicit;
50
- const ctx_r2 = i0.ɵɵnextContext();
51
- i0.ɵɵclassProp("active", ctx_r2.DateFilter === d_r6.Value);
52
- i0.ɵɵadvance();
53
- i0.ɵɵtextInterpolate1(" ", d_r6.Label, " ");
54
- } }
55
- function ActivityComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
56
- i0.ɵɵelementStart(0, "div", 11)(1, "div", 16);
57
- i0.ɵɵelement(2, "span", 17);
58
- i0.ɵɵelementStart(3, "span", 18);
59
- i0.ɵɵtext(4);
44
+ const _r4 = i0.ɵɵgetCurrentView();
45
+ i0.ɵɵelementStart(0, "mj-filter-chip", 18);
46
+ i0.ɵɵlistener("Clicked", function ActivityComponent_For_13_Template_mj_filter_chip_Clicked_0_listener() { const d_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.SetDateFilter(d_r5.Value)); });
60
47
  i0.ɵɵelementEnd();
61
- i0.ɵɵelementStart(5, "span", 19);
62
- i0.ɵɵtext(6, "Total Runs");
63
- i0.ɵɵelementEnd()();
64
- i0.ɵɵelementStart(7, "div", 16);
65
- i0.ɵɵelement(8, "span", 20);
66
- i0.ɵɵelementStart(9, "span", 21);
67
- i0.ɵɵtext(10);
68
- i0.ɵɵelementEnd();
69
- i0.ɵɵelementStart(11, "span", 19);
70
- i0.ɵɵtext(12, "Successful");
71
- i0.ɵɵelementEnd()();
72
- i0.ɵɵelementStart(13, "div", 16);
73
- i0.ɵɵelement(14, "span", 22);
74
- i0.ɵɵelementStart(15, "span", 23);
75
- i0.ɵɵtext(16);
76
- i0.ɵɵelementEnd();
77
- i0.ɵɵelementStart(17, "span", 19);
78
- i0.ɵɵtext(18, "Failed");
79
- i0.ɵɵelementEnd()();
80
- i0.ɵɵelementStart(19, "div", 16);
81
- i0.ɵɵelement(20, "span", 17);
82
- i0.ɵɵelementStart(21, "span", 18);
83
- i0.ɵɵtext(22);
84
- i0.ɵɵpipe(23, "number");
85
- i0.ɵɵelementEnd();
86
- i0.ɵɵelementStart(24, "span", 19);
87
- i0.ɵɵtext(25, "Records Processed");
88
- i0.ɵɵelementEnd()()();
89
48
  } if (rf & 2) {
90
- const ctx_r2 = i0.ɵɵnextContext();
91
- i0.ɵɵadvance(4);
92
- i0.ɵɵtextInterpolate(ctx_r2.TotalRuns);
93
- i0.ɵɵadvance(6);
94
- i0.ɵɵtextInterpolate(ctx_r2.SuccessfulRuns);
95
- i0.ɵɵadvance(6);
96
- i0.ɵɵtextInterpolate(ctx_r2.FailedRuns);
97
- i0.ɵɵadvance(6);
98
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(23, 4, ctx_r2.TotalRecordsProcessed));
49
+ const d_r5 = ctx.$implicit;
50
+ const ctx_r0 = i0.ɵɵnextContext();
51
+ i0.ɵɵproperty("Label", d_r5.Label)("Active", ctx_r0.DateFilter === d_r5.Value);
99
52
  } }
100
- function ActivityComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
53
+ function ActivityComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
101
54
  i0.ɵɵelementStart(0, "div", 12);
102
- i0.ɵɵelement(1, "mj-loading", 24);
55
+ i0.ɵɵelement(1, "mj-loading", 19);
103
56
  i0.ɵɵelementEnd();
104
57
  } }
105
- function ActivityComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
58
+ function ActivityComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
106
59
  i0.ɵɵelementStart(0, "div", 13);
107
- i0.ɵɵelement(1, "i", 25);
60
+ i0.ɵɵelement(1, "i", 20);
108
61
  i0.ɵɵelementStart(2, "p");
109
62
  i0.ɵɵtext(3, "No runs found for the selected filters.");
110
63
  i0.ɵɵelementEnd()();
111
64
  } }
112
- function ActivityComponent_Conditional_21_For_3_Conditional_17_Template(rf, ctx) { if (rf & 1) {
113
- i0.ɵɵelement(0, "i", 39);
65
+ function ActivityComponent_Conditional_18_For_3_Conditional_17_Template(rf, ctx) { if (rf & 1) {
66
+ i0.ɵɵelement(0, "i", 34);
114
67
  } }
115
- function ActivityComponent_Conditional_21_For_3_Conditional_22_Conditional_1_Template(rf, ctx) { if (rf & 1) {
116
- i0.ɵɵelementStart(0, "div", 45);
117
- i0.ɵɵelement(1, "mj-loading", 49);
68
+ function ActivityComponent_Conditional_18_For_3_Conditional_22_Conditional_1_Template(rf, ctx) { if (rf & 1) {
69
+ i0.ɵɵelementStart(0, "div", 40);
70
+ i0.ɵɵelement(1, "mj-loading", 44);
118
71
  i0.ɵɵelementEnd();
119
72
  } }
120
- function ActivityComponent_Conditional_21_For_3_Conditional_22_Conditional_2_Template(rf, ctx) { if (rf & 1) {
121
- i0.ɵɵelementStart(0, "div", 46);
122
- i0.ɵɵelement(1, "i", 50);
73
+ function ActivityComponent_Conditional_18_For_3_Conditional_22_Conditional_2_Template(rf, ctx) { if (rf & 1) {
74
+ i0.ɵɵelementStart(0, "div", 41);
75
+ i0.ɵɵelement(1, "i", 45);
123
76
  i0.ɵɵtext(2, " No entity details for this run. ");
124
77
  i0.ɵɵelementEnd();
125
78
  } }
126
- function ActivityComponent_Conditional_21_For_3_Conditional_22_Conditional_3_For_19_Template(rf, ctx) { if (rf & 1) {
79
+ function ActivityComponent_Conditional_18_For_3_Conditional_22_Conditional_3_For_19_Template(rf, ctx) { if (rf & 1) {
127
80
  i0.ɵɵelementStart(0, "tr")(1, "td");
128
81
  i0.ɵɵtext(2);
129
82
  i0.ɵɵelementEnd();
130
- i0.ɵɵelementStart(3, "td", 51);
83
+ i0.ɵɵelementStart(3, "td", 46);
131
84
  i0.ɵɵtext(4);
132
85
  i0.ɵɵpipe(5, "number");
133
86
  i0.ɵɵelementEnd();
134
- i0.ɵɵelementStart(6, "td", 53);
87
+ i0.ɵɵelementStart(6, "td", 48);
135
88
  i0.ɵɵtext(7);
136
89
  i0.ɵɵpipe(8, "number");
137
90
  i0.ɵɵelementEnd();
138
- i0.ɵɵelementStart(9, "td", 54);
91
+ i0.ɵɵelementStart(9, "td", 49);
139
92
  i0.ɵɵtext(10);
140
93
  i0.ɵɵpipe(11, "number");
141
94
  i0.ɵɵelementEnd();
142
- i0.ɵɵelementStart(12, "td", 51);
95
+ i0.ɵɵelementStart(12, "td", 46);
143
96
  i0.ɵɵtext(13);
144
97
  i0.ɵɵpipe(14, "number");
145
98
  i0.ɵɵelementEnd();
146
- i0.ɵɵelementStart(15, "td", 55);
99
+ i0.ɵɵelementStart(15, "td", 50);
147
100
  i0.ɵɵtext(16);
148
101
  i0.ɵɵpipe(17, "number");
149
102
  i0.ɵɵelementEnd();
150
- i0.ɵɵelementStart(18, "td", 51);
103
+ i0.ɵɵelementStart(18, "td", 46);
151
104
  i0.ɵɵtext(19);
152
105
  i0.ɵɵpipe(20, "number");
153
106
  i0.ɵɵelementEnd()();
154
107
  } if (rf & 2) {
155
- const detail_r10 = ctx.$implicit;
156
- i0.ɵɵclassProp("error-row", detail_r10.RecordsErrored > 0);
108
+ const detail_r9 = ctx.$implicit;
109
+ i0.ɵɵclassProp("error-row", detail_r9.RecordsErrored > 0);
157
110
  i0.ɵɵadvance(2);
158
- i0.ɵɵtextInterpolate(detail_r10.Entity);
111
+ i0.ɵɵtextInterpolate(detail_r9.Entity);
159
112
  i0.ɵɵadvance(2);
160
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 9, detail_r10.RecordsProcessed));
113
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 9, detail_r9.RecordsProcessed));
161
114
  i0.ɵɵadvance(3);
162
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(8, 11, detail_r10.RecordsCreated));
115
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(8, 11, detail_r9.RecordsCreated));
163
116
  i0.ɵɵadvance(3);
164
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 13, detail_r10.RecordsUpdated));
117
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 13, detail_r9.RecordsUpdated));
165
118
  i0.ɵɵadvance(3);
166
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(14, 15, detail_r10.RecordsDeleted));
119
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(14, 15, detail_r9.RecordsDeleted));
167
120
  i0.ɵɵadvance(3);
168
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(17, 17, detail_r10.RecordsErrored));
121
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(17, 17, detail_r9.RecordsErrored));
169
122
  i0.ɵɵadvance(3);
170
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(20, 19, detail_r10.RecordsSkipped));
123
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(20, 19, detail_r9.RecordsSkipped));
171
124
  } }
172
- function ActivityComponent_Conditional_21_For_3_Conditional_22_Conditional_3_Template(rf, ctx) { if (rf & 1) {
173
- i0.ɵɵelementStart(0, "table", 47)(1, "thead")(2, "tr")(3, "th");
125
+ function ActivityComponent_Conditional_18_For_3_Conditional_22_Conditional_3_Template(rf, ctx) { if (rf & 1) {
126
+ i0.ɵɵelementStart(0, "table", 42)(1, "thead")(2, "tr")(3, "th");
174
127
  i0.ɵɵtext(4, "Entity");
175
128
  i0.ɵɵelementEnd();
176
- i0.ɵɵelementStart(5, "th", 51);
129
+ i0.ɵɵelementStart(5, "th", 46);
177
130
  i0.ɵɵtext(6, "Processed");
178
131
  i0.ɵɵelementEnd();
179
- i0.ɵɵelementStart(7, "th", 51);
132
+ i0.ɵɵelementStart(7, "th", 46);
180
133
  i0.ɵɵtext(8, "Created");
181
134
  i0.ɵɵelementEnd();
182
- i0.ɵɵelementStart(9, "th", 51);
135
+ i0.ɵɵelementStart(9, "th", 46);
183
136
  i0.ɵɵtext(10, "Updated");
184
137
  i0.ɵɵelementEnd();
185
- i0.ɵɵelementStart(11, "th", 51);
138
+ i0.ɵɵelementStart(11, "th", 46);
186
139
  i0.ɵɵtext(12, "Deleted");
187
140
  i0.ɵɵelementEnd();
188
- i0.ɵɵelementStart(13, "th", 51);
141
+ i0.ɵɵelementStart(13, "th", 46);
189
142
  i0.ɵɵtext(14, "Errored");
190
143
  i0.ɵɵelementEnd();
191
- i0.ɵɵelementStart(15, "th", 51);
144
+ i0.ɵɵelementStart(15, "th", 46);
192
145
  i0.ɵɵtext(16, "Skipped");
193
146
  i0.ɵɵelementEnd()()();
194
147
  i0.ɵɵelementStart(17, "tbody");
195
- i0.ɵɵrepeaterCreate(18, ActivityComponent_Conditional_21_For_3_Conditional_22_Conditional_3_For_19_Template, 21, 21, "tr", 52, _forTrack2);
148
+ i0.ɵɵrepeaterCreate(18, ActivityComponent_Conditional_18_For_3_Conditional_22_Conditional_3_For_19_Template, 21, 21, "tr", 47, _forTrack2);
196
149
  i0.ɵɵelementEnd()();
197
150
  } if (rf & 2) {
198
- const ctx_r2 = i0.ɵɵnextContext(4);
151
+ const ctx_r0 = i0.ɵɵnextContext(4);
199
152
  i0.ɵɵadvance(18);
200
- i0.ɵɵrepeater(ctx_r2.GetExpandedDetails());
153
+ i0.ɵɵrepeater(ctx_r0.GetExpandedDetails());
201
154
  } }
202
- function ActivityComponent_Conditional_21_For_3_Conditional_22_Conditional_4_Template(rf, ctx) { if (rf & 1) {
203
- i0.ɵɵelementStart(0, "div", 48)(1, "div", 56);
204
- i0.ɵɵelement(2, "i", 39);
155
+ function ActivityComponent_Conditional_18_For_3_Conditional_22_Conditional_4_Template(rf, ctx) { if (rf & 1) {
156
+ i0.ɵɵelementStart(0, "div", 43)(1, "div", 51);
157
+ i0.ɵɵelement(2, "i", 34);
205
158
  i0.ɵɵtext(3, " Error Log ");
206
159
  i0.ɵɵelementEnd();
207
- i0.ɵɵelementStart(4, "pre", 57);
160
+ i0.ɵɵelementStart(4, "pre", 52);
208
161
  i0.ɵɵtext(5);
209
162
  i0.ɵɵelementEnd()();
210
163
  } if (rf & 2) {
211
- const run_r8 = i0.ɵɵnextContext(2).$implicit;
164
+ const run_r7 = i0.ɵɵnextContext(2).$implicit;
212
165
  i0.ɵɵadvance(5);
213
- i0.ɵɵtextInterpolate(run_r8.ErrorLog);
166
+ i0.ɵɵtextInterpolate(run_r7.ErrorLog);
214
167
  } }
215
- function ActivityComponent_Conditional_21_For_3_Conditional_22_Template(rf, ctx) { if (rf & 1) {
216
- const _r9 = i0.ɵɵgetCurrentView();
217
- i0.ɵɵelementStart(0, "div", 44);
218
- i0.ɵɵlistener("click", function ActivityComponent_Conditional_21_For_3_Conditional_22_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r9); return i0.ɵɵresetView($event.stopPropagation()); });
219
- i0.ɵɵconditionalCreate(1, ActivityComponent_Conditional_21_For_3_Conditional_22_Conditional_1_Template, 2, 0, "div", 45)(2, ActivityComponent_Conditional_21_For_3_Conditional_22_Conditional_2_Template, 3, 0, "div", 46)(3, ActivityComponent_Conditional_21_For_3_Conditional_22_Conditional_3_Template, 20, 0, "table", 47);
220
- i0.ɵɵconditionalCreate(4, ActivityComponent_Conditional_21_For_3_Conditional_22_Conditional_4_Template, 6, 1, "div", 48);
168
+ function ActivityComponent_Conditional_18_For_3_Conditional_22_Template(rf, ctx) { if (rf & 1) {
169
+ const _r8 = i0.ɵɵgetCurrentView();
170
+ i0.ɵɵelementStart(0, "div", 39);
171
+ i0.ɵɵlistener("click", function ActivityComponent_Conditional_18_For_3_Conditional_22_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r8); return i0.ɵɵresetView($event.stopPropagation()); });
172
+ i0.ɵɵconditionalCreate(1, ActivityComponent_Conditional_18_For_3_Conditional_22_Conditional_1_Template, 2, 0, "div", 40)(2, ActivityComponent_Conditional_18_For_3_Conditional_22_Conditional_2_Template, 3, 0, "div", 41)(3, ActivityComponent_Conditional_18_For_3_Conditional_22_Conditional_3_Template, 20, 0, "table", 42);
173
+ i0.ɵɵconditionalCreate(4, ActivityComponent_Conditional_18_For_3_Conditional_22_Conditional_4_Template, 6, 1, "div", 43);
221
174
  i0.ɵɵelementEnd();
222
175
  } if (rf & 2) {
223
- const run_r8 = i0.ɵɵnextContext().$implicit;
224
- const ctx_r2 = i0.ɵɵnextContext(2);
176
+ const run_r7 = i0.ɵɵnextContext().$implicit;
177
+ const ctx_r0 = i0.ɵɵnextContext(2);
225
178
  i0.ɵɵadvance();
226
- i0.ɵɵconditional(ctx_r2.IsLoadingExpandedDetails() ? 1 : ctx_r2.GetExpandedDetails().length === 0 ? 2 : 3);
179
+ i0.ɵɵconditional(ctx_r0.IsLoadingExpandedDetails() ? 1 : ctx_r0.GetExpandedDetails().length === 0 ? 2 : 3);
227
180
  i0.ɵɵadvance(3);
228
- i0.ɵɵconditional(run_r8.ErrorLog ? 4 : -1);
181
+ i0.ɵɵconditional(run_r7.ErrorLog ? 4 : -1);
229
182
  } }
230
- function ActivityComponent_Conditional_21_For_3_Template(rf, ctx) { if (rf & 1) {
231
- const _r7 = i0.ɵɵgetCurrentView();
232
- i0.ɵɵelementStart(0, "div", 29);
233
- i0.ɵɵlistener("click", function ActivityComponent_Conditional_21_For_3_Template_div_click_0_listener() { const run_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SelectRun(run_r8.ID)); });
234
- i0.ɵɵelementStart(1, "div", 30);
235
- i0.ɵɵelement(2, "span")(3, "i", 31);
236
- i0.ɵɵelementStart(4, "div", 32)(5, "span", 33);
183
+ function ActivityComponent_Conditional_18_For_3_Template(rf, ctx) { if (rf & 1) {
184
+ const _r6 = i0.ɵɵgetCurrentView();
185
+ i0.ɵɵelementStart(0, "div", 24);
186
+ i0.ɵɵlistener("click", function ActivityComponent_Conditional_18_For_3_Template_div_click_0_listener() { const run_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.SelectRun(run_r7.ID)); });
187
+ i0.ɵɵelementStart(1, "div", 25);
188
+ i0.ɵɵelement(2, "span")(3, "i", 26);
189
+ i0.ɵɵelementStart(4, "div", 27)(5, "span", 28);
237
190
  i0.ɵɵtext(6);
238
191
  i0.ɵɵelementEnd();
239
- i0.ɵɵelementStart(7, "span", 34);
192
+ i0.ɵɵelementStart(7, "span", 29);
240
193
  i0.ɵɵtext(8);
241
194
  i0.ɵɵelementEnd()();
242
- i0.ɵɵelementStart(9, "div", 35);
195
+ i0.ɵɵelementStart(9, "div", 30);
243
196
  i0.ɵɵtext(10);
244
197
  i0.ɵɵelementEnd();
245
- i0.ɵɵelementStart(11, "div", 36);
198
+ i0.ɵɵelementStart(11, "div", 31);
246
199
  i0.ɵɵtext(12);
247
200
  i0.ɵɵelementEnd();
248
- i0.ɵɵelementStart(13, "div", 37);
201
+ i0.ɵɵelementStart(13, "div", 32);
249
202
  i0.ɵɵtext(14);
250
203
  i0.ɵɵpipe(15, "number");
251
204
  i0.ɵɵelementEnd();
252
- i0.ɵɵelementStart(16, "div", 38);
253
- i0.ɵɵconditionalCreate(17, ActivityComponent_Conditional_21_For_3_Conditional_17_Template, 1, 0, "i", 39);
205
+ i0.ɵɵelementStart(16, "div", 33);
206
+ i0.ɵɵconditionalCreate(17, ActivityComponent_Conditional_18_For_3_Conditional_17_Template, 1, 0, "i", 34);
254
207
  i0.ɵɵelementEnd();
255
- i0.ɵɵelementStart(18, "div", 40);
208
+ i0.ɵɵelementStart(18, "div", 35);
256
209
  i0.ɵɵtext(19);
257
210
  i0.ɵɵelementEnd();
258
- i0.ɵɵelementStart(20, "button", 41);
259
- i0.ɵɵlistener("click", function ActivityComponent_Conditional_21_For_3_Template_button_click_20_listener($event) { const run_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); ctx_r2.ToggleExpand(run_r8.ID); return i0.ɵɵresetView($event.stopPropagation()); });
260
- i0.ɵɵelement(21, "i", 42);
211
+ i0.ɵɵelementStart(20, "button", 36);
212
+ i0.ɵɵlistener("click", function ActivityComponent_Conditional_18_For_3_Template_button_click_20_listener($event) { const run_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); ctx_r0.ToggleExpand(run_r7.ID); return i0.ɵɵresetView($event.stopPropagation()); });
213
+ i0.ɵɵelement(21, "i", 37);
261
214
  i0.ɵɵelementEnd()();
262
- i0.ɵɵconditionalCreate(22, ActivityComponent_Conditional_21_For_3_Conditional_22_Template, 5, 2, "div", 43);
215
+ i0.ɵɵconditionalCreate(22, ActivityComponent_Conditional_18_For_3_Conditional_22_Template, 5, 2, "div", 38);
263
216
  i0.ɵɵelementEnd();
264
217
  } if (rf & 2) {
265
- const run_r8 = ctx.$implicit;
266
- const ctx_r2 = i0.ɵɵnextContext(2);
267
- i0.ɵɵclassProp("selected", ctx_r2.IsSelectedRun(run_r8.ID));
218
+ const run_r7 = ctx.$implicit;
219
+ const ctx_r0 = i0.ɵɵnextContext(2);
220
+ i0.ɵɵclassProp("selected", ctx_r0.IsSelectedRun(run_r7.ID));
268
221
  i0.ɵɵadvance(2);
269
- i0.ɵɵclassMap(ctx_r2.GetStatusDotClass(run_r8.Status));
222
+ i0.ɵɵclassMap(ctx_r0.GetStatusDotClass(run_r7.Status));
270
223
  i0.ɵɵadvance();
271
- i0.ɵɵclassMap(ctx_r2.GetStatusIcon(run_r8.Status));
272
- i0.ɵɵclassProp("icon-green", run_r8.Status === "Success")("icon-red", run_r8.Status === "Failed")("icon-amber", run_r8.Status === "In Progress")("icon-gray", run_r8.Status === "Pending");
224
+ i0.ɵɵclassMap(ctx_r0.GetStatusIcon(run_r7.Status));
225
+ i0.ɵɵclassProp("icon-green", run_r7.Status === "Success")("icon-red", run_r7.Status === "Failed")("icon-amber", run_r7.Status === "In Progress")("icon-gray", run_r7.Status === "Pending");
273
226
  i0.ɵɵadvance(3);
274
- i0.ɵɵtextInterpolate(run_r8.Integration);
227
+ i0.ɵɵtextInterpolate(run_r7.Integration);
275
228
  i0.ɵɵadvance(2);
276
- i0.ɵɵtextInterpolate(run_r8.Company);
229
+ i0.ɵɵtextInterpolate(run_r7.Company);
277
230
  i0.ɵɵadvance();
278
- i0.ɵɵproperty("title", ctx_r2.FormatAbsoluteDate(run_r8.StartedAt));
231
+ i0.ɵɵproperty("title", ctx_r0.FormatAbsoluteDate(run_r7.StartedAt));
279
232
  i0.ɵɵadvance();
280
- i0.ɵɵtextInterpolate1(" ", ctx_r2.GetRelativeTime(run_r8.StartedAt), " ");
233
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.GetRelativeTime(run_r7.StartedAt), " ");
281
234
  i0.ɵɵadvance(2);
282
- i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatDuration(run_r8.StartedAt, run_r8.EndedAt), " ");
235
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.FormatDuration(run_r7.StartedAt, run_r7.EndedAt), " ");
283
236
  i0.ɵɵadvance(2);
284
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(15, 27, run_r8.TotalRecords), " ");
237
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(15, 27, run_r7.TotalRecords), " ");
285
238
  i0.ɵɵadvance(2);
286
- i0.ɵɵclassProp("has-errors", run_r8.ErrorLog);
239
+ i0.ɵɵclassProp("has-errors", run_r7.ErrorLog);
287
240
  i0.ɵɵadvance();
288
- i0.ɵɵconditional(run_r8.ErrorLog ? 17 : -1);
241
+ i0.ɵɵconditional(run_r7.ErrorLog ? 17 : -1);
289
242
  i0.ɵɵadvance(2);
290
- i0.ɵɵtextInterpolate1(" ", run_r8.RunByUser || "Scheduled", " ");
243
+ i0.ɵɵtextInterpolate1(" ", run_r7.RunByUser || "Scheduled", " ");
291
244
  i0.ɵɵadvance(2);
292
- i0.ɵɵclassProp("rotated", ctx_r2.IsExpanded(run_r8.ID));
245
+ i0.ɵɵclassProp("rotated", ctx_r0.IsExpanded(run_r7.ID));
293
246
  i0.ɵɵadvance();
294
- i0.ɵɵconditional(ctx_r2.IsExpanded(run_r8.ID) ? 22 : -1);
247
+ i0.ɵɵconditional(ctx_r0.IsExpanded(run_r7.ID) ? 22 : -1);
295
248
  } }
296
- function ActivityComponent_Conditional_21_Conditional_4_Conditional_12_Template(rf, ctx) { if (rf & 1) {
297
- i0.ɵɵelementStart(0, "div", 63)(1, "div", 69);
298
- i0.ɵɵelement(2, "div", 70);
249
+ function ActivityComponent_Conditional_18_Conditional_4_Conditional_12_Template(rf, ctx) { if (rf & 1) {
250
+ i0.ɵɵelementStart(0, "div", 58)(1, "div", 64);
251
+ i0.ɵɵelement(2, "div", 65);
299
252
  i0.ɵɵelementEnd();
300
- i0.ɵɵelementStart(3, "div", 71)(4, "span");
253
+ i0.ɵɵelementStart(3, "div", 66)(4, "span");
301
254
  i0.ɵɵtext(5);
302
255
  i0.ɵɵelementEnd();
303
- i0.ɵɵelementStart(6, "span", 72);
256
+ i0.ɵɵelementStart(6, "span", 67);
304
257
  i0.ɵɵtext(7);
305
258
  i0.ɵɵelementEnd();
306
259
  i0.ɵɵelementStart(8, "span");
307
260
  i0.ɵɵtext(9);
308
261
  i0.ɵɵelementEnd()()();
309
262
  } if (rf & 2) {
310
- const ctx_r2 = i0.ɵɵnextContext(3);
263
+ const ctx_r0 = i0.ɵɵnextContext(3);
311
264
  i0.ɵɵadvance(2);
312
- i0.ɵɵstyleProp("width", ctx_r2.GetDurationBarWidth(ctx_r2.GetSelectedRun()), "%");
265
+ i0.ɵɵstyleProp("width", ctx_r0.GetDurationBarWidth(ctx_r0.GetSelectedRun()), "%");
313
266
  i0.ɵɵadvance(3);
314
- i0.ɵɵtextInterpolate(ctx_r2.FormatDate(ctx_r2.GetSelectedRun().StartedAt));
267
+ i0.ɵɵtextInterpolate(ctx_r0.FormatDate(ctx_r0.GetSelectedRun().StartedAt));
315
268
  i0.ɵɵadvance(2);
316
- i0.ɵɵtextInterpolate(ctx_r2.GetDurationBarLabel(ctx_r2.GetSelectedRun()));
269
+ i0.ɵɵtextInterpolate(ctx_r0.GetDurationBarLabel(ctx_r0.GetSelectedRun()));
317
270
  i0.ɵɵadvance(2);
318
- i0.ɵɵtextInterpolate(ctx_r2.FormatDate(ctx_r2.GetSelectedRun().EndedAt));
271
+ i0.ɵɵtextInterpolate(ctx_r0.FormatDate(ctx_r0.GetSelectedRun().EndedAt));
319
272
  } }
320
- function ActivityComponent_Conditional_21_Conditional_4_Conditional_21_Conditional_0_Template(rf, ctx) { if (rf & 1) {
321
- i0.ɵɵelementStart(0, "div", 73);
322
- i0.ɵɵelement(1, "mj-loading", 77);
273
+ function ActivityComponent_Conditional_18_Conditional_4_Conditional_21_Conditional_0_Template(rf, ctx) { if (rf & 1) {
274
+ i0.ɵɵelementStart(0, "div", 68);
275
+ i0.ɵɵelement(1, "mj-loading", 72);
323
276
  i0.ɵɵelementEnd();
324
277
  } }
325
- function ActivityComponent_Conditional_21_Conditional_4_Conditional_21_Conditional_1_Template(rf, ctx) { if (rf & 1) {
326
- i0.ɵɵelementStart(0, "div", 74);
327
- i0.ɵɵelement(1, "i", 50);
278
+ function ActivityComponent_Conditional_18_Conditional_4_Conditional_21_Conditional_1_Template(rf, ctx) { if (rf & 1) {
279
+ i0.ɵɵelementStart(0, "div", 69);
280
+ i0.ɵɵelement(1, "i", 45);
328
281
  i0.ɵɵelementStart(2, "p");
329
282
  i0.ɵɵtext(3, "No entity detail records for this run.");
330
283
  i0.ɵɵelementEnd()();
331
284
  } }
332
- function ActivityComponent_Conditional_21_Conditional_4_Conditional_21_Conditional_2_For_19_Template(rf, ctx) { if (rf & 1) {
285
+ function ActivityComponent_Conditional_18_Conditional_4_Conditional_21_Conditional_2_For_19_Template(rf, ctx) { if (rf & 1) {
333
286
  i0.ɵɵelementStart(0, "tr")(1, "td");
334
287
  i0.ɵɵtext(2);
335
288
  i0.ɵɵelementEnd();
336
- i0.ɵɵelementStart(3, "td", 51);
289
+ i0.ɵɵelementStart(3, "td", 46);
337
290
  i0.ɵɵtext(4);
338
291
  i0.ɵɵpipe(5, "number");
339
292
  i0.ɵɵelementEnd();
340
- i0.ɵɵelementStart(6, "td", 53);
293
+ i0.ɵɵelementStart(6, "td", 48);
341
294
  i0.ɵɵtext(7);
342
295
  i0.ɵɵpipe(8, "number");
343
296
  i0.ɵɵelementEnd();
344
- i0.ɵɵelementStart(9, "td", 54);
297
+ i0.ɵɵelementStart(9, "td", 49);
345
298
  i0.ɵɵtext(10);
346
299
  i0.ɵɵpipe(11, "number");
347
300
  i0.ɵɵelementEnd();
348
- i0.ɵɵelementStart(12, "td", 51);
301
+ i0.ɵɵelementStart(12, "td", 46);
349
302
  i0.ɵɵtext(13);
350
303
  i0.ɵɵpipe(14, "number");
351
304
  i0.ɵɵelementEnd();
352
- i0.ɵɵelementStart(15, "td", 55);
305
+ i0.ɵɵelementStart(15, "td", 50);
353
306
  i0.ɵɵtext(16);
354
307
  i0.ɵɵpipe(17, "number");
355
308
  i0.ɵɵelementEnd();
356
- i0.ɵɵelementStart(18, "td", 51);
309
+ i0.ɵɵelementStart(18, "td", 46);
357
310
  i0.ɵɵtext(19);
358
311
  i0.ɵɵpipe(20, "number");
359
312
  i0.ɵɵelementEnd()();
360
313
  } if (rf & 2) {
361
- const detail_r12 = ctx.$implicit;
362
- i0.ɵɵclassProp("error-row", detail_r12.RecordsErrored > 0);
314
+ const detail_r11 = ctx.$implicit;
315
+ i0.ɵɵclassProp("error-row", detail_r11.RecordsErrored > 0);
363
316
  i0.ɵɵadvance(2);
364
- i0.ɵɵtextInterpolate(detail_r12.Entity);
317
+ i0.ɵɵtextInterpolate(detail_r11.Entity);
365
318
  i0.ɵɵadvance(2);
366
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 9, detail_r12.RecordsProcessed));
319
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 9, detail_r11.RecordsProcessed));
367
320
  i0.ɵɵadvance(3);
368
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(8, 11, detail_r12.RecordsCreated));
321
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(8, 11, detail_r11.RecordsCreated));
369
322
  i0.ɵɵadvance(3);
370
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 13, detail_r12.RecordsUpdated));
323
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 13, detail_r11.RecordsUpdated));
371
324
  i0.ɵɵadvance(3);
372
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(14, 15, detail_r12.RecordsDeleted));
325
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(14, 15, detail_r11.RecordsDeleted));
373
326
  i0.ɵɵadvance(3);
374
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(17, 17, detail_r12.RecordsErrored));
327
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(17, 17, detail_r11.RecordsErrored));
375
328
  i0.ɵɵadvance(3);
376
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(20, 19, detail_r12.RecordsSkipped));
329
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(20, 19, detail_r11.RecordsSkipped));
377
330
  } }
378
- function ActivityComponent_Conditional_21_Conditional_4_Conditional_21_Conditional_2_Template(rf, ctx) { if (rf & 1) {
379
- i0.ɵɵelementStart(0, "table", 75)(1, "thead")(2, "tr")(3, "th");
331
+ function ActivityComponent_Conditional_18_Conditional_4_Conditional_21_Conditional_2_Template(rf, ctx) { if (rf & 1) {
332
+ i0.ɵɵelementStart(0, "table", 70)(1, "thead")(2, "tr")(3, "th");
380
333
  i0.ɵɵtext(4, "Entity");
381
334
  i0.ɵɵelementEnd();
382
- i0.ɵɵelementStart(5, "th", 51);
335
+ i0.ɵɵelementStart(5, "th", 46);
383
336
  i0.ɵɵtext(6, "Processed");
384
337
  i0.ɵɵelementEnd();
385
- i0.ɵɵelementStart(7, "th", 51);
338
+ i0.ɵɵelementStart(7, "th", 46);
386
339
  i0.ɵɵtext(8, "Created");
387
340
  i0.ɵɵelementEnd();
388
- i0.ɵɵelementStart(9, "th", 51);
341
+ i0.ɵɵelementStart(9, "th", 46);
389
342
  i0.ɵɵtext(10, "Updated");
390
343
  i0.ɵɵelementEnd();
391
- i0.ɵɵelementStart(11, "th", 51);
344
+ i0.ɵɵelementStart(11, "th", 46);
392
345
  i0.ɵɵtext(12, "Deleted");
393
346
  i0.ɵɵelementEnd();
394
- i0.ɵɵelementStart(13, "th", 51);
347
+ i0.ɵɵelementStart(13, "th", 46);
395
348
  i0.ɵɵtext(14, "Errors");
396
349
  i0.ɵɵelementEnd();
397
- i0.ɵɵelementStart(15, "th", 51);
350
+ i0.ɵɵelementStart(15, "th", 46);
398
351
  i0.ɵɵtext(16, "Skipped");
399
352
  i0.ɵɵelementEnd()()();
400
353
  i0.ɵɵelementStart(17, "tbody");
401
- i0.ɵɵrepeaterCreate(18, ActivityComponent_Conditional_21_Conditional_4_Conditional_21_Conditional_2_For_19_Template, 21, 21, "tr", 52, _forTrack2);
354
+ i0.ɵɵrepeaterCreate(18, ActivityComponent_Conditional_18_Conditional_4_Conditional_21_Conditional_2_For_19_Template, 21, 21, "tr", 47, _forTrack2);
402
355
  i0.ɵɵelementEnd()();
403
356
  } if (rf & 2) {
404
- const ctx_r2 = i0.ɵɵnextContext(4);
357
+ const ctx_r0 = i0.ɵɵnextContext(4);
405
358
  i0.ɵɵadvance(18);
406
- i0.ɵɵrepeater(ctx_r2.SelectedRunDetails);
359
+ i0.ɵɵrepeater(ctx_r0.SelectedRunDetails);
407
360
  } }
408
- function ActivityComponent_Conditional_21_Conditional_4_Conditional_21_Conditional_3_Template(rf, ctx) { if (rf & 1) {
409
- i0.ɵɵelementStart(0, "div", 76)(1, "div", 56);
410
- i0.ɵɵelement(2, "i", 39);
361
+ function ActivityComponent_Conditional_18_Conditional_4_Conditional_21_Conditional_3_Template(rf, ctx) { if (rf & 1) {
362
+ i0.ɵɵelementStart(0, "div", 71)(1, "div", 51);
363
+ i0.ɵɵelement(2, "i", 34);
411
364
  i0.ɵɵtext(3, " Error Log ");
412
365
  i0.ɵɵelementEnd();
413
- i0.ɵɵelementStart(4, "pre", 57);
366
+ i0.ɵɵelementStart(4, "pre", 52);
414
367
  i0.ɵɵtext(5);
415
368
  i0.ɵɵelementEnd()();
416
369
  } if (rf & 2) {
417
- const ctx_r2 = i0.ɵɵnextContext(4);
370
+ const ctx_r0 = i0.ɵɵnextContext(4);
418
371
  i0.ɵɵadvance(5);
419
- i0.ɵɵtextInterpolate(ctx_r2.GetSelectedRun().ErrorLog);
372
+ i0.ɵɵtextInterpolate(ctx_r0.GetSelectedRun().ErrorLog);
420
373
  } }
421
- function ActivityComponent_Conditional_21_Conditional_4_Conditional_21_Template(rf, ctx) { if (rf & 1) {
422
- i0.ɵɵconditionalCreate(0, ActivityComponent_Conditional_21_Conditional_4_Conditional_21_Conditional_0_Template, 2, 0, "div", 73)(1, ActivityComponent_Conditional_21_Conditional_4_Conditional_21_Conditional_1_Template, 4, 0, "div", 74)(2, ActivityComponent_Conditional_21_Conditional_4_Conditional_21_Conditional_2_Template, 20, 0, "table", 75);
423
- i0.ɵɵconditionalCreate(3, ActivityComponent_Conditional_21_Conditional_4_Conditional_21_Conditional_3_Template, 6, 1, "div", 76);
374
+ function ActivityComponent_Conditional_18_Conditional_4_Conditional_21_Template(rf, ctx) { if (rf & 1) {
375
+ i0.ɵɵconditionalCreate(0, ActivityComponent_Conditional_18_Conditional_4_Conditional_21_Conditional_0_Template, 2, 0, "div", 68)(1, ActivityComponent_Conditional_18_Conditional_4_Conditional_21_Conditional_1_Template, 4, 0, "div", 69)(2, ActivityComponent_Conditional_18_Conditional_4_Conditional_21_Conditional_2_Template, 20, 0, "table", 70);
376
+ i0.ɵɵconditionalCreate(3, ActivityComponent_Conditional_18_Conditional_4_Conditional_21_Conditional_3_Template, 6, 1, "div", 71);
424
377
  } if (rf & 2) {
425
378
  let tmp_4_0;
426
- const ctx_r2 = i0.ɵɵnextContext(3);
427
- i0.ɵɵconditional(ctx_r2.IsLoadingDetail ? 0 : ctx_r2.SelectedRunDetails.length === 0 ? 1 : 2);
379
+ const ctx_r0 = i0.ɵɵnextContext(3);
380
+ i0.ɵɵconditional(ctx_r0.IsLoadingDetail ? 0 : ctx_r0.SelectedRunDetails.length === 0 ? 1 : 2);
428
381
  i0.ɵɵadvance(3);
429
- i0.ɵɵconditional(((tmp_4_0 = ctx_r2.GetSelectedRun()) == null ? null : tmp_4_0.ErrorLog) ? 3 : -1);
382
+ i0.ɵɵconditional(((tmp_4_0 = ctx_r0.GetSelectedRun()) == null ? null : tmp_4_0.ErrorLog) ? 3 : -1);
430
383
  } }
431
- function ActivityComponent_Conditional_21_Conditional_4_Conditional_22_Conditional_0_Template(rf, ctx) { if (rf & 1) {
432
- i0.ɵɵelementStart(0, "div", 73);
433
- i0.ɵɵelement(1, "mj-loading", 78);
384
+ function ActivityComponent_Conditional_18_Conditional_4_Conditional_22_Conditional_0_Template(rf, ctx) { if (rf & 1) {
385
+ i0.ɵɵelementStart(0, "div", 68);
386
+ i0.ɵɵelement(1, "mj-loading", 73);
434
387
  i0.ɵɵelementEnd();
435
388
  } }
436
- function ActivityComponent_Conditional_21_Conditional_4_Conditional_22_Conditional_1_Template(rf, ctx) { if (rf & 1) {
437
- i0.ɵɵelementStart(0, "div", 74);
438
- i0.ɵɵelement(1, "i", 79);
389
+ function ActivityComponent_Conditional_18_Conditional_4_Conditional_22_Conditional_1_Template(rf, ctx) { if (rf & 1) {
390
+ i0.ɵɵelementStart(0, "div", 69);
391
+ i0.ɵɵelement(1, "i", 74);
439
392
  i0.ɵɵelementStart(2, "p");
440
393
  i0.ɵɵtext(3, "No watermarks recorded for this integration.");
441
394
  i0.ɵɵelementEnd()();
442
395
  } }
443
- function ActivityComponent_Conditional_21_Conditional_4_Conditional_22_Conditional_2_For_13_Template(rf, ctx) { if (rf & 1) {
396
+ function ActivityComponent_Conditional_18_Conditional_4_Conditional_22_Conditional_2_For_13_Template(rf, ctx) { if (rf & 1) {
444
397
  i0.ɵɵelementStart(0, "tr")(1, "td");
445
398
  i0.ɵɵtext(2);
446
399
  i0.ɵɵelementEnd();
447
- i0.ɵɵelementStart(3, "td")(4, "span", 80);
400
+ i0.ɵɵelementStart(3, "td")(4, "span", 75);
448
401
  i0.ɵɵtext(5);
449
402
  i0.ɵɵelementEnd()();
450
- i0.ɵɵelementStart(6, "td", 81);
403
+ i0.ɵɵelementStart(6, "td", 76);
451
404
  i0.ɵɵtext(7);
452
405
  i0.ɵɵelementEnd();
453
406
  i0.ɵɵelementStart(8, "td");
454
407
  i0.ɵɵtext(9);
455
408
  i0.ɵɵelementEnd()();
456
409
  } if (rf & 2) {
457
- const wm_r13 = ctx.$implicit;
458
- const ctx_r2 = i0.ɵɵnextContext(5);
410
+ const wm_r12 = ctx.$implicit;
411
+ const ctx_r0 = i0.ɵɵnextContext(5);
459
412
  i0.ɵɵadvance(2);
460
- i0.ɵɵtextInterpolate(wm_r13.EntityMap);
413
+ i0.ɵɵtextInterpolate(wm_r12.EntityMap);
461
414
  i0.ɵɵadvance(3);
462
- i0.ɵɵtextInterpolate(wm_r13.WatermarkType);
415
+ i0.ɵɵtextInterpolate(wm_r12.WatermarkType);
463
416
  i0.ɵɵadvance(2);
464
- i0.ɵɵtextInterpolate(ctx_r2.FormatWatermark(wm_r13.WatermarkValue));
417
+ i0.ɵɵtextInterpolate(ctx_r0.FormatWatermark(wm_r12.WatermarkValue));
465
418
  i0.ɵɵadvance(2);
466
- i0.ɵɵtextInterpolate(ctx_r2.FormatDate(wm_r13.LastSyncAt));
419
+ i0.ɵɵtextInterpolate(ctx_r0.FormatDate(wm_r12.LastSyncAt));
467
420
  } }
468
- function ActivityComponent_Conditional_21_Conditional_4_Conditional_22_Conditional_2_Template(rf, ctx) { if (rf & 1) {
469
- i0.ɵɵelementStart(0, "table", 75)(1, "thead")(2, "tr")(3, "th");
421
+ function ActivityComponent_Conditional_18_Conditional_4_Conditional_22_Conditional_2_Template(rf, ctx) { if (rf & 1) {
422
+ i0.ɵɵelementStart(0, "table", 70)(1, "thead")(2, "tr")(3, "th");
470
423
  i0.ɵɵtext(4, "Entity Map");
471
424
  i0.ɵɵelementEnd();
472
425
  i0.ɵɵelementStart(5, "th");
@@ -479,85 +432,85 @@ function ActivityComponent_Conditional_21_Conditional_4_Conditional_22_Condition
479
432
  i0.ɵɵtext(10, "Last Applied");
480
433
  i0.ɵɵelementEnd()()();
481
434
  i0.ɵɵelementStart(11, "tbody");
482
- i0.ɵɵrepeaterCreate(12, ActivityComponent_Conditional_21_Conditional_4_Conditional_22_Conditional_2_For_13_Template, 10, 4, "tr", null, _forTrack0);
435
+ i0.ɵɵrepeaterCreate(12, ActivityComponent_Conditional_18_Conditional_4_Conditional_22_Conditional_2_For_13_Template, 10, 4, "tr", null, _forTrack1);
483
436
  i0.ɵɵelementEnd()();
484
437
  } if (rf & 2) {
485
- const ctx_r2 = i0.ɵɵnextContext(4);
438
+ const ctx_r0 = i0.ɵɵnextContext(4);
486
439
  i0.ɵɵadvance(12);
487
- i0.ɵɵrepeater(ctx_r2.WatermarkData);
440
+ i0.ɵɵrepeater(ctx_r0.WatermarkData);
488
441
  } }
489
- function ActivityComponent_Conditional_21_Conditional_4_Conditional_22_Template(rf, ctx) { if (rf & 1) {
490
- i0.ɵɵconditionalCreate(0, ActivityComponent_Conditional_21_Conditional_4_Conditional_22_Conditional_0_Template, 2, 0, "div", 73)(1, ActivityComponent_Conditional_21_Conditional_4_Conditional_22_Conditional_1_Template, 4, 0, "div", 74)(2, ActivityComponent_Conditional_21_Conditional_4_Conditional_22_Conditional_2_Template, 14, 0, "table", 75);
442
+ function ActivityComponent_Conditional_18_Conditional_4_Conditional_22_Template(rf, ctx) { if (rf & 1) {
443
+ i0.ɵɵconditionalCreate(0, ActivityComponent_Conditional_18_Conditional_4_Conditional_22_Conditional_0_Template, 2, 0, "div", 68)(1, ActivityComponent_Conditional_18_Conditional_4_Conditional_22_Conditional_1_Template, 4, 0, "div", 69)(2, ActivityComponent_Conditional_18_Conditional_4_Conditional_22_Conditional_2_Template, 14, 0, "table", 70);
491
444
  } if (rf & 2) {
492
- const ctx_r2 = i0.ɵɵnextContext(3);
493
- i0.ɵɵconditional(ctx_r2.IsLoadingWatermarks ? 0 : ctx_r2.WatermarkData.length === 0 ? 1 : 2);
445
+ const ctx_r0 = i0.ɵɵnextContext(3);
446
+ i0.ɵɵconditional(ctx_r0.IsLoadingWatermarks ? 0 : ctx_r0.WatermarkData.length === 0 ? 1 : 2);
494
447
  } }
495
- function ActivityComponent_Conditional_21_Conditional_4_Template(rf, ctx) { if (rf & 1) {
496
- const _r11 = i0.ɵɵgetCurrentView();
497
- i0.ɵɵelementStart(0, "div", 28)(1, "div", 58)(2, "div", 59)(3, "h3");
448
+ function ActivityComponent_Conditional_18_Conditional_4_Template(rf, ctx) { if (rf & 1) {
449
+ const _r10 = i0.ɵɵgetCurrentView();
450
+ i0.ɵɵelementStart(0, "div", 23)(1, "div", 53)(2, "div", 54)(3, "h3");
498
451
  i0.ɵɵtext(4);
499
452
  i0.ɵɵelementEnd();
500
453
  i0.ɵɵelementStart(5, "span");
501
454
  i0.ɵɵelement(6, "i");
502
455
  i0.ɵɵtext(7);
503
456
  i0.ɵɵelementEnd();
504
- i0.ɵɵelementStart(8, "span", 60);
457
+ i0.ɵɵelementStart(8, "span", 55);
505
458
  i0.ɵɵtext(9);
506
459
  i0.ɵɵelementEnd()();
507
- i0.ɵɵelementStart(10, "button", 61);
508
- i0.ɵɵlistener("click", function ActivityComponent_Conditional_21_Conditional_4_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r11); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SelectRun(ctx_r2.SelectedRunID)); });
509
- i0.ɵɵelement(11, "i", 62);
460
+ i0.ɵɵelementStart(10, "button", 56);
461
+ i0.ɵɵlistener("click", function ActivityComponent_Conditional_18_Conditional_4_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.SelectRun(ctx_r0.SelectedRunID)); });
462
+ i0.ɵɵelement(11, "i", 57);
510
463
  i0.ɵɵelementEnd()();
511
- i0.ɵɵconditionalCreate(12, ActivityComponent_Conditional_21_Conditional_4_Conditional_12_Template, 10, 5, "div", 63);
512
- i0.ɵɵelementStart(13, "div", 64)(14, "button", 65);
513
- i0.ɵɵlistener("click", function ActivityComponent_Conditional_21_Conditional_4_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r11); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SetDetailTab("entities")); });
514
- i0.ɵɵelement(15, "i", 66);
464
+ i0.ɵɵconditionalCreate(12, ActivityComponent_Conditional_18_Conditional_4_Conditional_12_Template, 10, 5, "div", 58);
465
+ i0.ɵɵelementStart(13, "div", 59)(14, "button", 60);
466
+ i0.ɵɵlistener("click", function ActivityComponent_Conditional_18_Conditional_4_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.SetDetailTab("entities")); });
467
+ i0.ɵɵelement(15, "i", 61);
515
468
  i0.ɵɵtext(16, " Entity Breakdown ");
516
469
  i0.ɵɵelementEnd();
517
- i0.ɵɵelementStart(17, "button", 65);
518
- i0.ɵɵlistener("click", function ActivityComponent_Conditional_21_Conditional_4_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r11); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SetDetailTab("watermarks")); });
519
- i0.ɵɵelement(18, "i", 67);
470
+ i0.ɵɵelementStart(17, "button", 60);
471
+ i0.ɵɵlistener("click", function ActivityComponent_Conditional_18_Conditional_4_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.SetDetailTab("watermarks")); });
472
+ i0.ɵɵelement(18, "i", 62);
520
473
  i0.ɵɵtext(19, " Watermarks ");
521
474
  i0.ɵɵelementEnd()();
522
- i0.ɵɵelementStart(20, "div", 68);
523
- i0.ɵɵconditionalCreate(21, ActivityComponent_Conditional_21_Conditional_4_Conditional_21_Template, 4, 2);
524
- i0.ɵɵconditionalCreate(22, ActivityComponent_Conditional_21_Conditional_4_Conditional_22_Template, 3, 1);
475
+ i0.ɵɵelementStart(20, "div", 63);
476
+ i0.ɵɵconditionalCreate(21, ActivityComponent_Conditional_18_Conditional_4_Conditional_21_Template, 4, 2);
477
+ i0.ɵɵconditionalCreate(22, ActivityComponent_Conditional_18_Conditional_4_Conditional_22_Template, 3, 1);
525
478
  i0.ɵɵelementEnd()();
526
479
  } if (rf & 2) {
527
- const ctx_r2 = i0.ɵɵnextContext(2);
480
+ const ctx_r0 = i0.ɵɵnextContext(2);
528
481
  i0.ɵɵadvance(4);
529
- i0.ɵɵtextInterpolate(ctx_r2.GetSelectedRun().Integration);
482
+ i0.ɵɵtextInterpolate(ctx_r0.GetSelectedRun().Integration);
530
483
  i0.ɵɵadvance();
531
- i0.ɵɵclassMap(ctx_r2.StatusChipClass(ctx_r2.GetSelectedRun().Status));
484
+ i0.ɵɵclassMap(ctx_r0.StatusChipClass(ctx_r0.GetSelectedRun().Status));
532
485
  i0.ɵɵadvance();
533
- i0.ɵɵclassMap(ctx_r2.GetStatusIcon(ctx_r2.GetSelectedRun().Status));
486
+ i0.ɵɵclassMap(ctx_r0.GetStatusIcon(ctx_r0.GetSelectedRun().Status));
534
487
  i0.ɵɵadvance();
535
- i0.ɵɵtextInterpolate1(" ", ctx_r2.GetSelectedRun().Status, " ");
488
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.GetSelectedRun().Status, " ");
536
489
  i0.ɵɵadvance(2);
537
- i0.ɵɵtextInterpolate(ctx_r2.FormatDate(ctx_r2.GetSelectedRun().StartedAt));
490
+ i0.ɵɵtextInterpolate(ctx_r0.FormatDate(ctx_r0.GetSelectedRun().StartedAt));
538
491
  i0.ɵɵadvance(3);
539
- i0.ɵɵconditional(ctx_r2.GetSelectedRun().StartedAt && ctx_r2.GetSelectedRun().EndedAt ? 12 : -1);
492
+ i0.ɵɵconditional(ctx_r0.GetSelectedRun().StartedAt && ctx_r0.GetSelectedRun().EndedAt ? 12 : -1);
540
493
  i0.ɵɵadvance(2);
541
- i0.ɵɵclassProp("active", ctx_r2.ActiveDetailTab === "entities");
494
+ i0.ɵɵclassProp("active", ctx_r0.ActiveDetailTab === "entities");
542
495
  i0.ɵɵadvance(3);
543
- i0.ɵɵclassProp("active", ctx_r2.ActiveDetailTab === "watermarks");
496
+ i0.ɵɵclassProp("active", ctx_r0.ActiveDetailTab === "watermarks");
544
497
  i0.ɵɵadvance(4);
545
- i0.ɵɵconditional(ctx_r2.ActiveDetailTab === "entities" ? 21 : -1);
498
+ i0.ɵɵconditional(ctx_r0.ActiveDetailTab === "entities" ? 21 : -1);
546
499
  i0.ɵɵadvance();
547
- i0.ɵɵconditional(ctx_r2.ActiveDetailTab === "watermarks" ? 22 : -1);
500
+ i0.ɵɵconditional(ctx_r0.ActiveDetailTab === "watermarks" ? 22 : -1);
548
501
  } }
549
- function ActivityComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
550
- i0.ɵɵelementStart(0, "div", 14)(1, "div", 26);
551
- i0.ɵɵrepeaterCreate(2, ActivityComponent_Conditional_21_For_3_Template, 23, 29, "div", 27, _forTrack0);
502
+ function ActivityComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
503
+ i0.ɵɵelementStart(0, "div", 14)(1, "div", 21);
504
+ i0.ɵɵrepeaterCreate(2, ActivityComponent_Conditional_18_For_3_Template, 23, 29, "div", 22, _forTrack1);
552
505
  i0.ɵɵelementEnd();
553
- i0.ɵɵconditionalCreate(4, ActivityComponent_Conditional_21_Conditional_4_Template, 23, 14, "div", 28);
506
+ i0.ɵɵconditionalCreate(4, ActivityComponent_Conditional_18_Conditional_4_Template, 23, 14, "div", 23);
554
507
  i0.ɵɵelementEnd();
555
508
  } if (rf & 2) {
556
- const ctx_r2 = i0.ɵɵnextContext();
509
+ const ctx_r0 = i0.ɵɵnextContext();
557
510
  i0.ɵɵadvance(2);
558
- i0.ɵɵrepeater(ctx_r2.FilteredRuns);
511
+ i0.ɵɵrepeater(ctx_r0.FilteredRuns);
559
512
  i0.ɵɵadvance(2);
560
- i0.ɵɵconditional(ctx_r2.SelectedRunID && ctx_r2.GetSelectedRun() ? 4 : -1);
513
+ i0.ɵɵconditional(ctx_r0.SelectedRunID && ctx_r0.GetSelectedRun() ? 4 : -1);
561
514
  } }
562
515
  let ActivityComponent = class ActivityComponent extends BaseResourceComponent {
563
516
  // Data
@@ -583,10 +536,10 @@ let ActivityComponent = class ActivityComponent extends BaseResourceComponent {
583
536
  IsLoadingWatermarks = false;
584
537
  StatusOptions = ['All', 'Success', 'Failed', 'In Progress', 'Pending'];
585
538
  DateOptions = [
539
+ { Value: 'all', Label: 'All' },
586
540
  { Value: 'today', Label: 'Today' },
587
541
  { Value: '7d', Label: '7 Days' },
588
- { Value: '30d', Label: '30 Days' },
589
- { Value: 'all', Label: 'All' }
542
+ { Value: '30d', Label: '30 Days' }
590
543
  ];
591
544
  dataService = inject(IntegrationDataService);
592
545
  cdr = inject(ChangeDetectorRef);
@@ -743,6 +696,42 @@ let ActivityComponent = class ActivityComponent extends BaseResourceComponent {
743
696
  OnSearchChange() {
744
697
  this.ApplyFilters();
745
698
  }
699
+ /** Bridge for <mj-page-search> which emits a plain string. */
700
+ OnSearchValueChange(value) {
701
+ this.SearchQuery = value;
702
+ this.ApplyFilters();
703
+ }
704
+ // ---- Integration filter popover wiring ---------------------------------
705
+ get ActivityFilterFields() {
706
+ return [
707
+ {
708
+ key: 'integration',
709
+ type: 'dropdown',
710
+ label: 'Integration',
711
+ icon: 'fa-solid fa-plug',
712
+ placeholder: 'All Integrations',
713
+ filterable: this.Integrations.length > 10,
714
+ options: [
715
+ { text: 'All Integrations', value: '' },
716
+ ...this.Integrations.map(i => ({ text: i.Name, value: i.ID })),
717
+ ],
718
+ },
719
+ ];
720
+ }
721
+ get ActivityFilterValues() {
722
+ return { integration: this.IntegrationFilter ?? '' };
723
+ }
724
+ get ActiveFilterCount() {
725
+ return this.IntegrationFilter ? 1 : 0;
726
+ }
727
+ OnFilterValuesChange(values) {
728
+ const next = (values ?? {}).integration ?? '';
729
+ this.SetIntegrationFilter(next || null);
730
+ }
731
+ ResetIntegrationFilter() {
732
+ if (this.IntegrationFilter)
733
+ this.SetIntegrationFilter(null);
734
+ }
746
735
  async Refresh() {
747
736
  await this.LoadData();
748
737
  }
@@ -900,53 +889,53 @@ let ActivityComponent = class ActivityComponent extends BaseResourceComponent {
900
889
  return 'fa-solid fa-clock-rotate-left';
901
890
  }
902
891
  static ɵfac = /*@__PURE__*/ (() => { let ɵActivityComponent_BaseFactory; return function ActivityComponent_Factory(__ngFactoryType__) { return (ɵActivityComponent_BaseFactory || (ɵActivityComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ActivityComponent)))(__ngFactoryType__ || ActivityComponent); }; })();
903
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActivityComponent, selectors: [["app-integration-activity"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 22, vars: 6, consts: [[1, "activity-container"], [1, "filter-bar"], [1, "filter-group", "filter-pills"], [1, "pill-btn", 3, "active"], [1, "filter-group"], [1, "filter-select", 3, "ngModelChange", "ngModel"], ["value", ""], [3, "value"], ["type", "text", "placeholder", "Search integrations...", 1, "search-input", 3, "ngModelChange", "input", "ngModel"], ["title", "Refresh", 1, "refresh-btn", 3, "click"], [1, "fa-solid", "fa-arrows-rotate"], [1, "summary-strip"], [1, "loading-area"], [1, "empty-state"], [1, "split-view"], [1, "pill-btn", 3, "click"], [1, "summary-badge"], [1, "badge-dot", "dot-blue"], [1, "badge-count"], [1, "badge-label"], [1, "badge-dot", "dot-green"], [1, "badge-count", "count-green"], [1, "badge-dot", "dot-red"], [1, "badge-count", "count-red"], ["text", "Loading activity...", "size", "medium"], [1, "fa-solid", "fa-inbox"], [1, "run-list-panel"], [1, "run-row", 3, "selected"], [1, "detail-panel"], [1, "run-row", 3, "click"], [1, "run-row-main"], [1, "status-icon"], [1, "run-info"], [1, "run-integration"], [1, "run-company"], [1, "run-meta", 3, "title"], [1, "run-meta", "run-duration"], [1, "run-meta", "run-records"], [1, "run-meta", "run-errors"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "run-meta", "run-user"], ["title", "Show entity breakdown", 1, "expand-btn", 3, "click"], [1, "fa-solid", "fa-chevron-down"], [1, "expanded-section"], [1, "expanded-section", 3, "click"], [1, "expanded-loading"], [1, "expanded-empty"], [1, "entity-table"], [1, "error-log-block"], ["text", "Loading breakdown...", "size", "small"], [1, "fa-solid", "fa-circle-info"], [1, "num-col"], [3, "error-row"], [1, "num-col", "created-col"], [1, "num-col", "updated-col"], [1, "num-col", "error-col"], [1, "error-log-label"], [1, "error-log-content"], [1, "detail-header"], [1, "detail-header-info"], [1, "detail-time"], ["title", "Close", 1, "close-detail-btn", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "duration-bar-container"], [1, "detail-tabs"], [1, "tab-btn", 3, "click"], [1, "fa-solid", "fa-table"], [1, "fa-solid", "fa-droplet"], [1, "detail-content"], [1, "duration-bar-track"], [1, "duration-bar-fill"], [1, "duration-bar-labels"], [1, "duration-bar-value"], [1, "detail-loading"], [1, "detail-empty"], [1, "detail-table"], [1, "error-log-block", "detail-error-log"], ["text", "Loading details...", "size", "small"], ["text", "Loading watermarks...", "size", "small"], [1, "fa-solid", "fa-droplet-slash"], [1, "type-badge"], [1, "mono-cell", "watermark-value"]], template: function ActivityComponent_Template(rf, ctx) { if (rf & 1) {
904
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
905
- i0.ɵɵrepeaterCreate(3, ActivityComponent_For_4_Template, 2, 3, "button", 3, i0.ɵɵrepeaterTrackByIdentity);
906
- i0.ɵɵelementEnd();
907
- i0.ɵɵelementStart(5, "div", 4)(6, "select", 5);
908
- i0.ɵɵlistener("ngModelChange", function ActivityComponent_Template_select_ngModelChange_6_listener($event) { return ctx.SetIntegrationFilter($event || null); });
909
- i0.ɵɵelementStart(7, "option", 6);
910
- i0.ɵɵtext(8, "All Integrations");
911
- i0.ɵɵelementEnd();
912
- i0.ɵɵrepeaterCreate(9, ActivityComponent_For_10_Template, 2, 2, "option", 7, _forTrack0);
913
- i0.ɵɵelementEnd()();
914
- i0.ɵɵelementStart(11, "div", 2);
915
- i0.ɵɵrepeaterCreate(12, ActivityComponent_For_13_Template, 2, 3, "button", 3, _forTrack1);
916
- i0.ɵɵelementEnd();
917
- i0.ɵɵelementStart(14, "div", 4)(15, "input", 8);
918
- i0.ɵɵtwoWayListener("ngModelChange", function ActivityComponent_Template_input_ngModelChange_15_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.SearchQuery, $event) || (ctx.SearchQuery = $event); return $event; });
919
- i0.ɵɵlistener("input", function ActivityComponent_Template_input_input_15_listener() { return ctx.OnSearchChange(); });
892
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActivityComponent, selectors: [["app-integration-activity"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 19, vars: 11, consts: [["Title", "Integration Activity", "Icon", "fa-solid fa-clock-rotate-left", "Subtitle", "Sync run history and outcomes"], ["meta", ""], ["actions", ""], [3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [3, "ValuesChange", "Reset", "Fields", "Values"], [3, "Clicked", "Loading"], ["toolbar", ""], ["Placeholder", "Search integrations...", 3, "ValueChange", "Value"], [3, "Label", "Active"], ["aria-hidden", "true", 1, "toolbar-divider"], [3, "Flex"], [1, "activity-container"], [1, "loading-area"], [1, "empty-state"], [1, "split-view"], ["Label", "succeeded", "Variant", "success", 3, "Count"], ["Label", "failed", "Variant", "error", 3, "Count"], ["Label", "records", 3, "Count"], [3, "Clicked", "Label", "Active"], ["text", "Loading activity...", "size", "medium"], [1, "fa-solid", "fa-inbox"], [1, "run-list-panel"], [1, "run-row", 3, "selected"], [1, "detail-panel"], [1, "run-row", 3, "click"], [1, "run-row-main"], [1, "status-icon"], [1, "run-info"], [1, "run-integration"], [1, "run-company"], [1, "run-meta", 3, "title"], [1, "run-meta", "run-duration"], [1, "run-meta", "run-records"], [1, "run-meta", "run-errors"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "run-meta", "run-user"], ["title", "Show entity breakdown", 1, "expand-btn", 3, "click"], [1, "fa-solid", "fa-chevron-down"], [1, "expanded-section"], [1, "expanded-section", 3, "click"], [1, "expanded-loading"], [1, "expanded-empty"], [1, "entity-table"], [1, "error-log-block"], ["text", "Loading breakdown...", "size", "small"], [1, "fa-solid", "fa-circle-info"], [1, "num-col"], [3, "error-row"], [1, "num-col", "created-col"], [1, "num-col", "updated-col"], [1, "num-col", "error-col"], [1, "error-log-label"], [1, "error-log-content"], [1, "detail-header"], [1, "detail-header-info"], [1, "detail-time"], ["title", "Close", 1, "close-detail-btn", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "duration-bar-container"], [1, "detail-tabs"], [1, "tab-btn", 3, "click"], [1, "fa-solid", "fa-table"], [1, "fa-solid", "fa-droplet"], [1, "detail-content"], [1, "duration-bar-track"], [1, "duration-bar-fill"], [1, "duration-bar-labels"], [1, "duration-bar-value"], [1, "detail-loading"], [1, "detail-empty"], [1, "detail-table"], [1, "error-log-block", "detail-error-log"], ["text", "Loading details...", "size", "small"], ["text", "Loading watermarks...", "size", "small"], [1, "fa-solid", "fa-droplet-slash"], [1, "type-badge"], [1, "mono-cell", "watermark-value"]], template: function ActivityComponent_Template(rf, ctx) { if (rf & 1) {
893
+ i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 0);
894
+ i0.ɵɵconditionalCreate(2, ActivityComponent_Conditional_2_Template, 5, 5, "div", 1);
895
+ i0.ɵɵelementStart(3, "div", 2)(4, "mj-filter-popover", 3);
896
+ i0.ɵɵlistener("ClearAllRequested", function ActivityComponent_Template_mj_filter_popover_ClearAllRequested_4_listener() { return ctx.ResetIntegrationFilter(); });
897
+ i0.ɵɵelementStart(5, "mj-filter-panel", 4);
898
+ i0.ɵɵlistener("ValuesChange", function ActivityComponent_Template_mj_filter_panel_ValuesChange_5_listener($event) { return ctx.OnFilterValuesChange($event); })("Reset", function ActivityComponent_Template_mj_filter_panel_Reset_5_listener() { return ctx.ResetIntegrationFilter(); });
920
899
  i0.ɵɵelementEnd()();
921
- i0.ɵɵelementStart(16, "button", 9);
922
- i0.ɵɵlistener("click", function ActivityComponent_Template_button_click_16_listener() { return ctx.Refresh(); });
923
- i0.ɵɵelement(17, "i", 10);
900
+ i0.ɵɵelementStart(6, "mj-refresh-button", 5);
901
+ i0.ɵɵlistener("Clicked", function ActivityComponent_Template_mj_refresh_button_Clicked_6_listener() { return ctx.Refresh(); });
924
902
  i0.ɵɵelementEnd()();
925
- i0.ɵɵconditionalCreate(18, ActivityComponent_Conditional_18_Template, 26, 6, "div", 11);
926
- i0.ɵɵconditionalCreate(19, ActivityComponent_Conditional_19_Template, 2, 0, "div", 12);
927
- i0.ɵɵconditionalCreate(20, ActivityComponent_Conditional_20_Template, 4, 0, "div", 13);
928
- i0.ɵɵconditionalCreate(21, ActivityComponent_Conditional_21_Template, 5, 1, "div", 14);
903
+ i0.ɵɵelementStart(7, "div", 6)(8, "mj-page-search", 7);
904
+ i0.ɵɵlistener("ValueChange", function ActivityComponent_Template_mj_page_search_ValueChange_8_listener($event) { return ctx.OnSearchValueChange($event); });
929
905
  i0.ɵɵelementEnd();
906
+ i0.ɵɵrepeaterCreate(9, ActivityComponent_For_10_Template, 1, 2, "mj-filter-chip", 8, i0.ɵɵrepeaterTrackByIdentity);
907
+ i0.ɵɵelement(11, "span", 9);
908
+ i0.ɵɵrepeaterCreate(12, ActivityComponent_For_13_Template, 1, 2, "mj-filter-chip", 8, _forTrack0);
909
+ i0.ɵɵelementEnd()();
910
+ i0.ɵɵelementStart(14, "mj-page-body", 10)(15, "div", 11);
911
+ i0.ɵɵconditionalCreate(16, ActivityComponent_Conditional_16_Template, 2, 0, "div", 12);
912
+ i0.ɵɵconditionalCreate(17, ActivityComponent_Conditional_17_Template, 4, 0, "div", 13);
913
+ i0.ɵɵconditionalCreate(18, ActivityComponent_Conditional_18_Template, 5, 1, "div", 14);
914
+ i0.ɵɵelementEnd()()();
930
915
  } if (rf & 2) {
931
- i0.ɵɵadvance(3);
916
+ i0.ɵɵadvance(2);
917
+ i0.ɵɵconditional(!ctx.IsLoading && ctx.AllRuns.length > 0 ? 2 : -1);
918
+ i0.ɵɵadvance(2);
919
+ i0.ɵɵproperty("ActiveCount", ctx.ActiveFilterCount)("ShowClearAll", ctx.ActiveFilterCount > 0);
920
+ i0.ɵɵadvance();
921
+ i0.ɵɵproperty("Fields", ctx.ActivityFilterFields)("Values", ctx.ActivityFilterValues);
922
+ i0.ɵɵadvance();
923
+ i0.ɵɵproperty("Loading", ctx.IsLoading);
924
+ i0.ɵɵadvance(2);
925
+ i0.ɵɵproperty("Value", ctx.SearchQuery);
926
+ i0.ɵɵadvance();
932
927
  i0.ɵɵrepeater(ctx.StatusOptions);
933
928
  i0.ɵɵadvance(3);
934
- i0.ɵɵproperty("ngModel", ctx.IntegrationFilter ?? "");
935
- i0.ɵɵadvance(3);
936
- i0.ɵɵrepeater(ctx.Integrations);
937
- i0.ɵɵadvance(3);
938
929
  i0.ɵɵrepeater(ctx.DateOptions);
939
- i0.ɵɵadvance(3);
940
- i0.ɵɵtwoWayProperty("ngModel", ctx.SearchQuery);
941
- i0.ɵɵadvance(3);
942
- i0.ɵɵconditional(!ctx.IsLoading && ctx.AllRuns.length > 0 ? 18 : -1);
943
- i0.ɵɵadvance();
944
- i0.ɵɵconditional(ctx.IsLoading ? 19 : -1);
930
+ i0.ɵɵadvance(2);
931
+ i0.ɵɵproperty("Flex", true);
932
+ i0.ɵɵadvance(2);
933
+ i0.ɵɵconditional(ctx.IsLoading ? 16 : -1);
945
934
  i0.ɵɵadvance();
946
- i0.ɵɵconditional(!ctx.IsLoading && ctx.FilteredRuns.length === 0 ? 20 : -1);
935
+ i0.ɵɵconditional(!ctx.IsLoading && ctx.FilteredRuns.length === 0 ? 17 : -1);
947
936
  i0.ɵɵadvance();
948
- i0.ɵɵconditional(!ctx.IsLoading && ctx.FilteredRuns.length > 0 ? 21 : -1);
949
- } }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i1.DefaultValueAccessor, i1.SelectControlValueAccessor, i1.NgControlStatus, i1.NgModel, i2.LoadingComponent, i3.DecimalPipe], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n.activity-container[_ngcontent-%COMP%] {\n padding: 20px;\n height: 100%;\n display: flex;\n flex-direction: column;\n gap: 14px;\n overflow: auto;\n}\n\n\n\n\n.filter-bar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.filter-group[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.filter-pills[_ngcontent-%COMP%] {\n gap: 0;\n}\n\n.pill-btn[_ngcontent-%COMP%] {\n height: 32px;\n padding: 0 14px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n transition: background 0.15s, color 0.15s, border-color 0.15s;\n white-space: nowrap;\n}\n\n.pill-btn[_ngcontent-%COMP%]:first-child {\n border-radius: 9999px 0 0 9999px;\n}\n\n.pill-btn[_ngcontent-%COMP%]:last-child {\n border-radius: 0 9999px 9999px 0;\n}\n\n.pill-btn[_ngcontent-%COMP%]:not(:first-child) {\n margin-left: -1px;\n}\n\n.pill-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-status-info-bg);\n border-color: var(--mj-border-strong);\n z-index: 1;\n}\n\n.pill-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n z-index: 2;\n}\n\n.filter-select[_ngcontent-%COMP%] {\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 13px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n cursor: pointer;\n min-width: 180px;\n height: 32px;\n}\n\n.filter-select[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n}\n\n.search-input[_ngcontent-%COMP%] {\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 13px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n min-width: 180px;\n height: 32px;\n}\n\n.search-input[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n}\n\n.search-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n}\n\n.refresh-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-muted);\n font-size: 13px;\n transition: background 0.15s, color 0.15s;\n}\n\n.refresh-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-status-info-bg);\n color: var(--mj-brand-primary);\n}\n\n\n\n\n.summary-strip[_ngcontent-%COMP%] {\n display: inline-flex;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.summary-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n.badge-dot[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n.dot-blue[_ngcontent-%COMP%] { background: var(--mj-brand-primary); }\n.dot-green[_ngcontent-%COMP%] { background: var(--mj-color-success-600); }\n.dot-red[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n.dot-amber[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n.dot-gray[_ngcontent-%COMP%] { background: var(--mj-text-disabled); }\n\n.badge-count[_ngcontent-%COMP%] {\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.count-green[_ngcontent-%COMP%] { color: var(--mj-color-success-600); }\n.count-red[_ngcontent-%COMP%] { color: var(--mj-color-error-600); }\n\n.badge-label[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n font-size: 12px;\n}\n\n\n\n\n.loading-area[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n padding: 48px;\n}\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 48px;\n color: var(--mj-text-disabled);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n margin-bottom: 12px;\n display: block;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n}\n\n\n\n\n.split-view[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n\n\n\n.run-list-panel[_ngcontent-%COMP%] {\n flex: 7;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.run-row[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--mj-border-subtle);\n cursor: pointer;\n transition: background 0.1s;\n}\n\n.run-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-page);\n}\n\n.run-row.selected[_ngcontent-%COMP%] {\n background: var(--mj-status-info-bg);\n}\n\n.run-row-main[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 14px;\n}\n\n\n\n.status-dot[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n.status-icon[_ngcontent-%COMP%] {\n font-size: 14px;\n width: 16px;\n text-align: center;\n flex-shrink: 0;\n}\n\n.icon-green[_ngcontent-%COMP%] { color: var(--mj-color-success-600); }\n.icon-red[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n.icon-amber[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n.icon-gray[_ngcontent-%COMP%] { color: var(--mj-text-disabled); }\n\n\n\n.run-info[_ngcontent-%COMP%] {\n flex: 2;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.run-integration[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 13px;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.run-company[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-disabled);\n}\n\n\n\n.run-meta[_ngcontent-%COMP%] {\n flex-shrink: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n min-width: 60px;\n text-align: right;\n}\n\n.run-duration[_ngcontent-%COMP%] {\n font-variant-numeric: tabular-nums;\n min-width: 56px;\n}\n\n.run-records[_ngcontent-%COMP%] {\n font-variant-numeric: tabular-nums;\n min-width: 48px;\n}\n\n.run-errors[_ngcontent-%COMP%] {\n min-width: 24px;\n text-align: center;\n}\n\n.run-errors.has-errors[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.run-user[_ngcontent-%COMP%] {\n min-width: 80px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.expand-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n cursor: pointer;\n width: 28px;\n height: 28px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-disabled);\n font-size: 11px;\n transition: background 0.15s, transform 0.2s;\n flex-shrink: 0;\n}\n\n.expand-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-secondary);\n}\n\n.expand-btn[_ngcontent-%COMP%] i.rotated[_ngcontent-%COMP%] {\n transform: rotate(180deg);\n}\n\n\n\n\n.expanded-section[_ngcontent-%COMP%] {\n padding: 8px 14px 14px 48px;\n background: var(--mj-bg-page);\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.expanded-loading[_ngcontent-%COMP%], \n.expanded-empty[_ngcontent-%COMP%] {\n padding: 16px;\n text-align: center;\n color: var(--mj-text-disabled);\n font-size: 12px;\n}\n\n.expanded-empty[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 6px;\n}\n\n.entity-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 12px;\n}\n\n.entity-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n text-align: left;\n padding: 6px 8px;\n color: var(--mj-text-disabled);\n font-weight: 600;\n font-size: 11px;\n border-bottom: 1px solid var(--mj-border-default);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.entity-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 5px 8px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.entity-table[_ngcontent-%COMP%] .num-col[_ngcontent-%COMP%], \n.detail-table[_ngcontent-%COMP%] .num-col[_ngcontent-%COMP%] {\n text-align: right;\n font-variant-numeric: tabular-nums;\n}\n\n.entity-table[_ngcontent-%COMP%] .created-col[_ngcontent-%COMP%], \n.detail-table[_ngcontent-%COMP%] .created-col[_ngcontent-%COMP%] {\n color: var(--mj-color-success-600);\n font-weight: 600;\n}\n\n.entity-table[_ngcontent-%COMP%] .updated-col[_ngcontent-%COMP%], \n.detail-table[_ngcontent-%COMP%] .updated-col[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.entity-table[_ngcontent-%COMP%] .error-col[_ngcontent-%COMP%], \n.detail-table[_ngcontent-%COMP%] .error-col[_ngcontent-%COMP%] {\n color: var(--mj-color-error-600);\n font-weight: 600;\n}\n\n.error-row[_ngcontent-%COMP%] {\n background: var(--mj-status-error-bg);\n}\n\n\n\n\n.error-log-block[_ngcontent-%COMP%] {\n margin-top: 10px;\n}\n\n.error-log-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-color-error-600);\n margin-bottom: 6px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.error-log-content[_ngcontent-%COMP%] {\n margin: 0;\n padding: 10px 12px;\n background: var(--mj-text-primary);\n color: var(--mj-bg-surface-sunken);\n font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;\n font-size: 11px;\n border-radius: 8px;\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n line-height: 1.5;\n}\n\n.detail-error-log[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n\n\n\n.detail-panel[_ngcontent-%COMP%] {\n flex: 3;\n min-width: 340px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.detail-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 14px 16px;\n border-bottom: 1px solid var(--mj-border-subtle);\n gap: 12px;\n}\n\n.detail-header-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n min-width: 0;\n}\n\n.detail-header-info[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detail-time[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-disabled);\n}\n\n.close-detail-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n cursor: pointer;\n color: var(--mj-text-disabled);\n font-size: 16px;\n width: 28px;\n height: 28px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.close-detail-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-secondary);\n}\n\n\n\n.duration-bar-container[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.duration-bar-track[_ngcontent-%COMP%] {\n height: 6px;\n background: var(--mj-bg-surface-active);\n border-radius: 3px;\n overflow: hidden;\n}\n\n.duration-bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n background: linear-gradient(90deg, var(--mj-brand-primary), var(--mj-color-accent-400));\n border-radius: 3px;\n transition: width 0.3s;\n}\n\n.duration-bar-labels[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 4px;\n font-size: 10px;\n color: var(--mj-text-disabled);\n}\n\n.duration-bar-value[_ngcontent-%COMP%] {\n font-weight: 700;\n color: var(--mj-brand-primary);\n font-size: 12px;\n}\n\n\n\n.detail-tabs[_ngcontent-%COMP%] {\n display: flex;\n border-bottom: 1px solid var(--mj-border-subtle);\n padding: 0 16px;\n gap: 2px;\n}\n\n.tab-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n padding: 10px 12px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n display: flex;\n align-items: center;\n gap: 5px;\n transition: color 0.15s, border-color 0.15s;\n}\n\n.tab-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary);\n}\n\n.tab-btn.active[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n\n\n.detail-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n}\n\n.detail-loading[_ngcontent-%COMP%], \n.detail-empty[_ngcontent-%COMP%] {\n padding: 24px;\n text-align: center;\n color: var(--mj-text-disabled);\n}\n\n.detail-empty[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n.detail-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n}\n\n.detail-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 12px;\n}\n\n.detail-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n text-align: left;\n padding: 8px 10px;\n color: var(--mj-text-disabled);\n font-weight: 600;\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-page);\n font-size: 11px;\n}\n\n.detail-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 7px 10px;\n border-bottom: 1px solid var(--mj-bg-page);\n}\n\n.mono-cell[_ngcontent-%COMP%] {\n font-variant-numeric: tabular-nums;\n color: var(--mj-text-muted);\n}\n\n.watermark-value[_ngcontent-%COMP%] {\n font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;\n font-size: 11px;\n}\n\n\n\n.chip[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n padding: 3px 8px;\n border-radius: 10px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n white-space: nowrap;\n}\n\n.chip-green[_ngcontent-%COMP%] { background: var(--mj-color-success-100); color: var(--mj-color-success-600); }\n.chip-red[_ngcontent-%COMP%] { background: var(--mj-color-error-100); color: var(--mj-color-error-600); }\n.chip-amber[_ngcontent-%COMP%] { background: var(--mj-color-warning-100); color: var(--mj-color-warning-600); }\n.chip-gray[_ngcontent-%COMP%] { background: var(--mj-bg-surface-hover); color: var(--mj-text-muted); }\n\n\n\n.type-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n background: var(--mj-status-info-bg);\n color: var(--mj-brand-primary);\n}\n\n\n\n\n@media (max-width: 900px) {\n .split-view[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .detail-panel[_ngcontent-%COMP%] {\n min-width: 0;\n max-height: 50vh;\n }\n\n .run-user[_ngcontent-%COMP%] {\n display: none;\n }\n}"] });
937
+ i0.ɵɵconditional(!ctx.IsLoading && ctx.FilteredRuns.length > 0 ? 18 : -1);
938
+ } }, dependencies: [i1.MJPageLayoutComponent, i1.MJPageHeaderComponent, i1.MJPageBodyComponent, i1.MJPageSearchComponent, i1.MJFilterChipComponent, i1.MJFilterPopoverComponent, i1.MJFilterPanelComponent, i1.MJStatBadgeComponent, i1.MJRefreshButtonComponent, i2.LoadingComponent, i3.DecimalPipe], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n.activity-container[_ngcontent-%COMP%] {\n \n\n\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n gap: 14px;\n}\n\n\n\n\n\n\n\n\n.toolbar-divider[_ngcontent-%COMP%] {\n display: inline-block;\n width: 1px;\n height: 18px;\n background: var(--mj-border-default);\n margin: 0 4px;\n}\n\n\n\n\n.loading-area[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n padding: 48px;\n}\n\n.empty-state[_ngcontent-%COMP%] {\n text-align: center;\n padding: 48px;\n color: var(--mj-text-disabled);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n margin-bottom: 12px;\n display: block;\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n}\n\n\n\n\n.split-view[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n\n\n\n.run-list-panel[_ngcontent-%COMP%] {\n flex: 7;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.run-row[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--mj-border-subtle);\n cursor: pointer;\n transition: background 0.1s;\n}\n\n.run-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-page);\n}\n\n.run-row.selected[_ngcontent-%COMP%] {\n background: var(--mj-status-info-bg);\n}\n\n.run-row-main[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 14px;\n}\n\n\n\n.status-dot[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n.status-icon[_ngcontent-%COMP%] {\n font-size: 14px;\n width: 16px;\n text-align: center;\n flex-shrink: 0;\n}\n\n.icon-green[_ngcontent-%COMP%] { color: var(--mj-color-success-600); }\n.icon-red[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n.icon-amber[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n.icon-gray[_ngcontent-%COMP%] { color: var(--mj-text-disabled); }\n\n\n\n.run-info[_ngcontent-%COMP%] {\n flex: 2;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.run-integration[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 13px;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.run-company[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-disabled);\n}\n\n\n\n.run-meta[_ngcontent-%COMP%] {\n flex-shrink: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n min-width: 60px;\n text-align: right;\n}\n\n.run-duration[_ngcontent-%COMP%] {\n font-variant-numeric: tabular-nums;\n min-width: 56px;\n}\n\n.run-records[_ngcontent-%COMP%] {\n font-variant-numeric: tabular-nums;\n min-width: 48px;\n}\n\n.run-errors[_ngcontent-%COMP%] {\n min-width: 24px;\n text-align: center;\n}\n\n.run-errors.has-errors[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.run-user[_ngcontent-%COMP%] {\n min-width: 80px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.expand-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n cursor: pointer;\n width: 28px;\n height: 28px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-disabled);\n font-size: 11px;\n transition: background 0.15s, transform 0.2s;\n flex-shrink: 0;\n}\n\n.expand-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-secondary);\n}\n\n.expand-btn[_ngcontent-%COMP%] i.rotated[_ngcontent-%COMP%] {\n transform: rotate(180deg);\n}\n\n\n\n\n.expanded-section[_ngcontent-%COMP%] {\n padding: 8px 14px 14px 48px;\n background: var(--mj-bg-page);\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.expanded-loading[_ngcontent-%COMP%], \n.expanded-empty[_ngcontent-%COMP%] {\n padding: 16px;\n text-align: center;\n color: var(--mj-text-disabled);\n font-size: 12px;\n}\n\n.expanded-empty[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 6px;\n}\n\n.entity-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 12px;\n}\n\n.entity-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n text-align: left;\n padding: 6px 8px;\n color: var(--mj-text-disabled);\n font-weight: 600;\n font-size: 11px;\n border-bottom: 1px solid var(--mj-border-default);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.entity-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 5px 8px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.entity-table[_ngcontent-%COMP%] .num-col[_ngcontent-%COMP%], \n.detail-table[_ngcontent-%COMP%] .num-col[_ngcontent-%COMP%] {\n text-align: right;\n font-variant-numeric: tabular-nums;\n}\n\n.entity-table[_ngcontent-%COMP%] .created-col[_ngcontent-%COMP%], \n.detail-table[_ngcontent-%COMP%] .created-col[_ngcontent-%COMP%] {\n color: var(--mj-color-success-600);\n font-weight: 600;\n}\n\n.entity-table[_ngcontent-%COMP%] .updated-col[_ngcontent-%COMP%], \n.detail-table[_ngcontent-%COMP%] .updated-col[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.entity-table[_ngcontent-%COMP%] .error-col[_ngcontent-%COMP%], \n.detail-table[_ngcontent-%COMP%] .error-col[_ngcontent-%COMP%] {\n color: var(--mj-color-error-600);\n font-weight: 600;\n}\n\n.error-row[_ngcontent-%COMP%] {\n background: var(--mj-status-error-bg);\n}\n\n\n\n\n.error-log-block[_ngcontent-%COMP%] {\n margin-top: 10px;\n}\n\n.error-log-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-color-error-600);\n margin-bottom: 6px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.error-log-content[_ngcontent-%COMP%] {\n margin: 0;\n padding: 10px 12px;\n background: var(--mj-text-primary);\n color: var(--mj-bg-surface-sunken);\n font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;\n font-size: 11px;\n border-radius: 8px;\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n line-height: 1.5;\n}\n\n.detail-error-log[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n\n\n\n.detail-panel[_ngcontent-%COMP%] {\n flex: 3;\n min-width: 340px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.detail-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 14px 16px;\n border-bottom: 1px solid var(--mj-border-subtle);\n gap: 12px;\n}\n\n.detail-header-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n min-width: 0;\n}\n\n.detail-header-info[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detail-time[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-disabled);\n}\n\n.close-detail-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n cursor: pointer;\n color: var(--mj-text-disabled);\n font-size: 16px;\n width: 28px;\n height: 28px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.close-detail-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-secondary);\n}\n\n\n\n.duration-bar-container[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.duration-bar-track[_ngcontent-%COMP%] {\n height: 6px;\n background: var(--mj-bg-surface-active);\n border-radius: 3px;\n overflow: hidden;\n}\n\n.duration-bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n background: linear-gradient(90deg, var(--mj-brand-primary), var(--mj-color-accent-400));\n border-radius: 3px;\n transition: width 0.3s;\n}\n\n.duration-bar-labels[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 4px;\n font-size: 10px;\n color: var(--mj-text-disabled);\n}\n\n.duration-bar-value[_ngcontent-%COMP%] {\n font-weight: 700;\n color: var(--mj-brand-primary);\n font-size: 12px;\n}\n\n\n\n.detail-tabs[_ngcontent-%COMP%] {\n display: flex;\n border-bottom: 1px solid var(--mj-border-subtle);\n padding: 0 16px;\n gap: 2px;\n}\n\n.tab-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n padding: 10px 12px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n display: flex;\n align-items: center;\n gap: 5px;\n transition: color 0.15s, border-color 0.15s;\n}\n\n.tab-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary);\n}\n\n.tab-btn.active[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n\n\n.detail-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n}\n\n.detail-loading[_ngcontent-%COMP%], \n.detail-empty[_ngcontent-%COMP%] {\n padding: 24px;\n text-align: center;\n color: var(--mj-text-disabled);\n}\n\n.detail-empty[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n.detail-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n}\n\n.detail-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 12px;\n}\n\n.detail-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n text-align: left;\n padding: 8px 10px;\n color: var(--mj-text-disabled);\n font-weight: 600;\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-page);\n font-size: 11px;\n}\n\n.detail-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 7px 10px;\n border-bottom: 1px solid var(--mj-bg-page);\n}\n\n.mono-cell[_ngcontent-%COMP%] {\n font-variant-numeric: tabular-nums;\n color: var(--mj-text-muted);\n}\n\n.watermark-value[_ngcontent-%COMP%] {\n font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;\n font-size: 11px;\n}\n\n\n\n.chip[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n padding: 3px 8px;\n border-radius: 10px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n white-space: nowrap;\n}\n\n.chip-green[_ngcontent-%COMP%] { background: var(--mj-color-success-100); color: var(--mj-color-success-600); }\n.chip-red[_ngcontent-%COMP%] { background: var(--mj-color-error-100); color: var(--mj-color-error-600); }\n.chip-amber[_ngcontent-%COMP%] { background: var(--mj-color-warning-100); color: var(--mj-color-warning-600); }\n.chip-gray[_ngcontent-%COMP%] { background: var(--mj-bg-surface-hover); color: var(--mj-text-muted); }\n\n\n\n.type-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n background: var(--mj-status-info-bg);\n color: var(--mj-brand-primary);\n}\n\n\n\n\n@media (max-width: 900px) {\n .split-view[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .detail-panel[_ngcontent-%COMP%] {\n min-width: 0;\n max-height: 50vh;\n }\n\n .run-user[_ngcontent-%COMP%] {\n display: none;\n }\n}"] });
950
939
  };
951
940
  ActivityComponent = __decorate([
952
941
  RegisterClass(BaseResourceComponent, 'IntegrationActivity')
@@ -954,9 +943,9 @@ ActivityComponent = __decorate([
954
943
  export { ActivityComponent };
955
944
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActivityComponent, [{
956
945
  type: Component,
957
- args: [{ standalone: false, selector: 'app-integration-activity', template: "<div class=\"activity-container\">\n\n <!-- Filter Bar -->\n <div class=\"filter-bar\">\n <div class=\"filter-group filter-pills\">\n @for (status of StatusOptions; track status) {\n <button class=\"pill-btn\"\n [class.active]=\"StatusFilter === status\"\n (click)=\"SetStatusFilter(status)\">\n {{ status }}\n </button>\n }\n </div>\n\n <div class=\"filter-group\">\n <select class=\"filter-select\"\n [ngModel]=\"IntegrationFilter ?? ''\"\n (ngModelChange)=\"SetIntegrationFilter($event || null)\">\n <option value=\"\">All Integrations</option>\n @for (opt of Integrations; track opt.ID) {\n <option [value]=\"opt.ID\">{{ opt.Name }}</option>\n }\n </select>\n </div>\n\n <div class=\"filter-group filter-pills\">\n @for (d of DateOptions; track d.Value) {\n <button class=\"pill-btn\"\n [class.active]=\"DateFilter === d.Value\"\n (click)=\"SetDateFilter(d.Value)\">\n {{ d.Label }}\n </button>\n }\n </div>\n\n <div class=\"filter-group\">\n <input type=\"text\"\n class=\"search-input\"\n placeholder=\"Search integrations...\"\n [(ngModel)]=\"SearchQuery\"\n (input)=\"OnSearchChange()\" />\n </div>\n\n <button class=\"refresh-btn\" (click)=\"Refresh()\" title=\"Refresh\">\n <i class=\"fa-solid fa-arrows-rotate\"></i>\n </button>\n </div>\n\n <!-- Summary Strip -->\n @if (!IsLoading && AllRuns.length > 0) {\n <div class=\"summary-strip\">\n <div class=\"summary-badge\">\n <span class=\"badge-dot dot-blue\"></span>\n <span class=\"badge-count\">{{ TotalRuns }}</span>\n <span class=\"badge-label\">Total Runs</span>\n </div>\n <div class=\"summary-badge\">\n <span class=\"badge-dot dot-green\"></span>\n <span class=\"badge-count count-green\">{{ SuccessfulRuns }}</span>\n <span class=\"badge-label\">Successful</span>\n </div>\n <div class=\"summary-badge\">\n <span class=\"badge-dot dot-red\"></span>\n <span class=\"badge-count count-red\">{{ FailedRuns }}</span>\n <span class=\"badge-label\">Failed</span>\n </div>\n <div class=\"summary-badge\">\n <span class=\"badge-dot dot-blue\"></span>\n <span class=\"badge-count\">{{ TotalRecordsProcessed | number }}</span>\n <span class=\"badge-label\">Records Processed</span>\n </div>\n </div>\n }\n\n <!-- Loading state -->\n @if (IsLoading) {\n <div class=\"loading-area\">\n <mj-loading text=\"Loading activity...\" size=\"medium\"></mj-loading>\n </div>\n }\n\n <!-- Empty state -->\n @if (!IsLoading && FilteredRuns.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No runs found for the selected filters.</p>\n </div>\n }\n\n <!-- Split View: Run List + Detail Panel -->\n @if (!IsLoading && FilteredRuns.length > 0) {\n <div class=\"split-view\">\n\n <!-- Left panel: Run list -->\n <div class=\"run-list-panel\">\n @for (run of FilteredRuns; track run.ID) {\n <!-- Run row -->\n <div class=\"run-row\"\n [class.selected]=\"IsSelectedRun(run.ID)\"\n (click)=\"SelectRun(run.ID)\">\n <div class=\"run-row-main\">\n <!-- Status indicator -->\n <span [class]=\"GetStatusDotClass(run.Status)\"></span>\n <i [class]=\"GetStatusIcon(run.Status)\"\n [class.icon-green]=\"run.Status === 'Success'\"\n [class.icon-red]=\"run.Status === 'Failed'\"\n [class.icon-amber]=\"run.Status === 'In Progress'\"\n [class.icon-gray]=\"run.Status === 'Pending'\"\n class=\"status-icon\"></i>\n\n <!-- Integration info -->\n <div class=\"run-info\">\n <span class=\"run-integration\">{{ run.Integration }}</span>\n <span class=\"run-company\">{{ run.Company }}</span>\n </div>\n\n <!-- Started time -->\n <div class=\"run-meta\" [title]=\"FormatAbsoluteDate(run.StartedAt)\">\n {{ GetRelativeTime(run.StartedAt) }}\n </div>\n\n <!-- Duration -->\n <div class=\"run-meta run-duration\">\n {{ FormatDuration(run.StartedAt, run.EndedAt) }}\n </div>\n\n <!-- Records -->\n <div class=\"run-meta run-records\">\n {{ run.TotalRecords | number }}\n </div>\n\n <!-- Errors -->\n <div class=\"run-meta run-errors\" [class.has-errors]=\"run.ErrorLog\">\n @if (run.ErrorLog) {\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n }\n </div>\n\n <!-- Triggered by -->\n <div class=\"run-meta run-user\">\n {{ run.RunByUser || 'Scheduled' }}\n </div>\n\n <!-- Expand chevron -->\n <button class=\"expand-btn\"\n (click)=\"ToggleExpand(run.ID); $event.stopPropagation()\"\n title=\"Show entity breakdown\">\n <i class=\"fa-solid fa-chevron-down\"\n [class.rotated]=\"IsExpanded(run.ID)\"></i>\n </button>\n </div>\n\n <!-- Expanded section: entity breakdown -->\n @if (IsExpanded(run.ID)) {\n <div class=\"expanded-section\" (click)=\"$event.stopPropagation()\">\n @if (IsLoadingExpandedDetails()) {\n <div class=\"expanded-loading\">\n <mj-loading text=\"Loading breakdown...\" size=\"small\"></mj-loading>\n </div>\n } @else if (GetExpandedDetails().length === 0) {\n <div class=\"expanded-empty\">\n <i class=\"fa-solid fa-circle-info\"></i>\n No entity details for this run.\n </div>\n } @else {\n <table class=\"entity-table\">\n <thead>\n <tr>\n <th>Entity</th>\n <th class=\"num-col\">Processed</th>\n <th class=\"num-col\">Created</th>\n <th class=\"num-col\">Updated</th>\n <th class=\"num-col\">Deleted</th>\n <th class=\"num-col\">Errored</th>\n <th class=\"num-col\">Skipped</th>\n </tr>\n </thead>\n <tbody>\n @for (detail of GetExpandedDetails(); track detail.EntityID) {\n <tr [class.error-row]=\"detail.RecordsErrored > 0\">\n <td>{{ detail.Entity }}</td>\n <td class=\"num-col\">{{ detail.RecordsProcessed | number }}</td>\n <td class=\"num-col created-col\">{{ detail.RecordsCreated | number }}</td>\n <td class=\"num-col updated-col\">{{ detail.RecordsUpdated | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsDeleted | number }}</td>\n <td class=\"num-col error-col\">{{ detail.RecordsErrored | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsSkipped | number }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n <!-- Error log in expanded view -->\n @if (run.ErrorLog) {\n <div class=\"error-log-block\">\n <div class=\"error-log-label\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i> Error Log\n </div>\n <pre class=\"error-log-content\">{{ run.ErrorLog }}</pre>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Right panel: Detail -->\n @if (SelectedRunID && GetSelectedRun()) {\n <div class=\"detail-panel\">\n <div class=\"detail-header\">\n <div class=\"detail-header-info\">\n <h3>{{ GetSelectedRun()!.Integration }}</h3>\n <span [class]=\"StatusChipClass(GetSelectedRun()!.Status)\">\n <i [class]=\"GetStatusIcon(GetSelectedRun()!.Status)\"></i>\n {{ GetSelectedRun()!.Status }}\n </span>\n <span class=\"detail-time\">{{ FormatDate(GetSelectedRun()!.StartedAt) }}</span>\n </div>\n <button class=\"close-detail-btn\" (click)=\"SelectRun(SelectedRunID!)\" title=\"Close\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <!-- Duration bar -->\n @if (GetSelectedRun()!.StartedAt && GetSelectedRun()!.EndedAt) {\n <div class=\"duration-bar-container\">\n <div class=\"duration-bar-track\">\n <div class=\"duration-bar-fill\"\n [style.width.%]=\"GetDurationBarWidth(GetSelectedRun()!)\"></div>\n </div>\n <div class=\"duration-bar-labels\">\n <span>{{ FormatDate(GetSelectedRun()!.StartedAt) }}</span>\n <span class=\"duration-bar-value\">{{ GetDurationBarLabel(GetSelectedRun()!) }}</span>\n <span>{{ FormatDate(GetSelectedRun()!.EndedAt) }}</span>\n </div>\n </div>\n }\n\n <!-- Tabs -->\n <div class=\"detail-tabs\">\n <button class=\"tab-btn\" [class.active]=\"ActiveDetailTab === 'entities'\"\n (click)=\"SetDetailTab('entities')\">\n <i class=\"fa-solid fa-table\"></i> Entity Breakdown\n </button>\n <button class=\"tab-btn\" [class.active]=\"ActiveDetailTab === 'watermarks'\"\n (click)=\"SetDetailTab('watermarks')\">\n <i class=\"fa-solid fa-droplet\"></i> Watermarks\n </button>\n </div>\n\n <div class=\"detail-content\">\n <!-- Entity breakdown tab -->\n @if (ActiveDetailTab === 'entities') {\n @if (IsLoadingDetail) {\n <div class=\"detail-loading\">\n <mj-loading text=\"Loading details...\" size=\"small\"></mj-loading>\n </div>\n } @else if (SelectedRunDetails.length === 0) {\n <div class=\"detail-empty\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <p>No entity detail records for this run.</p>\n </div>\n } @else {\n <table class=\"detail-table\">\n <thead>\n <tr>\n <th>Entity</th>\n <th class=\"num-col\">Processed</th>\n <th class=\"num-col\">Created</th>\n <th class=\"num-col\">Updated</th>\n <th class=\"num-col\">Deleted</th>\n <th class=\"num-col\">Errors</th>\n <th class=\"num-col\">Skipped</th>\n </tr>\n </thead>\n <tbody>\n @for (detail of SelectedRunDetails; track detail.EntityID) {\n <tr [class.error-row]=\"detail.RecordsErrored > 0\">\n <td>{{ detail.Entity }}</td>\n <td class=\"num-col\">{{ detail.RecordsProcessed | number }}</td>\n <td class=\"num-col created-col\">{{ detail.RecordsCreated | number }}</td>\n <td class=\"num-col updated-col\">{{ detail.RecordsUpdated | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsDeleted | number }}</td>\n <td class=\"num-col error-col\">{{ detail.RecordsErrored | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsSkipped | number }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n <!-- Error log -->\n @if (GetSelectedRun()?.ErrorLog) {\n <div class=\"error-log-block detail-error-log\">\n <div class=\"error-log-label\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i> Error Log\n </div>\n <pre class=\"error-log-content\">{{ GetSelectedRun()!.ErrorLog }}</pre>\n </div>\n }\n }\n\n <!-- Watermarks tab -->\n @if (ActiveDetailTab === 'watermarks') {\n @if (IsLoadingWatermarks) {\n <div class=\"detail-loading\">\n <mj-loading text=\"Loading watermarks...\" size=\"small\"></mj-loading>\n </div>\n } @else if (WatermarkData.length === 0) {\n <div class=\"detail-empty\">\n <i class=\"fa-solid fa-droplet-slash\"></i>\n <p>No watermarks recorded for this integration.</p>\n </div>\n } @else {\n <table class=\"detail-table\">\n <thead>\n <tr>\n <th>Entity Map</th>\n <th>Type</th>\n <th>Current Value</th>\n <th>Last Applied</th>\n </tr>\n </thead>\n <tbody>\n @for (wm of WatermarkData; track wm.ID) {\n <tr>\n <td>{{ wm.EntityMap }}</td>\n <td><span class=\"type-badge\">{{ wm.WatermarkType }}</span></td>\n <td class=\"mono-cell watermark-value\">{{ FormatWatermark(wm.WatermarkValue) }}</td>\n <td>{{ FormatDate(wm.LastSyncAt) }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n }\n </div>\n </div>\n }\n\n </div>\n }\n\n</div>\n", styles: [":host {\n display: block;\n height: 100%;\n}\n\n.activity-container {\n padding: 20px;\n height: 100%;\n display: flex;\n flex-direction: column;\n gap: 14px;\n overflow: auto;\n}\n\n/* \u2500\u2500 Filter Bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.filter-bar {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.filter-group {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.filter-pills {\n gap: 0;\n}\n\n.pill-btn {\n height: 32px;\n padding: 0 14px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n transition: background 0.15s, color 0.15s, border-color 0.15s;\n white-space: nowrap;\n}\n\n.pill-btn:first-child {\n border-radius: 9999px 0 0 9999px;\n}\n\n.pill-btn:last-child {\n border-radius: 0 9999px 9999px 0;\n}\n\n.pill-btn:not(:first-child) {\n margin-left: -1px;\n}\n\n.pill-btn:hover {\n background: var(--mj-status-info-bg);\n border-color: var(--mj-border-strong);\n z-index: 1;\n}\n\n.pill-btn.active {\n background: var(--mj-brand-primary);\n color: var(--mj-bg-surface);\n border-color: var(--mj-brand-primary);\n z-index: 2;\n}\n\n.filter-select {\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 13px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n cursor: pointer;\n min-width: 180px;\n height: 32px;\n}\n\n.filter-select:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n}\n\n.search-input {\n padding: 6px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 13px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n min-width: 180px;\n height: 32px;\n}\n\n.search-input::placeholder {\n color: var(--mj-text-disabled);\n}\n\n.search-input:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n}\n\n.refresh-btn {\n width: 32px;\n height: 32px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-muted);\n font-size: 13px;\n transition: background 0.15s, color 0.15s;\n}\n\n.refresh-btn:hover {\n background: var(--mj-status-info-bg);\n color: var(--mj-brand-primary);\n}\n\n/* \u2500\u2500 Summary Strip \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.summary-strip {\n display: inline-flex;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.summary-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n.badge-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n.dot-blue { background: var(--mj-brand-primary); }\n.dot-green { background: var(--mj-color-success-600); }\n.dot-red { background: var(--mj-status-error); }\n.dot-amber { background: var(--mj-status-warning); }\n.dot-gray { background: var(--mj-text-disabled); }\n\n.badge-count {\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.count-green { color: var(--mj-color-success-600); }\n.count-red { color: var(--mj-color-error-600); }\n\n.badge-label {\n color: var(--mj-text-disabled);\n font-size: 12px;\n}\n\n/* \u2500\u2500 Loading / Empty \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.loading-area {\n display: flex;\n justify-content: center;\n padding: 48px;\n}\n\n.empty-state {\n text-align: center;\n padding: 48px;\n color: var(--mj-text-disabled);\n}\n\n.empty-state i {\n font-size: 32px;\n margin-bottom: 12px;\n display: block;\n}\n\n.empty-state p {\n margin: 0;\n font-size: 14px;\n}\n\n/* \u2500\u2500 Split View \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.split-view {\n display: flex;\n gap: 16px;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n/* \u2500\u2500 Run List Panel (left 70%) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.run-list-panel {\n flex: 7;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.run-row {\n border-bottom: 1px solid var(--mj-border-subtle);\n cursor: pointer;\n transition: background 0.1s;\n}\n\n.run-row:hover {\n background: var(--mj-bg-page);\n}\n\n.run-row.selected {\n background: var(--mj-status-info-bg);\n}\n\n.run-row-main {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 14px;\n}\n\n/* Status indicator */\n.status-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n.status-icon {\n font-size: 14px;\n width: 16px;\n text-align: center;\n flex-shrink: 0;\n}\n\n.icon-green { color: var(--mj-color-success-600); }\n.icon-red { color: var(--mj-status-error); }\n.icon-amber { color: var(--mj-status-warning); }\n.icon-gray { color: var(--mj-text-disabled); }\n\n/* Run info */\n.run-info {\n flex: 2;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.run-integration {\n font-weight: 600;\n font-size: 13px;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.run-company {\n font-size: 11px;\n color: var(--mj-text-disabled);\n}\n\n/* Meta columns */\n.run-meta {\n flex-shrink: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n min-width: 60px;\n text-align: right;\n}\n\n.run-duration {\n font-variant-numeric: tabular-nums;\n min-width: 56px;\n}\n\n.run-records {\n font-variant-numeric: tabular-nums;\n min-width: 48px;\n}\n\n.run-errors {\n min-width: 24px;\n text-align: center;\n}\n\n.run-errors.has-errors {\n color: var(--mj-status-error);\n}\n\n.run-user {\n min-width: 80px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.expand-btn {\n background: none;\n border: none;\n cursor: pointer;\n width: 28px;\n height: 28px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-disabled);\n font-size: 11px;\n transition: background 0.15s, transform 0.2s;\n flex-shrink: 0;\n}\n\n.expand-btn:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-secondary);\n}\n\n.expand-btn i.rotated {\n transform: rotate(180deg);\n}\n\n/* \u2500\u2500 Expanded Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.expanded-section {\n padding: 8px 14px 14px 48px;\n background: var(--mj-bg-page);\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.expanded-loading,\n.expanded-empty {\n padding: 16px;\n text-align: center;\n color: var(--mj-text-disabled);\n font-size: 12px;\n}\n\n.expanded-empty i {\n margin-right: 6px;\n}\n\n.entity-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 12px;\n}\n\n.entity-table th {\n text-align: left;\n padding: 6px 8px;\n color: var(--mj-text-disabled);\n font-weight: 600;\n font-size: 11px;\n border-bottom: 1px solid var(--mj-border-default);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.entity-table td {\n padding: 5px 8px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.entity-table .num-col,\n.detail-table .num-col {\n text-align: right;\n font-variant-numeric: tabular-nums;\n}\n\n.entity-table .created-col,\n.detail-table .created-col {\n color: var(--mj-color-success-600);\n font-weight: 600;\n}\n\n.entity-table .updated-col,\n.detail-table .updated-col {\n color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.entity-table .error-col,\n.detail-table .error-col {\n color: var(--mj-color-error-600);\n font-weight: 600;\n}\n\n.error-row {\n background: var(--mj-status-error-bg);\n}\n\n/* \u2500\u2500 Error Log Block \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.error-log-block {\n margin-top: 10px;\n}\n\n.error-log-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-color-error-600);\n margin-bottom: 6px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.error-log-content {\n margin: 0;\n padding: 10px 12px;\n background: var(--mj-text-primary);\n color: var(--mj-bg-surface-sunken);\n font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;\n font-size: 11px;\n border-radius: 8px;\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n line-height: 1.5;\n}\n\n.detail-error-log {\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n/* \u2500\u2500 Detail Panel (right 30%) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.detail-panel {\n flex: 3;\n min-width: 340px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.detail-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 14px 16px;\n border-bottom: 1px solid var(--mj-border-subtle);\n gap: 12px;\n}\n\n.detail-header-info {\n display: flex;\n flex-direction: column;\n gap: 6px;\n min-width: 0;\n}\n\n.detail-header-info h3 {\n margin: 0;\n font-size: 15px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detail-time {\n font-size: 12px;\n color: var(--mj-text-disabled);\n}\n\n.close-detail-btn {\n background: none;\n border: none;\n cursor: pointer;\n color: var(--mj-text-disabled);\n font-size: 16px;\n width: 28px;\n height: 28px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.close-detail-btn:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-secondary);\n}\n\n/* Duration bar */\n.duration-bar-container {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.duration-bar-track {\n height: 6px;\n background: var(--mj-bg-surface-active);\n border-radius: 3px;\n overflow: hidden;\n}\n\n.duration-bar-fill {\n height: 100%;\n background: linear-gradient(90deg, var(--mj-brand-primary), var(--mj-color-accent-400));\n border-radius: 3px;\n transition: width 0.3s;\n}\n\n.duration-bar-labels {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 4px;\n font-size: 10px;\n color: var(--mj-text-disabled);\n}\n\n.duration-bar-value {\n font-weight: 700;\n color: var(--mj-brand-primary);\n font-size: 12px;\n}\n\n/* Tabs */\n.detail-tabs {\n display: flex;\n border-bottom: 1px solid var(--mj-border-subtle);\n padding: 0 16px;\n gap: 2px;\n}\n\n.tab-btn {\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n padding: 10px 12px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n display: flex;\n align-items: center;\n gap: 5px;\n transition: color 0.15s, border-color 0.15s;\n}\n\n.tab-btn:hover {\n color: var(--mj-brand-primary);\n}\n\n.tab-btn.active {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n/* Detail content area */\n.detail-content {\n flex: 1;\n overflow-y: auto;\n}\n\n.detail-loading,\n.detail-empty {\n padding: 24px;\n text-align: center;\n color: var(--mj-text-disabled);\n}\n\n.detail-empty i {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n.detail-empty p {\n margin: 0;\n font-size: 13px;\n}\n\n.detail-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 12px;\n}\n\n.detail-table th {\n text-align: left;\n padding: 8px 10px;\n color: var(--mj-text-disabled);\n font-weight: 600;\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-page);\n font-size: 11px;\n}\n\n.detail-table td {\n padding: 7px 10px;\n border-bottom: 1px solid var(--mj-bg-page);\n}\n\n.mono-cell {\n font-variant-numeric: tabular-nums;\n color: var(--mj-text-muted);\n}\n\n.watermark-value {\n font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;\n font-size: 11px;\n}\n\n/* Status chips */\n.chip {\n font-size: 11px;\n font-weight: 600;\n padding: 3px 8px;\n border-radius: 10px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n white-space: nowrap;\n}\n\n.chip-green { background: var(--mj-color-success-100); color: var(--mj-color-success-600); }\n.chip-red { background: var(--mj-color-error-100); color: var(--mj-color-error-600); }\n.chip-amber { background: var(--mj-color-warning-100); color: var(--mj-color-warning-600); }\n.chip-gray { background: var(--mj-bg-surface-hover); color: var(--mj-text-muted); }\n\n/* Watermark type badge */\n.type-badge {\n display: inline-flex;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n background: var(--mj-status-info-bg);\n color: var(--mj-brand-primary);\n}\n\n/* \u2500\u2500 Responsive \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n@media (max-width: 900px) {\n .split-view {\n flex-direction: column;\n }\n\n .detail-panel {\n min-width: 0;\n max-height: 50vh;\n }\n\n .run-user {\n display: none;\n }\n}\n"] }]
946
+ args: [{ standalone: false, selector: 'app-integration-activity', template: "<mj-page-layout>\n <mj-page-header\n Title=\"Integration Activity\"\n Icon=\"fa-solid fa-clock-rotate-left\"\n Subtitle=\"Sync run history and outcomes\">\n <!-- [meta] retains the succeeded/failed status pills (genuine variant\n signal \u2014 error rate at a glance) and the records aggregate\n (non-trivially derived: count of records across all runs).\n \"Total runs\" dropped per chrome slot discipline audit Task B \u2014\n that count equals the visible list's row count. -->\n @if (!IsLoading && AllRuns.length > 0) {\n <div meta>\n <mj-stat-badge [Count]=\"SuccessfulRuns\" Label=\"succeeded\" Variant=\"success\"></mj-stat-badge>\n <mj-stat-badge [Count]=\"FailedRuns\" Label=\"failed\" Variant=\"error\"></mj-stat-badge>\n <mj-stat-badge [Count]=\"TotalRecordsProcessed | number\" Label=\"records\"></mj-stat-badge>\n </div>\n }\n <div actions>\n <mj-filter-popover\n [ActiveCount]=\"ActiveFilterCount\"\n [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"ResetIntegrationFilter()\">\n <mj-filter-panel\n [Fields]=\"ActivityFilterFields\"\n [Values]=\"ActivityFilterValues\"\n (ValuesChange)=\"OnFilterValuesChange($event)\"\n (Reset)=\"ResetIntegrationFilter()\">\n </mj-filter-panel>\n </mj-filter-popover>\n <mj-refresh-button [Loading]=\"IsLoading\" (Clicked)=\"Refresh()\"></mj-refresh-button>\n </div>\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search integrations...\"\n [Value]=\"SearchQuery\"\n (ValueChange)=\"OnSearchValueChange($event)\">\n </mj-page-search>\n @for (status of StatusOptions; track status) {\n <mj-filter-chip\n [Label]=\"status\"\n [Active]=\"StatusFilter === status\"\n (Clicked)=\"SetStatusFilter(status)\">\n </mj-filter-chip>\n }\n <span class=\"toolbar-divider\" aria-hidden=\"true\"></span>\n @for (d of DateOptions; track d.Value) {\n <mj-filter-chip\n [Label]=\"d.Label\"\n [Active]=\"DateFilter === d.Value\"\n (Clicked)=\"SetDateFilter(d.Value)\">\n </mj-filter-chip>\n }\n </div>\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\">\n<div class=\"activity-container\">\n\n <!-- Loading state -->\n @if (IsLoading) {\n <div class=\"loading-area\">\n <mj-loading text=\"Loading activity...\" size=\"medium\"></mj-loading>\n </div>\n }\n\n <!-- Empty state -->\n @if (!IsLoading && FilteredRuns.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No runs found for the selected filters.</p>\n </div>\n }\n\n <!-- Split View: Run List + Detail Panel -->\n @if (!IsLoading && FilteredRuns.length > 0) {\n <div class=\"split-view\">\n\n <!-- Left panel: Run list -->\n <div class=\"run-list-panel\">\n @for (run of FilteredRuns; track run.ID) {\n <!-- Run row -->\n <div class=\"run-row\"\n [class.selected]=\"IsSelectedRun(run.ID)\"\n (click)=\"SelectRun(run.ID)\">\n <div class=\"run-row-main\">\n <!-- Status indicator -->\n <span [class]=\"GetStatusDotClass(run.Status)\"></span>\n <i [class]=\"GetStatusIcon(run.Status)\"\n [class.icon-green]=\"run.Status === 'Success'\"\n [class.icon-red]=\"run.Status === 'Failed'\"\n [class.icon-amber]=\"run.Status === 'In Progress'\"\n [class.icon-gray]=\"run.Status === 'Pending'\"\n class=\"status-icon\"></i>\n\n <!-- Integration info -->\n <div class=\"run-info\">\n <span class=\"run-integration\">{{ run.Integration }}</span>\n <span class=\"run-company\">{{ run.Company }}</span>\n </div>\n\n <!-- Started time -->\n <div class=\"run-meta\" [title]=\"FormatAbsoluteDate(run.StartedAt)\">\n {{ GetRelativeTime(run.StartedAt) }}\n </div>\n\n <!-- Duration -->\n <div class=\"run-meta run-duration\">\n {{ FormatDuration(run.StartedAt, run.EndedAt) }}\n </div>\n\n <!-- Records -->\n <div class=\"run-meta run-records\">\n {{ run.TotalRecords | number }}\n </div>\n\n <!-- Errors -->\n <div class=\"run-meta run-errors\" [class.has-errors]=\"run.ErrorLog\">\n @if (run.ErrorLog) {\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n }\n </div>\n\n <!-- Triggered by -->\n <div class=\"run-meta run-user\">\n {{ run.RunByUser || 'Scheduled' }}\n </div>\n\n <!-- Expand chevron -->\n <button class=\"expand-btn\"\n (click)=\"ToggleExpand(run.ID); $event.stopPropagation()\"\n title=\"Show entity breakdown\">\n <i class=\"fa-solid fa-chevron-down\"\n [class.rotated]=\"IsExpanded(run.ID)\"></i>\n </button>\n </div>\n\n <!-- Expanded section: entity breakdown -->\n @if (IsExpanded(run.ID)) {\n <div class=\"expanded-section\" (click)=\"$event.stopPropagation()\">\n @if (IsLoadingExpandedDetails()) {\n <div class=\"expanded-loading\">\n <mj-loading text=\"Loading breakdown...\" size=\"small\"></mj-loading>\n </div>\n } @else if (GetExpandedDetails().length === 0) {\n <div class=\"expanded-empty\">\n <i class=\"fa-solid fa-circle-info\"></i>\n No entity details for this run.\n </div>\n } @else {\n <table class=\"entity-table\">\n <thead>\n <tr>\n <th>Entity</th>\n <th class=\"num-col\">Processed</th>\n <th class=\"num-col\">Created</th>\n <th class=\"num-col\">Updated</th>\n <th class=\"num-col\">Deleted</th>\n <th class=\"num-col\">Errored</th>\n <th class=\"num-col\">Skipped</th>\n </tr>\n </thead>\n <tbody>\n @for (detail of GetExpandedDetails(); track detail.EntityID) {\n <tr [class.error-row]=\"detail.RecordsErrored > 0\">\n <td>{{ detail.Entity }}</td>\n <td class=\"num-col\">{{ detail.RecordsProcessed | number }}</td>\n <td class=\"num-col created-col\">{{ detail.RecordsCreated | number }}</td>\n <td class=\"num-col updated-col\">{{ detail.RecordsUpdated | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsDeleted | number }}</td>\n <td class=\"num-col error-col\">{{ detail.RecordsErrored | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsSkipped | number }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n <!-- Error log in expanded view -->\n @if (run.ErrorLog) {\n <div class=\"error-log-block\">\n <div class=\"error-log-label\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i> Error Log\n </div>\n <pre class=\"error-log-content\">{{ run.ErrorLog }}</pre>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Right panel: Detail -->\n @if (SelectedRunID && GetSelectedRun()) {\n <div class=\"detail-panel\">\n <div class=\"detail-header\">\n <div class=\"detail-header-info\">\n <h3>{{ GetSelectedRun()!.Integration }}</h3>\n <span [class]=\"StatusChipClass(GetSelectedRun()!.Status)\">\n <i [class]=\"GetStatusIcon(GetSelectedRun()!.Status)\"></i>\n {{ GetSelectedRun()!.Status }}\n </span>\n <span class=\"detail-time\">{{ FormatDate(GetSelectedRun()!.StartedAt) }}</span>\n </div>\n <button class=\"close-detail-btn\" (click)=\"SelectRun(SelectedRunID!)\" title=\"Close\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <!-- Duration bar -->\n @if (GetSelectedRun()!.StartedAt && GetSelectedRun()!.EndedAt) {\n <div class=\"duration-bar-container\">\n <div class=\"duration-bar-track\">\n <div class=\"duration-bar-fill\"\n [style.width.%]=\"GetDurationBarWidth(GetSelectedRun()!)\"></div>\n </div>\n <div class=\"duration-bar-labels\">\n <span>{{ FormatDate(GetSelectedRun()!.StartedAt) }}</span>\n <span class=\"duration-bar-value\">{{ GetDurationBarLabel(GetSelectedRun()!) }}</span>\n <span>{{ FormatDate(GetSelectedRun()!.EndedAt) }}</span>\n </div>\n </div>\n }\n\n <!-- Tabs -->\n <div class=\"detail-tabs\">\n <button class=\"tab-btn\" [class.active]=\"ActiveDetailTab === 'entities'\"\n (click)=\"SetDetailTab('entities')\">\n <i class=\"fa-solid fa-table\"></i> Entity Breakdown\n </button>\n <button class=\"tab-btn\" [class.active]=\"ActiveDetailTab === 'watermarks'\"\n (click)=\"SetDetailTab('watermarks')\">\n <i class=\"fa-solid fa-droplet\"></i> Watermarks\n </button>\n </div>\n\n <div class=\"detail-content\">\n <!-- Entity breakdown tab -->\n @if (ActiveDetailTab === 'entities') {\n @if (IsLoadingDetail) {\n <div class=\"detail-loading\">\n <mj-loading text=\"Loading details...\" size=\"small\"></mj-loading>\n </div>\n } @else if (SelectedRunDetails.length === 0) {\n <div class=\"detail-empty\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <p>No entity detail records for this run.</p>\n </div>\n } @else {\n <table class=\"detail-table\">\n <thead>\n <tr>\n <th>Entity</th>\n <th class=\"num-col\">Processed</th>\n <th class=\"num-col\">Created</th>\n <th class=\"num-col\">Updated</th>\n <th class=\"num-col\">Deleted</th>\n <th class=\"num-col\">Errors</th>\n <th class=\"num-col\">Skipped</th>\n </tr>\n </thead>\n <tbody>\n @for (detail of SelectedRunDetails; track detail.EntityID) {\n <tr [class.error-row]=\"detail.RecordsErrored > 0\">\n <td>{{ detail.Entity }}</td>\n <td class=\"num-col\">{{ detail.RecordsProcessed | number }}</td>\n <td class=\"num-col created-col\">{{ detail.RecordsCreated | number }}</td>\n <td class=\"num-col updated-col\">{{ detail.RecordsUpdated | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsDeleted | number }}</td>\n <td class=\"num-col error-col\">{{ detail.RecordsErrored | number }}</td>\n <td class=\"num-col\">{{ detail.RecordsSkipped | number }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n <!-- Error log -->\n @if (GetSelectedRun()?.ErrorLog) {\n <div class=\"error-log-block detail-error-log\">\n <div class=\"error-log-label\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i> Error Log\n </div>\n <pre class=\"error-log-content\">{{ GetSelectedRun()!.ErrorLog }}</pre>\n </div>\n }\n }\n\n <!-- Watermarks tab -->\n @if (ActiveDetailTab === 'watermarks') {\n @if (IsLoadingWatermarks) {\n <div class=\"detail-loading\">\n <mj-loading text=\"Loading watermarks...\" size=\"small\"></mj-loading>\n </div>\n } @else if (WatermarkData.length === 0) {\n <div class=\"detail-empty\">\n <i class=\"fa-solid fa-droplet-slash\"></i>\n <p>No watermarks recorded for this integration.</p>\n </div>\n } @else {\n <table class=\"detail-table\">\n <thead>\n <tr>\n <th>Entity Map</th>\n <th>Type</th>\n <th>Current Value</th>\n <th>Last Applied</th>\n </tr>\n </thead>\n <tbody>\n @for (wm of WatermarkData; track wm.ID) {\n <tr>\n <td>{{ wm.EntityMap }}</td>\n <td><span class=\"type-badge\">{{ wm.WatermarkType }}</span></td>\n <td class=\"mono-cell watermark-value\">{{ FormatWatermark(wm.WatermarkValue) }}</td>\n <td>{{ FormatDate(wm.LastSyncAt) }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n }\n </div>\n </div>\n }\n\n </div>\n }\n\n</div>\n </mj-page-body>\n</mj-page-layout>\n", styles: [":host {\n display: block;\n height: 100%;\n}\n\n.activity-container {\n /* padding / scroll now owned by <mj-page-body>; flex sizing keeps the\n inner split-view (flex: 1 + min-height: 0) able to fill remaining height. */\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n gap: 14px;\n}\n\n/* Slot passthrough now lives in <mj-page-header>'s SCSS; per-section\n .integration-header-* rules deleted. Stat badge styling now lives in\n <mj-stat-badge>; per-section .integration-stat-badge* rules deleted. */\n\n/* Vertical separator between distinct chip groups in the toolbar slot. */\n.toolbar-divider {\n display: inline-block;\n width: 1px;\n height: 18px;\n background: var(--mj-border-default);\n margin: 0 4px;\n}\n\n/* \u2500\u2500 Loading / Empty \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.loading-area {\n display: flex;\n justify-content: center;\n padding: 48px;\n}\n\n.empty-state {\n text-align: center;\n padding: 48px;\n color: var(--mj-text-disabled);\n}\n\n.empty-state i {\n font-size: 32px;\n margin-bottom: 12px;\n display: block;\n}\n\n.empty-state p {\n margin: 0;\n font-size: 14px;\n}\n\n/* \u2500\u2500 Split View \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.split-view {\n display: flex;\n gap: 16px;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n/* \u2500\u2500 Run List Panel (left 70%) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.run-list-panel {\n flex: 7;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n.run-row {\n border-bottom: 1px solid var(--mj-border-subtle);\n cursor: pointer;\n transition: background 0.1s;\n}\n\n.run-row:hover {\n background: var(--mj-bg-page);\n}\n\n.run-row.selected {\n background: var(--mj-status-info-bg);\n}\n\n.run-row-main {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 14px;\n}\n\n/* Status indicator */\n.status-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n.status-icon {\n font-size: 14px;\n width: 16px;\n text-align: center;\n flex-shrink: 0;\n}\n\n.icon-green { color: var(--mj-color-success-600); }\n.icon-red { color: var(--mj-status-error); }\n.icon-amber { color: var(--mj-status-warning); }\n.icon-gray { color: var(--mj-text-disabled); }\n\n/* Run info */\n.run-info {\n flex: 2;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.run-integration {\n font-weight: 600;\n font-size: 13px;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.run-company {\n font-size: 11px;\n color: var(--mj-text-disabled);\n}\n\n/* Meta columns */\n.run-meta {\n flex-shrink: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n min-width: 60px;\n text-align: right;\n}\n\n.run-duration {\n font-variant-numeric: tabular-nums;\n min-width: 56px;\n}\n\n.run-records {\n font-variant-numeric: tabular-nums;\n min-width: 48px;\n}\n\n.run-errors {\n min-width: 24px;\n text-align: center;\n}\n\n.run-errors.has-errors {\n color: var(--mj-status-error);\n}\n\n.run-user {\n min-width: 80px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.expand-btn {\n background: none;\n border: none;\n cursor: pointer;\n width: 28px;\n height: 28px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mj-text-disabled);\n font-size: 11px;\n transition: background 0.15s, transform 0.2s;\n flex-shrink: 0;\n}\n\n.expand-btn:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-secondary);\n}\n\n.expand-btn i.rotated {\n transform: rotate(180deg);\n}\n\n/* \u2500\u2500 Expanded Section \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.expanded-section {\n padding: 8px 14px 14px 48px;\n background: var(--mj-bg-page);\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.expanded-loading,\n.expanded-empty {\n padding: 16px;\n text-align: center;\n color: var(--mj-text-disabled);\n font-size: 12px;\n}\n\n.expanded-empty i {\n margin-right: 6px;\n}\n\n.entity-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 12px;\n}\n\n.entity-table th {\n text-align: left;\n padding: 6px 8px;\n color: var(--mj-text-disabled);\n font-weight: 600;\n font-size: 11px;\n border-bottom: 1px solid var(--mj-border-default);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.entity-table td {\n padding: 5px 8px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.entity-table .num-col,\n.detail-table .num-col {\n text-align: right;\n font-variant-numeric: tabular-nums;\n}\n\n.entity-table .created-col,\n.detail-table .created-col {\n color: var(--mj-color-success-600);\n font-weight: 600;\n}\n\n.entity-table .updated-col,\n.detail-table .updated-col {\n color: var(--mj-brand-primary);\n font-weight: 600;\n}\n\n.entity-table .error-col,\n.detail-table .error-col {\n color: var(--mj-color-error-600);\n font-weight: 600;\n}\n\n.error-row {\n background: var(--mj-status-error-bg);\n}\n\n/* \u2500\u2500 Error Log Block \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.error-log-block {\n margin-top: 10px;\n}\n\n.error-log-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-color-error-600);\n margin-bottom: 6px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.error-log-content {\n margin: 0;\n padding: 10px 12px;\n background: var(--mj-text-primary);\n color: var(--mj-bg-surface-sunken);\n font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;\n font-size: 11px;\n border-radius: 8px;\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 200px;\n overflow-y: auto;\n line-height: 1.5;\n}\n\n.detail-error-log {\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n/* \u2500\u2500 Detail Panel (right 30%) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.detail-panel {\n flex: 3;\n min-width: 340px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.detail-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 14px 16px;\n border-bottom: 1px solid var(--mj-border-subtle);\n gap: 12px;\n}\n\n.detail-header-info {\n display: flex;\n flex-direction: column;\n gap: 6px;\n min-width: 0;\n}\n\n.detail-header-info h3 {\n margin: 0;\n font-size: 15px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detail-time {\n font-size: 12px;\n color: var(--mj-text-disabled);\n}\n\n.close-detail-btn {\n background: none;\n border: none;\n cursor: pointer;\n color: var(--mj-text-disabled);\n font-size: 16px;\n width: 28px;\n height: 28px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.close-detail-btn:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-secondary);\n}\n\n/* Duration bar */\n.duration-bar-container {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.duration-bar-track {\n height: 6px;\n background: var(--mj-bg-surface-active);\n border-radius: 3px;\n overflow: hidden;\n}\n\n.duration-bar-fill {\n height: 100%;\n background: linear-gradient(90deg, var(--mj-brand-primary), var(--mj-color-accent-400));\n border-radius: 3px;\n transition: width 0.3s;\n}\n\n.duration-bar-labels {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 4px;\n font-size: 10px;\n color: var(--mj-text-disabled);\n}\n\n.duration-bar-value {\n font-weight: 700;\n color: var(--mj-brand-primary);\n font-size: 12px;\n}\n\n/* Tabs */\n.detail-tabs {\n display: flex;\n border-bottom: 1px solid var(--mj-border-subtle);\n padding: 0 16px;\n gap: 2px;\n}\n\n.tab-btn {\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n padding: 10px 12px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n display: flex;\n align-items: center;\n gap: 5px;\n transition: color 0.15s, border-color 0.15s;\n}\n\n.tab-btn:hover {\n color: var(--mj-brand-primary);\n}\n\n.tab-btn.active {\n color: var(--mj-brand-primary);\n border-bottom-color: var(--mj-brand-primary);\n}\n\n/* Detail content area */\n.detail-content {\n flex: 1;\n overflow-y: auto;\n}\n\n.detail-loading,\n.detail-empty {\n padding: 24px;\n text-align: center;\n color: var(--mj-text-disabled);\n}\n\n.detail-empty i {\n font-size: 24px;\n margin-bottom: 8px;\n display: block;\n}\n\n.detail-empty p {\n margin: 0;\n font-size: 13px;\n}\n\n.detail-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 12px;\n}\n\n.detail-table th {\n text-align: left;\n padding: 8px 10px;\n color: var(--mj-text-disabled);\n font-weight: 600;\n border-bottom: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-page);\n font-size: 11px;\n}\n\n.detail-table td {\n padding: 7px 10px;\n border-bottom: 1px solid var(--mj-bg-page);\n}\n\n.mono-cell {\n font-variant-numeric: tabular-nums;\n color: var(--mj-text-muted);\n}\n\n.watermark-value {\n font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;\n font-size: 11px;\n}\n\n/* Status chips */\n.chip {\n font-size: 11px;\n font-weight: 600;\n padding: 3px 8px;\n border-radius: 10px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n white-space: nowrap;\n}\n\n.chip-green { background: var(--mj-color-success-100); color: var(--mj-color-success-600); }\n.chip-red { background: var(--mj-color-error-100); color: var(--mj-color-error-600); }\n.chip-amber { background: var(--mj-color-warning-100); color: var(--mj-color-warning-600); }\n.chip-gray { background: var(--mj-bg-surface-hover); color: var(--mj-text-muted); }\n\n/* Watermark type badge */\n.type-badge {\n display: inline-flex;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n background: var(--mj-status-info-bg);\n color: var(--mj-brand-primary);\n}\n\n/* \u2500\u2500 Responsive \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n@media (max-width: 900px) {\n .split-view {\n flex-direction: column;\n }\n\n .detail-panel {\n min-width: 0;\n max-height: 50vh;\n }\n\n .run-user {\n display: none;\n }\n}\n"] }]
958
947
  }], null, null); })();
959
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActivityComponent, { className: "ActivityComponent", filePath: "src/Integration/components/activity/activity.component.ts", lineNumber: 38 }); })();
948
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActivityComponent, { className: "ActivityComponent", filePath: "src/Integration/components/activity/activity.component.ts", lineNumber: 39 }); })();
960
949
  export function LoadActivityComponent() {
961
950
  // Tree-shaking prevention: importing this module causes
962
951
  // @RegisterClass decorators to fire, registering components.