@memberjunction/ng-dashboards 3.4.0 → 4.0.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 (573) hide show
  1. package/dist/AI/ai-dashboard.component.d.ts +62 -0
  2. package/dist/AI/ai-dashboard.component.d.ts.map +1 -0
  3. package/dist/AI/ai-dashboard.component.js +338 -0
  4. package/dist/AI/ai-dashboard.component.js.map +1 -0
  5. package/dist/AI/components/agents/agent-configuration.component.d.ts +12 -5
  6. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  7. package/dist/AI/components/agents/agent-configuration.component.js +103 -44
  8. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  9. package/dist/AI/components/agents/agent-editor.component.d.ts +14 -5
  10. package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
  11. package/dist/AI/components/agents/agent-editor.component.js +149 -211
  12. package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
  13. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +1 -1
  14. package/dist/AI/components/agents/agent-filter-panel.component.js +4 -4
  15. package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
  16. package/dist/AI/components/charts/performance-heatmap.component.d.ts.map +1 -1
  17. package/dist/AI/components/charts/performance-heatmap.component.js +4 -6
  18. package/dist/AI/components/charts/performance-heatmap.component.js.map +1 -1
  19. package/dist/AI/components/charts/time-series-chart.component.d.ts.map +1 -1
  20. package/dist/AI/components/charts/time-series-chart.component.js +6 -7
  21. package/dist/AI/components/charts/time-series-chart.component.js.map +1 -1
  22. package/dist/AI/components/execution-monitoring.component.d.ts +0 -4
  23. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  24. package/dist/AI/components/execution-monitoring.component.js +33 -37
  25. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  26. package/dist/AI/components/models/model-management-v2.component.d.ts +96 -0
  27. package/dist/AI/components/models/model-management-v2.component.d.ts.map +1 -0
  28. package/dist/AI/components/models/model-management-v2.component.js +981 -0
  29. package/dist/AI/components/models/model-management-v2.component.js.map +1 -0
  30. package/dist/AI/components/models/model-management.component.d.ts +3 -6
  31. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  32. package/dist/AI/components/models/model-management.component.js +34 -27
  33. package/dist/AI/components/models/model-management.component.js.map +1 -1
  34. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
  35. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +22 -17
  36. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
  37. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +1 -1
  38. package/dist/AI/components/prompts/prompt-filter-panel.component.js +4 -4
  39. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +1 -1
  40. package/dist/AI/components/prompts/prompt-management-v2.component.d.ts +97 -0
  41. package/dist/AI/components/prompts/prompt-management-v2.component.d.ts.map +1 -0
  42. package/dist/AI/components/prompts/prompt-management-v2.component.js +811 -0
  43. package/dist/AI/components/prompts/prompt-management-v2.component.js.map +1 -0
  44. package/dist/AI/components/prompts/prompt-management.component.d.ts +3 -6
  45. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  46. package/dist/AI/components/prompts/prompt-management.component.js +34 -32
  47. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  48. package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
  49. package/dist/AI/components/prompts/prompt-version-control.component.js +33 -28
  50. package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
  51. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +1 -1
  52. package/dist/AI/components/system/system-config-filter-panel.component.js +4 -4
  53. package/dist/AI/components/system/system-config-filter-panel.component.js.map +1 -1
  54. package/dist/AI/components/system/system-configuration.component.d.ts +0 -4
  55. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  56. package/dist/AI/components/system/system-configuration.component.js +26 -27
  57. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  58. package/dist/AI/components/widgets/kpi-card.component.d.ts.map +1 -1
  59. package/dist/AI/components/widgets/kpi-card.component.js +52 -42
  60. package/dist/AI/components/widgets/kpi-card.component.js.map +1 -1
  61. package/dist/AI/components/widgets/live-execution-widget.component.d.ts.map +1 -1
  62. package/dist/AI/components/widgets/live-execution-widget.component.js +7 -7
  63. package/dist/AI/components/widgets/live-execution-widget.component.js.map +1 -1
  64. package/dist/APIKeys/api-applications-panel.component.d.ts +0 -2
  65. package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
  66. package/dist/APIKeys/api-applications-panel.component.js +193 -189
  67. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  68. package/dist/APIKeys/api-key-create-dialog.component.d.ts +0 -2
  69. package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
  70. package/dist/APIKeys/api-key-create-dialog.component.js +175 -180
  71. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  72. package/dist/APIKeys/api-key-edit-panel.component.d.ts +0 -2
  73. package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
  74. package/dist/APIKeys/api-key-edit-panel.component.js +231 -225
  75. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  76. package/dist/APIKeys/api-key-list.component.d.ts +0 -2
  77. package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
  78. package/dist/APIKeys/api-key-list.component.js +113 -114
  79. package/dist/APIKeys/api-key-list.component.js.map +1 -1
  80. package/dist/APIKeys/api-keys-resource.component.d.ts +0 -2
  81. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
  82. package/dist/APIKeys/api-keys-resource.component.js +294 -302
  83. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  84. package/dist/APIKeys/api-scopes-panel.component.d.ts +0 -2
  85. package/dist/APIKeys/api-scopes-panel.component.d.ts.map +1 -1
  86. package/dist/APIKeys/api-scopes-panel.component.js +151 -155
  87. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
  88. package/dist/APIKeys/api-usage-panel.component.d.ts +0 -2
  89. package/dist/APIKeys/api-usage-panel.component.d.ts.map +1 -1
  90. package/dist/APIKeys/api-usage-panel.component.js +237 -234
  91. package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
  92. package/dist/Actions/actions-management-dashboard.component.d.ts +52 -0
  93. package/dist/Actions/actions-management-dashboard.component.d.ts.map +1 -0
  94. package/dist/Actions/actions-management-dashboard.component.js +308 -0
  95. package/dist/Actions/actions-management-dashboard.component.js.map +1 -0
  96. package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
  97. package/dist/Actions/components/actions-list-view.component.js +15 -14
  98. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  99. package/dist/Actions/components/actions-overview.component.d.ts +3 -6
  100. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  101. package/dist/Actions/components/actions-overview.component.js +17 -19
  102. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  103. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  104. package/dist/Actions/components/categories-list-view.component.js +6 -6
  105. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  106. package/dist/Actions/components/code-management.component.d.ts +0 -4
  107. package/dist/Actions/components/code-management.component.d.ts.map +1 -1
  108. package/dist/Actions/components/code-management.component.js +3 -9
  109. package/dist/Actions/components/code-management.component.js.map +1 -1
  110. package/dist/Actions/components/entity-integration.component.d.ts +0 -4
  111. package/dist/Actions/components/entity-integration.component.d.ts.map +1 -1
  112. package/dist/Actions/components/entity-integration.component.js +3 -9
  113. package/dist/Actions/components/entity-integration.component.js.map +1 -1
  114. package/dist/Actions/components/execution-monitoring.component.d.ts +3 -6
  115. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  116. package/dist/Actions/components/execution-monitoring.component.js +13 -16
  117. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  118. package/dist/Actions/components/executions-list-view.component.d.ts.map +1 -1
  119. package/dist/Actions/components/executions-list-view.component.js +3 -3
  120. package/dist/Actions/components/executions-list-view.component.js.map +1 -1
  121. package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts.map +1 -1
  122. package/dist/Actions/components/explorer/action-breadcrumb.component.js +6 -6
  123. package/dist/Actions/components/explorer/action-breadcrumb.component.js.map +1 -1
  124. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
  125. package/dist/Actions/components/explorer/action-card.component.js +11 -10
  126. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  127. package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -4
  128. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  129. package/dist/Actions/components/explorer/action-explorer.component.js +10 -14
  130. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  131. package/dist/Actions/components/explorer/action-list-item.component.d.ts.map +1 -1
  132. package/dist/Actions/components/explorer/action-list-item.component.js +8 -8
  133. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
  134. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +1 -1
  135. package/dist/Actions/components/explorer/action-toolbar.component.js +15 -14
  136. package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
  137. package/dist/Actions/components/explorer/action-tree-panel.component.d.ts.map +1 -1
  138. package/dist/Actions/components/explorer/action-tree-panel.component.js +11 -10
  139. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
  140. package/dist/Actions/components/explorer/index.d.ts +0 -1
  141. package/dist/Actions/components/explorer/index.d.ts.map +1 -1
  142. package/dist/Actions/components/explorer/index.js +0 -4
  143. package/dist/Actions/components/explorer/index.js.map +1 -1
  144. package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -1
  145. package/dist/Actions/components/explorer/new-action-panel.component.js +10 -10
  146. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
  147. package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -1
  148. package/dist/Actions/components/explorer/new-category-panel.component.js +8 -8
  149. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
  150. package/dist/Actions/components/scheduled-actions.component.d.ts +0 -4
  151. package/dist/Actions/components/scheduled-actions.component.d.ts.map +1 -1
  152. package/dist/Actions/components/scheduled-actions.component.js +3 -9
  153. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  154. package/dist/Actions/components/security-permissions.component.d.ts +0 -4
  155. package/dist/Actions/components/security-permissions.component.d.ts.map +1 -1
  156. package/dist/Actions/components/security-permissions.component.js +3 -9
  157. package/dist/Actions/components/security-permissions.component.js.map +1 -1
  158. package/dist/Actions/index.d.ts +0 -7
  159. package/dist/Actions/index.d.ts.map +1 -1
  160. package/dist/Actions/index.js +0 -8
  161. package/dist/Actions/index.js.map +1 -1
  162. package/dist/Communication/communication-dashboard.component.d.ts +0 -1
  163. package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
  164. package/dist/Communication/communication-dashboard.component.js +38 -51
  165. package/dist/Communication/communication-dashboard.component.js.map +1 -1
  166. package/dist/Communication/communication-logs-resource.component.d.ts +0 -4
  167. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  168. package/dist/Communication/communication-logs-resource.component.js +112 -108
  169. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  170. package/dist/Communication/communication-monitor-resource.component.d.ts +0 -4
  171. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  172. package/dist/Communication/communication-monitor-resource.component.js +210 -201
  173. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  174. package/dist/Communication/communication-providers-resource.component.d.ts +0 -4
  175. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  176. package/dist/Communication/communication-providers-resource.component.js +136 -124
  177. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  178. package/dist/Communication/communication-runs-resource.component.d.ts +0 -4
  179. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  180. package/dist/Communication/communication-runs-resource.component.js +91 -88
  181. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  182. package/dist/Communication/communication-templates-resource.component.d.ts +0 -4
  183. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  184. package/dist/Communication/communication-templates-resource.component.js +139 -122
  185. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  186. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +0 -4
  187. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  188. package/dist/ComponentStudio/component-studio-dashboard.component.js +21 -20
  189. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  190. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
  191. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +11 -12
  192. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
  193. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  194. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +25 -22
  195. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  196. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  197. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +16 -16
  198. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  199. package/dist/ComponentStudio/components/browser/component-browser.component.d.ts.map +1 -1
  200. package/dist/ComponentStudio/components/browser/component-browser.component.js +23 -21
  201. package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
  202. package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts.map +1 -1
  203. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +10 -10
  204. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
  205. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -1
  206. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +13 -13
  207. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
  208. package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts.map +1 -1
  209. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +7 -7
  210. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
  211. package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts.map +1 -1
  212. package/dist/ComponentStudio/components/editors/spec-editor.component.js +5 -5
  213. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
  214. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts.map +1 -1
  215. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +4 -4
  216. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
  217. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
  218. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +9 -9
  219. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
  220. package/dist/ComponentStudio/components/text-import-dialog.component.d.ts.map +1 -1
  221. package/dist/ComponentStudio/components/text-import-dialog.component.js +4 -4
  222. package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
  223. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -1
  224. package/dist/ComponentStudio/components/workspace/component-preview.component.js +10 -9
  225. package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -1
  226. package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts.map +1 -1
  227. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +4 -4
  228. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -1
  229. package/dist/Credentials/components/credential-category-edit-panel.component.d.ts +44 -0
  230. package/dist/Credentials/components/credential-category-edit-panel.component.d.ts.map +1 -0
  231. package/dist/Credentials/components/credential-category-edit-panel.component.js +456 -0
  232. package/dist/Credentials/components/credential-category-edit-panel.component.js.map +1 -0
  233. package/dist/Credentials/components/credential-edit-panel.component.d.ts +70 -0
  234. package/dist/Credentials/components/credential-edit-panel.component.d.ts.map +1 -0
  235. package/dist/Credentials/components/credential-edit-panel.component.js +694 -0
  236. package/dist/Credentials/components/credential-edit-panel.component.js.map +1 -0
  237. package/dist/Credentials/components/credential-type-edit-panel.component.d.ts +56 -0
  238. package/dist/Credentials/components/credential-type-edit-panel.component.d.ts.map +1 -0
  239. package/dist/Credentials/components/credential-type-edit-panel.component.js +563 -0
  240. package/dist/Credentials/components/credential-type-edit-panel.component.js.map +1 -0
  241. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +0 -1
  242. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  243. package/dist/Credentials/components/credentials-audit-resource.component.js +200 -196
  244. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  245. package/dist/Credentials/components/credentials-categories-resource.component.d.ts +0 -1
  246. package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
  247. package/dist/Credentials/components/credentials-categories-resource.component.js +195 -190
  248. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  249. package/dist/Credentials/components/credentials-list-resource.component.d.ts +0 -1
  250. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  251. package/dist/Credentials/components/credentials-list-resource.component.js +251 -240
  252. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  253. package/dist/Credentials/components/credentials-overview-resource.component.d.ts +0 -1
  254. package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
  255. package/dist/Credentials/components/credentials-overview-resource.component.js +228 -226
  256. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  257. package/dist/Credentials/components/credentials-types-resource.component.d.ts +0 -1
  258. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  259. package/dist/Credentials/components/credentials-types-resource.component.js +214 -210
  260. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  261. package/dist/Credentials/credentials-dashboard.component.d.ts +0 -1
  262. package/dist/Credentials/credentials-dashboard.component.d.ts.map +1 -1
  263. package/dist/Credentials/credentials-dashboard.component.js +31 -44
  264. package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
  265. package/dist/Credentials/pipes/group-by.pipe.d.ts.map +1 -1
  266. package/dist/Credentials/pipes/group-by.pipe.js +2 -1
  267. package/dist/Credentials/pipes/group-by.pipe.js.map +1 -1
  268. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +0 -1
  269. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
  270. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +73 -80
  271. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  272. package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
  273. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +46 -45
  274. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  275. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +1 -1
  276. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +7 -7
  277. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +1 -1
  278. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
  279. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +15 -15
  280. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
  281. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.d.ts +245 -0
  282. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.d.ts.map +1 -0
  283. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.js +1143 -0
  284. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.js.map +1 -0
  285. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
  286. package/dist/DataExplorer/components/view-selector/view-selector.component.js +17 -11
  287. package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
  288. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +0 -4
  289. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  290. package/dist/DataExplorer/data-explorer-dashboard.component.js +49 -54
  291. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  292. package/dist/DataExplorer/data-explorer-resource.component.d.ts +0 -1
  293. package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
  294. package/dist/DataExplorer/data-explorer-resource.component.js +3 -6
  295. package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
  296. package/dist/DataExplorer/index.d.ts +2 -2
  297. package/dist/DataExplorer/index.d.ts.map +1 -1
  298. package/dist/DataExplorer/index.js +2 -2
  299. package/dist/DataExplorer/index.js.map +1 -1
  300. package/dist/EntityAdmin/components/entity-details.component.d.ts +50 -0
  301. package/dist/EntityAdmin/components/entity-details.component.d.ts.map +1 -0
  302. package/dist/EntityAdmin/components/entity-details.component.js +680 -0
  303. package/dist/EntityAdmin/components/entity-details.component.js.map +1 -0
  304. package/dist/EntityAdmin/components/entity-filter-panel.component.d.ts +31 -0
  305. package/dist/EntityAdmin/components/entity-filter-panel.component.d.ts.map +1 -0
  306. package/dist/EntityAdmin/components/entity-filter-panel.component.js +160 -0
  307. package/dist/EntityAdmin/components/entity-filter-panel.component.js.map +1 -0
  308. package/dist/EntityAdmin/components/erd-composite.component.d.ts +73 -0
  309. package/dist/EntityAdmin/components/erd-composite.component.d.ts.map +1 -0
  310. package/dist/EntityAdmin/components/erd-composite.component.js +271 -0
  311. package/dist/EntityAdmin/components/erd-composite.component.js.map +1 -0
  312. package/dist/EntityAdmin/components/erd-diagram.component.d.ts +47 -0
  313. package/dist/EntityAdmin/components/erd-diagram.component.d.ts.map +1 -0
  314. package/dist/EntityAdmin/components/erd-diagram.component.js +618 -0
  315. package/dist/EntityAdmin/components/erd-diagram.component.js.map +1 -0
  316. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +0 -1
  317. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
  318. package/dist/EntityAdmin/entity-admin-dashboard.component.js +6 -7
  319. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  320. package/dist/Home/home-application.d.ts +0 -5
  321. package/dist/Home/home-application.d.ts.map +1 -1
  322. package/dist/Home/home-application.js +0 -9
  323. package/dist/Home/home-application.js.map +1 -1
  324. package/dist/Home/home-dashboard.component.d.ts +0 -4
  325. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  326. package/dist/Home/home-dashboard.component.js +141 -139
  327. package/dist/Home/home-dashboard.component.js.map +1 -1
  328. package/dist/Lists/components/lists-browse-resource.component.d.ts +0 -1
  329. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  330. package/dist/Lists/components/lists-browse-resource.component.js +761 -685
  331. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  332. package/dist/Lists/components/lists-categories-resource.component.d.ts +0 -1
  333. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  334. package/dist/Lists/components/lists-categories-resource.component.js +340 -316
  335. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  336. package/dist/Lists/components/lists-my-lists-resource.component.d.ts +0 -1
  337. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  338. package/dist/Lists/components/lists-my-lists-resource.component.js +530 -482
  339. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  340. package/dist/Lists/components/lists-operations-resource.component.d.ts +0 -1
  341. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  342. package/dist/Lists/components/lists-operations-resource.component.js +508 -455
  343. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  344. package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
  345. package/dist/Lists/components/venn-diagram/venn-diagram.component.js +44 -39
  346. package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
  347. package/dist/Lists/index.d.ts +0 -1
  348. package/dist/Lists/index.d.ts.map +1 -1
  349. package/dist/Lists/index.js +0 -11
  350. package/dist/Lists/index.js.map +1 -1
  351. package/dist/MCP/components/mcp-connection-dialog.component.d.ts +0 -4
  352. package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -1
  353. package/dist/MCP/components/mcp-connection-dialog.component.js +33 -39
  354. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
  355. package/dist/MCP/components/mcp-log-detail-panel.component.d.ts +0 -4
  356. package/dist/MCP/components/mcp-log-detail-panel.component.d.ts.map +1 -1
  357. package/dist/MCP/components/mcp-log-detail-panel.component.js +42 -44
  358. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
  359. package/dist/MCP/components/mcp-server-dialog.component.d.ts +3 -4
  360. package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -1
  361. package/dist/MCP/components/mcp-server-dialog.component.js +186 -77
  362. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
  363. package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts +0 -4
  364. package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts.map +1 -1
  365. package/dist/MCP/components/mcp-test-tool-dialog.component.js +187 -187
  366. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
  367. package/dist/MCP/index.d.ts +5 -5
  368. package/dist/MCP/index.d.ts.map +1 -1
  369. package/dist/MCP/index.js +5 -5
  370. package/dist/MCP/index.js.map +1 -1
  371. package/dist/MCP/mcp-dashboard.component.d.ts +65 -7
  372. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  373. package/dist/MCP/mcp-dashboard.component.js +976 -697
  374. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  375. package/dist/MCP/mcp-filter-panel.component.d.ts +54 -0
  376. package/dist/MCP/mcp-filter-panel.component.d.ts.map +1 -0
  377. package/dist/MCP/mcp-filter-panel.component.js +288 -0
  378. package/dist/MCP/mcp-filter-panel.component.js.map +1 -0
  379. package/dist/MCP/mcp-resource.component.d.ts +11 -5
  380. package/dist/MCP/mcp-resource.component.d.ts.map +1 -1
  381. package/dist/MCP/mcp-resource.component.js +8 -9
  382. package/dist/MCP/mcp-resource.component.js.map +1 -1
  383. package/dist/MCP/mcp.module.d.ts +16 -19
  384. package/dist/MCP/mcp.module.d.ts.map +1 -1
  385. package/dist/MCP/mcp.module.js +17 -26
  386. package/dist/MCP/mcp.module.js.map +1 -1
  387. package/dist/MCP/services/mcp-tools.service.d.ts +10 -4
  388. package/dist/MCP/services/mcp-tools.service.d.ts.map +1 -1
  389. package/dist/MCP/services/mcp-tools.service.js +5 -6
  390. package/dist/MCP/services/mcp-tools.service.js.map +1 -1
  391. package/dist/QueryBrowser/query-browser-resource.component.d.ts +0 -1
  392. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  393. package/dist/QueryBrowser/query-browser-resource.component.js +79 -88
  394. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  395. package/dist/Scheduling/components/job-slideout.component.d.ts.map +1 -1
  396. package/dist/Scheduling/components/job-slideout.component.js +117 -116
  397. package/dist/Scheduling/components/job-slideout.component.js.map +1 -1
  398. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +0 -4
  399. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  400. package/dist/Scheduling/components/scheduling-activity-resource.component.js +3 -9
  401. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  402. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  403. package/dist/Scheduling/components/scheduling-activity.component.js +134 -134
  404. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  405. package/dist/Scheduling/components/scheduling-health-resource.component.d.ts +20 -0
  406. package/dist/Scheduling/components/scheduling-health-resource.component.d.ts.map +1 -0
  407. package/dist/Scheduling/components/scheduling-health-resource.component.js +55 -0
  408. package/dist/Scheduling/components/scheduling-health-resource.component.js.map +1 -0
  409. package/dist/Scheduling/components/scheduling-health.component.d.ts +30 -0
  410. package/dist/Scheduling/components/scheduling-health.component.d.ts.map +1 -0
  411. package/dist/Scheduling/components/scheduling-health.component.js +315 -0
  412. package/dist/Scheduling/components/scheduling-health.component.js.map +1 -0
  413. package/dist/Scheduling/components/scheduling-history-resource.component.d.ts +20 -0
  414. package/dist/Scheduling/components/scheduling-history-resource.component.d.ts.map +1 -0
  415. package/dist/Scheduling/components/scheduling-history-resource.component.js +55 -0
  416. package/dist/Scheduling/components/scheduling-history-resource.component.js.map +1 -0
  417. package/dist/Scheduling/components/scheduling-history.component.d.ts +48 -0
  418. package/dist/Scheduling/components/scheduling-history.component.d.ts.map +1 -0
  419. package/dist/Scheduling/components/scheduling-history.component.js +377 -0
  420. package/dist/Scheduling/components/scheduling-history.component.js.map +1 -0
  421. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +0 -4
  422. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  423. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +3 -9
  424. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  425. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  426. package/dist/Scheduling/components/scheduling-jobs.component.js +102 -97
  427. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  428. package/dist/Scheduling/components/scheduling-monitor-resource.component.d.ts +20 -0
  429. package/dist/Scheduling/components/scheduling-monitor-resource.component.d.ts.map +1 -0
  430. package/dist/Scheduling/components/scheduling-monitor-resource.component.js +55 -0
  431. package/dist/Scheduling/components/scheduling-monitor-resource.component.js.map +1 -0
  432. package/dist/Scheduling/components/scheduling-monitoring.component.d.ts +37 -0
  433. package/dist/Scheduling/components/scheduling-monitoring.component.d.ts.map +1 -0
  434. package/dist/Scheduling/components/scheduling-monitoring.component.js +488 -0
  435. package/dist/Scheduling/components/scheduling-monitoring.component.js.map +1 -0
  436. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +0 -4
  437. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  438. package/dist/Scheduling/components/scheduling-overview-resource.component.js +3 -9
  439. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  440. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
  441. package/dist/Scheduling/components/scheduling-overview.component.js +127 -122
  442. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  443. package/dist/Scheduling/components/scheduling-types-resource.component.d.ts +20 -0
  444. package/dist/Scheduling/components/scheduling-types-resource.component.d.ts.map +1 -0
  445. package/dist/Scheduling/components/scheduling-types-resource.component.js +55 -0
  446. package/dist/Scheduling/components/scheduling-types-resource.component.js.map +1 -0
  447. package/dist/Scheduling/components/scheduling-types.component.d.ts +22 -0
  448. package/dist/Scheduling/components/scheduling-types.component.d.ts.map +1 -0
  449. package/dist/Scheduling/components/scheduling-types.component.js +165 -0
  450. package/dist/Scheduling/components/scheduling-types.component.js.map +1 -0
  451. package/dist/Scheduling/scheduling-dashboard.component.d.ts +0 -1
  452. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  453. package/dist/Scheduling/scheduling-dashboard.component.js +35 -43
  454. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  455. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +0 -4
  456. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  457. package/dist/SystemDiagnostics/system-diagnostics.component.js +1552 -1534
  458. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  459. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  460. package/dist/Testing/components/testing-analytics-resource.component.js +3 -3
  461. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  462. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  463. package/dist/Testing/components/testing-analytics.component.js +30 -30
  464. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  465. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  466. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +3 -3
  467. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  468. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  469. package/dist/Testing/components/testing-dashboard-tab.component.js +7 -7
  470. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  471. package/dist/Testing/components/testing-execution-resource.component.d.ts +20 -0
  472. package/dist/Testing/components/testing-execution-resource.component.d.ts.map +1 -0
  473. package/dist/Testing/components/testing-execution-resource.component.js +55 -0
  474. package/dist/Testing/components/testing-execution-resource.component.js.map +1 -0
  475. package/dist/Testing/components/testing-execution.component.d.ts +71 -0
  476. package/dist/Testing/components/testing-execution.component.d.ts.map +1 -0
  477. package/dist/Testing/components/testing-execution.component.js +845 -0
  478. package/dist/Testing/components/testing-execution.component.js.map +1 -0
  479. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  480. package/dist/Testing/components/testing-explorer-resource.component.js +3 -3
  481. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  482. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  483. package/dist/Testing/components/testing-explorer.component.js +42 -35
  484. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  485. package/dist/Testing/components/testing-feedback-resource.component.d.ts +20 -0
  486. package/dist/Testing/components/testing-feedback-resource.component.d.ts.map +1 -0
  487. package/dist/Testing/components/testing-feedback-resource.component.js +55 -0
  488. package/dist/Testing/components/testing-feedback-resource.component.js.map +1 -0
  489. package/dist/Testing/components/testing-feedback.component.d.ts +111 -0
  490. package/dist/Testing/components/testing-feedback.component.d.ts.map +1 -0
  491. package/dist/Testing/components/testing-feedback.component.js +1486 -0
  492. package/dist/Testing/components/testing-feedback.component.js.map +1 -0
  493. package/dist/Testing/components/testing-overview-resource.component.d.ts +20 -0
  494. package/dist/Testing/components/testing-overview-resource.component.d.ts.map +1 -0
  495. package/dist/Testing/components/testing-overview-resource.component.js +55 -0
  496. package/dist/Testing/components/testing-overview-resource.component.js.map +1 -0
  497. package/dist/Testing/components/testing-overview.component.d.ts +30 -0
  498. package/dist/Testing/components/testing-overview.component.d.ts.map +1 -0
  499. package/dist/Testing/components/testing-overview.component.js +361 -0
  500. package/dist/Testing/components/testing-overview.component.js.map +1 -0
  501. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  502. package/dist/Testing/components/testing-review-resource.component.js +3 -3
  503. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  504. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  505. package/dist/Testing/components/testing-review.component.js +16 -16
  506. package/dist/Testing/components/testing-review.component.js.map +1 -1
  507. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  508. package/dist/Testing/components/testing-runs-resource.component.js +3 -3
  509. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  510. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  511. package/dist/Testing/components/testing-runs.component.js +15 -15
  512. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  513. package/dist/Testing/components/testing-version-comparison.component.d.ts +62 -0
  514. package/dist/Testing/components/testing-version-comparison.component.d.ts.map +1 -0
  515. package/dist/Testing/components/testing-version-comparison.component.js +815 -0
  516. package/dist/Testing/components/testing-version-comparison.component.js.map +1 -0
  517. package/dist/Testing/components/testing-version-resource.component.d.ts +20 -0
  518. package/dist/Testing/components/testing-version-resource.component.d.ts.map +1 -0
  519. package/dist/Testing/components/testing-version-resource.component.js +55 -0
  520. package/dist/Testing/components/testing-version-resource.component.js.map +1 -0
  521. package/dist/Testing/components/widgets/oracle-breakdown-table.component.d.ts.map +1 -1
  522. package/dist/Testing/components/widgets/oracle-breakdown-table.component.js +73 -61
  523. package/dist/Testing/components/widgets/oracle-breakdown-table.component.js.map +1 -1
  524. package/dist/Testing/components/widgets/suite-tree.component.d.ts.map +1 -1
  525. package/dist/Testing/components/widgets/suite-tree.component.js +34 -31
  526. package/dist/Testing/components/widgets/suite-tree.component.js.map +1 -1
  527. package/dist/Testing/components/widgets/test-run-detail-panel.component.d.ts.map +1 -1
  528. package/dist/Testing/components/widgets/test-run-detail-panel.component.js +180 -171
  529. package/dist/Testing/components/widgets/test-run-detail-panel.component.js.map +1 -1
  530. package/dist/Testing/testing-dashboard.component.d.ts +0 -1
  531. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  532. package/dist/Testing/testing-dashboard.component.js +9 -8
  533. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  534. package/dist/VersionHistory/components/diff-resource.component.d.ts +119 -0
  535. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -0
  536. package/dist/VersionHistory/components/diff-resource.component.js +1162 -0
  537. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -0
  538. package/dist/VersionHistory/components/graph-resource.component.d.ts +67 -0
  539. package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -0
  540. package/dist/VersionHistory/components/graph-resource.component.js +521 -0
  541. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -0
  542. package/dist/VersionHistory/components/index.d.ts +5 -0
  543. package/dist/VersionHistory/components/index.d.ts.map +1 -0
  544. package/dist/VersionHistory/components/index.js +5 -0
  545. package/dist/VersionHistory/components/index.js.map +1 -0
  546. package/dist/VersionHistory/components/labels-resource.component.d.ts +89 -0
  547. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -0
  548. package/dist/VersionHistory/components/labels-resource.component.js +968 -0
  549. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -0
  550. package/dist/VersionHistory/components/restore-resource.component.d.ts +40 -0
  551. package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -0
  552. package/dist/VersionHistory/components/restore-resource.component.js +472 -0
  553. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -0
  554. package/dist/VersionHistory/index.d.ts +2 -0
  555. package/dist/VersionHistory/index.d.ts.map +1 -0
  556. package/dist/VersionHistory/index.js +2 -0
  557. package/dist/VersionHistory/index.js.map +1 -0
  558. package/dist/generic/base-dashboard.d.ts +65 -0
  559. package/dist/generic/base-dashboard.d.ts.map +1 -0
  560. package/dist/generic/base-dashboard.js +74 -0
  561. package/dist/generic/base-dashboard.js.map +1 -0
  562. package/dist/module.d.ts +42 -36
  563. package/dist/module.d.ts.map +1 -1
  564. package/dist/module.js +41 -7
  565. package/dist/module.js.map +1 -1
  566. package/dist/public-api.d.ts +20 -19
  567. package/dist/public-api.d.ts.map +1 -1
  568. package/dist/public-api.js +22 -120
  569. package/dist/public-api.js.map +1 -1
  570. package/dist/shared/pipes/highlight-search.pipe.d.ts.map +1 -1
  571. package/dist/shared/pipes/highlight-search.pipe.js +2 -1
  572. package/dist/shared/pipes/highlight-search.pipe.js.map +1 -1
  573. package/package.json +64 -62
@@ -11,18 +11,18 @@ 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_div_64_Template(rf, ctx) { if (rf & 1) {
15
- i0.ɵɵelementStart(0, "div", 38)(1, "div", 39);
14
+ function CommunicationMonitorResourceComponent_For_65_Template(rf, ctx) { if (rf & 1) {
15
+ i0.ɵɵelementStart(0, "div", 30)(1, "div", 38);
16
16
  i0.ɵɵelement(2, "i");
17
17
  i0.ɵɵelementEnd();
18
- i0.ɵɵelementStart(3, "div", 40)(4, "span", 41);
18
+ i0.ɵɵelementStart(3, "div", 39)(4, "span", 40);
19
19
  i0.ɵɵtext(5);
20
20
  i0.ɵɵelementEnd();
21
- i0.ɵɵelementStart(6, "span", 42);
21
+ i0.ɵɵelementStart(6, "span", 41);
22
22
  i0.ɵɵtext(7);
23
23
  i0.ɵɵpipe(8, "date");
24
24
  i0.ɵɵelementEnd()();
25
- i0.ɵɵelementStart(9, "span", 43);
25
+ i0.ɵɵelementStart(9, "span", 42);
26
26
  i0.ɵɵtext(10);
27
27
  i0.ɵɵelementEnd()();
28
28
  } if (rf & 2) {
@@ -35,35 +35,35 @@ function CommunicationMonitorResourceComponent_div_64_Template(rf, ctx) { if (rf
35
35
  i0.ɵɵadvance(3);
36
36
  i0.ɵɵtextInterpolate(log_r1.CommunicationProviderMessageType || "Message");
37
37
  i0.ɵɵadvance(2);
38
- i0.ɵɵtextInterpolate2("", log_r1.CommunicationProvider, " \u2022 ", i0.ɵɵpipeBind2(8, 8, log_r1.MessageDate, "shortTime"), "");
38
+ i0.ɵɵtextInterpolate2("", log_r1.CommunicationProvider, " \u2022 ", i0.ɵɵpipeBind2(8, 8, log_r1.MessageDate, "shortTime"));
39
39
  i0.ɵɵadvance(2);
40
- i0.ɵɵproperty("ngClass", log_r1.Status == null ? null : log_r1.Status.toLowerCase());
40
+ i0.ɵɵproperty("ngClass", log_r1.Status.toLowerCase());
41
41
  i0.ɵɵadvance();
42
42
  i0.ɵɵtextInterpolate1(" ", log_r1.Status, " ");
43
43
  } }
44
- function CommunicationMonitorResourceComponent_div_65_Template(rf, ctx) { if (rf & 1) {
45
- i0.ɵɵelementStart(0, "div", 44);
46
- i0.ɵɵelement(1, "i", 45);
44
+ function CommunicationMonitorResourceComponent_Conditional_66_Template(rf, ctx) { if (rf & 1) {
45
+ i0.ɵɵelementStart(0, "div", 31);
46
+ i0.ɵɵelement(1, "i", 43);
47
47
  i0.ɵɵelementStart(2, "p");
48
48
  i0.ɵɵtext(3, "No recent activity");
49
49
  i0.ɵɵelementEnd()();
50
50
  } }
51
- function CommunicationMonitorResourceComponent_div_74_Template(rf, ctx) { if (rf & 1) {
52
- i0.ɵɵelementStart(0, "div", 46);
53
- i0.ɵɵelement(1, "div", 47);
54
- i0.ɵɵelementStart(2, "div", 48);
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);
55
55
  i0.ɵɵelement(3, "i");
56
56
  i0.ɵɵelementEnd();
57
- i0.ɵɵelementStart(4, "div", 49)(5, "div", 50);
57
+ i0.ɵɵelementStart(4, "div", 46)(5, "div", 47);
58
58
  i0.ɵɵtext(6);
59
59
  i0.ɵɵelementEnd();
60
- i0.ɵɵelementStart(7, "div", 51);
60
+ i0.ɵɵelementStart(7, "div", 48);
61
61
  i0.ɵɵtext(8);
62
62
  i0.ɵɵelementEnd()();
63
- i0.ɵɵelementStart(9, "div", 52);
64
- i0.ɵɵelement(10, "div", 53);
63
+ i0.ɵɵelementStart(9, "div", 49);
64
+ i0.ɵɵelement(10, "div", 50);
65
65
  i0.ɵɵelementEnd();
66
- i0.ɵɵelementStart(11, "span", 54);
66
+ i0.ɵɵelementStart(11, "span", 51);
67
67
  i0.ɵɵtext(12);
68
68
  i0.ɵɵelementEnd()();
69
69
  } if (rf & 2) {
@@ -87,28 +87,28 @@ function CommunicationMonitorResourceComponent_div_74_Template(rf, ctx) { if (rf
87
87
  i0.ɵɵadvance();
88
88
  i0.ɵɵtextInterpolate1("", provider_r3.SuccessRate, "%");
89
89
  } }
90
- function CommunicationMonitorResourceComponent_div_75_Template(rf, ctx) { if (rf & 1) {
91
- i0.ɵɵelementStart(0, "div", 44);
92
- i0.ɵɵelement(1, "i", 55);
90
+ function CommunicationMonitorResourceComponent_Conditional_77_Template(rf, ctx) { if (rf & 1) {
91
+ i0.ɵɵelementStart(0, "div", 31);
92
+ i0.ɵɵelement(1, "i", 52);
93
93
  i0.ɵɵelementStart(2, "p");
94
94
  i0.ɵɵtext(3, "No providers configured");
95
95
  i0.ɵɵelementEnd()();
96
96
  } }
97
- function CommunicationMonitorResourceComponent_div_83_Template(rf, ctx) { if (rf & 1) {
98
- i0.ɵɵelementStart(0, "div", 56)(1, "div", 57);
97
+ function CommunicationMonitorResourceComponent_For_86_Template(rf, ctx) { if (rf & 1) {
98
+ i0.ɵɵelementStart(0, "div", 37)(1, "div", 53);
99
99
  i0.ɵɵelement(2, "i");
100
100
  i0.ɵɵelementEnd();
101
- i0.ɵɵelementStart(3, "div", 58)(4, "div", 59);
101
+ i0.ɵɵelementStart(3, "div", 54)(4, "div", 55);
102
102
  i0.ɵɵtext(5);
103
103
  i0.ɵɵelementEnd();
104
- i0.ɵɵelementStart(6, "div", 60);
104
+ i0.ɵɵelementStart(6, "div", 56);
105
105
  i0.ɵɵtext(7);
106
106
  i0.ɵɵpipe(8, "number");
107
107
  i0.ɵɵelementEnd()();
108
- i0.ɵɵelementStart(9, "div", 61);
109
- i0.ɵɵelement(10, "div", 62);
108
+ i0.ɵɵelementStart(9, "div", 57);
109
+ i0.ɵɵelement(10, "div", 58);
110
110
  i0.ɵɵelementEnd();
111
- i0.ɵɵelementStart(11, "span", 63);
111
+ i0.ɵɵelementStart(11, "span", 59);
112
112
  i0.ɵɵtext(12);
113
113
  i0.ɵɵelementEnd()();
114
114
  } if (rf & 2) {
@@ -126,19 +126,13 @@ function CommunicationMonitorResourceComponent_div_83_Template(rf, ctx) { if (rf
126
126
  i0.ɵɵadvance(2);
127
127
  i0.ɵɵtextInterpolate1("", channel_r4.Percentage, "%");
128
128
  } }
129
- function CommunicationMonitorResourceComponent_div_84_Template(rf, ctx) { if (rf & 1) {
130
- i0.ɵɵelementStart(0, "div", 44);
129
+ function CommunicationMonitorResourceComponent_Conditional_87_Template(rf, ctx) { if (rf & 1) {
130
+ i0.ɵɵelementStart(0, "div", 31);
131
131
  i0.ɵɵelement(1, "i", 35);
132
132
  i0.ɵɵelementStart(2, "p");
133
133
  i0.ɵɵtext(3, "No channel data available");
134
134
  i0.ɵɵelementEnd()();
135
135
  } }
136
- /**
137
- * Tree-shaking prevention function
138
- */
139
- export function LoadCommunicationMonitorResource() {
140
- // Force inclusion in production builds
141
- }
142
136
  let CommunicationMonitorResourceComponent = class CommunicationMonitorResourceComponent extends BaseResourceComponent {
143
137
  cdr;
144
138
  isLoading = false;
@@ -373,7 +367,7 @@ let CommunicationMonitorResourceComponent = class CommunicationMonitorResourceCo
373
367
  return 'fa-solid fa-chart-line';
374
368
  }
375
369
  static ɵfac = function CommunicationMonitorResourceComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CommunicationMonitorResourceComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
376
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CommunicationMonitorResourceComponent, selectors: [["mj-communication-monitor-resource"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 85, vars: 35, 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"], ["class", "activity-item", 4, "ngFor", "ngForOf"], ["class", "empty-state", 4, "ngIf"], [1, "fa-solid", "fa-heart-pulse"], [1, "provider-health-list"], ["class", "provider-row", 4, "ngFor", "ngForOf"], [1, "fa-solid", "fa-layer-group"], [1, "channel-breakdown"], ["class", "channel-row", 4, "ngFor", "ngForOf"], [1, "activity-item"], [1, "activity-icon", 3, "ngClass"], [1, "activity-body"], [1, "activity-title"], [1, "activity-meta"], [1, "activity-status", 3, "ngClass"], [1, "empty-state"], [1, "fa-solid", "fa-inbox"], [1, "provider-row"], [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-row"], [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) {
370
+ 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) {
377
371
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div", 4);
378
372
  i0.ɵɵelement(5, "i", 5);
379
373
  i0.ɵɵelementEnd();
@@ -440,25 +434,28 @@ let CommunicationMonitorResourceComponent = class CommunicationMonitorResourceCo
440
434
  i0.ɵɵtext(61, " Recent Activity");
441
435
  i0.ɵɵelementEnd()();
442
436
  i0.ɵɵelementStart(62, "div", 28)(63, "div", 29);
443
- i0.ɵɵtemplate(64, CommunicationMonitorResourceComponent_div_64_Template, 11, 11, "div", 30)(65, CommunicationMonitorResourceComponent_div_65_Template, 4, 0, "div", 31);
437
+ i0.ɵɵrepeaterCreate(64, CommunicationMonitorResourceComponent_For_65_Template, 11, 11, "div", 30, i0.ɵɵrepeaterTrackByIdentity);
438
+ i0.ɵɵconditionalCreate(66, CommunicationMonitorResourceComponent_Conditional_66_Template, 4, 0, "div", 31);
444
439
  i0.ɵɵelementEnd()()()();
445
- i0.ɵɵelementStart(66, "div", 21)(67, "div", 22)(68, "div", 23)(69, "h3");
446
- i0.ɵɵelement(70, "i", 32);
447
- i0.ɵɵtext(71, " Provider Health");
440
+ i0.ɵɵelementStart(67, "div", 21)(68, "div", 22)(69, "div", 23)(70, "h3");
441
+ i0.ɵɵelement(71, "i", 32);
442
+ i0.ɵɵtext(72, " Provider Health");
448
443
  i0.ɵɵelementEnd()();
449
- i0.ɵɵelementStart(72, "div", 28)(73, "div", 33);
450
- i0.ɵɵtemplate(74, CommunicationMonitorResourceComponent_div_74_Template, 13, 13, "div", 34)(75, CommunicationMonitorResourceComponent_div_75_Template, 4, 0, "div", 31);
444
+ i0.ɵɵelementStart(73, "div", 28)(74, "div", 33);
445
+ i0.ɵɵrepeaterCreate(75, CommunicationMonitorResourceComponent_For_76_Template, 13, 13, "div", 34, i0.ɵɵrepeaterTrackByIdentity);
446
+ i0.ɵɵconditionalCreate(77, CommunicationMonitorResourceComponent_Conditional_77_Template, 4, 0, "div", 31);
451
447
  i0.ɵɵelementEnd()()();
452
- i0.ɵɵelementStart(76, "div", 22)(77, "div", 23)(78, "h3");
453
- i0.ɵɵelement(79, "i", 35);
454
- i0.ɵɵtext(80, " Channel Breakdown");
448
+ i0.ɵɵelementStart(78, "div", 22)(79, "div", 23)(80, "h3");
449
+ i0.ɵɵelement(81, "i", 35);
450
+ i0.ɵɵtext(82, " Channel Breakdown");
455
451
  i0.ɵɵelementEnd()();
456
- i0.ɵɵelementStart(81, "div", 28)(82, "div", 36);
457
- i0.ɵɵtemplate(83, CommunicationMonitorResourceComponent_div_83_Template, 13, 12, "div", 37)(84, CommunicationMonitorResourceComponent_div_84_Template, 4, 0, "div", 31);
452
+ i0.ɵɵelementStart(83, "div", 28)(84, "div", 36);
453
+ i0.ɵɵrepeaterCreate(85, CommunicationMonitorResourceComponent_For_86_Template, 13, 12, "div", 37, i0.ɵɵrepeaterTrackByIdentity);
454
+ i0.ɵɵconditionalCreate(87, CommunicationMonitorResourceComponent_Conditional_87_Template, 4, 0, "div", 31);
458
455
  i0.ɵɵelementEnd()()()()()();
459
456
  } if (rf & 2) {
460
457
  i0.ɵɵadvance(10);
461
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 29, ctx.stats.totalSent));
458
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 26, ctx.stats.totalSent));
462
459
  i0.ɵɵadvance(2);
463
460
  i0.ɵɵclassMap(ctx.stats.totalSent > 0 ? "up" : "neutral");
464
461
  i0.ɵɵadvance();
@@ -468,9 +465,9 @@ let CommunicationMonitorResourceComponent = class CommunicationMonitorResourceCo
468
465
  i0.ɵɵadvance(2);
469
466
  i0.ɵɵstyleProp("width", ctx.stats.deliveryRate, "%");
470
467
  i0.ɵɵadvance(8);
471
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(33, 31, ctx.stats.pending));
468
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(33, 28, ctx.stats.pending));
472
469
  i0.ɵɵadvance(12);
473
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(45, 33, ctx.stats.failed));
470
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(45, 30, ctx.stats.failed));
474
471
  i0.ɵɵadvance(2);
475
472
  i0.ɵɵclassMap(ctx.stats.failed > 0 ? "down" : "neutral");
476
473
  i0.ɵɵadvance();
@@ -480,18 +477,18 @@ let CommunicationMonitorResourceComponent = class CommunicationMonitorResourceCo
480
477
  i0.ɵɵadvance(8);
481
478
  i0.ɵɵproperty("data", ctx.chartData)("showLegend", true)("showControls", false)("config", ctx.chartConfig);
482
479
  i0.ɵɵadvance(8);
483
- i0.ɵɵproperty("ngForOf", ctx.recentLogs);
484
- i0.ɵɵadvance();
485
- i0.ɵɵproperty("ngIf", ctx.recentLogs.length === 0);
480
+ i0.ɵɵrepeater(ctx.recentLogs);
481
+ i0.ɵɵadvance(2);
482
+ i0.ɵɵconditional(ctx.recentLogs.length === 0 ? 66 : -1);
486
483
  i0.ɵɵadvance(9);
487
- i0.ɵɵproperty("ngForOf", ctx.providerHealth);
488
- i0.ɵɵadvance();
489
- i0.ɵɵproperty("ngIf", ctx.providerHealth.length === 0);
484
+ i0.ɵɵrepeater(ctx.providerHealth);
485
+ i0.ɵɵadvance(2);
486
+ i0.ɵɵconditional(ctx.providerHealth.length === 0 ? 77 : -1);
490
487
  i0.ɵɵadvance(8);
491
- i0.ɵɵproperty("ngForOf", ctx.channelBreakdown);
492
- i0.ɵɵadvance();
493
- i0.ɵɵproperty("ngIf", ctx.channelBreakdown.length === 0);
494
- } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.TimeSeriesChartComponent, i1.DecimalPipe, i1.DatePipe], styles: ["\n\n \n\n \n\n .monitor-wrapper[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n background: var(--mat-sys-surface-container);\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(--mat-sys-surface-container-lowest);\n border: 1px solid var(--mat-sys-outline-variant);\n border-radius: var(--mat-sys-corner-medium, 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: var(--mat-sys-elevation-1);\n border-color: var(--mat-sys-outline);\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(--mat-sys-primary); }\n .kpi-card.delivered[_ngcontent-%COMP%]::before { background: #1b873f; }\n .kpi-card.pending[_ngcontent-%COMP%]::before { background: #9a6700; }\n .kpi-card.failed[_ngcontent-%COMP%]::before { background: #cf222e; }\n\n .kpi-icon[_ngcontent-%COMP%] {\n width: 44px; height: 44px;\n border-radius: var(--mat-sys-corner-medium, 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%] { background: var(--mat-sys-primary-container); color: var(--mat-sys-primary); }\n .kpi-card.delivered[_ngcontent-%COMP%] .kpi-icon[_ngcontent-%COMP%] { background: #d4f8e0; color: #1b873f; }\n .kpi-card.pending[_ngcontent-%COMP%] .kpi-icon[_ngcontent-%COMP%] { background: #fff0c7; color: #9a6700; }\n .kpi-card.failed[_ngcontent-%COMP%] .kpi-icon[_ngcontent-%COMP%] { background: #ffdce0; color: #cf222e; }\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(--mat-sys-on-surface-variant);\n }\n .kpi-value[_ngcontent-%COMP%] {\n font-size: 28px; font-weight: 800;\n color: var(--mat-sys-on-surface);\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%] { background: #d4f8e0; color: #1b873f; }\n .kpi-delta.down[_ngcontent-%COMP%] { background: #ffdce0; color: #cf222e; }\n .kpi-delta.neutral[_ngcontent-%COMP%] { background: var(--mat-sys-surface-container); color: var(--mat-sys-on-surface-variant); }\n\n .delivery-bar[_ngcontent-%COMP%] {\n height: 6px; margin-top: 10px;\n background: var(--mat-sys-surface-container-high);\n border-radius: 3px; overflow: hidden;\n }\n .delivery-fill[_ngcontent-%COMP%] {\n height: 100%; border-radius: 3px;\n background: #1b873f; 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(--mat-sys-surface-container-lowest);\n border: 1px solid var(--mat-sys-outline-variant);\n border-radius: var(--mat-sys-corner-medium, 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(--mat-sys-outline-variant);\n }\n .card-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 13px; font-weight: 700;\n color: var(--mat-sys-on-surface);\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(--mat-sys-on-surface-variant);\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(--mat-sys-surface-container);\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(--mat-sys-surface-container-low); }\n\n .activity-icon[_ngcontent-%COMP%] {\n width: 34px; height: 34px;\n border-radius: var(--mat-sys-corner-small, 8px);\n display: flex; align-items: center; justify-content: center;\n font-size: 12px; flex-shrink: 0;\n }\n .activity-icon.email[_ngcontent-%COMP%] { background: var(--mat-sys-primary-container); color: var(--mat-sys-primary); }\n .activity-icon.sms[_ngcontent-%COMP%] { background: #e8f5e9; color: #2e7d32; }\n .activity-icon.error[_ngcontent-%COMP%] { background: #ffdce0; color: #cf222e; }\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(--mat-sys-on-surface);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n display: block;\n }\n .activity-meta[_ngcontent-%COMP%] {\n font-size: 11px; color: var(--mat-sys-on-surface-variant); 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: var(--mat-sys-corner-extra-small, 4px);\n flex-shrink: 0;\n }\n .activity-status.complete[_ngcontent-%COMP%] { background: #d4f8e0; color: #1b873f; }\n .activity-status.failed[_ngcontent-%COMP%] { background: #ffdce0; color: #cf222e; }\n .activity-status.pending[_ngcontent-%COMP%] { background: #fff0c7; color: #9a6700; }\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(--mat-sys-surface-container);\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(--mat-sys-surface-container-low); }\n\n .provider-status-dot[_ngcontent-%COMP%] {\n width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;\n background: var(--mat-sys-outline);\n }\n .provider-status-dot.active[_ngcontent-%COMP%] { background: #1b873f; }\n\n .provider-logo[_ngcontent-%COMP%] {\n width: 36px; height: 36px;\n border-radius: var(--mat-sys-corner-small, 8px);\n background: var(--mat-sys-surface-container);\n display: flex; align-items: center; justify-content: center;\n font-size: 16px; flex-shrink: 0;\n }\n .provider-logo.sendgrid[_ngcontent-%COMP%] { color: #1A82E2; }\n .provider-logo.twilio[_ngcontent-%COMP%] { color: #F22F46; }\n .provider-logo.gmail[_ngcontent-%COMP%] { color: #EA4335; }\n .provider-logo.msgraph[_ngcontent-%COMP%] { color: #0078D4; }\n\n .provider-info[_ngcontent-%COMP%] { flex: 1; }\n .provider-name[_ngcontent-%COMP%] { font-size: 13px; font-weight: 600; color: var(--mat-sys-on-surface); }\n .provider-type[_ngcontent-%COMP%] { font-size: 11px; color: var(--mat-sys-on-surface-variant); }\n\n .provider-health-bar[_ngcontent-%COMP%] {\n width: 80px; height: 6px;\n background: var(--mat-sys-surface-container-high);\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: #1b873f; }\n .provider-health-fill.good[_ngcontent-%COMP%] { background: #66bb6a; }\n .provider-health-fill.warning[_ngcontent-%COMP%] { background: #9a6700; }\n .provider-health-fill.critical[_ngcontent-%COMP%] { background: #cf222e; }\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: #1b873f; }\n .provider-rate.good[_ngcontent-%COMP%] { color: #66bb6a; }\n .provider-rate.warning[_ngcontent-%COMP%] { color: #9a6700; }\n .provider-rate.critical[_ngcontent-%COMP%] { color: #cf222e; }\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(--mat-sys-surface-container);\n }\n .channel-row[_ngcontent-%COMP%]:last-child { border-bottom: none; }\n .channel-icon[_ngcontent-%COMP%] {\n width: 32px; height: 32px;\n border-radius: var(--mat-sys-corner-small, 8px);\n display: flex; align-items: center; justify-content: center;\n font-size: 13px; flex-shrink: 0;\n }\n .channel-icon.email[_ngcontent-%COMP%] { background: var(--mat-sys-primary-container); color: var(--mat-sys-primary); }\n .channel-icon.sms[_ngcontent-%COMP%] { background: #e8f5e9; color: #2e7d32; }\n\n .channel-info[_ngcontent-%COMP%] { flex: 1; }\n .channel-name[_ngcontent-%COMP%] { font-size: 12px; font-weight: 600; color: var(--mat-sys-on-surface); }\n .channel-count[_ngcontent-%COMP%] { font-size: 11px; color: var(--mat-sys-on-surface-variant); }\n\n .channel-bar-wrapper[_ngcontent-%COMP%] {\n width: 100px; height: 6px;\n background: var(--mat-sys-surface-container-high);\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(--mat-sys-on-surface);\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(--mat-sys-on-surface-variant);\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 }"] });
488
+ i0.ɵɵrepeater(ctx.channelBreakdown);
489
+ i0.ɵɵadvance(2);
490
+ i0.ɵɵconditional(ctx.channelBreakdown.length === 0 ? 87 : -1);
491
+ } }, dependencies: [i1.NgClass, i2.TimeSeriesChartComponent, i1.DecimalPipe, i1.DatePipe], styles: ["\n\n \n\n \n\n .monitor-wrapper[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n background: var(--mat-sys-surface-container);\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(--mat-sys-surface-container-lowest);\n border: 1px solid var(--mat-sys-outline-variant);\n border-radius: var(--mat-sys-corner-medium, 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: var(--mat-sys-elevation-1);\n border-color: var(--mat-sys-outline);\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(--mat-sys-primary); }\n .kpi-card.delivered[_ngcontent-%COMP%]::before { background: #1b873f; }\n .kpi-card.pending[_ngcontent-%COMP%]::before { background: #9a6700; }\n .kpi-card.failed[_ngcontent-%COMP%]::before { background: #cf222e; }\n\n .kpi-icon[_ngcontent-%COMP%] {\n width: 44px; height: 44px;\n border-radius: var(--mat-sys-corner-medium, 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%] { background: var(--mat-sys-primary-container); color: var(--mat-sys-primary); }\n .kpi-card.delivered[_ngcontent-%COMP%] .kpi-icon[_ngcontent-%COMP%] { background: #d4f8e0; color: #1b873f; }\n .kpi-card.pending[_ngcontent-%COMP%] .kpi-icon[_ngcontent-%COMP%] { background: #fff0c7; color: #9a6700; }\n .kpi-card.failed[_ngcontent-%COMP%] .kpi-icon[_ngcontent-%COMP%] { background: #ffdce0; color: #cf222e; }\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(--mat-sys-on-surface-variant);\n }\n .kpi-value[_ngcontent-%COMP%] {\n font-size: 28px; font-weight: 800;\n color: var(--mat-sys-on-surface);\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%] { background: #d4f8e0; color: #1b873f; }\n .kpi-delta.down[_ngcontent-%COMP%] { background: #ffdce0; color: #cf222e; }\n .kpi-delta.neutral[_ngcontent-%COMP%] { background: var(--mat-sys-surface-container); color: var(--mat-sys-on-surface-variant); }\n\n .delivery-bar[_ngcontent-%COMP%] {\n height: 6px; margin-top: 10px;\n background: var(--mat-sys-surface-container-high);\n border-radius: 3px; overflow: hidden;\n }\n .delivery-fill[_ngcontent-%COMP%] {\n height: 100%; border-radius: 3px;\n background: #1b873f; 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(--mat-sys-surface-container-lowest);\n border: 1px solid var(--mat-sys-outline-variant);\n border-radius: var(--mat-sys-corner-medium, 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(--mat-sys-outline-variant);\n }\n .card-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 13px; font-weight: 700;\n color: var(--mat-sys-on-surface);\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(--mat-sys-on-surface-variant);\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(--mat-sys-surface-container);\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(--mat-sys-surface-container-low); }\n\n .activity-icon[_ngcontent-%COMP%] {\n width: 34px; height: 34px;\n border-radius: var(--mat-sys-corner-small, 8px);\n display: flex; align-items: center; justify-content: center;\n font-size: 12px; flex-shrink: 0;\n }\n .activity-icon.email[_ngcontent-%COMP%] { background: var(--mat-sys-primary-container); color: var(--mat-sys-primary); }\n .activity-icon.sms[_ngcontent-%COMP%] { background: #e8f5e9; color: #2e7d32; }\n .activity-icon.error[_ngcontent-%COMP%] { background: #ffdce0; color: #cf222e; }\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(--mat-sys-on-surface);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n display: block;\n }\n .activity-meta[_ngcontent-%COMP%] {\n font-size: 11px; color: var(--mat-sys-on-surface-variant); 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: var(--mat-sys-corner-extra-small, 4px);\n flex-shrink: 0;\n }\n .activity-status.complete[_ngcontent-%COMP%] { background: #d4f8e0; color: #1b873f; }\n .activity-status.failed[_ngcontent-%COMP%] { background: #ffdce0; color: #cf222e; }\n .activity-status.pending[_ngcontent-%COMP%] { background: #fff0c7; color: #9a6700; }\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(--mat-sys-surface-container);\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(--mat-sys-surface-container-low); }\n\n .provider-status-dot[_ngcontent-%COMP%] {\n width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;\n background: var(--mat-sys-outline);\n }\n .provider-status-dot.active[_ngcontent-%COMP%] { background: #1b873f; }\n\n .provider-logo[_ngcontent-%COMP%] {\n width: 36px; height: 36px;\n border-radius: var(--mat-sys-corner-small, 8px);\n background: var(--mat-sys-surface-container);\n display: flex; align-items: center; justify-content: center;\n font-size: 16px; flex-shrink: 0;\n }\n .provider-logo.sendgrid[_ngcontent-%COMP%] { color: #1A82E2; }\n .provider-logo.twilio[_ngcontent-%COMP%] { color: #F22F46; }\n .provider-logo.gmail[_ngcontent-%COMP%] { color: #EA4335; }\n .provider-logo.msgraph[_ngcontent-%COMP%] { color: #0078D4; }\n\n .provider-info[_ngcontent-%COMP%] { flex: 1; }\n .provider-name[_ngcontent-%COMP%] { font-size: 13px; font-weight: 600; color: var(--mat-sys-on-surface); }\n .provider-type[_ngcontent-%COMP%] { font-size: 11px; color: var(--mat-sys-on-surface-variant); }\n\n .provider-health-bar[_ngcontent-%COMP%] {\n width: 80px; height: 6px;\n background: var(--mat-sys-surface-container-high);\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: #1b873f; }\n .provider-health-fill.good[_ngcontent-%COMP%] { background: #66bb6a; }\n .provider-health-fill.warning[_ngcontent-%COMP%] { background: #9a6700; }\n .provider-health-fill.critical[_ngcontent-%COMP%] { background: #cf222e; }\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: #1b873f; }\n .provider-rate.good[_ngcontent-%COMP%] { color: #66bb6a; }\n .provider-rate.warning[_ngcontent-%COMP%] { color: #9a6700; }\n .provider-rate.critical[_ngcontent-%COMP%] { color: #cf222e; }\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(--mat-sys-surface-container);\n }\n .channel-row[_ngcontent-%COMP%]:last-child { border-bottom: none; }\n .channel-icon[_ngcontent-%COMP%] {\n width: 32px; height: 32px;\n border-radius: var(--mat-sys-corner-small, 8px);\n display: flex; align-items: center; justify-content: center;\n font-size: 13px; flex-shrink: 0;\n }\n .channel-icon.email[_ngcontent-%COMP%] { background: var(--mat-sys-primary-container); color: var(--mat-sys-primary); }\n .channel-icon.sms[_ngcontent-%COMP%] { background: #e8f5e9; color: #2e7d32; }\n\n .channel-info[_ngcontent-%COMP%] { flex: 1; }\n .channel-name[_ngcontent-%COMP%] { font-size: 12px; font-weight: 600; color: var(--mat-sys-on-surface); }\n .channel-count[_ngcontent-%COMP%] { font-size: 11px; color: var(--mat-sys-on-surface-variant); }\n\n .channel-bar-wrapper[_ngcontent-%COMP%] {\n width: 100px; height: 6px;\n background: var(--mat-sys-surface-container-high);\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(--mat-sys-on-surface);\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(--mat-sys-on-surface-variant);\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
492
  };
496
493
  CommunicationMonitorResourceComponent = __decorate([
497
494
  RegisterClass(BaseResourceComponent, 'CommunicationMonitorResource')
@@ -499,158 +496,170 @@ CommunicationMonitorResourceComponent = __decorate([
499
496
  export { CommunicationMonitorResourceComponent };
500
497
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CommunicationMonitorResourceComponent, [{
501
498
  type: Component,
502
- args: [{ selector: 'mj-communication-monitor-resource', template: `
499
+ args: [{ standalone: false, selector: 'mj-communication-monitor-resource', template: `
503
500
  <div class="monitor-wrapper">
504
- <div class="monitor-container">
505
- <!-- KPI STRIP -->
506
- <div class="kpi-strip">
507
- <div class="kpi-card sent">
508
- <div class="kpi-icon"><i class="fa-solid fa-paper-plane"></i></div>
509
- <div class="kpi-body">
510
- <span class="kpi-label">Total Sent</span>
511
- <span class="kpi-value">{{stats.totalSent | number}}</span>
512
- <span class="kpi-delta" [class]="stats.totalSent > 0 ? 'up' : 'neutral'">
513
- <i class="fa-solid" [class.fa-arrow-up]="stats.totalSent > 0" [class.fa-minus]="stats.totalSent === 0"></i>
514
- Last 24 hours
515
- </span>
516
- </div>
517
- </div>
518
- <div class="kpi-card delivered">
519
- <div class="kpi-icon"><i class="fa-solid fa-check-double"></i></div>
520
- <div class="kpi-body">
521
- <span class="kpi-label">Delivery Rate</span>
522
- <span class="kpi-value">{{stats.deliveryRate}}%</span>
523
- <div class="delivery-bar">
524
- <div class="delivery-fill" [style.width.%]="stats.deliveryRate"></div>
525
- </div>
526
- </div>
527
- </div>
528
- <div class="kpi-card pending">
529
- <div class="kpi-icon"><i class="fa-solid fa-clock"></i></div>
530
- <div class="kpi-body">
531
- <span class="kpi-label">Pending</span>
532
- <span class="kpi-value">{{stats.pending | number}}</span>
533
- <span class="kpi-delta neutral">
534
- <i class="fa-solid fa-minus"></i> Awaiting provider
535
- </span>
501
+ <div class="monitor-container">
502
+ <!-- KPI STRIP -->
503
+ <div class="kpi-strip">
504
+ <div class="kpi-card sent">
505
+ <div class="kpi-icon"><i class="fa-solid fa-paper-plane"></i></div>
506
+ <div class="kpi-body">
507
+ <span class="kpi-label">Total Sent</span>
508
+ <span class="kpi-value">{{stats.totalSent | number}}</span>
509
+ <span class="kpi-delta" [class]="stats.totalSent > 0 ? 'up' : 'neutral'">
510
+ <i class="fa-solid" [class.fa-arrow-up]="stats.totalSent > 0" [class.fa-minus]="stats.totalSent === 0"></i>
511
+ Last 24 hours
512
+ </span>
513
+ </div>
514
+ </div>
515
+ <div class="kpi-card delivered">
516
+ <div class="kpi-icon"><i class="fa-solid fa-check-double"></i></div>
517
+ <div class="kpi-body">
518
+ <span class="kpi-label">Delivery Rate</span>
519
+ <span class="kpi-value">{{stats.deliveryRate}}%</span>
520
+ <div class="delivery-bar">
521
+ <div class="delivery-fill" [style.width.%]="stats.deliveryRate"></div>
522
+ </div>
523
+ </div>
524
+ </div>
525
+ <div class="kpi-card pending">
526
+ <div class="kpi-icon"><i class="fa-solid fa-clock"></i></div>
527
+ <div class="kpi-body">
528
+ <span class="kpi-label">Pending</span>
529
+ <span class="kpi-value">{{stats.pending | number}}</span>
530
+ <span class="kpi-delta neutral">
531
+ <i class="fa-solid fa-minus"></i> Awaiting provider
532
+ </span>
533
+ </div>
534
+ </div>
535
+ <div class="kpi-card failed">
536
+ <div class="kpi-icon"><i class="fa-solid fa-circle-exclamation"></i></div>
537
+ <div class="kpi-body">
538
+ <span class="kpi-label">Failed</span>
539
+ <span class="kpi-value">{{stats.failed | number}}</span>
540
+ <span class="kpi-delta" [class]="stats.failed > 0 ? 'down' : 'neutral'">
541
+ <i class="fa-solid" [class.fa-arrow-up]="stats.failed > 0" [class.fa-minus]="stats.failed === 0"></i>
542
+ {{stats.failed > 0 ? 'Requires attention' : 'No failures'}}
543
+ </span>
544
+ </div>
545
+ </div>
546
+ </div>
547
+
548
+ <!-- CHARTS + ACTIVITY ROW -->
549
+ <div class="content-grid">
550
+ <div class="card">
551
+ <div class="card-header">
552
+ <h3><i class="fa-solid fa-chart-bar"></i> Delivery Volume</h3>
553
+ </div>
554
+ <div class="chart-container-inner">
555
+ <app-time-series-chart
556
+ [data]="chartData"
557
+ [showLegend]="true"
558
+ [showControls]="false"
559
+ [config]="chartConfig">
560
+ </app-time-series-chart>
561
+ </div>
562
+ </div>
563
+
564
+ <div class="card">
565
+ <div class="card-header">
566
+ <h3><i class="fa-solid fa-bolt"></i> Recent Activity</h3>
567
+ </div>
568
+ <div class="card-body no-padding">
569
+ <div class="activity-feed">
570
+ @for (log of recentLogs; track log) {
571
+ <div class="activity-item">
572
+ <div class="activity-icon" [ngClass]="getActivityIconClass(log)">
573
+ <i [class]="getActivityIcon(log)"></i>
536
574
  </div>
537
- </div>
538
- <div class="kpi-card failed">
539
- <div class="kpi-icon"><i class="fa-solid fa-circle-exclamation"></i></div>
540
- <div class="kpi-body">
541
- <span class="kpi-label">Failed</span>
542
- <span class="kpi-value">{{stats.failed | number}}</span>
543
- <span class="kpi-delta" [class]="stats.failed > 0 ? 'down' : 'neutral'">
544
- <i class="fa-solid" [class.fa-arrow-up]="stats.failed > 0" [class.fa-minus]="stats.failed === 0"></i>
545
- {{stats.failed > 0 ? 'Requires attention' : 'No failures'}}
546
- </span>
575
+ <div class="activity-body">
576
+ <span class="activity-title">{{log.CommunicationProviderMessageType || 'Message'}}</span>
577
+ <span class="activity-meta">{{log.CommunicationProvider}} &bull; {{log.MessageDate | date:'shortTime'}}</span>
547
578
  </div>
548
- </div>
579
+ <span class="activity-status" [ngClass]="log.Status.toLowerCase()">
580
+ {{log.Status}}
581
+ </span>
582
+ </div>
583
+ }
584
+ @if (recentLogs.length === 0) {
585
+ <div class="empty-state">
586
+ <i class="fa-solid fa-inbox"></i>
587
+ <p>No recent activity</p>
588
+ </div>
589
+ }
590
+ </div>
549
591
  </div>
550
-
551
- <!-- CHARTS + ACTIVITY ROW -->
552
- <div class="content-grid">
553
- <div class="card">
554
- <div class="card-header">
555
- <h3><i class="fa-solid fa-chart-bar"></i> Delivery Volume</h3>
556
- </div>
557
- <div class="chart-container-inner">
558
- <app-time-series-chart
559
- [data]="chartData"
560
- [showLegend]="true"
561
- [showControls]="false"
562
- [config]="chartConfig">
563
- </app-time-series-chart>
592
+ </div>
593
+ </div>
594
+
595
+ <!-- PROVIDER HEALTH + CHANNEL BREAKDOWN -->
596
+ <div class="content-grid">
597
+ <div class="card">
598
+ <div class="card-header">
599
+ <h3><i class="fa-solid fa-heart-pulse"></i> Provider Health</h3>
600
+ </div>
601
+ <div class="card-body no-padding">
602
+ <div class="provider-health-list">
603
+ @for (provider of providerHealth; track provider) {
604
+ <div class="provider-row">
605
+ <div class="provider-status-dot" [class.active]="provider.IsActive"></div>
606
+ <div class="provider-logo" [ngClass]="provider.ColorClass">
607
+ <i [class]="provider.IconClass"></i>
564
608
  </div>
565
- </div>
566
-
567
- <div class="card">
568
- <div class="card-header">
569
- <h3><i class="fa-solid fa-bolt"></i> Recent Activity</h3>
609
+ <div class="provider-info">
610
+ <div class="provider-name">{{provider.Name}}</div>
611
+ <div class="provider-type">{{provider.Type}} &bull; {{provider.SentCount}} sent today</div>
570
612
  </div>
571
- <div class="card-body no-padding">
572
- <div class="activity-feed">
573
- <div *ngFor="let log of recentLogs" class="activity-item">
574
- <div class="activity-icon" [ngClass]="getActivityIconClass(log)">
575
- <i [class]="getActivityIcon(log)"></i>
576
- </div>
577
- <div class="activity-body">
578
- <span class="activity-title">{{log.CommunicationProviderMessageType || 'Message'}}</span>
579
- <span class="activity-meta">{{log.CommunicationProvider}} &bull; {{log.MessageDate | date:'shortTime'}}</span>
580
- </div>
581
- <span class="activity-status" [ngClass]="log.Status?.toLowerCase()">
582
- {{log.Status}}
583
- </span>
584
- </div>
585
- <div *ngIf="recentLogs.length === 0" class="empty-state">
586
- <i class="fa-solid fa-inbox"></i>
587
- <p>No recent activity</p>
588
- </div>
589
- </div>
613
+ <div class="provider-health-bar">
614
+ <div class="provider-health-fill" [ngClass]="getHealthClass(provider.SuccessRate)" [style.width.%]="provider.SuccessRate"></div>
590
615
  </div>
591
- </div>
616
+ <span class="provider-rate" [ngClass]="getHealthClass(provider.SuccessRate)">{{provider.SuccessRate}}%</span>
617
+ </div>
618
+ }
619
+ @if (providerHealth.length === 0) {
620
+ <div class="empty-state">
621
+ <i class="fa-solid fa-server"></i>
622
+ <p>No providers configured</p>
623
+ </div>
624
+ }
625
+ </div>
592
626
  </div>
593
-
594
- <!-- PROVIDER HEALTH + CHANNEL BREAKDOWN -->
595
- <div class="content-grid">
596
- <div class="card">
597
- <div class="card-header">
598
- <h3><i class="fa-solid fa-heart-pulse"></i> Provider Health</h3>
599
- </div>
600
- <div class="card-body no-padding">
601
- <div class="provider-health-list">
602
- <div *ngFor="let provider of providerHealth" class="provider-row">
603
- <div class="provider-status-dot" [class.active]="provider.IsActive"></div>
604
- <div class="provider-logo" [ngClass]="provider.ColorClass">
605
- <i [class]="provider.IconClass"></i>
606
- </div>
607
- <div class="provider-info">
608
- <div class="provider-name">{{provider.Name}}</div>
609
- <div class="provider-type">{{provider.Type}} &bull; {{provider.SentCount}} sent today</div>
610
- </div>
611
- <div class="provider-health-bar">
612
- <div class="provider-health-fill" [ngClass]="getHealthClass(provider.SuccessRate)" [style.width.%]="provider.SuccessRate"></div>
613
- </div>
614
- <span class="provider-rate" [ngClass]="getHealthClass(provider.SuccessRate)">{{provider.SuccessRate}}%</span>
615
- </div>
616
- <div *ngIf="providerHealth.length === 0" class="empty-state">
617
- <i class="fa-solid fa-server"></i>
618
- <p>No providers configured</p>
619
- </div>
620
- </div>
627
+ </div>
628
+
629
+ <div class="card">
630
+ <div class="card-header">
631
+ <h3><i class="fa-solid fa-layer-group"></i> Channel Breakdown</h3>
632
+ </div>
633
+ <div class="card-body no-padding">
634
+ <div class="channel-breakdown">
635
+ @for (channel of channelBreakdown; track channel) {
636
+ <div class="channel-row">
637
+ <div class="channel-icon" [ngClass]="channel.ColorClass">
638
+ <i [class]="channel.IconClass"></i>
621
639
  </div>
622
- </div>
623
-
624
- <div class="card">
625
- <div class="card-header">
626
- <h3><i class="fa-solid fa-layer-group"></i> Channel Breakdown</h3>
640
+ <div class="channel-info">
641
+ <div class="channel-name">{{channel.Name}}</div>
642
+ <div class="channel-count">{{channel.Count | number}} messages</div>
627
643
  </div>
628
- <div class="card-body no-padding">
629
- <div class="channel-breakdown">
630
- <div *ngFor="let channel of channelBreakdown" class="channel-row">
631
- <div class="channel-icon" [ngClass]="channel.ColorClass">
632
- <i [class]="channel.IconClass"></i>
633
- </div>
634
- <div class="channel-info">
635
- <div class="channel-name">{{channel.Name}}</div>
636
- <div class="channel-count">{{channel.Count | number}} messages</div>
637
- </div>
638
- <div class="channel-bar-wrapper">
639
- <div class="channel-bar-fill" [style.width.%]="channel.Percentage" [style.background]="channel.ColorClass === 'email' ? 'var(--mat-sys-primary)' : '#2e7d32'"></div>
640
- </div>
641
- <span class="channel-pct">{{channel.Percentage}}%</span>
642
- </div>
643
- <div *ngIf="channelBreakdown.length === 0" class="empty-state">
644
- <i class="fa-solid fa-layer-group"></i>
645
- <p>No channel data available</p>
646
- </div>
647
- </div>
644
+ <div class="channel-bar-wrapper">
645
+ <div class="channel-bar-fill" [style.width.%]="channel.Percentage" [style.background]="channel.ColorClass === 'email' ? 'var(--mat-sys-primary)' : '#2e7d32'"></div>
648
646
  </div>
649
- </div>
647
+ <span class="channel-pct">{{channel.Percentage}}%</span>
648
+ </div>
649
+ }
650
+ @if (channelBreakdown.length === 0) {
651
+ <div class="empty-state">
652
+ <i class="fa-solid fa-layer-group"></i>
653
+ <p>No channel data available</p>
654
+ </div>
655
+ }
656
+ </div>
650
657
  </div>
658
+ </div>
651
659
  </div>
660
+ </div>
652
661
  </div>
653
- `, styles: ["\n /* ============================================================ */\n /* MD3 MONITOR RESOURCE */\n /* ============================================================ */\n .monitor-wrapper {\n height: 100%;\n overflow-y: auto;\n background: var(--mat-sys-surface-container);\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(--mat-sys-surface-container-lowest);\n border: 1px solid var(--mat-sys-outline-variant);\n border-radius: var(--mat-sys-corner-medium, 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: var(--mat-sys-elevation-1);\n border-color: var(--mat-sys-outline);\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(--mat-sys-primary); }\n .kpi-card.delivered::before { background: #1b873f; }\n .kpi-card.pending::before { background: #9a6700; }\n .kpi-card.failed::before { background: #cf222e; }\n\n .kpi-icon {\n width: 44px; height: 44px;\n border-radius: var(--mat-sys-corner-medium, 12px);\n display: flex; align-items: center; justify-content: center;\n font-size: 16px; flex-shrink: 0;\n }\n .kpi-card.sent .kpi-icon { background: var(--mat-sys-primary-container); color: var(--mat-sys-primary); }\n .kpi-card.delivered .kpi-icon { background: #d4f8e0; color: #1b873f; }\n .kpi-card.pending .kpi-icon { background: #fff0c7; color: #9a6700; }\n .kpi-card.failed .kpi-icon { background: #ffdce0; color: #cf222e; }\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(--mat-sys-on-surface-variant);\n }\n .kpi-value {\n font-size: 28px; font-weight: 800;\n color: var(--mat-sys-on-surface);\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 { background: #d4f8e0; color: #1b873f; }\n .kpi-delta.down { background: #ffdce0; color: #cf222e; }\n .kpi-delta.neutral { background: var(--mat-sys-surface-container); color: var(--mat-sys-on-surface-variant); }\n\n .delivery-bar {\n height: 6px; margin-top: 10px;\n background: var(--mat-sys-surface-container-high);\n border-radius: 3px; overflow: hidden;\n }\n .delivery-fill {\n height: 100%; border-radius: 3px;\n background: #1b873f; 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(--mat-sys-surface-container-lowest);\n border: 1px solid var(--mat-sys-outline-variant);\n border-radius: var(--mat-sys-corner-medium, 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(--mat-sys-outline-variant);\n }\n .card-header h3 {\n font-size: 13px; font-weight: 700;\n color: var(--mat-sys-on-surface);\n display: flex; align-items: center; gap: 8px;\n margin: 0;\n }\n .card-header h3 i {\n color: var(--mat-sys-on-surface-variant);\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(--mat-sys-surface-container);\n transition: background 0.15s ease; cursor: pointer;\n }\n .activity-item:last-child { border-bottom: none; }\n .activity-item:hover { background: var(--mat-sys-surface-container-low); }\n\n .activity-icon {\n width: 34px; height: 34px;\n border-radius: var(--mat-sys-corner-small, 8px);\n display: flex; align-items: center; justify-content: center;\n font-size: 12px; flex-shrink: 0;\n }\n .activity-icon.email { background: var(--mat-sys-primary-container); color: var(--mat-sys-primary); }\n .activity-icon.sms { background: #e8f5e9; color: #2e7d32; }\n .activity-icon.error { background: #ffdce0; color: #cf222e; }\n\n .activity-body { flex: 1; min-width: 0; }\n .activity-title {\n font-size: 12px; font-weight: 600;\n color: var(--mat-sys-on-surface);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n display: block;\n }\n .activity-meta {\n font-size: 11px; color: var(--mat-sys-on-surface-variant); 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: var(--mat-sys-corner-extra-small, 4px);\n flex-shrink: 0;\n }\n .activity-status.complete { background: #d4f8e0; color: #1b873f; }\n .activity-status.failed { background: #ffdce0; color: #cf222e; }\n .activity-status.pending { background: #fff0c7; color: #9a6700; }\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(--mat-sys-surface-container);\n transition: background 0.15s ease;\n }\n .provider-row:last-child { border-bottom: none; }\n .provider-row:hover { background: var(--mat-sys-surface-container-low); }\n\n .provider-status-dot {\n width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;\n background: var(--mat-sys-outline);\n }\n .provider-status-dot.active { background: #1b873f; }\n\n .provider-logo {\n width: 36px; height: 36px;\n border-radius: var(--mat-sys-corner-small, 8px);\n background: var(--mat-sys-surface-container);\n display: flex; align-items: center; justify-content: center;\n font-size: 16px; flex-shrink: 0;\n }\n .provider-logo.sendgrid { color: #1A82E2; }\n .provider-logo.twilio { color: #F22F46; }\n .provider-logo.gmail { color: #EA4335; }\n .provider-logo.msgraph { color: #0078D4; }\n\n .provider-info { flex: 1; }\n .provider-name { font-size: 13px; font-weight: 600; color: var(--mat-sys-on-surface); }\n .provider-type { font-size: 11px; color: var(--mat-sys-on-surface-variant); }\n\n .provider-health-bar {\n width: 80px; height: 6px;\n background: var(--mat-sys-surface-container-high);\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: #1b873f; }\n .provider-health-fill.good { background: #66bb6a; }\n .provider-health-fill.warning { background: #9a6700; }\n .provider-health-fill.critical { background: #cf222e; }\n\n .provider-rate {\n font-size: 12px; font-weight: 700;\n min-width: 44px; text-align: right;\n }\n .provider-rate.excellent { color: #1b873f; }\n .provider-rate.good { color: #66bb6a; }\n .provider-rate.warning { color: #9a6700; }\n .provider-rate.critical { color: #cf222e; }\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(--mat-sys-surface-container);\n }\n .channel-row:last-child { border-bottom: none; }\n .channel-icon {\n width: 32px; height: 32px;\n border-radius: var(--mat-sys-corner-small, 8px);\n display: flex; align-items: center; justify-content: center;\n font-size: 13px; flex-shrink: 0;\n }\n .channel-icon.email { background: var(--mat-sys-primary-container); color: var(--mat-sys-primary); }\n .channel-icon.sms { background: #e8f5e9; color: #2e7d32; }\n\n .channel-info { flex: 1; }\n .channel-name { font-size: 12px; font-weight: 600; color: var(--mat-sys-on-surface); }\n .channel-count { font-size: 11px; color: var(--mat-sys-on-surface-variant); }\n\n .channel-bar-wrapper {\n width: 100px; height: 6px;\n background: var(--mat-sys-surface-container-high);\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(--mat-sys-on-surface);\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(--mat-sys-on-surface-variant);\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 "] }]
662
+ `, styles: ["\n /* ============================================================ */\n /* MD3 MONITOR RESOURCE */\n /* ============================================================ */\n .monitor-wrapper {\n height: 100%;\n overflow-y: auto;\n background: var(--mat-sys-surface-container);\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(--mat-sys-surface-container-lowest);\n border: 1px solid var(--mat-sys-outline-variant);\n border-radius: var(--mat-sys-corner-medium, 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: var(--mat-sys-elevation-1);\n border-color: var(--mat-sys-outline);\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(--mat-sys-primary); }\n .kpi-card.delivered::before { background: #1b873f; }\n .kpi-card.pending::before { background: #9a6700; }\n .kpi-card.failed::before { background: #cf222e; }\n\n .kpi-icon {\n width: 44px; height: 44px;\n border-radius: var(--mat-sys-corner-medium, 12px);\n display: flex; align-items: center; justify-content: center;\n font-size: 16px; flex-shrink: 0;\n }\n .kpi-card.sent .kpi-icon { background: var(--mat-sys-primary-container); color: var(--mat-sys-primary); }\n .kpi-card.delivered .kpi-icon { background: #d4f8e0; color: #1b873f; }\n .kpi-card.pending .kpi-icon { background: #fff0c7; color: #9a6700; }\n .kpi-card.failed .kpi-icon { background: #ffdce0; color: #cf222e; }\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(--mat-sys-on-surface-variant);\n }\n .kpi-value {\n font-size: 28px; font-weight: 800;\n color: var(--mat-sys-on-surface);\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 { background: #d4f8e0; color: #1b873f; }\n .kpi-delta.down { background: #ffdce0; color: #cf222e; }\n .kpi-delta.neutral { background: var(--mat-sys-surface-container); color: var(--mat-sys-on-surface-variant); }\n\n .delivery-bar {\n height: 6px; margin-top: 10px;\n background: var(--mat-sys-surface-container-high);\n border-radius: 3px; overflow: hidden;\n }\n .delivery-fill {\n height: 100%; border-radius: 3px;\n background: #1b873f; 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(--mat-sys-surface-container-lowest);\n border: 1px solid var(--mat-sys-outline-variant);\n border-radius: var(--mat-sys-corner-medium, 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(--mat-sys-outline-variant);\n }\n .card-header h3 {\n font-size: 13px; font-weight: 700;\n color: var(--mat-sys-on-surface);\n display: flex; align-items: center; gap: 8px;\n margin: 0;\n }\n .card-header h3 i {\n color: var(--mat-sys-on-surface-variant);\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(--mat-sys-surface-container);\n transition: background 0.15s ease; cursor: pointer;\n }\n .activity-item:last-child { border-bottom: none; }\n .activity-item:hover { background: var(--mat-sys-surface-container-low); }\n\n .activity-icon {\n width: 34px; height: 34px;\n border-radius: var(--mat-sys-corner-small, 8px);\n display: flex; align-items: center; justify-content: center;\n font-size: 12px; flex-shrink: 0;\n }\n .activity-icon.email { background: var(--mat-sys-primary-container); color: var(--mat-sys-primary); }\n .activity-icon.sms { background: #e8f5e9; color: #2e7d32; }\n .activity-icon.error { background: #ffdce0; color: #cf222e; }\n\n .activity-body { flex: 1; min-width: 0; }\n .activity-title {\n font-size: 12px; font-weight: 600;\n color: var(--mat-sys-on-surface);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n display: block;\n }\n .activity-meta {\n font-size: 11px; color: var(--mat-sys-on-surface-variant); 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: var(--mat-sys-corner-extra-small, 4px);\n flex-shrink: 0;\n }\n .activity-status.complete { background: #d4f8e0; color: #1b873f; }\n .activity-status.failed { background: #ffdce0; color: #cf222e; }\n .activity-status.pending { background: #fff0c7; color: #9a6700; }\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(--mat-sys-surface-container);\n transition: background 0.15s ease;\n }\n .provider-row:last-child { border-bottom: none; }\n .provider-row:hover { background: var(--mat-sys-surface-container-low); }\n\n .provider-status-dot {\n width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;\n background: var(--mat-sys-outline);\n }\n .provider-status-dot.active { background: #1b873f; }\n\n .provider-logo {\n width: 36px; height: 36px;\n border-radius: var(--mat-sys-corner-small, 8px);\n background: var(--mat-sys-surface-container);\n display: flex; align-items: center; justify-content: center;\n font-size: 16px; flex-shrink: 0;\n }\n .provider-logo.sendgrid { color: #1A82E2; }\n .provider-logo.twilio { color: #F22F46; }\n .provider-logo.gmail { color: #EA4335; }\n .provider-logo.msgraph { color: #0078D4; }\n\n .provider-info { flex: 1; }\n .provider-name { font-size: 13px; font-weight: 600; color: var(--mat-sys-on-surface); }\n .provider-type { font-size: 11px; color: var(--mat-sys-on-surface-variant); }\n\n .provider-health-bar {\n width: 80px; height: 6px;\n background: var(--mat-sys-surface-container-high);\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: #1b873f; }\n .provider-health-fill.good { background: #66bb6a; }\n .provider-health-fill.warning { background: #9a6700; }\n .provider-health-fill.critical { background: #cf222e; }\n\n .provider-rate {\n font-size: 12px; font-weight: 700;\n min-width: 44px; text-align: right;\n }\n .provider-rate.excellent { color: #1b873f; }\n .provider-rate.good { color: #66bb6a; }\n .provider-rate.warning { color: #9a6700; }\n .provider-rate.critical { color: #cf222e; }\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(--mat-sys-surface-container);\n }\n .channel-row:last-child { border-bottom: none; }\n .channel-icon {\n width: 32px; height: 32px;\n border-radius: var(--mat-sys-corner-small, 8px);\n display: flex; align-items: center; justify-content: center;\n font-size: 13px; flex-shrink: 0;\n }\n .channel-icon.email { background: var(--mat-sys-primary-container); color: var(--mat-sys-primary); }\n .channel-icon.sms { background: #e8f5e9; color: #2e7d32; }\n\n .channel-info { flex: 1; }\n .channel-name { font-size: 12px; font-weight: 600; color: var(--mat-sys-on-surface); }\n .channel-count { font-size: 11px; color: var(--mat-sys-on-surface-variant); }\n\n .channel-bar-wrapper {\n width: 100px; height: 6px;\n background: var(--mat-sys-surface-container-high);\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(--mat-sys-on-surface);\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(--mat-sys-on-surface-variant);\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 "] }]
654
663
  }], () => [{ type: i0.ChangeDetectorRef }], null); })();
655
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CommunicationMonitorResourceComponent, { className: "CommunicationMonitorResourceComponent", filePath: "src/Communication/communication-monitor-resource.component.ts", lineNumber: 475 }); })();
664
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CommunicationMonitorResourceComponent, { className: "CommunicationMonitorResourceComponent", filePath: "src/communication/communication-monitor-resource.component.ts", lineNumber: 479 }); })();
656
665
  //# sourceMappingURL=communication-monitor-resource.component.js.map