@memberjunction/ng-dashboards 5.34.1 → 5.35.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 (346) 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 +75 -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 +400 -89
  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.js +990 -992
  39. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  40. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
  41. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  42. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
  43. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  44. package/dist/AI/components/models/model-management.component.d.ts +17 -0
  45. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  46. package/dist/AI/components/models/model-management.component.js +370 -425
  47. package/dist/AI/components/models/model-management.component.js.map +1 -1
  48. package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
  49. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  50. package/dist/AI/components/prompts/prompt-management.component.js +317 -357
  51. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  52. package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
  53. package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
  54. package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
  55. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  56. package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
  57. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  58. package/dist/AI/components/system/system-configuration.component.js +403 -362
  59. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  60. package/dist/AI/components/tags/tags-resource.component.js +781 -783
  61. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  62. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
  63. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  64. package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
  65. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  66. package/dist/Actions/components/actions-overview.component.d.ts +6 -0
  67. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  68. package/dist/Actions/components/actions-overview.component.js +79 -30
  69. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  70. package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
  71. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  72. package/dist/Actions/components/execution-monitoring.component.js +196 -142
  73. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  74. package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
  75. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  76. package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
  77. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  78. package/dist/Actions/components/explorer/index.d.ts +0 -1
  79. package/dist/Actions/components/explorer/index.d.ts.map +1 -1
  80. package/dist/Actions/components/explorer/index.js +0 -1
  81. package/dist/Actions/components/explorer/index.js.map +1 -1
  82. package/dist/Admin/admin-data-schema.component.js +32 -40
  83. package/dist/Admin/admin-data-schema.component.js.map +1 -1
  84. package/dist/Admin/admin-dev-tools-resource.component.js +32 -40
  85. package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
  86. package/dist/Admin/admin-identity-access.component.js +32 -40
  87. package/dist/Admin/admin-identity-access.component.js.map +1 -1
  88. package/dist/Admin/admin-monitoring.component.js +32 -40
  89. package/dist/Admin/admin-monitoring.component.js.map +1 -1
  90. package/dist/ApplicationRoles/application-roles-resource.component.js +76 -82
  91. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  92. package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
  93. package/dist/Archiving/components/archive-config-resource.component.js +24 -5
  94. package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
  95. package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
  96. package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
  97. package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
  98. package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
  99. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  100. package/dist/Communication/communication-logs-resource.component.js +80 -99
  101. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  102. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  103. package/dist/Communication/communication-monitor-resource.component.js +127 -106
  104. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  105. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  106. package/dist/Communication/communication-providers-resource.component.js +44 -45
  107. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  108. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  109. package/dist/Communication/communication-runs-resource.component.js +60 -58
  110. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  111. package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
  112. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  113. package/dist/Communication/communication-templates-resource.component.js +139 -162
  114. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  115. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
  116. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  117. package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
  118. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  119. package/dist/Credentials/components/credentials-categories-resource.component.js +245 -266
  120. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  121. package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
  122. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  123. package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
  124. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  125. package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
  126. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  127. package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
  128. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  129. package/dist/Credentials/components/credentials-types-resource.component.js +294 -305
  130. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  131. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
  132. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
  133. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +21 -0
  134. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
  135. package/dist/DatabaseDesigner/components/entity-list.component.js +147 -160
  136. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
  137. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
  138. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
  139. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +19 -1
  140. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
  141. package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -16
  142. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  143. package/dist/Home/home-dashboard.component.d.ts +6 -0
  144. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  145. package/dist/Home/home-dashboard.component.js +521 -485
  146. package/dist/Home/home-dashboard.component.js.map +1 -1
  147. package/dist/Integration/components/activity/activity.component.d.ts +8 -0
  148. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  149. package/dist/Integration/components/activity/activity.component.js +309 -318
  150. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  151. package/dist/Integration/components/connections/connections.component.js +866 -847
  152. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  153. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
  154. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  155. package/dist/Integration/components/overview/overview.component.js +182 -163
  156. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  157. package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
  158. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  159. package/dist/Integration/components/pipelines/pipelines.component.js +610 -606
  160. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  161. package/dist/Integration/components/schedules/schedules.component.js +241 -241
  162. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  163. package/dist/Integration/integration.module.d.ts +1 -1
  164. package/dist/Integration/integration.module.d.ts.map +1 -1
  165. package/dist/Integration/integration.module.js +28 -1
  166. package/dist/Integration/integration.module.js.map +1 -1
  167. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +673 -674
  168. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  169. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
  170. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  171. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +745 -703
  172. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  173. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
  174. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
  175. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
  176. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
  177. package/dist/Lists/components/lists-browse-resource.component.d.ts +18 -1
  178. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  179. package/dist/Lists/components/lists-browse-resource.component.js +486 -532
  180. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  181. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  182. package/dist/Lists/components/lists-categories-resource.component.js +152 -160
  183. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  184. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  185. package/dist/Lists/components/lists-my-lists-resource.component.js +302 -319
  186. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  187. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  188. package/dist/Lists/components/lists-operations-resource.component.js +234 -246
  189. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  190. package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
  191. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  192. package/dist/MCP/mcp-dashboard.component.js +1248 -1338
  193. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  194. package/dist/MCP/mcp.module.d.ts +1 -1
  195. package/dist/MCP/mcp.module.d.ts.map +1 -1
  196. package/dist/MCP/mcp.module.js +34 -1
  197. package/dist/MCP/mcp.module.js.map +1 -1
  198. package/dist/Permissions/audit-log-resource.component.js +76 -85
  199. package/dist/Permissions/audit-log-resource.component.js.map +1 -1
  200. package/dist/Permissions/resource-access-resource.component.js +64 -69
  201. package/dist/Permissions/resource-access-resource.component.js.map +1 -1
  202. package/dist/Permissions/user-access-resource.component.js +63 -74
  203. package/dist/Permissions/user-access-resource.component.js.map +1 -1
  204. package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
  205. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  206. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
  207. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  208. package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
  209. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  210. package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
  211. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  212. package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
  213. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  214. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
  215. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  216. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
  217. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  218. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
  219. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  220. package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
  221. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  222. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
  223. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  224. package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
  225. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  226. package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
  227. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
  228. package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
  229. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  230. package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
  231. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  232. package/dist/Scheduling/scheduling-dashboard.component.js +262 -104
  233. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  234. package/dist/SystemDiagnostics/system-diagnostics.component.js +773 -783
  235. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  236. package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
  237. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  238. package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
  239. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  240. package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
  241. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  242. package/dist/Testing/components/testing-analytics.component.js +420 -393
  243. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  244. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
  245. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  246. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
  247. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  248. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
  249. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  250. package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
  251. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  252. package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
  253. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  254. package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
  255. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  256. package/dist/Testing/components/testing-explorer.component.d.ts +8 -1
  257. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  258. package/dist/Testing/components/testing-explorer.component.js +587 -608
  259. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  260. package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
  261. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  262. package/dist/Testing/components/testing-review-resource.component.js +9 -12
  263. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  264. package/dist/Testing/components/testing-review.component.d.ts +3 -1
  265. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  266. package/dist/Testing/components/testing-review.component.js +310 -274
  267. package/dist/Testing/components/testing-review.component.js.map +1 -1
  268. package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
  269. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  270. package/dist/Testing/components/testing-runs-resource.component.js +16 -19
  271. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  272. package/dist/Testing/components/testing-runs.component.d.ts +3 -1
  273. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  274. package/dist/Testing/components/testing-runs.component.js +307 -273
  275. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  276. package/dist/Testing/testing-dashboard.component.d.ts +2 -0
  277. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  278. package/dist/Testing/testing-dashboard.component.js +107 -93
  279. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  280. package/dist/VersionHistory/components/diff-resource.component.js +185 -188
  281. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  282. package/dist/VersionHistory/components/graph-resource.component.js +154 -184
  283. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  284. package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
  285. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  286. package/dist/VersionHistory/components/labels-resource.component.js +350 -354
  287. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  288. package/dist/VersionHistory/components/restore-resource.component.js +163 -169
  289. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  290. package/dist/actions-dashboards.module.d.ts +15 -16
  291. package/dist/actions-dashboards.module.d.ts.map +1 -1
  292. package/dist/actions-dashboards.module.js +34 -11
  293. package/dist/actions-dashboards.module.js.map +1 -1
  294. package/dist/ai-dashboards.module.d.ts +45 -48
  295. package/dist/ai-dashboards.module.d.ts.map +1 -1
  296. package/dist/ai-dashboards.module.js +36 -10
  297. package/dist/ai-dashboards.module.js.map +1 -1
  298. package/dist/archiving-dashboards.module.d.ts +2 -1
  299. package/dist/archiving-dashboards.module.d.ts.map +1 -1
  300. package/dist/archiving-dashboards.module.js +12 -2
  301. package/dist/archiving-dashboards.module.js.map +1 -1
  302. package/dist/communication-dashboards.module.d.ts +2 -1
  303. package/dist/communication-dashboards.module.d.ts.map +1 -1
  304. package/dist/communication-dashboards.module.js +24 -3
  305. package/dist/communication-dashboards.module.js.map +1 -1
  306. package/dist/core-dashboards.module.d.ts +1 -1
  307. package/dist/core-dashboards.module.d.ts.map +1 -1
  308. package/dist/core-dashboards.module.js +31 -1
  309. package/dist/core-dashboards.module.js.map +1 -1
  310. package/dist/credentials-dashboards.module.d.ts +1 -1
  311. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  312. package/dist/credentials-dashboards.module.js +28 -1
  313. package/dist/credentials-dashboards.module.js.map +1 -1
  314. package/dist/lists-dashboards.module.d.ts +1 -1
  315. package/dist/lists-dashboards.module.d.ts.map +1 -1
  316. package/dist/lists-dashboards.module.js +28 -1
  317. package/dist/lists-dashboards.module.js.map +1 -1
  318. package/dist/public-api.d.ts +2 -2
  319. package/dist/public-api.d.ts.map +1 -1
  320. package/dist/public-api.js +3 -3
  321. package/dist/public-api.js.map +1 -1
  322. package/dist/scheduling-dashboards.module.d.ts +1 -1
  323. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  324. package/dist/scheduling-dashboards.module.js +31 -1
  325. package/dist/scheduling-dashboards.module.js.map +1 -1
  326. package/dist/testing-dashboards.module.d.ts +8 -7
  327. package/dist/testing-dashboards.module.d.ts.map +1 -1
  328. package/dist/testing-dashboards.module.js +30 -0
  329. package/dist/testing-dashboards.module.js.map +1 -1
  330. package/package.json +52 -52
  331. package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
  332. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
  333. package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
  334. package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
  335. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
  336. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
  337. package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
  338. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
  339. package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
  340. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
  341. package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
  342. package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
  343. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
  344. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
  345. package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
  346. package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
@@ -11,18 +11,19 @@ import { RunView } from '@memberjunction/core';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "@angular/common";
13
13
  import * as i2 from "../AI/components/charts/time-series-chart.component";
14
- function CommunicationMonitorResourceComponent_For_65_Template(rf, ctx) { if (rf & 1) {
15
- i0.ɵɵelementStart(0, "div", 30)(1, "div", 38);
14
+ import * as i3 from "@memberjunction/ng-ui-components";
15
+ function CommunicationMonitorResourceComponent_For_70_Template(rf, ctx) { if (rf & 1) {
16
+ i0.ɵɵelementStart(0, "div", 32)(1, "div", 40);
16
17
  i0.ɵɵelement(2, "i");
17
18
  i0.ɵɵelementEnd();
18
- i0.ɵɵelementStart(3, "div", 39)(4, "span", 40);
19
+ i0.ɵɵelementStart(3, "div", 41)(4, "span", 42);
19
20
  i0.ɵɵtext(5);
20
21
  i0.ɵɵelementEnd();
21
- i0.ɵɵelementStart(6, "span", 41);
22
+ i0.ɵɵelementStart(6, "span", 43);
22
23
  i0.ɵɵtext(7);
23
24
  i0.ɵɵpipe(8, "date");
24
25
  i0.ɵɵelementEnd()();
25
- i0.ɵɵelementStart(9, "span", 42);
26
+ i0.ɵɵelementStart(9, "span", 44);
26
27
  i0.ɵɵtext(10);
27
28
  i0.ɵɵelementEnd()();
28
29
  } if (rf & 2) {
@@ -41,29 +42,29 @@ function CommunicationMonitorResourceComponent_For_65_Template(rf, ctx) { if (rf
41
42
  i0.ɵɵadvance();
42
43
  i0.ɵɵtextInterpolate1(" ", log_r1.Status, " ");
43
44
  } }
44
- function CommunicationMonitorResourceComponent_Conditional_66_Template(rf, ctx) { if (rf & 1) {
45
- i0.ɵɵelementStart(0, "div", 31);
46
- i0.ɵɵelement(1, "i", 43);
45
+ function CommunicationMonitorResourceComponent_Conditional_71_Template(rf, ctx) { if (rf & 1) {
46
+ i0.ɵɵelementStart(0, "div", 33);
47
+ i0.ɵɵelement(1, "i", 45);
47
48
  i0.ɵɵelementStart(2, "p");
48
49
  i0.ɵɵtext(3, "No recent activity");
49
50
  i0.ɵɵelementEnd()();
50
51
  } }
51
- function CommunicationMonitorResourceComponent_For_76_Template(rf, ctx) { if (rf & 1) {
52
- i0.ɵɵelementStart(0, "div", 34);
53
- i0.ɵɵelement(1, "div", 44);
54
- i0.ɵɵelementStart(2, "div", 45);
52
+ function CommunicationMonitorResourceComponent_For_81_Template(rf, ctx) { if (rf & 1) {
53
+ i0.ɵɵelementStart(0, "div", 36);
54
+ i0.ɵɵelement(1, "div", 46);
55
+ i0.ɵɵelementStart(2, "div", 47);
55
56
  i0.ɵɵelement(3, "i");
56
57
  i0.ɵɵelementEnd();
57
- i0.ɵɵelementStart(4, "div", 46)(5, "div", 47);
58
+ i0.ɵɵelementStart(4, "div", 48)(5, "div", 49);
58
59
  i0.ɵɵtext(6);
59
60
  i0.ɵɵelementEnd();
60
- i0.ɵɵelementStart(7, "div", 48);
61
+ i0.ɵɵelementStart(7, "div", 50);
61
62
  i0.ɵɵtext(8);
62
63
  i0.ɵɵelementEnd()();
63
- i0.ɵɵelementStart(9, "div", 49);
64
- i0.ɵɵelement(10, "div", 50);
64
+ i0.ɵɵelementStart(9, "div", 51);
65
+ i0.ɵɵelement(10, "div", 52);
65
66
  i0.ɵɵelementEnd();
66
- i0.ɵɵelementStart(11, "span", 51);
67
+ i0.ɵɵelementStart(11, "span", 53);
67
68
  i0.ɵɵtext(12);
68
69
  i0.ɵɵelementEnd()();
69
70
  } if (rf & 2) {
@@ -87,28 +88,28 @@ function CommunicationMonitorResourceComponent_For_76_Template(rf, ctx) { if (rf
87
88
  i0.ɵɵadvance();
88
89
  i0.ɵɵtextInterpolate1("", provider_r3.SuccessRate, "%");
89
90
  } }
90
- function CommunicationMonitorResourceComponent_Conditional_77_Template(rf, ctx) { if (rf & 1) {
91
- i0.ɵɵelementStart(0, "div", 31);
92
- i0.ɵɵelement(1, "i", 52);
91
+ function CommunicationMonitorResourceComponent_Conditional_82_Template(rf, ctx) { if (rf & 1) {
92
+ i0.ɵɵelementStart(0, "div", 33);
93
+ i0.ɵɵelement(1, "i", 54);
93
94
  i0.ɵɵelementStart(2, "p");
94
95
  i0.ɵɵtext(3, "No providers configured");
95
96
  i0.ɵɵelementEnd()();
96
97
  } }
97
- function CommunicationMonitorResourceComponent_For_86_Template(rf, ctx) { if (rf & 1) {
98
- i0.ɵɵelementStart(0, "div", 37)(1, "div", 53);
98
+ function CommunicationMonitorResourceComponent_For_91_Template(rf, ctx) { if (rf & 1) {
99
+ i0.ɵɵelementStart(0, "div", 39)(1, "div", 55);
99
100
  i0.ɵɵelement(2, "i");
100
101
  i0.ɵɵelementEnd();
101
- i0.ɵɵelementStart(3, "div", 54)(4, "div", 55);
102
+ i0.ɵɵelementStart(3, "div", 56)(4, "div", 57);
102
103
  i0.ɵɵtext(5);
103
104
  i0.ɵɵelementEnd();
104
- i0.ɵɵelementStart(6, "div", 56);
105
+ i0.ɵɵelementStart(6, "div", 58);
105
106
  i0.ɵɵtext(7);
106
107
  i0.ɵɵpipe(8, "number");
107
108
  i0.ɵɵelementEnd()();
108
- i0.ɵɵelementStart(9, "div", 57);
109
- i0.ɵɵelement(10, "div", 58);
109
+ i0.ɵɵelementStart(9, "div", 59);
110
+ i0.ɵɵelement(10, "div", 60);
110
111
  i0.ɵɵelementEnd();
111
- i0.ɵɵelementStart(11, "span", 59);
112
+ i0.ɵɵelementStart(11, "span", 61);
112
113
  i0.ɵɵtext(12);
113
114
  i0.ɵɵelementEnd()();
114
115
  } if (rf & 2) {
@@ -126,9 +127,9 @@ function CommunicationMonitorResourceComponent_For_86_Template(rf, ctx) { if (rf
126
127
  i0.ɵɵadvance(2);
127
128
  i0.ɵɵtextInterpolate1("", channel_r4.Percentage, "%");
128
129
  } }
129
- function CommunicationMonitorResourceComponent_Conditional_87_Template(rf, ctx) { if (rf & 1) {
130
- i0.ɵɵelementStart(0, "div", 31);
131
- i0.ɵɵelement(1, "i", 35);
130
+ function CommunicationMonitorResourceComponent_Conditional_92_Template(rf, ctx) { if (rf & 1) {
131
+ i0.ɵɵelementStart(0, "div", 33);
132
+ i0.ɵɵelement(1, "i", 37);
132
133
  i0.ɵɵelementStart(2, "p");
133
134
  i0.ɵɵtext(3, "No channel data available");
134
135
  i0.ɵɵelementEnd()();
@@ -370,95 +371,104 @@ let CommunicationMonitorResourceComponent = class CommunicationMonitorResourceCo
370
371
  return 'fa-solid fa-chart-line';
371
372
  }
372
373
  static ɵfac = function CommunicationMonitorResourceComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CommunicationMonitorResourceComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
373
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CommunicationMonitorResourceComponent, selectors: [["mj-communication-monitor-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 88, vars: 32, consts: [[1, "monitor-wrapper"], [1, "monitor-container"], [1, "kpi-strip"], [1, "kpi-card", "sent"], [1, "kpi-icon"], [1, "fa-solid", "fa-paper-plane"], [1, "kpi-body"], [1, "kpi-label"], [1, "kpi-value"], [1, "kpi-delta"], [1, "fa-solid"], [1, "kpi-card", "delivered"], [1, "fa-solid", "fa-check-double"], [1, "delivery-bar"], [1, "delivery-fill"], [1, "kpi-card", "pending"], [1, "fa-solid", "fa-clock"], [1, "kpi-delta", "neutral"], [1, "fa-solid", "fa-minus"], [1, "kpi-card", "failed"], [1, "fa-solid", "fa-circle-exclamation"], [1, "content-grid"], [1, "card"], [1, "card-header"], [1, "fa-solid", "fa-chart-bar"], [1, "chart-container-inner"], [3, "data", "showLegend", "showControls", "config"], [1, "fa-solid", "fa-bolt"], [1, "card-body", "no-padding"], [1, "activity-feed"], [1, "activity-item"], [1, "empty-state"], [1, "fa-solid", "fa-heart-pulse"], [1, "provider-health-list"], [1, "provider-row"], [1, "fa-solid", "fa-layer-group"], [1, "channel-breakdown"], [1, "channel-row"], [1, "activity-icon", 3, "ngClass"], [1, "activity-body"], [1, "activity-title"], [1, "activity-meta"], [1, "activity-status", 3, "ngClass"], [1, "fa-solid", "fa-inbox"], [1, "provider-status-dot"], [1, "provider-logo", 3, "ngClass"], [1, "provider-info"], [1, "provider-name"], [1, "provider-type"], [1, "provider-health-bar"], [1, "provider-health-fill", 3, "ngClass"], [1, "provider-rate", 3, "ngClass"], [1, "fa-solid", "fa-server"], [1, "channel-icon", 3, "ngClass"], [1, "channel-info"], [1, "channel-name"], [1, "channel-count"], [1, "channel-bar-wrapper"], [1, "channel-bar-fill"], [1, "channel-pct"]], template: function CommunicationMonitorResourceComponent_Template(rf, ctx) { if (rf & 1) {
374
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div", 4);
375
- i0.ɵɵelement(5, "i", 5);
374
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CommunicationMonitorResourceComponent, selectors: [["mj-communication-monitor-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 93, vars: 35, consts: [["Title", "Monitor", "Icon", "fa-solid fa-chart-line", "Subtitle", "Live delivery health, provider status, and channel breakdown"], ["actions", ""], ["mjButton", "", "variant", "secondary", "size", "sm", "title", "Refresh", 3, "click", "disabled"], [1, "fa-solid", "fa-rotate"], [1, "kpi-strip"], [1, "kpi-card", "sent"], [1, "kpi-icon"], [1, "fa-solid", "fa-paper-plane"], [1, "kpi-body"], [1, "kpi-label"], [1, "kpi-value"], [1, "kpi-delta"], [1, "fa-solid"], [1, "kpi-card", "delivered"], [1, "fa-solid", "fa-check-double"], [1, "delivery-bar"], [1, "delivery-fill"], [1, "kpi-card", "pending"], [1, "fa-solid", "fa-clock"], [1, "kpi-delta", "neutral"], [1, "fa-solid", "fa-minus"], [1, "kpi-card", "failed"], [1, "fa-solid", "fa-circle-exclamation"], [1, "content-grid"], [1, "card"], [1, "card-header"], [1, "fa-solid", "fa-chart-bar"], [1, "chart-container-inner"], [3, "data", "showLegend", "showControls", "config"], [1, "fa-solid", "fa-bolt"], [1, "card-body", "no-padding"], [1, "activity-feed"], [1, "activity-item"], [1, "empty-state"], [1, "fa-solid", "fa-heart-pulse"], [1, "provider-health-list"], [1, "provider-row"], [1, "fa-solid", "fa-layer-group"], [1, "channel-breakdown"], [1, "channel-row"], [1, "activity-icon", 3, "ngClass"], [1, "activity-body"], [1, "activity-title"], [1, "activity-meta"], [1, "activity-status", 3, "ngClass"], [1, "fa-solid", "fa-inbox"], [1, "provider-status-dot"], [1, "provider-logo", 3, "ngClass"], [1, "provider-info"], [1, "provider-name"], [1, "provider-type"], [1, "provider-health-bar"], [1, "provider-health-fill", 3, "ngClass"], [1, "provider-rate", 3, "ngClass"], [1, "fa-solid", "fa-server"], [1, "channel-icon", 3, "ngClass"], [1, "channel-info"], [1, "channel-name"], [1, "channel-count"], [1, "channel-bar-wrapper"], [1, "channel-bar-fill"], [1, "channel-pct"]], template: function CommunicationMonitorResourceComponent_Template(rf, ctx) { if (rf & 1) {
375
+ i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 0)(2, "div", 1)(3, "button", 2);
376
+ i0.ɵɵlistener("click", function CommunicationMonitorResourceComponent_Template_button_click_3_listener() { return ctx.loadData(); });
377
+ i0.ɵɵelement(4, "i", 3);
378
+ i0.ɵɵtext(5, " Refresh ");
379
+ i0.ɵɵelementEnd()()();
380
+ i0.ɵɵelementStart(6, "mj-page-body")(7, "div", 4)(8, "div", 5)(9, "div", 6);
381
+ i0.ɵɵelement(10, "i", 7);
376
382
  i0.ɵɵelementEnd();
377
- i0.ɵɵelementStart(6, "div", 6)(7, "span", 7);
378
- i0.ɵɵtext(8, "Total Sent");
383
+ i0.ɵɵelementStart(11, "div", 8)(12, "span", 9);
384
+ i0.ɵɵtext(13, "Total Sent");
379
385
  i0.ɵɵelementEnd();
380
- i0.ɵɵelementStart(9, "span", 8);
381
- i0.ɵɵtext(10);
382
- i0.ɵɵpipe(11, "number");
386
+ i0.ɵɵelementStart(14, "span", 10);
387
+ i0.ɵɵtext(15);
388
+ i0.ɵɵpipe(16, "number");
383
389
  i0.ɵɵelementEnd();
384
- i0.ɵɵelementStart(12, "span", 9);
385
- i0.ɵɵelement(13, "i", 10);
386
- i0.ɵɵtext(14, " Last 24 hours ");
390
+ i0.ɵɵelementStart(17, "span", 11);
391
+ i0.ɵɵelement(18, "i", 12);
392
+ i0.ɵɵtext(19, " Last 24 hours ");
387
393
  i0.ɵɵelementEnd()()();
388
- i0.ɵɵelementStart(15, "div", 11)(16, "div", 4);
389
- i0.ɵɵelement(17, "i", 12);
394
+ i0.ɵɵelementStart(20, "div", 13)(21, "div", 6);
395
+ i0.ɵɵelement(22, "i", 14);
390
396
  i0.ɵɵelementEnd();
391
- i0.ɵɵelementStart(18, "div", 6)(19, "span", 7);
392
- i0.ɵɵtext(20, "Delivery Rate");
397
+ i0.ɵɵelementStart(23, "div", 8)(24, "span", 9);
398
+ i0.ɵɵtext(25, "Delivery Rate");
393
399
  i0.ɵɵelementEnd();
394
- i0.ɵɵelementStart(21, "span", 8);
395
- i0.ɵɵtext(22);
400
+ i0.ɵɵelementStart(26, "span", 10);
401
+ i0.ɵɵtext(27);
396
402
  i0.ɵɵelementEnd();
397
- i0.ɵɵelementStart(23, "div", 13);
398
- i0.ɵɵelement(24, "div", 14);
403
+ i0.ɵɵelementStart(28, "div", 15);
404
+ i0.ɵɵelement(29, "div", 16);
399
405
  i0.ɵɵelementEnd()()();
400
- i0.ɵɵelementStart(25, "div", 15)(26, "div", 4);
401
- i0.ɵɵelement(27, "i", 16);
406
+ i0.ɵɵelementStart(30, "div", 17)(31, "div", 6);
407
+ i0.ɵɵelement(32, "i", 18);
402
408
  i0.ɵɵelementEnd();
403
- i0.ɵɵelementStart(28, "div", 6)(29, "span", 7);
404
- i0.ɵɵtext(30, "Pending");
409
+ i0.ɵɵelementStart(33, "div", 8)(34, "span", 9);
410
+ i0.ɵɵtext(35, "Pending");
405
411
  i0.ɵɵelementEnd();
406
- i0.ɵɵelementStart(31, "span", 8);
407
- i0.ɵɵtext(32);
408
- i0.ɵɵpipe(33, "number");
412
+ i0.ɵɵelementStart(36, "span", 10);
413
+ i0.ɵɵtext(37);
414
+ i0.ɵɵpipe(38, "number");
409
415
  i0.ɵɵelementEnd();
410
- i0.ɵɵelementStart(34, "span", 17);
411
- i0.ɵɵelement(35, "i", 18);
412
- i0.ɵɵtext(36, " Awaiting provider ");
416
+ i0.ɵɵelementStart(39, "span", 19);
417
+ i0.ɵɵelement(40, "i", 20);
418
+ i0.ɵɵtext(41, " Awaiting provider ");
413
419
  i0.ɵɵelementEnd()()();
414
- i0.ɵɵelementStart(37, "div", 19)(38, "div", 4);
415
- i0.ɵɵelement(39, "i", 20);
420
+ i0.ɵɵelementStart(42, "div", 21)(43, "div", 6);
421
+ i0.ɵɵelement(44, "i", 22);
416
422
  i0.ɵɵelementEnd();
417
- i0.ɵɵelementStart(40, "div", 6)(41, "span", 7);
418
- i0.ɵɵtext(42, "Failed");
423
+ i0.ɵɵelementStart(45, "div", 8)(46, "span", 9);
424
+ i0.ɵɵtext(47, "Failed");
419
425
  i0.ɵɵelementEnd();
420
- i0.ɵɵelementStart(43, "span", 8);
421
- i0.ɵɵtext(44);
422
- i0.ɵɵpipe(45, "number");
426
+ i0.ɵɵelementStart(48, "span", 10);
427
+ i0.ɵɵtext(49);
428
+ i0.ɵɵpipe(50, "number");
423
429
  i0.ɵɵelementEnd();
424
- i0.ɵɵelementStart(46, "span", 9);
425
- i0.ɵɵelement(47, "i", 10);
426
- i0.ɵɵtext(48);
430
+ i0.ɵɵelementStart(51, "span", 11);
431
+ i0.ɵɵelement(52, "i", 12);
432
+ i0.ɵɵtext(53);
427
433
  i0.ɵɵelementEnd()()()();
428
- i0.ɵɵelementStart(49, "div", 21)(50, "div", 22)(51, "div", 23)(52, "h3");
429
- i0.ɵɵelement(53, "i", 24);
430
- i0.ɵɵtext(54, " Delivery Volume");
434
+ i0.ɵɵelementStart(54, "div", 23)(55, "div", 24)(56, "div", 25)(57, "h3");
435
+ i0.ɵɵelement(58, "i", 26);
436
+ i0.ɵɵtext(59, " Delivery Volume");
431
437
  i0.ɵɵelementEnd()();
432
- i0.ɵɵelementStart(55, "div", 25);
433
- i0.ɵɵelement(56, "app-time-series-chart", 26);
438
+ i0.ɵɵelementStart(60, "div", 27);
439
+ i0.ɵɵelement(61, "app-time-series-chart", 28);
434
440
  i0.ɵɵelementEnd()();
435
- i0.ɵɵelementStart(57, "div", 22)(58, "div", 23)(59, "h3");
436
- i0.ɵɵelement(60, "i", 27);
437
- i0.ɵɵtext(61, " Recent Activity");
441
+ i0.ɵɵelementStart(62, "div", 24)(63, "div", 25)(64, "h3");
442
+ i0.ɵɵelement(65, "i", 29);
443
+ i0.ɵɵtext(66, " Recent Activity");
438
444
  i0.ɵɵelementEnd()();
439
- i0.ɵɵelementStart(62, "div", 28)(63, "div", 29);
440
- i0.ɵɵrepeaterCreate(64, CommunicationMonitorResourceComponent_For_65_Template, 11, 11, "div", 30, i0.ɵɵrepeaterTrackByIdentity);
441
- i0.ɵɵconditionalCreate(66, CommunicationMonitorResourceComponent_Conditional_66_Template, 4, 0, "div", 31);
445
+ i0.ɵɵelementStart(67, "div", 30)(68, "div", 31);
446
+ i0.ɵɵrepeaterCreate(69, CommunicationMonitorResourceComponent_For_70_Template, 11, 11, "div", 32, i0.ɵɵrepeaterTrackByIdentity);
447
+ i0.ɵɵconditionalCreate(71, CommunicationMonitorResourceComponent_Conditional_71_Template, 4, 0, "div", 33);
442
448
  i0.ɵɵelementEnd()()()();
443
- i0.ɵɵelementStart(67, "div", 21)(68, "div", 22)(69, "div", 23)(70, "h3");
444
- i0.ɵɵelement(71, "i", 32);
445
- i0.ɵɵtext(72, " Provider Health");
449
+ i0.ɵɵelementStart(72, "div", 23)(73, "div", 24)(74, "div", 25)(75, "h3");
450
+ i0.ɵɵelement(76, "i", 34);
451
+ i0.ɵɵtext(77, " Provider Health");
446
452
  i0.ɵɵelementEnd()();
447
- i0.ɵɵelementStart(73, "div", 28)(74, "div", 33);
448
- i0.ɵɵrepeaterCreate(75, CommunicationMonitorResourceComponent_For_76_Template, 13, 13, "div", 34, i0.ɵɵrepeaterTrackByIdentity);
449
- i0.ɵɵconditionalCreate(77, CommunicationMonitorResourceComponent_Conditional_77_Template, 4, 0, "div", 31);
453
+ i0.ɵɵelementStart(78, "div", 30)(79, "div", 35);
454
+ i0.ɵɵrepeaterCreate(80, CommunicationMonitorResourceComponent_For_81_Template, 13, 13, "div", 36, i0.ɵɵrepeaterTrackByIdentity);
455
+ i0.ɵɵconditionalCreate(82, CommunicationMonitorResourceComponent_Conditional_82_Template, 4, 0, "div", 33);
450
456
  i0.ɵɵelementEnd()()();
451
- i0.ɵɵelementStart(78, "div", 22)(79, "div", 23)(80, "h3");
452
- i0.ɵɵelement(81, "i", 35);
453
- i0.ɵɵtext(82, " Channel Breakdown");
457
+ i0.ɵɵelementStart(83, "div", 24)(84, "div", 25)(85, "h3");
458
+ i0.ɵɵelement(86, "i", 37);
459
+ i0.ɵɵtext(87, " Channel Breakdown");
454
460
  i0.ɵɵelementEnd()();
455
- i0.ɵɵelementStart(83, "div", 28)(84, "div", 36);
456
- i0.ɵɵrepeaterCreate(85, CommunicationMonitorResourceComponent_For_86_Template, 13, 12, "div", 37, i0.ɵɵrepeaterTrackByIdentity);
457
- i0.ɵɵconditionalCreate(87, CommunicationMonitorResourceComponent_Conditional_87_Template, 4, 0, "div", 31);
461
+ i0.ɵɵelementStart(88, "div", 30)(89, "div", 38);
462
+ i0.ɵɵrepeaterCreate(90, CommunicationMonitorResourceComponent_For_91_Template, 13, 12, "div", 39, i0.ɵɵrepeaterTrackByIdentity);
463
+ i0.ɵɵconditionalCreate(92, CommunicationMonitorResourceComponent_Conditional_92_Template, 4, 0, "div", 33);
458
464
  i0.ɵɵelementEnd()()()()()();
459
465
  } if (rf & 2) {
460
- i0.ɵɵadvance(10);
461
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 26, ctx.stats.totalSent));
466
+ i0.ɵɵadvance(3);
467
+ i0.ɵɵproperty("disabled", ctx.isLoading);
468
+ i0.ɵɵadvance();
469
+ i0.ɵɵclassProp("spinning", ctx.isLoading);
470
+ i0.ɵɵadvance(11);
471
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(16, 29, ctx.stats.totalSent));
462
472
  i0.ɵɵadvance(2);
463
473
  i0.ɵɵclassMap(ctx.stats.totalSent > 0 ? "up" : "neutral");
464
474
  i0.ɵɵadvance();
@@ -468,9 +478,9 @@ let CommunicationMonitorResourceComponent = class CommunicationMonitorResourceCo
468
478
  i0.ɵɵadvance(2);
469
479
  i0.ɵɵstyleProp("width", ctx.stats.deliveryRate, "%");
470
480
  i0.ɵɵadvance(8);
471
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(33, 28, ctx.stats.pending));
481
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(38, 31, ctx.stats.pending));
472
482
  i0.ɵɵadvance(12);
473
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(45, 30, ctx.stats.failed));
483
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(50, 33, ctx.stats.failed));
474
484
  i0.ɵɵadvance(2);
475
485
  i0.ɵɵclassMap(ctx.stats.failed > 0 ? "down" : "neutral");
476
486
  i0.ɵɵadvance();
@@ -482,16 +492,16 @@ let CommunicationMonitorResourceComponent = class CommunicationMonitorResourceCo
482
492
  i0.ɵɵadvance(8);
483
493
  i0.ɵɵrepeater(ctx.recentLogs);
484
494
  i0.ɵɵadvance(2);
485
- i0.ɵɵconditional(ctx.recentLogs.length === 0 ? 66 : -1);
495
+ i0.ɵɵconditional(ctx.recentLogs.length === 0 ? 71 : -1);
486
496
  i0.ɵɵadvance(9);
487
497
  i0.ɵɵrepeater(ctx.providerHealth);
488
498
  i0.ɵɵadvance(2);
489
- i0.ɵɵconditional(ctx.providerHealth.length === 0 ? 77 : -1);
499
+ i0.ɵɵconditional(ctx.providerHealth.length === 0 ? 82 : -1);
490
500
  i0.ɵɵadvance(8);
491
501
  i0.ɵɵrepeater(ctx.channelBreakdown);
492
502
  i0.ɵɵadvance(2);
493
- i0.ɵɵconditional(ctx.channelBreakdown.length === 0 ? 87 : -1);
494
- } }, dependencies: [i1.NgClass, i2.TimeSeriesChartComponent, i1.DecimalPipe, i1.DatePipe], styles: [".monitor-wrapper[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n background: var(--mj-bg-surface);\n }\n .monitor-container[_ngcontent-%COMP%] {\n padding: 24px;\n min-height: 100%;\n max-width: 1600px;\n margin: 0 auto;\n }\n\n \n\n .kpi-strip[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 24px;\n }\n .kpi-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 20px;\n display: flex;\n align-items: flex-start;\n gap: 16px;\n transition: all 0.15s ease;\n position: relative;\n overflow: hidden;\n }\n .kpi-card[_ngcontent-%COMP%]:hover {\n box-shadow: 0 2px 8px var(--mj-shadow-md);\n border-color: var(--mj-border-strong);\n }\n .kpi-card[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n top: 0; left: 0; right: 0;\n height: 3px;\n }\n .kpi-card.sent[_ngcontent-%COMP%]::before { background: var(--mj-brand-primary); }\n .kpi-card.delivered[_ngcontent-%COMP%]::before { background: var(--mj-status-success); }\n .kpi-card.pending[_ngcontent-%COMP%]::before { background: var(--mj-status-warning); }\n .kpi-card.failed[_ngcontent-%COMP%]::before { background: var(--mj-status-error); }\n\n .kpi-icon[_ngcontent-%COMP%] {\n width: 44px; height: 44px;\n border-radius: 12px;\n display: flex; align-items: center; justify-content: center;\n font-size: 16px; flex-shrink: 0;\n }\n .kpi-card.sent[_ngcontent-%COMP%] .kpi-icon[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .kpi-card.delivered[_ngcontent-%COMP%] .kpi-icon[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .kpi-card.pending[_ngcontent-%COMP%] .kpi-icon[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n .kpi-card.failed[_ngcontent-%COMP%] .kpi-icon[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n\n .kpi-body[_ngcontent-%COMP%] { flex: 1; display: flex; flex-direction: column; gap: 2px; }\n .kpi-label[_ngcontent-%COMP%] {\n font-size: 11px; font-weight: 600;\n text-transform: uppercase; letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n }\n .kpi-value[_ngcontent-%COMP%] {\n font-size: 28px; font-weight: 800;\n color: var(--mj-text-primary);\n letter-spacing: -0.02em; line-height: 1.1;\n }\n .kpi-delta[_ngcontent-%COMP%] {\n display: inline-flex; align-items: center;\n gap: 4px; font-size: 11px; font-weight: 600;\n margin-top: 4px; padding: 2px 8px;\n border-radius: 10px; width: fit-content;\n }\n .kpi-delta.up[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .kpi-delta.down[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .kpi-delta.neutral[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .delivery-bar[_ngcontent-%COMP%] {\n height: 6px; margin-top: 10px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px; overflow: hidden;\n }\n .delivery-fill[_ngcontent-%COMP%] {\n height: 100%; border-radius: 3px;\n background: var(--mj-status-success); transition: width 0.6s ease;\n }\n\n \n\n .content-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1.6fr 1fr;\n gap: 16px;\n margin-bottom: 16px;\n }\n\n .card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n }\n .card-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n .card-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 13px; font-weight: 700;\n color: var(--mj-text-primary);\n display: flex; align-items: center; gap: 8px;\n margin: 0;\n }\n .card-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 12px;\n }\n .card-body[_ngcontent-%COMP%] { padding: 16px 20px; }\n .card-body.no-padding[_ngcontent-%COMP%] { padding: 0; }\n\n .chart-container-inner[_ngcontent-%COMP%] {\n padding: 16px 20px;\n min-height: 300px;\n }\n\n \n\n .activity-feed[_ngcontent-%COMP%] { max-height: 370px; overflow-y: auto; }\n .activity-item[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 12px;\n padding: 12px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n transition: background 0.15s ease; cursor: pointer;\n }\n .activity-item[_ngcontent-%COMP%]:last-child { border-bottom: none; }\n .activity-item[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-sunken); }\n\n .activity-icon[_ngcontent-%COMP%] {\n width: 34px; height: 34px;\n border-radius: 8px;\n display: flex; align-items: center; justify-content: center;\n font-size: 12px; flex-shrink: 0;\n }\n .activity-icon.email[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .activity-icon.sms[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .activity-icon.error[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n\n .activity-body[_ngcontent-%COMP%] { flex: 1; min-width: 0; }\n .activity-title[_ngcontent-%COMP%] {\n font-size: 12px; font-weight: 600;\n color: var(--mj-text-primary);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n display: block;\n }\n .activity-meta[_ngcontent-%COMP%] {\n font-size: 11px; color: var(--mj-text-muted); margin-top: 1px;\n display: block;\n }\n .activity-status[_ngcontent-%COMP%] {\n font-size: 10px; font-weight: 700;\n text-transform: uppercase; letter-spacing: 0.3px;\n padding: 3px 8px;\n border-radius: 4px;\n flex-shrink: 0;\n }\n .activity-status.complete[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .activity-status.failed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .activity-status.pending[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n \n\n .provider-health-list[_ngcontent-%COMP%] { display: flex; flex-direction: column; }\n .provider-row[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 12px;\n padding: 14px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n transition: background 0.15s ease;\n }\n .provider-row[_ngcontent-%COMP%]:last-child { border-bottom: none; }\n .provider-row[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-sunken); }\n\n .provider-status-dot[_ngcontent-%COMP%] {\n width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;\n background: var(--mj-border-strong);\n }\n .provider-status-dot.active[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n\n .provider-logo[_ngcontent-%COMP%] {\n width: 36px; height: 36px;\n border-radius: 8px;\n background: var(--mj-bg-surface-sunken);\n display: flex; align-items: center; justify-content: center;\n font-size: 16px; flex-shrink: 0;\n }\n .provider-logo.sendgrid[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .provider-logo.twilio[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .provider-logo.gmail[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .provider-logo.msgraph[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n\n .provider-info[_ngcontent-%COMP%] { flex: 1; }\n .provider-name[_ngcontent-%COMP%] { font-size: 13px; font-weight: 600; color: var(--mj-text-primary); }\n .provider-type[_ngcontent-%COMP%] { font-size: 11px; color: var(--mj-text-muted); }\n\n .provider-health-bar[_ngcontent-%COMP%] {\n width: 80px; height: 6px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px; overflow: hidden;\n }\n .provider-health-fill[_ngcontent-%COMP%] {\n height: 100%; border-radius: 3px;\n transition: width 0.4s ease;\n }\n .provider-health-fill.excellent[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .provider-health-fill.good[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .provider-health-fill.warning[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .provider-health-fill.critical[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n .provider-rate[_ngcontent-%COMP%] {\n font-size: 12px; font-weight: 700;\n min-width: 44px; text-align: right;\n }\n .provider-rate.excellent[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .provider-rate.good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .provider-rate.warning[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .provider-rate.critical[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n \n\n .channel-breakdown[_ngcontent-%COMP%] { display: flex; flex-direction: column; }\n .channel-row[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 12px;\n padding: 14px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n .channel-row[_ngcontent-%COMP%]:last-child { border-bottom: none; }\n .channel-icon[_ngcontent-%COMP%] {\n width: 32px; height: 32px;\n border-radius: 8px;\n display: flex; align-items: center; justify-content: center;\n font-size: 13px; flex-shrink: 0;\n }\n .channel-icon.email[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .channel-icon.sms[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .channel-info[_ngcontent-%COMP%] { flex: 1; }\n .channel-name[_ngcontent-%COMP%] { font-size: 12px; font-weight: 600; color: var(--mj-text-primary); }\n .channel-count[_ngcontent-%COMP%] { font-size: 11px; color: var(--mj-text-muted); }\n\n .channel-bar-wrapper[_ngcontent-%COMP%] {\n width: 100px; height: 6px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px; overflow: hidden;\n }\n .channel-bar-fill[_ngcontent-%COMP%] { height: 100%; border-radius: 3px; }\n .channel-pct[_ngcontent-%COMP%] {\n font-size: 12px; font-weight: 700;\n color: var(--mj-text-primary);\n min-width: 36px; text-align: right;\n }\n\n \n\n .empty-state[_ngcontent-%COMP%] {\n display: flex; flex-direction: column;\n align-items: center; justify-content: center;\n padding: 40px 0; color: var(--mj-text-muted);\n }\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 2rem; margin-bottom: 12px; opacity: 0.5; }\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] { margin: 0; font-size: 13px; }\n\n @media (max-width: 1200px) {\n .kpi-strip[_ngcontent-%COMP%] { grid-template-columns: repeat(2, 1fr); }\n .content-grid[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n }"] });
503
+ i0.ɵɵconditional(ctx.channelBreakdown.length === 0 ? 92 : -1);
504
+ } }, dependencies: [i1.NgClass, i2.TimeSeriesChartComponent, i3.MJButtonDirective, i3.MJPageHeaderComponent, i3.MJPageLayoutComponent, i3.MJPageBodyComponent, i1.DecimalPipe, i1.DatePipe], styles: ["\n\n .kpi-strip[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 24px;\n }\n .kpi-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 20px;\n display: flex;\n align-items: flex-start;\n gap: 16px;\n transition: all 0.15s ease;\n position: relative;\n overflow: hidden;\n }\n .kpi-card[_ngcontent-%COMP%]:hover {\n box-shadow: 0 2px 8px var(--mj-shadow-md);\n border-color: var(--mj-border-strong);\n }\n .kpi-card[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n top: 0; left: 0; right: 0;\n height: 3px;\n }\n .kpi-card.sent[_ngcontent-%COMP%]::before { background: var(--mj-brand-primary); }\n .kpi-card.delivered[_ngcontent-%COMP%]::before { background: var(--mj-status-success); }\n .kpi-card.pending[_ngcontent-%COMP%]::before { background: var(--mj-status-warning); }\n .kpi-card.failed[_ngcontent-%COMP%]::before { background: var(--mj-status-error); }\n\n .kpi-icon[_ngcontent-%COMP%] {\n width: 44px; height: 44px;\n border-radius: 12px;\n display: flex; align-items: center; justify-content: center;\n font-size: 16px; flex-shrink: 0;\n }\n .kpi-card.sent[_ngcontent-%COMP%] .kpi-icon[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .kpi-card.delivered[_ngcontent-%COMP%] .kpi-icon[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .kpi-card.pending[_ngcontent-%COMP%] .kpi-icon[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n .kpi-card.failed[_ngcontent-%COMP%] .kpi-icon[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n\n .kpi-body[_ngcontent-%COMP%] { flex: 1; display: flex; flex-direction: column; gap: 2px; }\n .kpi-label[_ngcontent-%COMP%] {\n font-size: 11px; font-weight: 600;\n text-transform: uppercase; letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n }\n .kpi-value[_ngcontent-%COMP%] {\n font-size: 28px; font-weight: 800;\n color: var(--mj-text-primary);\n letter-spacing: -0.02em; line-height: 1.1;\n }\n .kpi-delta[_ngcontent-%COMP%] {\n display: inline-flex; align-items: center;\n gap: 4px; font-size: 11px; font-weight: 600;\n margin-top: 4px; padding: 2px 8px;\n border-radius: 10px; width: fit-content;\n }\n .kpi-delta.up[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .kpi-delta.down[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .kpi-delta.neutral[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .delivery-bar[_ngcontent-%COMP%] {\n height: 6px; margin-top: 10px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px; overflow: hidden;\n }\n .delivery-fill[_ngcontent-%COMP%] {\n height: 100%; border-radius: 3px;\n background: var(--mj-status-success); transition: width 0.6s ease;\n }\n\n \n\n .content-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1.6fr 1fr;\n gap: 16px;\n margin-bottom: 16px;\n }\n\n .card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n }\n .card-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n .card-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 13px; font-weight: 700;\n color: var(--mj-text-primary);\n display: flex; align-items: center; gap: 8px;\n margin: 0;\n }\n .card-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 12px;\n }\n .card-body[_ngcontent-%COMP%] { padding: 16px 20px; }\n .card-body.no-padding[_ngcontent-%COMP%] { padding: 0; }\n\n .chart-container-inner[_ngcontent-%COMP%] {\n padding: 16px 20px;\n min-height: 300px;\n }\n\n \n\n .activity-feed[_ngcontent-%COMP%] { max-height: 370px; overflow-y: auto; }\n .activity-item[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 12px;\n padding: 12px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n transition: background 0.15s ease; cursor: pointer;\n }\n .activity-item[_ngcontent-%COMP%]:last-child { border-bottom: none; }\n .activity-item[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-sunken); }\n\n .activity-icon[_ngcontent-%COMP%] {\n width: 34px; height: 34px;\n border-radius: 8px;\n display: flex; align-items: center; justify-content: center;\n font-size: 12px; flex-shrink: 0;\n }\n .activity-icon.email[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .activity-icon.sms[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .activity-icon.error[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n\n .activity-body[_ngcontent-%COMP%] { flex: 1; min-width: 0; }\n .activity-title[_ngcontent-%COMP%] {\n font-size: 12px; font-weight: 600;\n color: var(--mj-text-primary);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n display: block;\n }\n .activity-meta[_ngcontent-%COMP%] {\n font-size: 11px; color: var(--mj-text-muted); margin-top: 1px;\n display: block;\n }\n .activity-status[_ngcontent-%COMP%] {\n font-size: 10px; font-weight: 700;\n text-transform: uppercase; letter-spacing: 0.3px;\n padding: 3px 8px;\n border-radius: 4px;\n flex-shrink: 0;\n }\n .activity-status.complete[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .activity-status.failed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .activity-status.pending[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n \n\n .provider-health-list[_ngcontent-%COMP%] { display: flex; flex-direction: column; }\n .provider-row[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 12px;\n padding: 14px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n transition: background 0.15s ease;\n }\n .provider-row[_ngcontent-%COMP%]:last-child { border-bottom: none; }\n .provider-row[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-sunken); }\n\n .provider-status-dot[_ngcontent-%COMP%] {\n width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;\n background: var(--mj-border-strong);\n }\n .provider-status-dot.active[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n\n .provider-logo[_ngcontent-%COMP%] {\n width: 36px; height: 36px;\n border-radius: 8px;\n background: var(--mj-bg-surface-sunken);\n display: flex; align-items: center; justify-content: center;\n font-size: 16px; flex-shrink: 0;\n }\n .provider-logo.sendgrid[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .provider-logo.twilio[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .provider-logo.gmail[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .provider-logo.msgraph[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n\n .provider-info[_ngcontent-%COMP%] { flex: 1; }\n .provider-name[_ngcontent-%COMP%] { font-size: 13px; font-weight: 600; color: var(--mj-text-primary); }\n .provider-type[_ngcontent-%COMP%] { font-size: 11px; color: var(--mj-text-muted); }\n\n .provider-health-bar[_ngcontent-%COMP%] {\n width: 80px; height: 6px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px; overflow: hidden;\n }\n .provider-health-fill[_ngcontent-%COMP%] {\n height: 100%; border-radius: 3px;\n transition: width 0.4s ease;\n }\n .provider-health-fill.excellent[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .provider-health-fill.good[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .provider-health-fill.warning[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .provider-health-fill.critical[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n .provider-rate[_ngcontent-%COMP%] {\n font-size: 12px; font-weight: 700;\n min-width: 44px; text-align: right;\n }\n .provider-rate.excellent[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .provider-rate.good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .provider-rate.warning[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .provider-rate.critical[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n \n\n .channel-breakdown[_ngcontent-%COMP%] { display: flex; flex-direction: column; }\n .channel-row[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 12px;\n padding: 14px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n .channel-row[_ngcontent-%COMP%]:last-child { border-bottom: none; }\n .channel-icon[_ngcontent-%COMP%] {\n width: 32px; height: 32px;\n border-radius: 8px;\n display: flex; align-items: center; justify-content: center;\n font-size: 13px; flex-shrink: 0;\n }\n .channel-icon.email[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .channel-icon.sms[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .channel-info[_ngcontent-%COMP%] { flex: 1; }\n .channel-name[_ngcontent-%COMP%] { font-size: 12px; font-weight: 600; color: var(--mj-text-primary); }\n .channel-count[_ngcontent-%COMP%] { font-size: 11px; color: var(--mj-text-muted); }\n\n .channel-bar-wrapper[_ngcontent-%COMP%] {\n width: 100px; height: 6px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px; overflow: hidden;\n }\n .channel-bar-fill[_ngcontent-%COMP%] { height: 100%; border-radius: 3px; }\n .channel-pct[_ngcontent-%COMP%] {\n font-size: 12px; font-weight: 700;\n color: var(--mj-text-primary);\n min-width: 36px; text-align: right;\n }\n\n \n\n .empty-state[_ngcontent-%COMP%] {\n display: flex; flex-direction: column;\n align-items: center; justify-content: center;\n padding: 40px 0; color: var(--mj-text-muted);\n }\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 2rem; margin-bottom: 12px; opacity: 0.5; }\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] { margin: 0; font-size: 13px; }\n\n @media (max-width: 1200px) {\n .kpi-strip[_ngcontent-%COMP%] { grid-template-columns: repeat(2, 1fr); }\n .content-grid[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n }"] });
495
505
  };
496
506
  CommunicationMonitorResourceComponent = __decorate([
497
507
  RegisterClass(BaseResourceComponent, 'CommunicationMonitorResource')
@@ -500,8 +510,19 @@ export { CommunicationMonitorResourceComponent };
500
510
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CommunicationMonitorResourceComponent, [{
501
511
  type: Component,
502
512
  args: [{ standalone: false, selector: 'mj-communication-monitor-resource', template: `
503
- <div class="monitor-wrapper">
504
- <div class="monitor-container">
513
+ <mj-page-layout>
514
+ <mj-page-header
515
+ Title="Monitor"
516
+ Icon="fa-solid fa-chart-line"
517
+ Subtitle="Live delivery health, provider status, and channel breakdown">
518
+ <div actions>
519
+ <button mjButton variant="secondary" size="sm" (click)="loadData()" [disabled]="isLoading" title="Refresh">
520
+ <i class="fa-solid fa-rotate" [class.spinning]="isLoading"></i> Refresh
521
+ </button>
522
+ </div>
523
+ </mj-page-header>
524
+
525
+ <mj-page-body>
505
526
  <!-- KPI STRIP -->
506
527
  <div class="kpi-strip">
507
528
  <div class="kpi-card sent">
@@ -660,9 +681,9 @@ export { CommunicationMonitorResourceComponent };
660
681
  </div>
661
682
  </div>
662
683
  </div>
663
- </div>
664
- </div>
665
- `, styles: ["\n .monitor-wrapper {\n height: 100%;\n overflow-y: auto;\n background: var(--mj-bg-surface);\n }\n .monitor-container {\n padding: 24px;\n min-height: 100%;\n max-width: 1600px;\n margin: 0 auto;\n }\n\n /* KPI STRIP */\n .kpi-strip {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 24px;\n }\n .kpi-card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 20px;\n display: flex;\n align-items: flex-start;\n gap: 16px;\n transition: all 0.15s ease;\n position: relative;\n overflow: hidden;\n }\n .kpi-card:hover {\n box-shadow: 0 2px 8px var(--mj-shadow-md);\n border-color: var(--mj-border-strong);\n }\n .kpi-card::before {\n content: '';\n position: absolute;\n top: 0; left: 0; right: 0;\n height: 3px;\n }\n .kpi-card.sent::before { background: var(--mj-brand-primary); }\n .kpi-card.delivered::before { background: var(--mj-status-success); }\n .kpi-card.pending::before { background: var(--mj-status-warning); }\n .kpi-card.failed::before { background: var(--mj-status-error); }\n\n .kpi-icon {\n width: 44px; height: 44px;\n border-radius: 12px;\n display: flex; align-items: center; justify-content: center;\n font-size: 16px; flex-shrink: 0;\n }\n .kpi-card.sent .kpi-icon {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .kpi-card.delivered .kpi-icon {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .kpi-card.pending .kpi-icon {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n .kpi-card.failed .kpi-icon {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n\n .kpi-body { flex: 1; display: flex; flex-direction: column; gap: 2px; }\n .kpi-label {\n font-size: 11px; font-weight: 600;\n text-transform: uppercase; letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n }\n .kpi-value {\n font-size: 28px; font-weight: 800;\n color: var(--mj-text-primary);\n letter-spacing: -0.02em; line-height: 1.1;\n }\n .kpi-delta {\n display: inline-flex; align-items: center;\n gap: 4px; font-size: 11px; font-weight: 600;\n margin-top: 4px; padding: 2px 8px;\n border-radius: 10px; width: fit-content;\n }\n .kpi-delta.up {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .kpi-delta.down {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .kpi-delta.neutral {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .delivery-bar {\n height: 6px; margin-top: 10px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px; overflow: hidden;\n }\n .delivery-fill {\n height: 100%; border-radius: 3px;\n background: var(--mj-status-success); transition: width 0.6s ease;\n }\n\n /* CONTENT GRID */\n .content-grid {\n display: grid;\n grid-template-columns: 1.6fr 1fr;\n gap: 16px;\n margin-bottom: 16px;\n }\n\n .card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n }\n .card-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n .card-header h3 {\n font-size: 13px; font-weight: 700;\n color: var(--mj-text-primary);\n display: flex; align-items: center; gap: 8px;\n margin: 0;\n }\n .card-header h3 i {\n color: var(--mj-text-muted);\n font-size: 12px;\n }\n .card-body { padding: 16px 20px; }\n .card-body.no-padding { padding: 0; }\n\n .chart-container-inner {\n padding: 16px 20px;\n min-height: 300px;\n }\n\n /* ACTIVITY FEED */\n .activity-feed { max-height: 370px; overflow-y: auto; }\n .activity-item {\n display: flex; align-items: center; gap: 12px;\n padding: 12px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n transition: background 0.15s ease; cursor: pointer;\n }\n .activity-item:last-child { border-bottom: none; }\n .activity-item:hover { background: var(--mj-bg-surface-sunken); }\n\n .activity-icon {\n width: 34px; height: 34px;\n border-radius: 8px;\n display: flex; align-items: center; justify-content: center;\n font-size: 12px; flex-shrink: 0;\n }\n .activity-icon.email {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .activity-icon.sms {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .activity-icon.error {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n\n .activity-body { flex: 1; min-width: 0; }\n .activity-title {\n font-size: 12px; font-weight: 600;\n color: var(--mj-text-primary);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n display: block;\n }\n .activity-meta {\n font-size: 11px; color: var(--mj-text-muted); margin-top: 1px;\n display: block;\n }\n .activity-status {\n font-size: 10px; font-weight: 700;\n text-transform: uppercase; letter-spacing: 0.3px;\n padding: 3px 8px;\n border-radius: 4px;\n flex-shrink: 0;\n }\n .activity-status.complete {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .activity-status.failed {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .activity-status.pending {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n /* PROVIDER HEALTH */\n .provider-health-list { display: flex; flex-direction: column; }\n .provider-row {\n display: flex; align-items: center; gap: 12px;\n padding: 14px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n transition: background 0.15s ease;\n }\n .provider-row:last-child { border-bottom: none; }\n .provider-row:hover { background: var(--mj-bg-surface-sunken); }\n\n .provider-status-dot {\n width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;\n background: var(--mj-border-strong);\n }\n .provider-status-dot.active { background: var(--mj-status-success); }\n\n .provider-logo {\n width: 36px; height: 36px;\n border-radius: 8px;\n background: var(--mj-bg-surface-sunken);\n display: flex; align-items: center; justify-content: center;\n font-size: 16px; flex-shrink: 0;\n }\n .provider-logo.sendgrid { color: var(--mj-brand-primary); }\n .provider-logo.twilio { color: var(--mj-status-error); }\n .provider-logo.gmail { color: var(--mj-status-error); }\n .provider-logo.msgraph { color: var(--mj-brand-primary); }\n\n .provider-info { flex: 1; }\n .provider-name { font-size: 13px; font-weight: 600; color: var(--mj-text-primary); }\n .provider-type { font-size: 11px; color: var(--mj-text-muted); }\n\n .provider-health-bar {\n width: 80px; height: 6px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px; overflow: hidden;\n }\n .provider-health-fill {\n height: 100%; border-radius: 3px;\n transition: width 0.4s ease;\n }\n .provider-health-fill.excellent { background: var(--mj-status-success); }\n .provider-health-fill.good { background: var(--mj-status-success); }\n .provider-health-fill.warning { background: var(--mj-status-warning); }\n .provider-health-fill.critical { background: var(--mj-status-error); }\n\n .provider-rate {\n font-size: 12px; font-weight: 700;\n min-width: 44px; text-align: right;\n }\n .provider-rate.excellent { color: var(--mj-status-success); }\n .provider-rate.good { color: var(--mj-status-success); }\n .provider-rate.warning { color: var(--mj-status-warning); }\n .provider-rate.critical { color: var(--mj-status-error); }\n\n /* CHANNEL BREAKDOWN */\n .channel-breakdown { display: flex; flex-direction: column; }\n .channel-row {\n display: flex; align-items: center; gap: 12px;\n padding: 14px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n .channel-row:last-child { border-bottom: none; }\n .channel-icon {\n width: 32px; height: 32px;\n border-radius: 8px;\n display: flex; align-items: center; justify-content: center;\n font-size: 13px; flex-shrink: 0;\n }\n .channel-icon.email {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .channel-icon.sms {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .channel-info { flex: 1; }\n .channel-name { font-size: 12px; font-weight: 600; color: var(--mj-text-primary); }\n .channel-count { font-size: 11px; color: var(--mj-text-muted); }\n\n .channel-bar-wrapper {\n width: 100px; height: 6px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px; overflow: hidden;\n }\n .channel-bar-fill { height: 100%; border-radius: 3px; }\n .channel-pct {\n font-size: 12px; font-weight: 700;\n color: var(--mj-text-primary);\n min-width: 36px; text-align: right;\n }\n\n /* EMPTY STATE */\n .empty-state {\n display: flex; flex-direction: column;\n align-items: center; justify-content: center;\n padding: 40px 0; color: var(--mj-text-muted);\n }\n .empty-state i { font-size: 2rem; margin-bottom: 12px; opacity: 0.5; }\n .empty-state p { margin: 0; font-size: 13px; }\n\n @media (max-width: 1200px) {\n .kpi-strip { grid-template-columns: repeat(2, 1fr); }\n .content-grid { grid-template-columns: 1fr; }\n }\n "] }]
684
+ </mj-page-body>
685
+ </mj-page-layout>
686
+ `, styles: ["\n /* KPI STRIP */\n .kpi-strip {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 24px;\n }\n .kpi-card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 20px;\n display: flex;\n align-items: flex-start;\n gap: 16px;\n transition: all 0.15s ease;\n position: relative;\n overflow: hidden;\n }\n .kpi-card:hover {\n box-shadow: 0 2px 8px var(--mj-shadow-md);\n border-color: var(--mj-border-strong);\n }\n .kpi-card::before {\n content: '';\n position: absolute;\n top: 0; left: 0; right: 0;\n height: 3px;\n }\n .kpi-card.sent::before { background: var(--mj-brand-primary); }\n .kpi-card.delivered::before { background: var(--mj-status-success); }\n .kpi-card.pending::before { background: var(--mj-status-warning); }\n .kpi-card.failed::before { background: var(--mj-status-error); }\n\n .kpi-icon {\n width: 44px; height: 44px;\n border-radius: 12px;\n display: flex; align-items: center; justify-content: center;\n font-size: 16px; flex-shrink: 0;\n }\n .kpi-card.sent .kpi-icon {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .kpi-card.delivered .kpi-icon {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .kpi-card.pending .kpi-icon {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n .kpi-card.failed .kpi-icon {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n\n .kpi-body { flex: 1; display: flex; flex-direction: column; gap: 2px; }\n .kpi-label {\n font-size: 11px; font-weight: 600;\n text-transform: uppercase; letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n }\n .kpi-value {\n font-size: 28px; font-weight: 800;\n color: var(--mj-text-primary);\n letter-spacing: -0.02em; line-height: 1.1;\n }\n .kpi-delta {\n display: inline-flex; align-items: center;\n gap: 4px; font-size: 11px; font-weight: 600;\n margin-top: 4px; padding: 2px 8px;\n border-radius: 10px; width: fit-content;\n }\n .kpi-delta.up {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .kpi-delta.down {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .kpi-delta.neutral {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .delivery-bar {\n height: 6px; margin-top: 10px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px; overflow: hidden;\n }\n .delivery-fill {\n height: 100%; border-radius: 3px;\n background: var(--mj-status-success); transition: width 0.6s ease;\n }\n\n /* CONTENT GRID */\n .content-grid {\n display: grid;\n grid-template-columns: 1.6fr 1fr;\n gap: 16px;\n margin-bottom: 16px;\n }\n\n .card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n }\n .card-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n .card-header h3 {\n font-size: 13px; font-weight: 700;\n color: var(--mj-text-primary);\n display: flex; align-items: center; gap: 8px;\n margin: 0;\n }\n .card-header h3 i {\n color: var(--mj-text-muted);\n font-size: 12px;\n }\n .card-body { padding: 16px 20px; }\n .card-body.no-padding { padding: 0; }\n\n .chart-container-inner {\n padding: 16px 20px;\n min-height: 300px;\n }\n\n /* ACTIVITY FEED */\n .activity-feed { max-height: 370px; overflow-y: auto; }\n .activity-item {\n display: flex; align-items: center; gap: 12px;\n padding: 12px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n transition: background 0.15s ease; cursor: pointer;\n }\n .activity-item:last-child { border-bottom: none; }\n .activity-item:hover { background: var(--mj-bg-surface-sunken); }\n\n .activity-icon {\n width: 34px; height: 34px;\n border-radius: 8px;\n display: flex; align-items: center; justify-content: center;\n font-size: 12px; flex-shrink: 0;\n }\n .activity-icon.email {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .activity-icon.sms {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .activity-icon.error {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n\n .activity-body { flex: 1; min-width: 0; }\n .activity-title {\n font-size: 12px; font-weight: 600;\n color: var(--mj-text-primary);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n display: block;\n }\n .activity-meta {\n font-size: 11px; color: var(--mj-text-muted); margin-top: 1px;\n display: block;\n }\n .activity-status {\n font-size: 10px; font-weight: 700;\n text-transform: uppercase; letter-spacing: 0.3px;\n padding: 3px 8px;\n border-radius: 4px;\n flex-shrink: 0;\n }\n .activity-status.complete {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .activity-status.failed {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .activity-status.pending {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n /* PROVIDER HEALTH */\n .provider-health-list { display: flex; flex-direction: column; }\n .provider-row {\n display: flex; align-items: center; gap: 12px;\n padding: 14px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n transition: background 0.15s ease;\n }\n .provider-row:last-child { border-bottom: none; }\n .provider-row:hover { background: var(--mj-bg-surface-sunken); }\n\n .provider-status-dot {\n width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;\n background: var(--mj-border-strong);\n }\n .provider-status-dot.active { background: var(--mj-status-success); }\n\n .provider-logo {\n width: 36px; height: 36px;\n border-radius: 8px;\n background: var(--mj-bg-surface-sunken);\n display: flex; align-items: center; justify-content: center;\n font-size: 16px; flex-shrink: 0;\n }\n .provider-logo.sendgrid { color: var(--mj-brand-primary); }\n .provider-logo.twilio { color: var(--mj-status-error); }\n .provider-logo.gmail { color: var(--mj-status-error); }\n .provider-logo.msgraph { color: var(--mj-brand-primary); }\n\n .provider-info { flex: 1; }\n .provider-name { font-size: 13px; font-weight: 600; color: var(--mj-text-primary); }\n .provider-type { font-size: 11px; color: var(--mj-text-muted); }\n\n .provider-health-bar {\n width: 80px; height: 6px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px; overflow: hidden;\n }\n .provider-health-fill {\n height: 100%; border-radius: 3px;\n transition: width 0.4s ease;\n }\n .provider-health-fill.excellent { background: var(--mj-status-success); }\n .provider-health-fill.good { background: var(--mj-status-success); }\n .provider-health-fill.warning { background: var(--mj-status-warning); }\n .provider-health-fill.critical { background: var(--mj-status-error); }\n\n .provider-rate {\n font-size: 12px; font-weight: 700;\n min-width: 44px; text-align: right;\n }\n .provider-rate.excellent { color: var(--mj-status-success); }\n .provider-rate.good { color: var(--mj-status-success); }\n .provider-rate.warning { color: var(--mj-status-warning); }\n .provider-rate.critical { color: var(--mj-status-error); }\n\n /* CHANNEL BREAKDOWN */\n .channel-breakdown { display: flex; flex-direction: column; }\n .channel-row {\n display: flex; align-items: center; gap: 12px;\n padding: 14px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n .channel-row:last-child { border-bottom: none; }\n .channel-icon {\n width: 32px; height: 32px;\n border-radius: 8px;\n display: flex; align-items: center; justify-content: center;\n font-size: 13px; flex-shrink: 0;\n }\n .channel-icon.email {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n .channel-icon.sms {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .channel-info { flex: 1; }\n .channel-name { font-size: 12px; font-weight: 600; color: var(--mj-text-primary); }\n .channel-count { font-size: 11px; color: var(--mj-text-muted); }\n\n .channel-bar-wrapper {\n width: 100px; height: 6px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px; overflow: hidden;\n }\n .channel-bar-fill { height: 100%; border-radius: 3px; }\n .channel-pct {\n font-size: 12px; font-weight: 700;\n color: var(--mj-text-primary);\n min-width: 36px; text-align: right;\n }\n\n /* EMPTY STATE */\n .empty-state {\n display: flex; flex-direction: column;\n align-items: center; justify-content: center;\n padding: 40px 0; color: var(--mj-text-muted);\n }\n .empty-state i { font-size: 2rem; margin-bottom: 12px; opacity: 0.5; }\n .empty-state p { margin: 0; font-size: 13px; }\n\n @media (max-width: 1200px) {\n .kpi-strip { grid-template-columns: repeat(2, 1fr); }\n .content-grid { grid-template-columns: 1fr; }\n }\n "] }]
666
687
  }], () => [{ type: i0.ChangeDetectorRef }], null); })();
667
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CommunicationMonitorResourceComponent, { className: "CommunicationMonitorResourceComponent", filePath: "src/Communication/communication-monitor-resource.component.ts", lineNumber: 521 }); })();
688
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CommunicationMonitorResourceComponent, { className: "CommunicationMonitorResourceComponent", filePath: "src/Communication/communication-monitor-resource.component.ts", lineNumber: 520 }); })();
668
689
  //# sourceMappingURL=communication-monitor-resource.component.js.map