@memberjunction/ng-dashboards 3.3.0 → 3.4.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 (382) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts +24 -0
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +198 -111
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/models/model-management.component.d.ts +23 -0
  6. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  7. package/dist/AI/components/models/model-management.component.js +189 -83
  8. package/dist/AI/components/models/model-management.component.js.map +1 -1
  9. package/dist/AI/components/prompts/prompt-management.component.d.ts +23 -0
  10. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  11. package/dist/AI/components/prompts/prompt-management.component.js +135 -30
  12. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  13. package/dist/APIKeys/api-applications-panel.component.d.ts +5 -3
  14. package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
  15. package/dist/APIKeys/api-applications-panel.component.js +50 -51
  16. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  17. package/dist/APIKeys/api-key-create-dialog.component.d.ts +4 -3
  18. package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
  19. package/dist/APIKeys/api-key-create-dialog.component.js +119 -94
  20. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  21. package/dist/APIKeys/api-key-edit-panel.component.d.ts +1 -1
  22. package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
  23. package/dist/APIKeys/api-key-edit-panel.component.js +100 -87
  24. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  25. package/dist/APIKeys/api-key-list.component.d.ts +2 -1
  26. package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
  27. package/dist/APIKeys/api-key-list.component.js +24 -20
  28. package/dist/APIKeys/api-key-list.component.js.map +1 -1
  29. package/dist/APIKeys/api-keys-resource.component.d.ts +6 -4
  30. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
  31. package/dist/APIKeys/api-keys-resource.component.js +42 -57
  32. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  33. package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts +22 -0
  34. package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts.map +1 -0
  35. package/dist/Actions/components/explorer/action-breadcrumb.component.js +139 -0
  36. package/dist/Actions/components/explorer/action-breadcrumb.component.js.map +1 -0
  37. package/dist/Actions/components/explorer/action-card.component.d.ts +39 -0
  38. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -0
  39. package/dist/Actions/components/explorer/action-card.component.js +410 -0
  40. package/dist/Actions/components/explorer/action-card.component.js.map +1 -0
  41. package/dist/Actions/components/explorer/action-explorer.component.d.ts +62 -0
  42. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -0
  43. package/dist/Actions/components/explorer/action-explorer.component.js +527 -0
  44. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -0
  45. package/dist/Actions/components/explorer/action-list-item.component.d.ts +24 -0
  46. package/dist/Actions/components/explorer/action-list-item.component.d.ts.map +1 -0
  47. package/dist/Actions/components/explorer/action-list-item.component.js +210 -0
  48. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -0
  49. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +63 -0
  50. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +1 -0
  51. package/dist/Actions/components/explorer/action-toolbar.component.js +483 -0
  52. package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -0
  53. package/dist/Actions/components/explorer/action-tree-panel.component.d.ts +57 -0
  54. package/dist/Actions/components/explorer/action-tree-panel.component.d.ts.map +1 -0
  55. package/dist/Actions/components/explorer/action-tree-panel.component.js +454 -0
  56. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -0
  57. package/dist/Actions/components/explorer/index.d.ts +10 -0
  58. package/dist/Actions/components/explorer/index.d.ts.map +1 -0
  59. package/dist/Actions/components/explorer/index.js +14 -0
  60. package/dist/Actions/components/explorer/index.js.map +1 -0
  61. package/dist/Actions/components/explorer/new-action-panel.component.d.ts +49 -0
  62. package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -0
  63. package/dist/Actions/components/explorer/new-action-panel.component.js +359 -0
  64. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -0
  65. package/dist/Actions/components/explorer/new-category-panel.component.d.ts +37 -0
  66. package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -0
  67. package/dist/Actions/components/explorer/new-category-panel.component.js +282 -0
  68. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -0
  69. package/dist/Actions/index.d.ts +3 -0
  70. package/dist/Actions/index.d.ts.map +1 -1
  71. package/dist/Actions/index.js +5 -0
  72. package/dist/Actions/index.js.map +1 -1
  73. package/dist/Actions/services/action-explorer-state.service.d.ts +104 -0
  74. package/dist/Actions/services/action-explorer-state.service.d.ts.map +1 -0
  75. package/dist/Actions/services/action-explorer-state.service.js +352 -0
  76. package/dist/Actions/services/action-explorer-state.service.js.map +1 -0
  77. package/dist/Communication/communication-dashboard.component.d.ts +2 -6
  78. package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
  79. package/dist/Communication/communication-dashboard.component.js +142 -93
  80. package/dist/Communication/communication-dashboard.component.js.map +1 -1
  81. package/dist/Communication/communication-logs-resource.component.d.ts +10 -4
  82. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  83. package/dist/Communication/communication-logs-resource.component.js +253 -121
  84. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  85. package/dist/Communication/communication-monitor-resource.component.d.ts +38 -3
  86. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  87. package/dist/Communication/communication-monitor-resource.component.js +431 -157
  88. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  89. package/dist/Communication/communication-providers-resource.component.d.ts +16 -5
  90. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  91. package/dist/Communication/communication-providers-resource.component.js +229 -118
  92. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  93. package/dist/Communication/communication-runs-resource.component.d.ts +4 -2
  94. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  95. package/dist/Communication/communication-runs-resource.component.js +155 -149
  96. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  97. package/dist/Communication/communication-templates-resource.component.d.ts +43 -0
  98. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -0
  99. package/dist/Communication/communication-templates-resource.component.js +371 -0
  100. package/dist/Communication/communication-templates-resource.component.js.map +1 -0
  101. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +69 -267
  102. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  103. package/dist/ComponentStudio/component-studio-dashboard.component.js +698 -1802
  104. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  105. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts +68 -0
  106. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -0
  107. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +401 -0
  108. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -0
  109. package/dist/ComponentStudio/components/browser/component-browser.component.d.ts +44 -0
  110. package/dist/ComponentStudio/components/browser/component-browser.component.d.ts.map +1 -0
  111. package/dist/ComponentStudio/components/browser/component-browser.component.js +636 -0
  112. package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -0
  113. package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts +35 -0
  114. package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts.map +1 -0
  115. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +380 -0
  116. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -0
  117. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts +24 -0
  118. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -0
  119. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +221 -0
  120. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -0
  121. package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts +28 -0
  122. package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts.map +1 -0
  123. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +263 -0
  124. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -0
  125. package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts +34 -0
  126. package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts.map +1 -0
  127. package/dist/ComponentStudio/components/editors/spec-editor.component.js +307 -0
  128. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -0
  129. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts +29 -0
  130. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts.map +1 -0
  131. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +159 -0
  132. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -0
  133. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts +20 -0
  134. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -0
  135. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +192 -0
  136. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -0
  137. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts +57 -0
  138. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -0
  139. package/dist/ComponentStudio/components/workspace/component-preview.component.js +342 -0
  140. package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -0
  141. package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts +15 -0
  142. package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts.map +1 -0
  143. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +144 -0
  144. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -0
  145. package/dist/ComponentStudio/services/component-studio-state.service.d.ts +203 -0
  146. package/dist/ComponentStudio/services/component-studio-state.service.d.ts.map +1 -0
  147. package/dist/ComponentStudio/services/component-studio-state.service.js +651 -0
  148. package/dist/ComponentStudio/services/component-studio-state.service.js.map +1 -0
  149. package/dist/ComponentStudio/services/component-version.service.d.ts +120 -0
  150. package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -0
  151. package/dist/ComponentStudio/services/component-version.service.js +394 -0
  152. package/dist/ComponentStudio/services/component-version.service.js.map +1 -0
  153. package/dist/Credentials/components/credentials-categories-resource.component.d.ts +1 -1
  154. package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
  155. package/dist/Credentials/components/credentials-categories-resource.component.js +1 -1
  156. package/dist/Credentials/components/credentials-list-resource.component.d.ts +1 -1
  157. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  158. package/dist/Credentials/components/credentials-list-resource.component.js +1 -1
  159. package/dist/Credentials/components/credentials-types-resource.component.d.ts +1 -1
  160. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  161. package/dist/Credentials/components/credentials-types-resource.component.js +1 -1
  162. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +2 -2
  163. package/dist/MCP/components/mcp-connection-dialog.component.d.ts +72 -0
  164. package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -0
  165. package/dist/MCP/components/mcp-connection-dialog.component.js +529 -0
  166. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -0
  167. package/dist/MCP/components/mcp-log-detail-panel.component.d.ts +77 -0
  168. package/dist/MCP/components/mcp-log-detail-panel.component.d.ts.map +1 -0
  169. package/dist/MCP/components/mcp-log-detail-panel.component.js +535 -0
  170. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -0
  171. package/dist/MCP/components/mcp-server-dialog.component.d.ts +77 -0
  172. package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -0
  173. package/dist/MCP/components/mcp-server-dialog.component.js +437 -0
  174. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -0
  175. package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts +271 -0
  176. package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts.map +1 -0
  177. package/dist/MCP/components/mcp-test-tool-dialog.component.js +1300 -0
  178. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -0
  179. package/dist/MCP/index.d.ts +11 -0
  180. package/dist/MCP/index.d.ts.map +1 -0
  181. package/dist/MCP/index.js +15 -0
  182. package/dist/MCP/index.js.map +1 -0
  183. package/dist/MCP/mcp-dashboard.component.d.ts +409 -0
  184. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -0
  185. package/dist/MCP/mcp-dashboard.component.js +2486 -0
  186. package/dist/MCP/mcp-dashboard.component.js.map +1 -0
  187. package/dist/MCP/mcp-resource.component.d.ts +20 -0
  188. package/dist/MCP/mcp-resource.component.d.ts.map +1 -0
  189. package/dist/MCP/mcp-resource.component.js +55 -0
  190. package/dist/MCP/mcp-resource.component.js.map +1 -0
  191. package/dist/MCP/mcp.module.d.ts +27 -0
  192. package/dist/MCP/mcp.module.d.ts.map +1 -0
  193. package/dist/MCP/mcp.module.js +122 -0
  194. package/dist/MCP/mcp.module.js.map +1 -0
  195. package/dist/MCP/services/mcp-tools.service.d.ts +109 -0
  196. package/dist/MCP/services/mcp-tools.service.d.ts.map +1 -0
  197. package/dist/MCP/services/mcp-tools.service.js +222 -0
  198. package/dist/MCP/services/mcp-tools.service.js.map +1 -0
  199. package/dist/Scheduling/components/index.d.ts +5 -8
  200. package/dist/Scheduling/components/index.d.ts.map +1 -1
  201. package/dist/Scheduling/components/index.js +6 -9
  202. package/dist/Scheduling/components/index.js.map +1 -1
  203. package/dist/Scheduling/components/job-slideout.component.d.ts +45 -0
  204. package/dist/Scheduling/components/job-slideout.component.d.ts.map +1 -0
  205. package/dist/Scheduling/components/job-slideout.component.js +458 -0
  206. package/dist/Scheduling/components/job-slideout.component.js.map +1 -0
  207. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +19 -0
  208. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -0
  209. package/dist/Scheduling/components/scheduling-activity-resource.component.js +51 -0
  210. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -0
  211. package/dist/Scheduling/components/scheduling-activity.component.d.ts +71 -0
  212. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -0
  213. package/dist/Scheduling/components/scheduling-activity.component.js +714 -0
  214. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -0
  215. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +3 -4
  216. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  217. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +3 -7
  218. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  219. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +52 -34
  220. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  221. package/dist/Scheduling/components/scheduling-jobs.component.js +446 -261
  222. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  223. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +19 -0
  224. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -0
  225. package/dist/Scheduling/components/scheduling-overview-resource.component.js +51 -0
  226. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -0
  227. package/dist/Scheduling/components/scheduling-overview.component.d.ts +43 -0
  228. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -0
  229. package/dist/Scheduling/components/scheduling-overview.component.js +595 -0
  230. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -0
  231. package/dist/Scheduling/scheduling-dashboard.component.d.ts +22 -32
  232. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  233. package/dist/Scheduling/scheduling-dashboard.component.js +175 -169
  234. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  235. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +49 -6
  236. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
  237. package/dist/Scheduling/services/scheduling-instrumentation.service.js +218 -149
  238. package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
  239. package/dist/Testing/components/index.d.ts +7 -8
  240. package/dist/Testing/components/index.d.ts.map +1 -1
  241. package/dist/Testing/components/index.js +8 -9
  242. package/dist/Testing/components/index.js.map +1 -1
  243. package/dist/Testing/components/testing-analytics-resource.component.d.ts +0 -4
  244. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  245. package/dist/Testing/components/testing-analytics-resource.component.js +1 -7
  246. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  247. package/dist/Testing/components/testing-analytics.component.d.ts +52 -37
  248. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  249. package/dist/Testing/components/testing-analytics.component.js +1023 -569
  250. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  251. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +16 -0
  252. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -0
  253. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +47 -0
  254. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -0
  255. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +57 -0
  256. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -0
  257. package/dist/Testing/components/testing-dashboard-tab.component.js +649 -0
  258. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -0
  259. package/dist/{Scheduling/components/scheduling-types-resource.component.d.ts → Testing/components/testing-explorer-resource.component.d.ts} +5 -9
  260. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -0
  261. package/dist/Testing/components/testing-explorer-resource.component.js +47 -0
  262. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -0
  263. package/dist/Testing/components/testing-explorer.component.d.ts +193 -0
  264. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -0
  265. package/dist/Testing/components/testing-explorer.component.js +2212 -0
  266. package/dist/Testing/components/testing-explorer.component.js.map +1 -0
  267. package/dist/Testing/components/testing-review-resource.component.d.ts +16 -0
  268. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -0
  269. package/dist/Testing/components/testing-review-resource.component.js +47 -0
  270. package/dist/Testing/components/testing-review-resource.component.js.map +1 -0
  271. package/dist/Testing/components/testing-review.component.d.ts +60 -0
  272. package/dist/Testing/components/testing-review.component.d.ts.map +1 -0
  273. package/dist/Testing/components/testing-review.component.js +985 -0
  274. package/dist/Testing/components/testing-review.component.js.map +1 -0
  275. package/dist/Testing/components/testing-runs-resource.component.d.ts +16 -0
  276. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -0
  277. package/dist/Testing/components/testing-runs-resource.component.js +47 -0
  278. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -0
  279. package/dist/Testing/components/testing-runs.component.d.ts +82 -0
  280. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -0
  281. package/dist/Testing/components/testing-runs.component.js +1067 -0
  282. package/dist/Testing/components/testing-runs.component.js.map +1 -0
  283. package/dist/Testing/testing-dashboard.component.d.ts +12 -15
  284. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  285. package/dist/Testing/testing-dashboard.component.js +46 -68
  286. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  287. package/dist/module.d.ts +121 -104
  288. package/dist/module.d.ts.map +1 -1
  289. package/dist/module.js +185 -93
  290. package/dist/module.js.map +1 -1
  291. package/dist/public-api.d.ts +5 -3
  292. package/dist/public-api.d.ts.map +1 -1
  293. package/dist/public-api.js +23 -16
  294. package/dist/public-api.js.map +1 -1
  295. package/dist/shared/pipes/highlight-search.pipe.d.ts +17 -0
  296. package/dist/shared/pipes/highlight-search.pipe.d.ts.map +1 -0
  297. package/dist/shared/pipes/highlight-search.pipe.js +40 -0
  298. package/dist/shared/pipes/highlight-search.pipe.js.map +1 -0
  299. package/dist/shared/pipes/index.d.ts +2 -0
  300. package/dist/shared/pipes/index.d.ts.map +1 -0
  301. package/dist/shared/pipes/index.js +2 -0
  302. package/dist/shared/pipes/index.js.map +1 -0
  303. package/dist/shared/shared-pipes.module.d.ts +11 -0
  304. package/dist/shared/shared-pipes.module.d.ts.map +1 -0
  305. package/dist/shared/shared-pipes.module.js +24 -0
  306. package/dist/shared/shared-pipes.module.js.map +1 -0
  307. package/package.json +39 -32
  308. package/dist/Credentials/components/credential-category-edit-panel.component.d.ts +0 -44
  309. package/dist/Credentials/components/credential-category-edit-panel.component.d.ts.map +0 -1
  310. package/dist/Credentials/components/credential-category-edit-panel.component.js +0 -456
  311. package/dist/Credentials/components/credential-category-edit-panel.component.js.map +0 -1
  312. package/dist/Credentials/components/credential-edit-panel.component.d.ts +0 -70
  313. package/dist/Credentials/components/credential-edit-panel.component.d.ts.map +0 -1
  314. package/dist/Credentials/components/credential-edit-panel.component.js +0 -694
  315. package/dist/Credentials/components/credential-edit-panel.component.js.map +0 -1
  316. package/dist/Credentials/components/credential-type-edit-panel.component.d.ts +0 -56
  317. package/dist/Credentials/components/credential-type-edit-panel.component.d.ts.map +0 -1
  318. package/dist/Credentials/components/credential-type-edit-panel.component.js +0 -563
  319. package/dist/Credentials/components/credential-type-edit-panel.component.js.map +0 -1
  320. package/dist/Scheduling/components/scheduling-health-resource.component.d.ts +0 -20
  321. package/dist/Scheduling/components/scheduling-health-resource.component.d.ts.map +0 -1
  322. package/dist/Scheduling/components/scheduling-health-resource.component.js +0 -55
  323. package/dist/Scheduling/components/scheduling-health-resource.component.js.map +0 -1
  324. package/dist/Scheduling/components/scheduling-health.component.d.ts +0 -30
  325. package/dist/Scheduling/components/scheduling-health.component.d.ts.map +0 -1
  326. package/dist/Scheduling/components/scheduling-health.component.js +0 -315
  327. package/dist/Scheduling/components/scheduling-health.component.js.map +0 -1
  328. package/dist/Scheduling/components/scheduling-history-resource.component.d.ts +0 -20
  329. package/dist/Scheduling/components/scheduling-history-resource.component.d.ts.map +0 -1
  330. package/dist/Scheduling/components/scheduling-history-resource.component.js +0 -55
  331. package/dist/Scheduling/components/scheduling-history-resource.component.js.map +0 -1
  332. package/dist/Scheduling/components/scheduling-history.component.d.ts +0 -48
  333. package/dist/Scheduling/components/scheduling-history.component.d.ts.map +0 -1
  334. package/dist/Scheduling/components/scheduling-history.component.js +0 -377
  335. package/dist/Scheduling/components/scheduling-history.component.js.map +0 -1
  336. package/dist/Scheduling/components/scheduling-monitor-resource.component.d.ts +0 -20
  337. package/dist/Scheduling/components/scheduling-monitor-resource.component.d.ts.map +0 -1
  338. package/dist/Scheduling/components/scheduling-monitor-resource.component.js +0 -55
  339. package/dist/Scheduling/components/scheduling-monitor-resource.component.js.map +0 -1
  340. package/dist/Scheduling/components/scheduling-monitoring.component.d.ts +0 -37
  341. package/dist/Scheduling/components/scheduling-monitoring.component.d.ts.map +0 -1
  342. package/dist/Scheduling/components/scheduling-monitoring.component.js +0 -488
  343. package/dist/Scheduling/components/scheduling-monitoring.component.js.map +0 -1
  344. package/dist/Scheduling/components/scheduling-types-resource.component.d.ts.map +0 -1
  345. package/dist/Scheduling/components/scheduling-types-resource.component.js +0 -55
  346. package/dist/Scheduling/components/scheduling-types-resource.component.js.map +0 -1
  347. package/dist/Scheduling/components/scheduling-types.component.d.ts +0 -22
  348. package/dist/Scheduling/components/scheduling-types.component.d.ts.map +0 -1
  349. package/dist/Scheduling/components/scheduling-types.component.js +0 -165
  350. package/dist/Scheduling/components/scheduling-types.component.js.map +0 -1
  351. package/dist/Testing/components/testing-execution-resource.component.d.ts +0 -20
  352. package/dist/Testing/components/testing-execution-resource.component.d.ts.map +0 -1
  353. package/dist/Testing/components/testing-execution-resource.component.js +0 -55
  354. package/dist/Testing/components/testing-execution-resource.component.js.map +0 -1
  355. package/dist/Testing/components/testing-execution.component.d.ts +0 -71
  356. package/dist/Testing/components/testing-execution.component.d.ts.map +0 -1
  357. package/dist/Testing/components/testing-execution.component.js +0 -845
  358. package/dist/Testing/components/testing-execution.component.js.map +0 -1
  359. package/dist/Testing/components/testing-feedback-resource.component.d.ts +0 -20
  360. package/dist/Testing/components/testing-feedback-resource.component.d.ts.map +0 -1
  361. package/dist/Testing/components/testing-feedback-resource.component.js +0 -55
  362. package/dist/Testing/components/testing-feedback-resource.component.js.map +0 -1
  363. package/dist/Testing/components/testing-feedback.component.d.ts +0 -111
  364. package/dist/Testing/components/testing-feedback.component.d.ts.map +0 -1
  365. package/dist/Testing/components/testing-feedback.component.js +0 -1486
  366. package/dist/Testing/components/testing-feedback.component.js.map +0 -1
  367. package/dist/Testing/components/testing-overview-resource.component.d.ts +0 -20
  368. package/dist/Testing/components/testing-overview-resource.component.d.ts.map +0 -1
  369. package/dist/Testing/components/testing-overview-resource.component.js +0 -55
  370. package/dist/Testing/components/testing-overview-resource.component.js.map +0 -1
  371. package/dist/Testing/components/testing-overview.component.d.ts +0 -30
  372. package/dist/Testing/components/testing-overview.component.d.ts.map +0 -1
  373. package/dist/Testing/components/testing-overview.component.js +0 -361
  374. package/dist/Testing/components/testing-overview.component.js.map +0 -1
  375. package/dist/Testing/components/testing-version-comparison.component.d.ts +0 -62
  376. package/dist/Testing/components/testing-version-comparison.component.d.ts.map +0 -1
  377. package/dist/Testing/components/testing-version-comparison.component.js +0 -815
  378. package/dist/Testing/components/testing-version-comparison.component.js.map +0 -1
  379. package/dist/Testing/components/testing-version-resource.component.d.ts +0 -20
  380. package/dist/Testing/components/testing-version-resource.component.d.ts.map +0 -1
  381. package/dist/Testing/components/testing-version-resource.component.js +0 -55
  382. package/dist/Testing/components/testing-version-resource.component.js.map +0 -1
@@ -10,59 +10,79 @@ import { BaseResourceComponent } from '@memberjunction/ng-shared';
10
10
  import { RunView } from '@memberjunction/core';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "@angular/common";
13
- function CommunicationLogsResourceComponent_div_12_Template(rf, ctx) { if (rf & 1) {
14
- i0.ɵɵelementStart(0, "div", 12);
15
- i0.ɵɵelement(1, "div", 13);
13
+ function CommunicationLogsResourceComponent_tr_39_span_19_Template(rf, ctx) { if (rf & 1) {
14
+ i0.ɵɵelementStart(0, "span", 23);
15
+ i0.ɵɵtext(1);
16
+ i0.ɵɵelementEnd();
17
+ } if (rf & 2) {
18
+ const log_r1 = i0.ɵɵnextContext().$implicit;
19
+ i0.ɵɵproperty("title", log_r1.ErrorMessage);
20
+ i0.ɵɵadvance();
21
+ i0.ɵɵtextInterpolate1(" ", log_r1.ErrorMessage, " ");
22
+ } }
23
+ function CommunicationLogsResourceComponent_tr_39_span_20_Template(rf, ctx) { if (rf & 1) {
24
+ i0.ɵɵelementStart(0, "span", 24);
25
+ i0.ɵɵtext(1, "\u2014");
16
26
  i0.ɵɵelementEnd();
17
27
  } }
18
- function CommunicationLogsResourceComponent_tr_29_Template(rf, ctx) { if (rf & 1) {
19
- i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 14);
20
- i0.ɵɵtext(3);
28
+ function CommunicationLogsResourceComponent_tr_39_Template(rf, ctx) { if (rf & 1) {
29
+ i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 18);
30
+ i0.ɵɵelement(3, "i");
31
+ i0.ɵɵtext(4);
21
32
  i0.ɵɵelementEnd()();
22
- i0.ɵɵelementStart(4, "td")(5, "span", 15);
23
- i0.ɵɵelement(6, "i");
24
- i0.ɵɵtext(7);
33
+ i0.ɵɵelementStart(5, "td")(6, "span", 19);
34
+ i0.ɵɵelement(7, "i");
35
+ i0.ɵɵtext(8);
25
36
  i0.ɵɵelementEnd()();
26
- i0.ɵɵelementStart(8, "td");
27
- i0.ɵɵtext(9);
28
- i0.ɵɵelementEnd();
29
- i0.ɵɵelementStart(10, "td");
30
- i0.ɵɵtext(11);
31
- i0.ɵɵelementEnd();
32
- i0.ɵɵelementStart(12, "td");
33
- i0.ɵɵtext(13);
34
- i0.ɵɵpipe(14, "date");
37
+ i0.ɵɵelementStart(9, "td")(10, "span", 20);
38
+ i0.ɵɵelement(11, "i");
39
+ i0.ɵɵtext(12);
40
+ i0.ɵɵelementEnd()();
41
+ i0.ɵɵelementStart(13, "td");
42
+ i0.ɵɵtext(14);
35
43
  i0.ɵɵelementEnd();
36
- i0.ɵɵelementStart(15, "td", 16);
44
+ i0.ɵɵelementStart(15, "td");
37
45
  i0.ɵɵtext(16);
46
+ i0.ɵɵpipe(17, "date");
47
+ i0.ɵɵelementEnd();
48
+ i0.ɵɵelementStart(18, "td");
49
+ i0.ɵɵtemplate(19, CommunicationLogsResourceComponent_tr_39_span_19_Template, 2, 2, "span", 21)(20, CommunicationLogsResourceComponent_tr_39_span_20_Template, 2, 0, "span", 22);
38
50
  i0.ɵɵelementEnd()();
39
51
  } if (rf & 2) {
40
52
  const log_r1 = ctx.$implicit;
53
+ const ctx_r1 = i0.ɵɵnextContext();
41
54
  i0.ɵɵadvance(2);
42
- i0.ɵɵclassMap(log_r1.Status.toLowerCase());
55
+ i0.ɵɵproperty("ngClass", ctx_r1.getStatusClass(log_r1.Status));
56
+ i0.ɵɵadvance();
57
+ i0.ɵɵclassMap(ctx_r1.getStatusIcon(log_r1.Status));
43
58
  i0.ɵɵadvance();
44
59
  i0.ɵɵtextInterpolate1(" ", log_r1.Status, " ");
45
60
  i0.ɵɵadvance(2);
46
- i0.ɵɵclassMap(log_r1.Direction.toLowerCase());
61
+ i0.ɵɵproperty("ngClass", log_r1.Direction.toLowerCase());
47
62
  i0.ɵɵadvance();
48
- i0.ɵɵclassMap(log_r1.Direction === "Sending" ? "fa-solid fa-arrow-up" : "fa-solid fa-arrow-down");
63
+ i0.ɵɵclassMap(log_r1.Direction === "Sending" ? "fa-solid fa-arrow-up-right" : "fa-solid fa-arrow-down-left");
49
64
  i0.ɵɵadvance();
50
65
  i0.ɵɵtextInterpolate1(" ", log_r1.Direction, " ");
51
- i0.ɵɵadvance(2);
52
- i0.ɵɵtextInterpolate(log_r1.CommunicationProvider);
66
+ i0.ɵɵadvance(3);
67
+ i0.ɵɵclassMap(ctx_r1.getProviderIcon(log_r1.CommunicationProvider));
68
+ i0.ɵɵstyleProp("color", ctx_r1.getProviderColor(log_r1.CommunicationProvider));
69
+ i0.ɵɵadvance();
70
+ i0.ɵɵtextInterpolate1(" ", log_r1.CommunicationProvider, " ");
53
71
  i0.ɵɵadvance(2);
54
72
  i0.ɵɵtextInterpolate(log_r1.CommunicationProviderMessageType);
55
73
  i0.ɵɵadvance(2);
56
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(14, 13, log_r1.MessageDate, "medium"));
57
- i0.ɵɵadvance(2);
58
- i0.ɵɵproperty("title", log_r1.ErrorMessage);
74
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(17, 17, log_r1.MessageDate, "medium"));
75
+ i0.ɵɵadvance(3);
76
+ i0.ɵɵproperty("ngIf", log_r1.ErrorMessage);
59
77
  i0.ɵɵadvance();
60
- i0.ɵɵtextInterpolate(log_r1.ErrorMessage || "-");
78
+ i0.ɵɵproperty("ngIf", !log_r1.ErrorMessage);
61
79
  } }
62
- function CommunicationLogsResourceComponent_tr_30_Template(rf, ctx) { if (rf & 1) {
63
- i0.ɵɵelementStart(0, "tr")(1, "td", 17);
64
- i0.ɵɵtext(2, "No logs found matching your criteria");
65
- i0.ɵɵelementEnd()();
80
+ function CommunicationLogsResourceComponent_tr_40_Template(rf, ctx) { if (rf & 1) {
81
+ i0.ɵɵelementStart(0, "tr")(1, "td", 25)(2, "div", 26);
82
+ i0.ɵɵelement(3, "i", 27);
83
+ i0.ɵɵelementStart(4, "p");
84
+ i0.ɵɵtext(5, "No logs found matching your criteria");
85
+ i0.ɵɵelementEnd()()()();
66
86
  } }
67
87
  /**
68
88
  * Tree-shaking prevention function
@@ -75,6 +95,7 @@ let CommunicationLogsResourceComponent = class CommunicationLogsResourceComponen
75
95
  logs = [];
76
96
  filteredLogs = [];
77
97
  isLoading = false;
98
+ statusFilter = '';
78
99
  searchTerm = '';
79
100
  constructor(cdr) {
80
101
  super();
@@ -93,7 +114,7 @@ let CommunicationLogsResourceComponent = class CommunicationLogsResourceComponen
93
114
  const result = await rv.RunView({
94
115
  EntityName: 'Communication Logs',
95
116
  OrderBy: 'MessageDate DESC',
96
- MaxRows: 100,
117
+ MaxRows: 200,
97
118
  ResultType: 'entity_object'
98
119
  });
99
120
  if (result.Success) {
@@ -113,68 +134,152 @@ let CommunicationLogsResourceComponent = class CommunicationLogsResourceComponen
113
134
  this.searchTerm = event.target.value.toLowerCase();
114
135
  this.applyFilter();
115
136
  }
137
+ onStatusFilter(status) {
138
+ this.statusFilter = status;
139
+ this.applyFilter();
140
+ }
141
+ getStatusClass(status) {
142
+ const s = (status || '').toLowerCase();
143
+ if (s === 'complete')
144
+ return 'complete';
145
+ if (s === 'failed')
146
+ return 'failed';
147
+ if (s === 'pending')
148
+ return 'pending';
149
+ if (s === 'in-progress')
150
+ return 'in-progress';
151
+ return '';
152
+ }
153
+ getStatusIcon(status) {
154
+ const s = (status || '').toLowerCase();
155
+ if (s === 'complete')
156
+ return 'fa-solid fa-check';
157
+ if (s === 'failed')
158
+ return 'fa-solid fa-xmark';
159
+ if (s === 'pending')
160
+ return 'fa-solid fa-clock';
161
+ if (s === 'in-progress')
162
+ return 'fa-solid fa-spinner';
163
+ return 'fa-solid fa-circle';
164
+ }
165
+ getProviderIcon(name) {
166
+ if (!name)
167
+ return 'fa-solid fa-server';
168
+ const n = name.toLowerCase();
169
+ if (n.includes('sendgrid'))
170
+ return 'fa-solid fa-envelope';
171
+ if (n.includes('twilio'))
172
+ return 'fa-solid fa-comment-sms';
173
+ if (n.includes('gmail') || n.includes('google'))
174
+ return 'fa-brands fa-google';
175
+ if (n.includes('microsoft') || n.includes('graph'))
176
+ return 'fa-brands fa-microsoft';
177
+ return 'fa-solid fa-server';
178
+ }
179
+ getProviderColor(name) {
180
+ if (!name)
181
+ return 'inherit';
182
+ const n = name.toLowerCase();
183
+ if (n.includes('sendgrid'))
184
+ return '#1A82E2';
185
+ if (n.includes('twilio'))
186
+ return '#F22F46';
187
+ if (n.includes('gmail') || n.includes('google'))
188
+ return '#EA4335';
189
+ if (n.includes('microsoft') || n.includes('graph'))
190
+ return '#0078D4';
191
+ return 'inherit';
192
+ }
116
193
  applyFilter() {
117
- if (!this.searchTerm) {
118
- this.filteredLogs = this.logs;
194
+ let filtered = this.logs;
195
+ if (this.statusFilter) {
196
+ filtered = filtered.filter(l => l.Status === this.statusFilter);
119
197
  }
120
- else {
121
- this.filteredLogs = this.logs.filter(l => l.CommunicationProvider?.toLowerCase().includes(this.searchTerm) ||
198
+ if (this.searchTerm) {
199
+ filtered = filtered.filter(l => l.CommunicationProvider?.toLowerCase().includes(this.searchTerm) ||
122
200
  l.CommunicationProviderMessageType?.toLowerCase().includes(this.searchTerm) ||
123
201
  l.Status?.toLowerCase().includes(this.searchTerm) ||
124
202
  l.ErrorMessage?.toLowerCase().includes(this.searchTerm));
125
203
  }
204
+ this.filteredLogs = filtered;
126
205
  this.cdr.detectChanges();
127
206
  }
128
207
  async GetResourceDisplayName(data) {
129
- return 'Logs';
208
+ return 'Message Logs';
130
209
  }
131
210
  async GetResourceIconClass(data) {
132
211
  return 'fa-solid fa-list-ul';
133
212
  }
134
213
  static ɵfac = function CommunicationLogsResourceComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CommunicationLogsResourceComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
135
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CommunicationLogsResourceComponent, selectors: [["mj-communication-logs-resource"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 31, vars: 3, consts: [[1, "logs-container"], [1, "logs-header"], [1, "title-area"], [1, "header-actions"], [1, "search-box"], [1, "fa-solid", "fa-magnifying-glass"], ["type", "text", "placeholder", "Search logs...", 3, "input"], [1, "grid-wrapper"], ["class", "loading-overlay", 4, "ngIf"], [1, "custom-grid"], [4, "ngFor", "ngForOf"], [4, "ngIf"], [1, "loading-overlay"], [1, "spinner"], [1, "status-pill"], [1, "direction-icon"], [1, "error-cell", 3, "title"], ["colspan", "6", 1, "no-data"]], template: function CommunicationLogsResourceComponent_Template(rf, ctx) { if (rf & 1) {
136
- i0.ɵɵelementStart(0, "div", 0)(1, "header", 1)(2, "div", 2)(3, "h1");
137
- i0.ɵɵtext(4, "Communication Logs");
214
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CommunicationLogsResourceComponent, selectors: [["mj-communication-logs-resource"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 41, vars: 12, consts: [[1, "logs-wrapper"], [1, "card"], [1, "logs-toolbar"], [1, "search-input-wrapper"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search messages, providers, recipients...", 3, "input"], [1, "filter-chip", 3, "click"], [1, "fa-solid", "fa-filter"], [1, "fa-solid", "fa-check-circle"], [1, "fa-solid", "fa-times-circle"], [1, "fa-solid", "fa-clock"], [1, "toolbar-spacer"], [1, "tb-btn", 3, "click"], [1, "fa-solid", "fa-rotate"], [1, "table-wrapper"], [1, "log-table"], [4, "ngFor", "ngForOf"], [4, "ngIf"], [1, "log-status-badge", 3, "ngClass"], [1, "log-direction", 3, "ngClass"], [1, "log-provider-badge"], ["class", "log-error-text", 3, "title", 4, "ngIf"], ["class", "no-error", 4, "ngIf"], [1, "log-error-text", 3, "title"], [1, "no-error"], ["colspan", "6", 1, "no-data"], [1, "empty-state"], [1, "fa-solid", "fa-inbox"]], template: function CommunicationLogsResourceComponent_Template(rf, ctx) { if (rf & 1) {
215
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3);
216
+ i0.ɵɵelement(4, "i", 4);
217
+ i0.ɵɵelementStart(5, "input", 5);
218
+ i0.ɵɵlistener("input", function CommunicationLogsResourceComponent_Template_input_input_5_listener($event) { return ctx.onSearch($event); });
219
+ i0.ɵɵelementEnd()();
220
+ i0.ɵɵelementStart(6, "div", 6);
221
+ i0.ɵɵlistener("click", function CommunicationLogsResourceComponent_Template_div_click_6_listener() { return ctx.onStatusFilter(""); });
222
+ i0.ɵɵelement(7, "i", 7);
223
+ i0.ɵɵtext(8, " All ");
224
+ i0.ɵɵelementEnd();
225
+ i0.ɵɵelementStart(9, "div", 6);
226
+ i0.ɵɵlistener("click", function CommunicationLogsResourceComponent_Template_div_click_9_listener() { return ctx.onStatusFilter("Complete"); });
227
+ i0.ɵɵelement(10, "i", 8);
228
+ i0.ɵɵtext(11, " Sent ");
138
229
  i0.ɵɵelementEnd();
139
- i0.ɵɵelementStart(5, "p");
140
- i0.ɵɵtext(6, "Full audit trail of all messages");
230
+ i0.ɵɵelementStart(12, "div", 6);
231
+ i0.ɵɵlistener("click", function CommunicationLogsResourceComponent_Template_div_click_12_listener() { return ctx.onStatusFilter("Failed"); });
232
+ i0.ɵɵelement(13, "i", 9);
233
+ i0.ɵɵtext(14, " Failed ");
234
+ i0.ɵɵelementEnd();
235
+ i0.ɵɵelementStart(15, "div", 6);
236
+ i0.ɵɵlistener("click", function CommunicationLogsResourceComponent_Template_div_click_15_listener() { return ctx.onStatusFilter("Pending"); });
237
+ i0.ɵɵelement(16, "i", 10);
238
+ i0.ɵɵtext(17, " Pending ");
239
+ i0.ɵɵelementEnd();
240
+ i0.ɵɵelement(18, "div", 11);
241
+ i0.ɵɵelementStart(19, "button", 12);
242
+ i0.ɵɵlistener("click", function CommunicationLogsResourceComponent_Template_button_click_19_listener() { return ctx.loadData(); });
243
+ i0.ɵɵelement(20, "i", 13);
244
+ i0.ɵɵtext(21, " Refresh ");
141
245
  i0.ɵɵelementEnd()();
142
- i0.ɵɵelementStart(7, "div", 3)(8, "div", 4);
143
- i0.ɵɵelement(9, "i", 5);
144
- i0.ɵɵelementStart(10, "input", 6);
145
- i0.ɵɵlistener("input", function CommunicationLogsResourceComponent_Template_input_input_10_listener($event) { return ctx.onSearch($event); });
146
- i0.ɵɵelementEnd()()()();
147
- i0.ɵɵelementStart(11, "div", 7);
148
- i0.ɵɵtemplate(12, CommunicationLogsResourceComponent_div_12_Template, 2, 0, "div", 8);
149
- i0.ɵɵelementStart(13, "table", 9)(14, "thead")(15, "tr")(16, "th");
150
- i0.ɵɵtext(17, "Status");
246
+ i0.ɵɵelementStart(22, "div", 14)(23, "table", 15)(24, "thead")(25, "tr")(26, "th");
247
+ i0.ɵɵtext(27, "Status");
151
248
  i0.ɵɵelementEnd();
152
- i0.ɵɵelementStart(18, "th");
153
- i0.ɵɵtext(19, "Direction");
249
+ i0.ɵɵelementStart(28, "th");
250
+ i0.ɵɵtext(29, "Direction");
154
251
  i0.ɵɵelementEnd();
155
- i0.ɵɵelementStart(20, "th");
156
- i0.ɵɵtext(21, "Provider");
252
+ i0.ɵɵelementStart(30, "th");
253
+ i0.ɵɵtext(31, "Provider");
157
254
  i0.ɵɵelementEnd();
158
- i0.ɵɵelementStart(22, "th");
159
- i0.ɵɵtext(23, "Type");
255
+ i0.ɵɵelementStart(32, "th");
256
+ i0.ɵɵtext(33, "Type");
160
257
  i0.ɵɵelementEnd();
161
- i0.ɵɵelementStart(24, "th");
162
- i0.ɵɵtext(25, "Date");
258
+ i0.ɵɵelementStart(34, "th");
259
+ i0.ɵɵtext(35, "Date");
163
260
  i0.ɵɵelementEnd();
164
- i0.ɵɵelementStart(26, "th");
165
- i0.ɵɵtext(27, "Error Message");
261
+ i0.ɵɵelementStart(36, "th");
262
+ i0.ɵɵtext(37, "Error");
166
263
  i0.ɵɵelementEnd()()();
167
- i0.ɵɵelementStart(28, "tbody");
168
- i0.ɵɵtemplate(29, CommunicationLogsResourceComponent_tr_29_Template, 17, 16, "tr", 10)(30, CommunicationLogsResourceComponent_tr_30_Template, 3, 0, "tr", 11);
169
- i0.ɵɵelementEnd()()()();
264
+ i0.ɵɵelementStart(38, "tbody");
265
+ i0.ɵɵtemplate(39, CommunicationLogsResourceComponent_tr_39_Template, 21, 20, "tr", 16)(40, CommunicationLogsResourceComponent_tr_40_Template, 6, 0, "tr", 17);
266
+ i0.ɵɵelementEnd()()()()();
170
267
  } if (rf & 2) {
171
- i0.ɵɵadvance(12);
172
- i0.ɵɵproperty("ngIf", ctx.isLoading);
173
- i0.ɵɵadvance(17);
268
+ i0.ɵɵadvance(6);
269
+ i0.ɵɵclassProp("active", ctx.statusFilter === "");
270
+ i0.ɵɵadvance(3);
271
+ i0.ɵɵclassProp("active", ctx.statusFilter === "Complete");
272
+ i0.ɵɵadvance(3);
273
+ i0.ɵɵclassProp("active", ctx.statusFilter === "Failed");
274
+ i0.ɵɵadvance(3);
275
+ i0.ɵɵclassProp("active", ctx.statusFilter === "Pending");
276
+ i0.ɵɵadvance(5);
277
+ i0.ɵɵclassProp("spinning", ctx.isLoading);
278
+ i0.ɵɵadvance(19);
174
279
  i0.ɵɵproperty("ngForOf", ctx.filteredLogs);
175
280
  i0.ɵɵadvance();
176
281
  i0.ɵɵproperty("ngIf", ctx.filteredLogs.length === 0 && !ctx.isLoading);
177
- } }, dependencies: [i1.NgForOf, i1.NgIf, i1.DatePipe], styles: [".logs-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: #f8fafc;\n font-family: 'Inter', system-ui, -apple-system, sans-serif;\n }\n .logs-header[_ngcontent-%COMP%] {\n padding: 24px 32px;\n background: white;\n border-bottom: 1px solid #e2e8f0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n .title-area[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.5rem;\n font-weight: 800;\n color: #0f172a;\n }\n .title-area[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 4px 0 0;\n color: #64748b;\n font-size: 0.875rem;\n }\n .search-box[_ngcontent-%COMP%] {\n position: relative;\n width: 300px;\n }\n .search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: #94a3b8;\n }\n .search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 12px 10px 40px;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n font-size: 0.875rem;\n transition: all 0.2s;\n }\n .search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n }\n\n .grid-wrapper[_ngcontent-%COMP%] {\n flex: 1;\n padding: 24px 32px;\n overflow-y: auto;\n position: relative;\n }\n\n .custom-grid[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n background: white;\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n border: 1px solid #e2e8f0;\n }\n .custom-grid[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: #f8fafc;\n padding: 16px;\n text-align: left;\n font-size: 0.75rem;\n font-weight: 700;\n color: #64748b;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n border-bottom: 1px solid #e2e8f0;\n }\n .custom-grid[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 16px;\n font-size: 0.875rem;\n color: #1e293b;\n border-bottom: 1px solid #f1f5f9;\n }\n .custom-grid[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n }\n .custom-grid[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover td[_ngcontent-%COMP%] {\n background: #f8fafc;\n }\n\n .status-pill[_ngcontent-%COMP%] {\n padding: 4px 10px;\n border-radius: 20px;\n font-size: 0.75rem;\n font-weight: 700;\n text-transform: uppercase;\n }\n .status-pill.complete[_ngcontent-%COMP%] { background: #dcfce7; color: #166534; }\n .status-pill.failed[_ngcontent-%COMP%] { background: #fee2e2; color: #991b1b; }\n .status-pill.pending[_ngcontent-%COMP%] { background: #fef3c7; color: #92400e; }\n\n .direction-icon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n }\n .direction-icon.sending[_ngcontent-%COMP%] { color: #3b82f6; }\n .direction-icon.receiving[_ngcontent-%COMP%] { color: #8b5cf6; }\n\n .error-cell[_ngcontent-%COMP%] {\n color: #ef4444;\n max-width: 200px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .no-data[_ngcontent-%COMP%] {\n text-align: center;\n padding: 48px !important;\n color: #94a3b8;\n font-style: italic;\n }\n\n .loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0; left: 0; right: 0; bottom: 0;\n background: rgba(255,255,255,0.7);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n }\n .spinner[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border: 3px solid #e2e8f0;\n border-top-color: #3b82f6;\n border-radius: 50%;\n animation: _ngcontent-%COMP%_spin 0.8s linear infinite;\n }\n @keyframes _ngcontent-%COMP%_spin { to { transform: rotate(360deg); } }"] });
282
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.DatePipe], styles: [".logs-wrapper[_ngcontent-%COMP%] {\n height: 100%;\n padding: 24px;\n background: var(--mat-sys-surface-container);\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 display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n \n\n .logs-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 20px;\n border-bottom: 1px solid var(--mat-sys-outline-variant);\n background: var(--mat-sys-surface-container-low);\n flex-shrink: 0;\n }\n .search-input-wrapper[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n max-width: 400px;\n padding: 6px 12px;\n border: 1px solid var(--mat-sys-outline-variant);\n border-radius: var(--mat-sys-corner-small, 8px);\n background: var(--mat-sys-surface-container-lowest);\n transition: border-color 0.15s, box-shadow 0.15s;\n }\n .search-input-wrapper[_ngcontent-%COMP%]:focus-within {\n border-color: var(--mat-sys-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mat-sys-primary) 15%, transparent);\n }\n .search-input-wrapper[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mat-sys-on-surface-variant); font-size: 12px; }\n .search-input-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1; border: none; outline: none;\n background: transparent; font-size: 12px;\n font-family: inherit; color: var(--mat-sys-on-surface);\n }\n .search-input-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder { color: var(--mat-sys-on-surface-variant); }\n\n .filter-chip[_ngcontent-%COMP%] {\n display: inline-flex; align-items: center;\n gap: 4px; padding: 4px 10px;\n border: 1px solid var(--mat-sys-outline-variant);\n border-radius: 16px;\n background: var(--mat-sys-surface-container-lowest);\n font-size: 11px; font-weight: 500;\n color: var(--mat-sys-on-surface-variant);\n cursor: pointer; transition: all 0.15s;\n }\n .filter-chip[_ngcontent-%COMP%]:hover {\n border-color: var(--mat-sys-outline);\n background: var(--mat-sys-surface-container);\n }\n .filter-chip.active[_ngcontent-%COMP%] {\n border-color: var(--mat-sys-primary);\n background: var(--mat-sys-primary-container);\n color: var(--mat-sys-on-primary-container);\n }\n .filter-chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 10px; }\n\n .toolbar-spacer[_ngcontent-%COMP%] { flex: 1; }\n\n .tb-btn[_ngcontent-%COMP%] {\n display: inline-flex; align-items: center;\n gap: 6px; padding: 6px 12px;\n border: 1px solid var(--mat-sys-outline-variant);\n border-radius: var(--mat-sys-corner-extra-small, 4px);\n background: var(--mat-sys-surface-container-lowest);\n color: var(--mat-sys-on-surface-variant);\n font-size: 12px; font-weight: 500;\n cursor: pointer; transition: all 0.15s ease;\n font-family: inherit;\n }\n .tb-btn[_ngcontent-%COMP%]:hover {\n background: var(--mat-sys-surface-container-high);\n border-color: var(--mat-sys-outline);\n color: var(--mat-sys-on-surface);\n }\n .tb-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 12px; }\n\n @keyframes _ngcontent-%COMP%_spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }\n .spinning[_ngcontent-%COMP%] { animation: _ngcontent-%COMP%_spin 1s linear infinite; }\n\n \n\n .table-wrapper[_ngcontent-%COMP%] { flex: 1; overflow-y: auto; }\n\n .log-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 12px;\n }\n .log-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] {\n background: var(--mat-sys-surface-container-low);\n position: sticky; top: 0; z-index: 1;\n }\n .log-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 10px 16px;\n text-align: left;\n font-weight: 700; font-size: 10px;\n text-transform: uppercase; letter-spacing: 0.5px;\n color: var(--mat-sys-on-surface-variant);\n border-bottom: 1px solid var(--mat-sys-outline-variant);\n white-space: nowrap;\n }\n .log-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mat-sys-surface-container);\n color: var(--mat-sys-on-surface);\n vertical-align: middle;\n }\n .log-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] { transition: background 0.15s; }\n .log-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover { background: var(--mat-sys-surface-container-low); }\n\n .log-status-badge[_ngcontent-%COMP%] {\n display: inline-flex; align-items: center;\n gap: 4px; font-size: 11px; font-weight: 600;\n padding: 3px 10px;\n border-radius: var(--mat-sys-corner-extra-small, 4px);\n }\n .log-status-badge.complete[_ngcontent-%COMP%] { background: #d4f8e0; color: #1b873f; }\n .log-status-badge.failed[_ngcontent-%COMP%] { background: #ffdce0; color: #cf222e; }\n .log-status-badge.pending[_ngcontent-%COMP%] { background: #fff0c7; color: #9a6700; }\n .log-status-badge.in-progress[_ngcontent-%COMP%] { background: #ddf4ff; color: #0969da; }\n\n .log-direction[_ngcontent-%COMP%] {\n display: flex; align-items: center;\n gap: 4px; font-size: 11px;\n color: var(--mat-sys-on-surface-variant);\n }\n .log-direction[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 10px; }\n .log-direction.sending[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mat-sys-primary); }\n .log-direction.receiving[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: #1b873f; }\n\n .log-provider-badge[_ngcontent-%COMP%] {\n display: inline-flex; align-items: center;\n gap: 6px; padding: 3px 10px;\n border-radius: var(--mat-sys-corner-extra-small, 4px);\n background: var(--mat-sys-surface-container);\n font-weight: 500;\n }\n\n .log-error-text[_ngcontent-%COMP%] {\n color: #cf222e;\n max-width: 200px;\n overflow: hidden; text-overflow: ellipsis;\n white-space: nowrap; font-size: 11px;\n display: block;\n }\n .no-error[_ngcontent-%COMP%] { color: var(--mat-sys-on-surface-variant); }\n\n .no-data[_ngcontent-%COMP%] { padding: 0 !important; }\n .empty-state[_ngcontent-%COMP%] {\n display: flex; flex-direction: column;\n align-items: center; justify-content: center;\n padding: 48px 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; }"] });
178
283
  };
179
284
  CommunicationLogsResourceComponent = __decorate([
180
285
  RegisterClass(BaseResourceComponent, 'CommunicationLogsResource')
@@ -183,62 +288,89 @@ export { CommunicationLogsResourceComponent };
183
288
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CommunicationLogsResourceComponent, [{
184
289
  type: Component,
185
290
  args: [{ selector: 'mj-communication-logs-resource', template: `
186
- <div class="logs-container">
187
- <header class="logs-header">
188
- <div class="title-area">
189
- <h1>Communication Logs</h1>
190
- <p>Full audit trail of all messages</p>
191
- </div>
192
- <div class="header-actions">
193
- <div class="search-box">
194
- <i class="fa-solid fa-magnifying-glass"></i>
195
- <input type="text" placeholder="Search logs..." (input)="onSearch($event)">
291
+ <div class="logs-wrapper">
292
+ <div class="card">
293
+ <div class="logs-toolbar">
294
+ <div class="search-input-wrapper">
295
+ <i class="fa-solid fa-search"></i>
296
+ <input type="text" placeholder="Search messages, providers, recipients..." (input)="onSearch($event)">
297
+ </div>
298
+ <div class="filter-chip" [class.active]="statusFilter === ''"
299
+ (click)="onStatusFilter('')">
300
+ <i class="fa-solid fa-filter"></i> All
301
+ </div>
302
+ <div class="filter-chip" [class.active]="statusFilter === 'Complete'"
303
+ (click)="onStatusFilter('Complete')">
304
+ <i class="fa-solid fa-check-circle"></i> Sent
305
+ </div>
306
+ <div class="filter-chip" [class.active]="statusFilter === 'Failed'"
307
+ (click)="onStatusFilter('Failed')">
308
+ <i class="fa-solid fa-times-circle"></i> Failed
309
+ </div>
310
+ <div class="filter-chip" [class.active]="statusFilter === 'Pending'"
311
+ (click)="onStatusFilter('Pending')">
312
+ <i class="fa-solid fa-clock"></i> Pending
196
313
  </div>
314
+ <div class="toolbar-spacer"></div>
315
+ <button class="tb-btn" (click)="loadData()">
316
+ <i class="fa-solid fa-rotate" [class.spinning]="isLoading"></i> Refresh
317
+ </button>
197
318
  </div>
198
- </header>
199
-
200
- <div class="grid-wrapper">
201
- <div *ngIf="isLoading" class="loading-overlay">
202
- <div class="spinner"></div>
319
+ <div class="table-wrapper">
320
+ <table class="log-table">
321
+ <thead>
322
+ <tr>
323
+ <th>Status</th>
324
+ <th>Direction</th>
325
+ <th>Provider</th>
326
+ <th>Type</th>
327
+ <th>Date</th>
328
+ <th>Error</th>
329
+ </tr>
330
+ </thead>
331
+ <tbody>
332
+ <tr *ngFor="let log of filteredLogs">
333
+ <td>
334
+ <span class="log-status-badge" [ngClass]="getStatusClass(log.Status)">
335
+ <i [class]="getStatusIcon(log.Status)"></i>
336
+ {{log.Status}}
337
+ </span>
338
+ </td>
339
+ <td>
340
+ <span class="log-direction" [ngClass]="log.Direction.toLowerCase()">
341
+ <i [class]="log.Direction === 'Sending' ? 'fa-solid fa-arrow-up-right' : 'fa-solid fa-arrow-down-left'"></i>
342
+ {{log.Direction}}
343
+ </span>
344
+ </td>
345
+ <td>
346
+ <span class="log-provider-badge">
347
+ <i [class]="getProviderIcon(log.CommunicationProvider)" [style.color]="getProviderColor(log.CommunicationProvider)"></i>
348
+ {{log.CommunicationProvider}}
349
+ </span>
350
+ </td>
351
+ <td>{{log.CommunicationProviderMessageType}}</td>
352
+ <td>{{log.MessageDate | date:'medium'}}</td>
353
+ <td>
354
+ <span *ngIf="log.ErrorMessage" class="log-error-text" [title]="log.ErrorMessage">
355
+ {{log.ErrorMessage}}
356
+ </span>
357
+ <span *ngIf="!log.ErrorMessage" class="no-error">&mdash;</span>
358
+ </td>
359
+ </tr>
360
+ <tr *ngIf="filteredLogs.length === 0 && !isLoading">
361
+ <td colspan="6" class="no-data">
362
+ <div class="empty-state">
363
+ <i class="fa-solid fa-inbox"></i>
364
+ <p>No logs found matching your criteria</p>
365
+ </div>
366
+ </td>
367
+ </tr>
368
+ </tbody>
369
+ </table>
203
370
  </div>
204
-
205
- <table class="custom-grid">
206
- <thead>
207
- <tr>
208
- <th>Status</th>
209
- <th>Direction</th>
210
- <th>Provider</th>
211
- <th>Type</th>
212
- <th>Date</th>
213
- <th>Error Message</th>
214
- </tr>
215
- </thead>
216
- <tbody>
217
- <tr *ngFor="let log of filteredLogs">
218
- <td>
219
- <span class="status-pill" [class]="log.Status.toLowerCase()">
220
- {{log.Status}}
221
- </span>
222
- </td>
223
- <td>
224
- <span class="direction-icon" [class]="log.Direction.toLowerCase()">
225
- <i [class]="log.Direction === 'Sending' ? 'fa-solid fa-arrow-up' : 'fa-solid fa-arrow-down'"></i>
226
- {{log.Direction}}
227
- </span>
228
- </td>
229
- <td>{{log.CommunicationProvider}}</td>
230
- <td>{{log.CommunicationProviderMessageType}}</td>
231
- <td>{{log.MessageDate | date:'medium'}}</td>
232
- <td class="error-cell" [title]="log.ErrorMessage">{{log.ErrorMessage || '-'}}</td>
233
- </tr>
234
- <tr *ngIf="filteredLogs.length === 0 && !isLoading">
235
- <td colspan="6" class="no-data">No logs found matching your criteria</td>
236
- </tr>
237
- </tbody>
238
- </table>
239
371
  </div>
240
372
  </div>
241
- `, styles: ["\n .logs-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: #f8fafc;\n font-family: 'Inter', system-ui, -apple-system, sans-serif;\n }\n .logs-header {\n padding: 24px 32px;\n background: white;\n border-bottom: 1px solid #e2e8f0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n .title-area h1 {\n margin: 0;\n font-size: 1.5rem;\n font-weight: 800;\n color: #0f172a;\n }\n .title-area p {\n margin: 4px 0 0;\n color: #64748b;\n font-size: 0.875rem;\n }\n .search-box {\n position: relative;\n width: 300px;\n }\n .search-box i {\n position: absolute;\n left: 12px;\n top: 50%;\n transform: translateY(-50%);\n color: #94a3b8;\n }\n .search-box input {\n width: 100%;\n padding: 10px 12px 10px 40px;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n font-size: 0.875rem;\n transition: all 0.2s;\n }\n .search-box input:focus {\n outline: none;\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n }\n\n .grid-wrapper {\n flex: 1;\n padding: 24px 32px;\n overflow-y: auto;\n position: relative;\n }\n\n .custom-grid {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n background: white;\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n border: 1px solid #e2e8f0;\n }\n .custom-grid th {\n background: #f8fafc;\n padding: 16px;\n text-align: left;\n font-size: 0.75rem;\n font-weight: 700;\n color: #64748b;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n border-bottom: 1px solid #e2e8f0;\n }\n .custom-grid td {\n padding: 16px;\n font-size: 0.875rem;\n color: #1e293b;\n border-bottom: 1px solid #f1f5f9;\n }\n .custom-grid tr:last-child td {\n border-bottom: none;\n }\n .custom-grid tr:hover td {\n background: #f8fafc;\n }\n\n .status-pill {\n padding: 4px 10px;\n border-radius: 20px;\n font-size: 0.75rem;\n font-weight: 700;\n text-transform: uppercase;\n }\n .status-pill.complete { background: #dcfce7; color: #166534; }\n .status-pill.failed { background: #fee2e2; color: #991b1b; }\n .status-pill.pending { background: #fef3c7; color: #92400e; }\n\n .direction-icon {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n }\n .direction-icon.sending { color: #3b82f6; }\n .direction-icon.receiving { color: #8b5cf6; }\n\n .error-cell {\n color: #ef4444;\n max-width: 200px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .no-data {\n text-align: center;\n padding: 48px !important;\n color: #94a3b8;\n font-style: italic;\n }\n\n .loading-overlay {\n position: absolute;\n top: 0; left: 0; right: 0; bottom: 0;\n background: rgba(255,255,255,0.7);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n }\n .spinner {\n width: 32px;\n height: 32px;\n border: 3px solid #e2e8f0;\n border-top-color: #3b82f6;\n border-radius: 50%;\n animation: spin 0.8s linear infinite;\n }\n @keyframes spin { to { transform: rotate(360deg); } }\n "] }]
373
+ `, styles: ["\n .logs-wrapper {\n height: 100%;\n padding: 24px;\n background: var(--mat-sys-surface-container);\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 display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n /* TOOLBAR */\n .logs-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 20px;\n border-bottom: 1px solid var(--mat-sys-outline-variant);\n background: var(--mat-sys-surface-container-low);\n flex-shrink: 0;\n }\n .search-input-wrapper {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n max-width: 400px;\n padding: 6px 12px;\n border: 1px solid var(--mat-sys-outline-variant);\n border-radius: var(--mat-sys-corner-small, 8px);\n background: var(--mat-sys-surface-container-lowest);\n transition: border-color 0.15s, box-shadow 0.15s;\n }\n .search-input-wrapper:focus-within {\n border-color: var(--mat-sys-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mat-sys-primary) 15%, transparent);\n }\n .search-input-wrapper i { color: var(--mat-sys-on-surface-variant); font-size: 12px; }\n .search-input-wrapper input {\n flex: 1; border: none; outline: none;\n background: transparent; font-size: 12px;\n font-family: inherit; color: var(--mat-sys-on-surface);\n }\n .search-input-wrapper input::placeholder { color: var(--mat-sys-on-surface-variant); }\n\n .filter-chip {\n display: inline-flex; align-items: center;\n gap: 4px; padding: 4px 10px;\n border: 1px solid var(--mat-sys-outline-variant);\n border-radius: 16px;\n background: var(--mat-sys-surface-container-lowest);\n font-size: 11px; font-weight: 500;\n color: var(--mat-sys-on-surface-variant);\n cursor: pointer; transition: all 0.15s;\n }\n .filter-chip:hover {\n border-color: var(--mat-sys-outline);\n background: var(--mat-sys-surface-container);\n }\n .filter-chip.active {\n border-color: var(--mat-sys-primary);\n background: var(--mat-sys-primary-container);\n color: var(--mat-sys-on-primary-container);\n }\n .filter-chip i { font-size: 10px; }\n\n .toolbar-spacer { flex: 1; }\n\n .tb-btn {\n display: inline-flex; align-items: center;\n gap: 6px; padding: 6px 12px;\n border: 1px solid var(--mat-sys-outline-variant);\n border-radius: var(--mat-sys-corner-extra-small, 4px);\n background: var(--mat-sys-surface-container-lowest);\n color: var(--mat-sys-on-surface-variant);\n font-size: 12px; font-weight: 500;\n cursor: pointer; transition: all 0.15s ease;\n font-family: inherit;\n }\n .tb-btn:hover {\n background: var(--mat-sys-surface-container-high);\n border-color: var(--mat-sys-outline);\n color: var(--mat-sys-on-surface);\n }\n .tb-btn i { font-size: 12px; }\n\n @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }\n .spinning { animation: spin 1s linear infinite; }\n\n /* TABLE */\n .table-wrapper { flex: 1; overflow-y: auto; }\n\n .log-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 12px;\n }\n .log-table thead {\n background: var(--mat-sys-surface-container-low);\n position: sticky; top: 0; z-index: 1;\n }\n .log-table th {\n padding: 10px 16px;\n text-align: left;\n font-weight: 700; font-size: 10px;\n text-transform: uppercase; letter-spacing: 0.5px;\n color: var(--mat-sys-on-surface-variant);\n border-bottom: 1px solid var(--mat-sys-outline-variant);\n white-space: nowrap;\n }\n .log-table td {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mat-sys-surface-container);\n color: var(--mat-sys-on-surface);\n vertical-align: middle;\n }\n .log-table tbody tr { transition: background 0.15s; }\n .log-table tbody tr:hover { background: var(--mat-sys-surface-container-low); }\n\n .log-status-badge {\n display: inline-flex; align-items: center;\n gap: 4px; font-size: 11px; font-weight: 600;\n padding: 3px 10px;\n border-radius: var(--mat-sys-corner-extra-small, 4px);\n }\n .log-status-badge.complete { background: #d4f8e0; color: #1b873f; }\n .log-status-badge.failed { background: #ffdce0; color: #cf222e; }\n .log-status-badge.pending { background: #fff0c7; color: #9a6700; }\n .log-status-badge.in-progress { background: #ddf4ff; color: #0969da; }\n\n .log-direction {\n display: flex; align-items: center;\n gap: 4px; font-size: 11px;\n color: var(--mat-sys-on-surface-variant);\n }\n .log-direction i { font-size: 10px; }\n .log-direction.sending i { color: var(--mat-sys-primary); }\n .log-direction.receiving i { color: #1b873f; }\n\n .log-provider-badge {\n display: inline-flex; align-items: center;\n gap: 6px; padding: 3px 10px;\n border-radius: var(--mat-sys-corner-extra-small, 4px);\n background: var(--mat-sys-surface-container);\n font-weight: 500;\n }\n\n .log-error-text {\n color: #cf222e;\n max-width: 200px;\n overflow: hidden; text-overflow: ellipsis;\n white-space: nowrap; font-size: 11px;\n display: block;\n }\n .no-error { color: var(--mat-sys-on-surface-variant); }\n\n .no-data { padding: 0 !important; }\n .empty-state {\n display: flex; flex-direction: column;\n align-items: center; justify-content: center;\n padding: 48px 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 "] }]
242
374
  }], () => [{ type: i0.ChangeDetectorRef }], null); })();
243
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CommunicationLogsResourceComponent, { className: "CommunicationLogsResourceComponent", filePath: "src/Communication/communication-logs-resource.component.ts", lineNumber: 222 }); })();
375
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CommunicationLogsResourceComponent, { className: "CommunicationLogsResourceComponent", filePath: "src/Communication/communication-logs-resource.component.ts", lineNumber: 272 }); })();
244
376
  //# sourceMappingURL=communication-logs-resource.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"communication-logs-resource.component.js","sourceRoot":"","sources":["../../src/Communication/communication-logs-resource.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"communication-logs-resource.component.js","sourceRoot":"","sources":["../../src/Communication/communication-logs-resource.component.ts"],"names":[],"mappings":"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"}