@memberjunction/ng-dashboards 5.34.0 → 5.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AI/components/agents/agent-configuration.component.d.ts +51 -0
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +399 -292
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +8 -2
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +87 -85
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +75 -0
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.js +400 -89
- package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
- package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts +5 -0
- package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/analytics-filter-bar.component.js +184 -135
- package/dist/AI/components/analytics/analytics-filter-bar.component.js.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +8 -2
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +104 -103
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +8 -2
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +76 -74
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +67 -87
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +12 -19
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.js +96 -203
- package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +110 -126
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +61 -77
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +990 -992
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.d.ts +17 -0
- package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
- package/dist/AI/components/models/model-management.component.js +370 -425
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
- package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +317 -357
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
- package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
- package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
- package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +403 -362
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +781 -783
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.d.ts +6 -0
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +79 -30
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
- package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +196 -142
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Actions/components/explorer/index.d.ts +0 -1
- package/dist/Actions/components/explorer/index.d.ts.map +1 -1
- package/dist/Actions/components/explorer/index.js +0 -1
- package/dist/Actions/components/explorer/index.js.map +1 -1
- package/dist/Admin/admin-data-schema.component.js +32 -40
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +32 -40
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +32 -40
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +32 -40
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +76 -82
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
- package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
- package/dist/Archiving/components/archive-config-resource.component.js +24 -5
- package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
- package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
- package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
- package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +80 -99
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +127 -106
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +44 -45
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +60 -58
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +139 -162
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +245 -266
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
- package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
- package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +294 -305
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +21 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +147 -160
- package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js +19 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -16
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.d.ts +6 -0
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +521 -485
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Integration/components/activity/activity.component.d.ts +8 -0
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +309 -318
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +866 -847
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +182 -163
- package/dist/Integration/components/overview/overview.component.js.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
- package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.js +610 -606
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.js +241 -241
- package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
- package/dist/Integration/integration.module.d.ts +1 -1
- package/dist/Integration/integration.module.d.ts.map +1 -1
- package/dist/Integration/integration.module.js +28 -1
- package/dist/Integration/integration.module.js.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +673 -674
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +745 -703
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +18 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +486 -532
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +152 -160
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +302 -319
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +234 -246
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +1248 -1338
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/MCP/mcp.module.d.ts +1 -1
- package/dist/MCP/mcp.module.d.ts.map +1 -1
- package/dist/MCP/mcp.module.js +34 -1
- package/dist/MCP/mcp.module.js.map +1 -1
- package/dist/Permissions/audit-log-resource.component.js +76 -85
- package/dist/Permissions/audit-log-resource.component.js.map +1 -1
- package/dist/Permissions/resource-access-resource.component.js +64 -69
- package/dist/Permissions/resource-access-resource.component.js.map +1 -1
- package/dist/Permissions/user-access-resource.component.js +63 -74
- package/dist/Permissions/user-access-resource.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
- package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
- package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
- package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +262 -104
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +4 -0
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +812 -784
- package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
- package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
- package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics.component.js +420 -393
- package/dist/Testing/components/testing-analytics.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
- package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
- package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +8 -1
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +587 -608
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
- package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.js +9 -12
- package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-review.component.d.ts +3 -1
- package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review.component.js +310 -274
- package/dist/Testing/components/testing-review.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +16 -19
- package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-runs.component.d.ts +3 -1
- package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs.component.js +307 -273
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.d.ts +2 -0
- package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +107 -93
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.js +185 -188
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/graph-resource.component.js +154 -184
- package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
- package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.js +350 -354
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js +163 -169
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
- package/dist/actions-dashboards.module.d.ts +15 -16
- package/dist/actions-dashboards.module.d.ts.map +1 -1
- package/dist/actions-dashboards.module.js +34 -11
- package/dist/actions-dashboards.module.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +45 -48
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +36 -10
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/archiving-dashboards.module.d.ts +2 -1
- package/dist/archiving-dashboards.module.d.ts.map +1 -1
- package/dist/archiving-dashboards.module.js +12 -2
- package/dist/archiving-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +2 -1
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +24 -3
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/core-dashboards.module.d.ts +1 -1
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +31 -1
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/credentials-dashboards.module.d.ts +1 -1
- package/dist/credentials-dashboards.module.d.ts.map +1 -1
- package/dist/credentials-dashboards.module.js +28 -1
- package/dist/credentials-dashboards.module.js.map +1 -1
- package/dist/lists-dashboards.module.d.ts +1 -1
- package/dist/lists-dashboards.module.d.ts.map +1 -1
- package/dist/lists-dashboards.module.js +28 -1
- package/dist/lists-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +2 -2
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -3
- package/dist/public-api.js.map +1 -1
- package/dist/scheduling-dashboards.module.d.ts +1 -1
- package/dist/scheduling-dashboards.module.d.ts.map +1 -1
- package/dist/scheduling-dashboards.module.js +31 -1
- package/dist/scheduling-dashboards.module.js.map +1 -1
- package/dist/testing-dashboards.module.d.ts +8 -7
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +30 -0
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +52 -52
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
- package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
- package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
- package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
- package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
- package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
- package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
- package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
- package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
- package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
- package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive-config-resource.component.js","sourceRoot":"","sources":["../../../src/Archiving/components/archive-config-resource.component.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAiB,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC
|
|
1
|
+
{"version":3,"file":"archive-config-resource.component.js","sourceRoot":"","sources":["../../../src/Archiving/components/archive-config-resource.component.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAiB,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;;;AAoB3D,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,qBAAqB;IACrE,eAAe;QACX,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,KAAmB;QAC5C,OAAO,uBAAuB,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAAmB;QAC1C,OAAO,qBAAqB,CAAC;IACjC,CAAC;qSAXQ,8BAA8B,yBAA9B,8BAA8B;6DAA9B,8BAA8B;YAbnC,sCAAgB;YACZ,oCAIiB;YACjB,uCAA8C;YAC1C,0CAAmD;YAE3D,AADI,iBAAe,EACF;;YAHC,eAAa;YAAC,AAAd,2BAAa,kBAAkB;;;AAO5C,8BAA8B;IAlB1C,aAAa,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;GAkBjD,8BAA8B,CAY1C;;iFAZY,8BAA8B;cAjB1C,SAAS;6BACM,KAAK,YACP,6BAA6B,YAC7B;;;;;;;;;;;KAWT;;kFAGQ,8BAA8B;AAc3C,MAAM,UAAU,yBAAyB;IACrC,wBAAwB;AAC5B,CAAC","sourcesContent":["/**\n * @fileoverview Archive Configuration Resource Component\n *\n * Dashboard resource wrapper for the \"Configuration\" tab in the Archiving application.\n * Delegates all rendering to the reusable mj-archive-config-admin component from\n * @memberjunction/ng-archive-manager.\n */\n\nimport { Component, AfterViewInit } from '@angular/core';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\n\n@RegisterClass(BaseResourceComponent, 'ArchiveConfigResource')\n@Component({\n standalone: false,\n selector: 'app-archive-config-resource',\n template: `\n <mj-page-layout>\n <mj-page-header\n Title=\"Archive Configuration\"\n Icon=\"fa-solid fa-sliders\"\n Subtitle=\"Configure entity archiving policies and schedules\">\n </mj-page-header>\n <mj-page-body [Flex]=\"true\" [Padding]=\"false\">\n <mj-archive-config-admin></mj-archive-config-admin>\n </mj-page-body>\n </mj-page-layout>\n `,\n styles: [`:host { display: block; height: 100%; width: 100%; }`],\n})\nexport class ArchiveConfigResourceComponent extends BaseResourceComponent implements AfterViewInit {\n ngAfterViewInit(): void {\n this.NotifyLoadComplete();\n }\n\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Archive Configuration';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-sliders';\n }\n}\n\nexport function LoadArchiveConfigResource() {\n // Prevents tree-shaking\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive-runs-resource.component.d.ts","sourceRoot":"","sources":["../../../src/Archiving/components/archive-runs-resource.component.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAa,aAAa,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;AAElE,
|
|
1
|
+
{"version":3,"file":"archive-runs-resource.component.d.ts","sourceRoot":"","sources":["../../../src/Archiving/components/archive-runs-resource.component.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAa,aAAa,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;AAElE,qBAkBa,4BAA6B,SAAQ,qBAAsB,YAAW,aAAa;IAC5F,eAAe,IAAI,IAAI;IAIjB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5D,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;yCATvD,4BAA4B;2CAA5B,4BAA4B;CAYxC;AAED,wBAAgB,uBAAuB,SAEtC"}
|
|
@@ -16,6 +16,7 @@ import { RegisterClass } from '@memberjunction/global';
|
|
|
16
16
|
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
17
17
|
import * as i0 from "@angular/core";
|
|
18
18
|
import * as i1 from "@memberjunction/ng-archive-manager";
|
|
19
|
+
import * as i2 from "@memberjunction/ng-ui-components";
|
|
19
20
|
let ArchiveRunsResourceComponent = class ArchiveRunsResourceComponent extends BaseResourceComponent {
|
|
20
21
|
ngAfterViewInit() {
|
|
21
22
|
this.NotifyLoadComplete();
|
|
@@ -27,9 +28,16 @@ let ArchiveRunsResourceComponent = class ArchiveRunsResourceComponent extends Ba
|
|
|
27
28
|
return 'fa-solid fa-clock-rotate-left';
|
|
28
29
|
}
|
|
29
30
|
static ɵfac = /*@__PURE__*/ (() => { let ɵArchiveRunsResourceComponent_BaseFactory; return function ArchiveRunsResourceComponent_Factory(__ngFactoryType__) { return (ɵArchiveRunsResourceComponent_BaseFactory || (ɵArchiveRunsResourceComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ArchiveRunsResourceComponent)))(__ngFactoryType__ || ArchiveRunsResourceComponent); }; })();
|
|
30
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArchiveRunsResourceComponent, selectors: [["app-archive-runs-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
31
|
-
i0.ɵɵ
|
|
32
|
-
|
|
31
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ArchiveRunsResourceComponent, selectors: [["app-archive-runs-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 2, consts: [["Title", "Archive Run History", "Icon", "fa-solid fa-clock-rotate-left", "Subtitle", "Execution history and results for archive jobs"], [3, "Flex", "Padding"]], template: function ArchiveRunsResourceComponent_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
+
i0.ɵɵelementStart(0, "mj-page-layout");
|
|
33
|
+
i0.ɵɵelement(1, "mj-page-header", 0);
|
|
34
|
+
i0.ɵɵelementStart(2, "mj-page-body", 1);
|
|
35
|
+
i0.ɵɵelement(3, "mj-archive-run-viewer");
|
|
36
|
+
i0.ɵɵelementEnd()();
|
|
37
|
+
} if (rf & 2) {
|
|
38
|
+
i0.ɵɵadvance(2);
|
|
39
|
+
i0.ɵɵproperty("Flex", true)("Padding", false);
|
|
40
|
+
} }, dependencies: [i1.ArchiveRunViewerComponent, i2.MJPageLayoutComponent, i2.MJPageHeaderComponent, i2.MJPageBodyComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; width: 100%; }"] });
|
|
33
41
|
};
|
|
34
42
|
ArchiveRunsResourceComponent = __decorate([
|
|
35
43
|
RegisterClass(BaseResourceComponent, 'ArchiveRunsResource')
|
|
@@ -37,9 +45,20 @@ ArchiveRunsResourceComponent = __decorate([
|
|
|
37
45
|
export { ArchiveRunsResourceComponent };
|
|
38
46
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArchiveRunsResourceComponent, [{
|
|
39
47
|
type: Component,
|
|
40
|
-
args: [{ standalone: false, selector: 'app-archive-runs-resource', template:
|
|
48
|
+
args: [{ standalone: false, selector: 'app-archive-runs-resource', template: `
|
|
49
|
+
<mj-page-layout>
|
|
50
|
+
<mj-page-header
|
|
51
|
+
Title="Archive Run History"
|
|
52
|
+
Icon="fa-solid fa-clock-rotate-left"
|
|
53
|
+
Subtitle="Execution history and results for archive jobs">
|
|
54
|
+
</mj-page-header>
|
|
55
|
+
<mj-page-body [Flex]="true" [Padding]="false">
|
|
56
|
+
<mj-archive-run-viewer></mj-archive-run-viewer>
|
|
57
|
+
</mj-page-body>
|
|
58
|
+
</mj-page-layout>
|
|
59
|
+
`, styles: [":host { display: block; height: 100%; width: 100%; }"] }]
|
|
41
60
|
}], null, null); })();
|
|
42
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ArchiveRunsResourceComponent, { className: "ArchiveRunsResourceComponent", filePath: "src/Archiving/components/archive-runs-resource.component.ts", lineNumber:
|
|
61
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ArchiveRunsResourceComponent, { className: "ArchiveRunsResourceComponent", filePath: "src/Archiving/components/archive-runs-resource.component.ts", lineNumber: 32 }); })();
|
|
43
62
|
export function LoadArchiveRunsResource() {
|
|
44
63
|
// Prevents tree-shaking
|
|
45
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive-runs-resource.component.js","sourceRoot":"","sources":["../../../src/Archiving/components/archive-runs-resource.component.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAiB,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC
|
|
1
|
+
{"version":3,"file":"archive-runs-resource.component.js","sourceRoot":"","sources":["../../../src/Archiving/components/archive-runs-resource.component.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAiB,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;;;AAoB3D,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,qBAAqB;IACnE,eAAe;QACX,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,KAAmB;QAC5C,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAAmB;QAC1C,OAAO,+BAA+B,CAAC;IAC3C,CAAC;6RAXQ,4BAA4B,yBAA5B,4BAA4B;6DAA5B,4BAA4B;YAbjC,sCAAgB;YACZ,oCAIiB;YACjB,uCAA8C;YAC1C,wCAA+C;YAEvD,AADI,iBAAe,EACF;;YAHC,eAAa;YAAC,AAAd,2BAAa,kBAAkB;;;AAO5C,4BAA4B;IAlBxC,aAAa,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;GAkB/C,4BAA4B,CAYxC;;iFAZY,4BAA4B;cAjBxC,SAAS;6BACM,KAAK,YACP,2BAA2B,YAC3B;;;;;;;;;;;KAWT;;kFAGQ,4BAA4B;AAczC,MAAM,UAAU,uBAAuB;IACnC,wBAAwB;AAC5B,CAAC","sourcesContent":["/**\n * @fileoverview Archive Runs Resource Component\n *\n * Dashboard resource wrapper for the \"Run History\" tab in the Archiving application.\n * Delegates all rendering to the reusable mj-archive-run-viewer component from\n * @memberjunction/ng-archive-manager.\n */\n\nimport { Component, AfterViewInit } from '@angular/core';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\n\n@RegisterClass(BaseResourceComponent, 'ArchiveRunsResource')\n@Component({\n standalone: false,\n selector: 'app-archive-runs-resource',\n template: `\n <mj-page-layout>\n <mj-page-header\n Title=\"Archive Run History\"\n Icon=\"fa-solid fa-clock-rotate-left\"\n Subtitle=\"Execution history and results for archive jobs\">\n </mj-page-header>\n <mj-page-body [Flex]=\"true\" [Padding]=\"false\">\n <mj-archive-run-viewer></mj-archive-run-viewer>\n </mj-page-body>\n </mj-page-layout>\n `,\n styles: [`:host { display: block; height: 100%; width: 100%; }`],\n})\nexport class ArchiveRunsResourceComponent extends BaseResourceComponent implements AfterViewInit {\n ngAfterViewInit(): void {\n this.NotifyLoadComplete();\n }\n\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Archive Run History';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-clock-rotate-left';\n }\n}\n\nexport function LoadArchiveRunsResource() {\n // Prevents tree-shaking\n}\n"]}
|
|
@@ -13,7 +13,7 @@ export declare class CommunicationLogsResourceComponent extends BaseResourceComp
|
|
|
13
13
|
ngOnInit(): Promise<void>;
|
|
14
14
|
ngOnDestroy(): void;
|
|
15
15
|
loadData(): Promise<void>;
|
|
16
|
-
|
|
16
|
+
onSearchValue(value: string): void;
|
|
17
17
|
onStatusFilter(status: string): void;
|
|
18
18
|
getStatusClass(status: string): string;
|
|
19
19
|
getStatusIcon(status: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"communication-logs-resource.component.d.ts","sourceRoot":"","sources":["../../src/Communication/communication-logs-resource.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;AAElE,
|
|
1
|
+
{"version":3,"file":"communication-logs-resource.component.d.ts","sourceRoot":"","sources":["../../src/Communication/communication-logs-resource.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;AAElE,qBA6La,kCAAmC,SAAQ,qBAAsB,YAAW,MAAM,EAAE,SAAS;IAO1F,OAAO,CAAC,GAAG;IANhB,IAAI,EAAE,wBAAwB,EAAE,CAAM;IACtC,YAAY,EAAE,wBAAwB,EAAE,CAAM;IAC9C,SAAS,UAAS;IAClB,YAAY,SAAM;IACzB,OAAO,CAAC,UAAU,CAAM;gBAEJ,GAAG,EAAE,iBAAiB;IAIpC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B,WAAW,IAAI,IAAI;IAIN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB/B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKpC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAStC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IASrC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAUrC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAU7C,OAAO,CAAC,WAAW;IAoBb,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3D,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;yCAtHtD,kCAAkC;2CAAlC,kCAAkC;CAyH9C"}
|
|
@@ -10,8 +10,9 @@ 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
|
-
|
|
14
|
-
|
|
13
|
+
import * as i2 from "@memberjunction/ng-ui-components";
|
|
14
|
+
function CommunicationLogsResourceComponent_For_30_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
15
|
+
i0.ɵɵelementStart(0, "span", 16);
|
|
15
16
|
i0.ɵɵtext(1);
|
|
16
17
|
i0.ɵɵelementEnd();
|
|
17
18
|
} if (rf & 2) {
|
|
@@ -20,21 +21,21 @@ function CommunicationLogsResourceComponent_For_40_Conditional_19_Template(rf, c
|
|
|
20
21
|
i0.ɵɵadvance();
|
|
21
22
|
i0.ɵɵtextInterpolate1(" ", log_r1.ErrorMessage, " ");
|
|
22
23
|
} }
|
|
23
|
-
function
|
|
24
|
-
i0.ɵɵelementStart(0, "span",
|
|
24
|
+
function CommunicationLogsResourceComponent_For_30_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
25
|
+
i0.ɵɵelementStart(0, "span", 17);
|
|
25
26
|
i0.ɵɵtext(1, "\u2014");
|
|
26
27
|
i0.ɵɵelementEnd();
|
|
27
28
|
} }
|
|
28
|
-
function
|
|
29
|
-
i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span",
|
|
29
|
+
function CommunicationLogsResourceComponent_For_30_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
+
i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 13);
|
|
30
31
|
i0.ɵɵelement(3, "i");
|
|
31
32
|
i0.ɵɵtext(4);
|
|
32
33
|
i0.ɵɵelementEnd()();
|
|
33
|
-
i0.ɵɵelementStart(5, "td")(6, "span",
|
|
34
|
+
i0.ɵɵelementStart(5, "td")(6, "span", 14);
|
|
34
35
|
i0.ɵɵelement(7, "i");
|
|
35
36
|
i0.ɵɵtext(8);
|
|
36
37
|
i0.ɵɵelementEnd()();
|
|
37
|
-
i0.ɵɵelementStart(9, "td")(10, "span",
|
|
38
|
+
i0.ɵɵelementStart(9, "td")(10, "span", 15);
|
|
38
39
|
i0.ɵɵelement(11, "i");
|
|
39
40
|
i0.ɵɵtext(12);
|
|
40
41
|
i0.ɵɵelementEnd()();
|
|
@@ -46,8 +47,8 @@ function CommunicationLogsResourceComponent_For_40_Template(rf, ctx) { if (rf &
|
|
|
46
47
|
i0.ɵɵpipe(17, "date");
|
|
47
48
|
i0.ɵɵelementEnd();
|
|
48
49
|
i0.ɵɵelementStart(18, "td");
|
|
49
|
-
i0.ɵɵconditionalCreate(19,
|
|
50
|
-
i0.ɵɵconditionalCreate(20,
|
|
50
|
+
i0.ɵɵconditionalCreate(19, CommunicationLogsResourceComponent_For_30_Conditional_19_Template, 2, 2, "span", 16);
|
|
51
|
+
i0.ɵɵconditionalCreate(20, CommunicationLogsResourceComponent_For_30_Conditional_20_Template, 2, 0, "span", 17);
|
|
51
52
|
i0.ɵɵelementEnd()();
|
|
52
53
|
} if (rf & 2) {
|
|
53
54
|
const log_r1 = ctx.$implicit;
|
|
@@ -78,9 +79,9 @@ function CommunicationLogsResourceComponent_For_40_Template(rf, ctx) { if (rf &
|
|
|
78
79
|
i0.ɵɵadvance();
|
|
79
80
|
i0.ɵɵconditional(!log_r1.ErrorMessage ? 20 : -1);
|
|
80
81
|
} }
|
|
81
|
-
function
|
|
82
|
-
i0.ɵɵelementStart(0, "tr")(1, "td",
|
|
83
|
-
i0.ɵɵelement(3, "i",
|
|
82
|
+
function CommunicationLogsResourceComponent_Conditional_31_Template(rf, ctx) { if (rf & 1) {
|
|
83
|
+
i0.ɵɵelementStart(0, "tr")(1, "td", 18)(2, "div", 19);
|
|
84
|
+
i0.ɵɵelement(3, "i", 20);
|
|
84
85
|
i0.ɵɵelementStart(4, "p");
|
|
85
86
|
i0.ɵɵtext(5, "No logs found matching your criteria");
|
|
86
87
|
i0.ɵɵelementEnd()()()();
|
|
@@ -128,8 +129,8 @@ let CommunicationLogsResourceComponent = class CommunicationLogsResourceComponen
|
|
|
128
129
|
this.cdr.detectChanges();
|
|
129
130
|
}
|
|
130
131
|
}
|
|
131
|
-
|
|
132
|
-
this.searchTerm =
|
|
132
|
+
onSearchValue(value) {
|
|
133
|
+
this.searchTerm = (value ?? '').toLowerCase();
|
|
133
134
|
this.applyFilter();
|
|
134
135
|
}
|
|
135
136
|
onStatusFilter(status) {
|
|
@@ -209,76 +210,65 @@ let CommunicationLogsResourceComponent = class CommunicationLogsResourceComponen
|
|
|
209
210
|
return 'fa-solid fa-list-ul';
|
|
210
211
|
}
|
|
211
212
|
static ɵfac = function CommunicationLogsResourceComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CommunicationLogsResourceComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
212
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CommunicationLogsResourceComponent, selectors: [["mj-communication-logs-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
213
|
-
i0.ɵɵelementStart(0, "
|
|
214
|
-
i0.ɵɵ
|
|
215
|
-
i0.ɵɵelementStart(5, "input", 5);
|
|
216
|
-
i0.ɵɵlistener("input", function CommunicationLogsResourceComponent_Template_input_input_5_listener($event) { return ctx.onSearch($event); });
|
|
213
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CommunicationLogsResourceComponent, selectors: [["mj-communication-logs-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 32, vars: 7, consts: [["Title", "Logs", "Icon", "fa-solid fa-list-ul"], ["actions", ""], [3, "Clicked", "Loading"], ["toolbar", ""], ["Placeholder", "Search messages, providers, recipients...", 3, "ValueChange"], ["Label", "All", "Icon", "fa-solid fa-filter", 3, "Clicked", "Active"], ["Label", "Sent", "Icon", "fa-solid fa-check-circle", 3, "Clicked", "Active"], ["Label", "Failed", "Icon", "fa-solid fa-times-circle", 3, "Clicked", "Active"], ["Label", "Pending", "Icon", "fa-solid fa-clock", 3, "Clicked", "Active"], [3, "Flex"], [1, "logs-card"], [1, "table-wrapper"], [1, "log-table"], [1, "log-status-badge", 3, "ngClass"], [1, "log-direction", 3, "ngClass"], [1, "log-provider-badge"], [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) {
|
|
214
|
+
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 0)(2, "div", 1)(3, "mj-refresh-button", 2);
|
|
215
|
+
i0.ɵɵlistener("Clicked", function CommunicationLogsResourceComponent_Template_mj_refresh_button_Clicked_3_listener() { return ctx.loadData(); });
|
|
217
216
|
i0.ɵɵelementEnd()();
|
|
218
|
-
i0.ɵɵelementStart(
|
|
219
|
-
i0.ɵɵlistener("
|
|
220
|
-
i0.ɵɵelement(7, "i", 7);
|
|
221
|
-
i0.ɵɵtext(8, " All ");
|
|
217
|
+
i0.ɵɵelementStart(4, "div", 3)(5, "mj-page-search", 4);
|
|
218
|
+
i0.ɵɵlistener("ValueChange", function CommunicationLogsResourceComponent_Template_mj_page_search_ValueChange_5_listener($event) { return ctx.onSearchValue($event); });
|
|
222
219
|
i0.ɵɵelementEnd();
|
|
223
|
-
i0.ɵɵelementStart(
|
|
224
|
-
i0.ɵɵlistener("
|
|
225
|
-
i0.ɵɵelement(10, "i", 8);
|
|
226
|
-
i0.ɵɵtext(11, " Sent ");
|
|
220
|
+
i0.ɵɵelementStart(6, "mj-filter-chip", 5);
|
|
221
|
+
i0.ɵɵlistener("Clicked", function CommunicationLogsResourceComponent_Template_mj_filter_chip_Clicked_6_listener() { return ctx.onStatusFilter(""); });
|
|
227
222
|
i0.ɵɵelementEnd();
|
|
228
|
-
i0.ɵɵelementStart(
|
|
229
|
-
i0.ɵɵlistener("
|
|
230
|
-
i0.ɵɵelement(13, "i", 9);
|
|
231
|
-
i0.ɵɵtext(14, " Failed ");
|
|
223
|
+
i0.ɵɵelementStart(7, "mj-filter-chip", 6);
|
|
224
|
+
i0.ɵɵlistener("Clicked", function CommunicationLogsResourceComponent_Template_mj_filter_chip_Clicked_7_listener() { return ctx.onStatusFilter("Complete"); });
|
|
232
225
|
i0.ɵɵelementEnd();
|
|
233
|
-
i0.ɵɵelementStart(
|
|
234
|
-
i0.ɵɵlistener("
|
|
235
|
-
i0.ɵɵelement(16, "i", 10);
|
|
236
|
-
i0.ɵɵtext(17, " Pending ");
|
|
226
|
+
i0.ɵɵelementStart(8, "mj-filter-chip", 7);
|
|
227
|
+
i0.ɵɵlistener("Clicked", function CommunicationLogsResourceComponent_Template_mj_filter_chip_Clicked_8_listener() { return ctx.onStatusFilter("Failed"); });
|
|
237
228
|
i0.ɵɵelementEnd();
|
|
238
|
-
i0.ɵɵ
|
|
239
|
-
i0.ɵɵ
|
|
240
|
-
i0.ɵɵ
|
|
241
|
-
i0.ɵɵ
|
|
242
|
-
i0.ɵɵtext(
|
|
243
|
-
i0.ɵɵelementEnd()();
|
|
244
|
-
i0.ɵɵelementStart(22, "div", 14)(23, "table", 15)(24, "thead")(25, "tr")(26, "th");
|
|
245
|
-
i0.ɵɵtext(27, "Status");
|
|
229
|
+
i0.ɵɵelementStart(9, "mj-filter-chip", 8);
|
|
230
|
+
i0.ɵɵlistener("Clicked", function CommunicationLogsResourceComponent_Template_mj_filter_chip_Clicked_9_listener() { return ctx.onStatusFilter("Pending"); });
|
|
231
|
+
i0.ɵɵelementEnd()()();
|
|
232
|
+
i0.ɵɵelementStart(10, "mj-page-body", 9)(11, "div", 10)(12, "div", 11)(13, "table", 12)(14, "thead")(15, "tr")(16, "th");
|
|
233
|
+
i0.ɵɵtext(17, "Status");
|
|
246
234
|
i0.ɵɵelementEnd();
|
|
247
|
-
i0.ɵɵelementStart(
|
|
248
|
-
i0.ɵɵtext(
|
|
235
|
+
i0.ɵɵelementStart(18, "th");
|
|
236
|
+
i0.ɵɵtext(19, "Direction");
|
|
249
237
|
i0.ɵɵelementEnd();
|
|
250
|
-
i0.ɵɵelementStart(
|
|
251
|
-
i0.ɵɵtext(
|
|
238
|
+
i0.ɵɵelementStart(20, "th");
|
|
239
|
+
i0.ɵɵtext(21, "Provider");
|
|
252
240
|
i0.ɵɵelementEnd();
|
|
253
|
-
i0.ɵɵelementStart(
|
|
254
|
-
i0.ɵɵtext(
|
|
241
|
+
i0.ɵɵelementStart(22, "th");
|
|
242
|
+
i0.ɵɵtext(23, "Type");
|
|
255
243
|
i0.ɵɵelementEnd();
|
|
256
|
-
i0.ɵɵelementStart(
|
|
257
|
-
i0.ɵɵtext(
|
|
244
|
+
i0.ɵɵelementStart(24, "th");
|
|
245
|
+
i0.ɵɵtext(25, "Date");
|
|
258
246
|
i0.ɵɵelementEnd();
|
|
259
|
-
i0.ɵɵelementStart(
|
|
260
|
-
i0.ɵɵtext(
|
|
247
|
+
i0.ɵɵelementStart(26, "th");
|
|
248
|
+
i0.ɵɵtext(27, "Error");
|
|
261
249
|
i0.ɵɵelementEnd()()();
|
|
262
|
-
i0.ɵɵelementStart(
|
|
263
|
-
i0.ɵɵrepeaterCreate(
|
|
264
|
-
i0.ɵɵconditionalCreate(
|
|
265
|
-
i0.ɵɵelementEnd()()()()();
|
|
250
|
+
i0.ɵɵelementStart(28, "tbody");
|
|
251
|
+
i0.ɵɵrepeaterCreate(29, CommunicationLogsResourceComponent_For_30_Template, 21, 20, "tr", null, i0.ɵɵrepeaterTrackByIdentity);
|
|
252
|
+
i0.ɵɵconditionalCreate(31, CommunicationLogsResourceComponent_Conditional_31_Template, 6, 0, "tr");
|
|
253
|
+
i0.ɵɵelementEnd()()()()()();
|
|
266
254
|
} if (rf & 2) {
|
|
267
|
-
i0.ɵɵadvance(6);
|
|
268
|
-
i0.ɵɵclassProp("active", ctx.statusFilter === "");
|
|
269
|
-
i0.ɵɵadvance(3);
|
|
270
|
-
i0.ɵɵclassProp("active", ctx.statusFilter === "Complete");
|
|
271
255
|
i0.ɵɵadvance(3);
|
|
272
|
-
i0.ɵɵ
|
|
256
|
+
i0.ɵɵproperty("Loading", ctx.isLoading);
|
|
273
257
|
i0.ɵɵadvance(3);
|
|
274
|
-
i0.ɵɵ
|
|
275
|
-
i0.ɵɵadvance(
|
|
276
|
-
i0.ɵɵ
|
|
258
|
+
i0.ɵɵproperty("Active", ctx.statusFilter === "");
|
|
259
|
+
i0.ɵɵadvance();
|
|
260
|
+
i0.ɵɵproperty("Active", ctx.statusFilter === "Complete");
|
|
261
|
+
i0.ɵɵadvance();
|
|
262
|
+
i0.ɵɵproperty("Active", ctx.statusFilter === "Failed");
|
|
263
|
+
i0.ɵɵadvance();
|
|
264
|
+
i0.ɵɵproperty("Active", ctx.statusFilter === "Pending");
|
|
265
|
+
i0.ɵɵadvance();
|
|
266
|
+
i0.ɵɵproperty("Flex", true);
|
|
277
267
|
i0.ɵɵadvance(19);
|
|
278
268
|
i0.ɵɵrepeater(ctx.filteredLogs);
|
|
279
269
|
i0.ɵɵadvance(2);
|
|
280
|
-
i0.ɵɵconditional(ctx.filteredLogs.length === 0 && !ctx.isLoading ?
|
|
281
|
-
} }, dependencies: [i1.NgClass,
|
|
270
|
+
i0.ɵɵconditional(ctx.filteredLogs.length === 0 && !ctx.isLoading ? 31 : -1);
|
|
271
|
+
} }, dependencies: [i1.NgClass, i2.MJPageHeaderComponent, i2.MJPageLayoutComponent, i2.MJPageBodyComponent, i2.MJPageSearchComponent, i2.MJFilterChipComponent, i2.MJRefreshButtonComponent, i1.DatePipe], styles: ["\n\n .logs-card[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\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(--mj-bg-surface-sunken);\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(--mj-text-muted);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n }\n .log-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\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(--mj-bg-surface-sunken); }\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: 4px;\n }\n .log-status-badge.complete[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .log-status-badge.failed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .log-status-badge.pending[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n .log-status-badge.in-progress[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n\n .log-direction[_ngcontent-%COMP%] {\n display: flex; align-items: center;\n gap: 4px; font-size: 11px;\n color: var(--mj-text-muted);\n }\n .log-direction[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 10px; }\n .log-direction.sending[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .log-direction.receiving[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n\n .log-provider-badge[_ngcontent-%COMP%] {\n display: inline-flex; align-items: center;\n gap: 6px; padding: 3px 10px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n font-weight: 500;\n }\n\n .log-error-text[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\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(--mj-text-muted); }\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(--mj-text-muted);\n }\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 2rem; margin-bottom: 12px; opacity: 0.5; }\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] { margin: 0; font-size: 13px; }"] });
|
|
282
272
|
};
|
|
283
273
|
CommunicationLogsResourceComponent = __decorate([
|
|
284
274
|
RegisterClass(BaseResourceComponent, 'CommunicationLogsResource')
|
|
@@ -287,34 +277,24 @@ export { CommunicationLogsResourceComponent };
|
|
|
287
277
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CommunicationLogsResourceComponent, [{
|
|
288
278
|
type: Component,
|
|
289
279
|
args: [{ standalone: false, selector: 'mj-communication-logs-resource', template: `
|
|
290
|
-
<
|
|
291
|
-
<
|
|
292
|
-
<div
|
|
293
|
-
<
|
|
294
|
-
<i class="fa-solid fa-search"></i>
|
|
295
|
-
<input type="text" placeholder="Search messages, providers, recipients..." (input)="onSearch($event)">
|
|
296
|
-
</div>
|
|
297
|
-
<div class="filter-chip" [class.active]="statusFilter === ''"
|
|
298
|
-
(click)="onStatusFilter('')">
|
|
299
|
-
<i class="fa-solid fa-filter"></i> All
|
|
300
|
-
</div>
|
|
301
|
-
<div class="filter-chip" [class.active]="statusFilter === 'Complete'"
|
|
302
|
-
(click)="onStatusFilter('Complete')">
|
|
303
|
-
<i class="fa-solid fa-check-circle"></i> Sent
|
|
304
|
-
</div>
|
|
305
|
-
<div class="filter-chip" [class.active]="statusFilter === 'Failed'"
|
|
306
|
-
(click)="onStatusFilter('Failed')">
|
|
307
|
-
<i class="fa-solid fa-times-circle"></i> Failed
|
|
308
|
-
</div>
|
|
309
|
-
<div class="filter-chip" [class.active]="statusFilter === 'Pending'"
|
|
310
|
-
(click)="onStatusFilter('Pending')">
|
|
311
|
-
<i class="fa-solid fa-clock"></i> Pending
|
|
312
|
-
</div>
|
|
313
|
-
<div class="toolbar-spacer"></div>
|
|
314
|
-
<button class="tb-btn" (click)="loadData()">
|
|
315
|
-
<i class="fa-solid fa-rotate" [class.spinning]="isLoading"></i> Refresh
|
|
316
|
-
</button>
|
|
280
|
+
<mj-page-layout>
|
|
281
|
+
<mj-page-header Title="Logs" Icon="fa-solid fa-list-ul">
|
|
282
|
+
<div actions>
|
|
283
|
+
<mj-refresh-button [Loading]="isLoading" (Clicked)="loadData()"></mj-refresh-button>
|
|
317
284
|
</div>
|
|
285
|
+
<div toolbar>
|
|
286
|
+
<mj-page-search
|
|
287
|
+
Placeholder="Search messages, providers, recipients..."
|
|
288
|
+
(ValueChange)="onSearchValue($event)">
|
|
289
|
+
</mj-page-search>
|
|
290
|
+
<mj-filter-chip Label="All" Icon="fa-solid fa-filter" [Active]="statusFilter === ''" (Clicked)="onStatusFilter('')"></mj-filter-chip>
|
|
291
|
+
<mj-filter-chip Label="Sent" Icon="fa-solid fa-check-circle" [Active]="statusFilter === 'Complete'" (Clicked)="onStatusFilter('Complete')"></mj-filter-chip>
|
|
292
|
+
<mj-filter-chip Label="Failed" Icon="fa-solid fa-times-circle" [Active]="statusFilter === 'Failed'" (Clicked)="onStatusFilter('Failed')"></mj-filter-chip>
|
|
293
|
+
<mj-filter-chip Label="Pending" Icon="fa-solid fa-clock" [Active]="statusFilter === 'Pending'" (Clicked)="onStatusFilter('Pending')"></mj-filter-chip>
|
|
294
|
+
</div>
|
|
295
|
+
</mj-page-header>
|
|
296
|
+
<mj-page-body [Flex]="true">
|
|
297
|
+
<div class="logs-card">
|
|
318
298
|
<div class="table-wrapper">
|
|
319
299
|
<table class="log-table">
|
|
320
300
|
<thead>
|
|
@@ -375,9 +355,10 @@ export { CommunicationLogsResourceComponent };
|
|
|
375
355
|
</tbody>
|
|
376
356
|
</table>
|
|
377
357
|
</div>
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
358
|
+
</div>
|
|
359
|
+
</mj-page-body>
|
|
360
|
+
</mj-page-layout>
|
|
361
|
+
`, styles: ["\n /* Card wrapper inside <mj-page-body>: the table sits in a tinted card. */\n .logs-card {\n flex: 1;\n min-height: 0;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\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(--mj-bg-surface-sunken);\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(--mj-text-muted);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n }\n .log-table td {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n vertical-align: middle;\n }\n .log-table tbody tr { transition: background 0.15s; }\n .log-table tbody tr:hover { background: var(--mj-bg-surface-sunken); }\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: 4px;\n }\n .log-status-badge.complete {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .log-status-badge.failed {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .log-status-badge.pending {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n .log-status-badge.in-progress {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n\n .log-direction {\n display: flex; align-items: center;\n gap: 4px; font-size: 11px;\n color: var(--mj-text-muted);\n }\n .log-direction i { font-size: 10px; }\n .log-direction.sending i { color: var(--mj-brand-primary); }\n .log-direction.receiving i { color: var(--mj-status-success); }\n\n .log-provider-badge {\n display: inline-flex; align-items: center;\n gap: 6px; padding: 3px 10px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n font-weight: 500;\n }\n\n .log-error-text {\n color: var(--mj-status-error);\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(--mj-text-muted); }\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(--mj-text-muted);\n }\n .empty-state i { font-size: 2rem; margin-bottom: 12px; opacity: 0.5; }\n .empty-state p { margin: 0; font-size: 13px; }\n "] }]
|
|
381
362
|
}], () => [{ type: i0.ChangeDetectorRef }], null); })();
|
|
382
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CommunicationLogsResourceComponent, { className: "CommunicationLogsResourceComponent", filePath: "src/Communication/communication-logs-resource.component.ts", lineNumber:
|
|
363
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CommunicationLogsResourceComponent, { className: "CommunicationLogsResourceComponent", filePath: "src/Communication/communication-logs-resource.component.ts", lineNumber: 195 }); })();
|
|
383
364
|
//# 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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","sourcesContent":["import { Component, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { ResourceData, MJCommunicationLogEntity } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { RunView } from '@memberjunction/core';\n@RegisterClass(BaseResourceComponent, 'CommunicationLogsResource')\n@Component({\n standalone: false,\n selector: 'mj-communication-logs-resource',\n template: `\n <div class=\"logs-wrapper\">\n <div class=\"card\">\n <div class=\"logs-toolbar\">\n <div class=\"search-input-wrapper\">\n <i class=\"fa-solid fa-search\"></i>\n <input type=\"text\" placeholder=\"Search messages, providers, recipients...\" (input)=\"onSearch($event)\">\n </div>\n <div class=\"filter-chip\" [class.active]=\"statusFilter === ''\"\n (click)=\"onStatusFilter('')\">\n <i class=\"fa-solid fa-filter\"></i> All\n </div>\n <div class=\"filter-chip\" [class.active]=\"statusFilter === 'Complete'\"\n (click)=\"onStatusFilter('Complete')\">\n <i class=\"fa-solid fa-check-circle\"></i> Sent\n </div>\n <div class=\"filter-chip\" [class.active]=\"statusFilter === 'Failed'\"\n (click)=\"onStatusFilter('Failed')\">\n <i class=\"fa-solid fa-times-circle\"></i> Failed\n </div>\n <div class=\"filter-chip\" [class.active]=\"statusFilter === 'Pending'\"\n (click)=\"onStatusFilter('Pending')\">\n <i class=\"fa-solid fa-clock\"></i> Pending\n </div>\n <div class=\"toolbar-spacer\"></div>\n <button class=\"tb-btn\" (click)=\"loadData()\">\n <i class=\"fa-solid fa-rotate\" [class.spinning]=\"isLoading\"></i> Refresh\n </button>\n </div>\n <div class=\"table-wrapper\">\n <table class=\"log-table\">\n <thead>\n <tr>\n <th>Status</th>\n <th>Direction</th>\n <th>Provider</th>\n <th>Type</th>\n <th>Date</th>\n <th>Error</th>\n </tr>\n </thead>\n <tbody>\n @for (log of filteredLogs; track log) {\n <tr>\n <td>\n <span class=\"log-status-badge\" [ngClass]=\"getStatusClass(log.Status)\">\n <i [class]=\"getStatusIcon(log.Status)\"></i>\n {{log.Status}}\n </span>\n </td>\n <td>\n <span class=\"log-direction\" [ngClass]=\"log.Direction.toLowerCase()\">\n <i [class]=\"log.Direction === 'Sending' ? 'fa-solid fa-arrow-up-right' : 'fa-solid fa-arrow-down-left'\"></i>\n {{log.Direction}}\n </span>\n </td>\n <td>\n <span class=\"log-provider-badge\">\n <i [class]=\"getProviderIcon(log.CommunicationProvider)\" [style.color]=\"getProviderColor(log.CommunicationProvider)\"></i>\n {{log.CommunicationProvider}}\n </span>\n </td>\n <td>{{log.CommunicationProviderMessageType}}</td>\n <td>{{log.MessageDate | date:'medium'}}</td>\n <td>\n @if (log.ErrorMessage) {\n <span class=\"log-error-text\" [title]=\"log.ErrorMessage\">\n {{log.ErrorMessage}}\n </span>\n }\n @if (!log.ErrorMessage) {\n <span class=\"no-error\">—</span>\n }\n </td>\n </tr>\n }\n @if (filteredLogs.length === 0 && !isLoading) {\n <tr>\n <td colspan=\"6\" class=\"no-data\">\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No logs found matching your criteria</p>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n </div>\n `,\n styles: [`\n .logs-wrapper {\n height: 100%;\n padding: 24px;\n background: var(--mj-bg-surface);\n }\n .card {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n 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(--mj-border-default);\n background: var(--mj-bg-surface-sunken);\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(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n transition: border-color 0.15s, box-shadow 0.15s;\n }\n .search-input-wrapper:focus-within {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n }\n .search-input-wrapper i { color: var(--mj-text-muted); 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(--mj-text-primary);\n }\n .search-input-wrapper input::placeholder { color: var(--mj-text-muted); }\n\n .filter-chip {\n display: inline-flex; align-items: center;\n gap: 4px; padding: 4px 10px;\n border: 1px solid var(--mj-border-default);\n border-radius: 16px;\n background: var(--mj-bg-surface-card);\n font-size: 11px; font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer; transition: all 0.15s;\n }\n .filter-chip:hover {\n border-color: var(--mj-border-strong);\n background: var(--mj-bg-surface-sunken);\n }\n .filter-chip.active {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\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(--mj-border-default);\n border-radius: 4px;\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\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(--mj-bg-surface-sunken);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\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(--mj-bg-surface-sunken);\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(--mj-text-muted);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n }\n .log-table td {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n vertical-align: middle;\n }\n .log-table tbody tr { transition: background 0.15s; }\n .log-table tbody tr:hover { background: var(--mj-bg-surface-sunken); }\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: 4px;\n }\n .log-status-badge.complete {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .log-status-badge.failed {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .log-status-badge.pending {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n .log-status-badge.in-progress {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n\n .log-direction {\n display: flex; align-items: center;\n gap: 4px; font-size: 11px;\n color: var(--mj-text-muted);\n }\n .log-direction i { font-size: 10px; }\n .log-direction.sending i { color: var(--mj-brand-primary); }\n .log-direction.receiving i { color: var(--mj-status-success); }\n\n .log-provider-badge {\n display: inline-flex; align-items: center;\n gap: 6px; padding: 3px 10px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n font-weight: 500;\n }\n\n .log-error-text {\n color: var(--mj-status-error);\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(--mj-text-muted); }\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(--mj-text-muted);\n }\n .empty-state i { font-size: 2rem; margin-bottom: 12px; opacity: 0.5; }\n .empty-state p { margin: 0; font-size: 13px; }\n `]\n})\nexport class CommunicationLogsResourceComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n public logs: MJCommunicationLogEntity[] = [];\n public filteredLogs: MJCommunicationLogEntity[] = [];\n public isLoading = false;\n public statusFilter = '';\n private searchTerm = '';\n\n constructor(private cdr: ChangeDetectorRef) {\n super();\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n await this.loadData();\n this.NotifyLoadComplete();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n public async loadData(): Promise<void> {\n try {\n this.isLoading = true;\n this.cdr.detectChanges();\n\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<MJCommunicationLogEntity>({\n EntityName: 'MJ: Communication Logs',\n OrderBy: 'MessageDate DESC',\n MaxRows: 200,\n ResultType: 'entity_object'\n });\n\n if (result.Success) {\n this.logs = result.Results;\n this.applyFilter();\n }\n } catch (error) {\n console.error('Error loading logs:', error);\n } finally {\n this.isLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n public onSearch(event: Event): void {\n this.searchTerm = (event.target as HTMLInputElement).value.toLowerCase();\n this.applyFilter();\n }\n\n public onStatusFilter(status: string): void {\n this.statusFilter = status;\n this.applyFilter();\n }\n\n public getStatusClass(status: string): string {\n const s = (status || '').toLowerCase();\n if (s === 'complete') return 'complete';\n if (s === 'failed') return 'failed';\n if (s === 'pending') return 'pending';\n if (s === 'in-progress') return 'in-progress';\n return '';\n }\n\n public getStatusIcon(status: string): string {\n const s = (status || '').toLowerCase();\n if (s === 'complete') return 'fa-solid fa-check';\n if (s === 'failed') return 'fa-solid fa-xmark';\n if (s === 'pending') return 'fa-solid fa-clock';\n if (s === 'in-progress') return 'fa-solid fa-spinner';\n return 'fa-solid fa-circle';\n }\n\n public getProviderIcon(name: string): string {\n if (!name) return 'fa-solid fa-server';\n const n = name.toLowerCase();\n if (n.includes('sendgrid')) return 'fa-solid fa-envelope';\n if (n.includes('twilio')) return 'fa-solid fa-comment-sms';\n if (n.includes('gmail') || n.includes('google')) return 'fa-brands fa-google';\n if (n.includes('microsoft') || n.includes('graph')) return 'fa-brands fa-microsoft';\n return 'fa-solid fa-server';\n }\n\n public getProviderColor(name: string): string {\n if (!name) return 'inherit';\n const n = name.toLowerCase();\n if (n.includes('sendgrid')) return '#1A82E2';\n if (n.includes('twilio')) return '#F22F46';\n if (n.includes('gmail') || n.includes('google')) return '#EA4335';\n if (n.includes('microsoft') || n.includes('graph')) return '#0078D4';\n return 'inherit';\n }\n\n private applyFilter(): void {\n let filtered = this.logs;\n\n if (this.statusFilter) {\n filtered = filtered.filter(l => l.Status === this.statusFilter);\n }\n\n if (this.searchTerm) {\n filtered = filtered.filter(l =>\n l.CommunicationProvider?.toLowerCase().includes(this.searchTerm) ||\n l.CommunicationProviderMessageType?.toLowerCase().includes(this.searchTerm) ||\n l.Status?.toLowerCase().includes(this.searchTerm) ||\n l.ErrorMessage?.toLowerCase().includes(this.searchTerm)\n );\n }\n\n this.filteredLogs = filtered;\n this.cdr.detectChanges();\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Message Logs';\n }\n\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-list-ul';\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"communication-logs-resource.component.js","sourceRoot":"","sources":["../../src/Communication/communication-logs-resource.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { ResourceData, MJCommunicationLogEntity } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { RunView } from '@memberjunction/core';\n@RegisterClass(BaseResourceComponent, 'CommunicationLogsResource')\n@Component({\n standalone: false,\n selector: 'mj-communication-logs-resource',\n template: `\n <mj-page-layout>\n <mj-page-header Title=\"Logs\" Icon=\"fa-solid fa-list-ul\">\n <div actions>\n <mj-refresh-button [Loading]=\"isLoading\" (Clicked)=\"loadData()\"></mj-refresh-button>\n </div>\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search messages, providers, recipients...\"\n (ValueChange)=\"onSearchValue($event)\">\n </mj-page-search>\n <mj-filter-chip Label=\"All\" Icon=\"fa-solid fa-filter\" [Active]=\"statusFilter === ''\" (Clicked)=\"onStatusFilter('')\"></mj-filter-chip>\n <mj-filter-chip Label=\"Sent\" Icon=\"fa-solid fa-check-circle\" [Active]=\"statusFilter === 'Complete'\" (Clicked)=\"onStatusFilter('Complete')\"></mj-filter-chip>\n <mj-filter-chip Label=\"Failed\" Icon=\"fa-solid fa-times-circle\" [Active]=\"statusFilter === 'Failed'\" (Clicked)=\"onStatusFilter('Failed')\"></mj-filter-chip>\n <mj-filter-chip Label=\"Pending\" Icon=\"fa-solid fa-clock\" [Active]=\"statusFilter === 'Pending'\" (Clicked)=\"onStatusFilter('Pending')\"></mj-filter-chip>\n </div>\n </mj-page-header>\n <mj-page-body [Flex]=\"true\">\n <div class=\"logs-card\">\n <div class=\"table-wrapper\">\n <table class=\"log-table\">\n <thead>\n <tr>\n <th>Status</th>\n <th>Direction</th>\n <th>Provider</th>\n <th>Type</th>\n <th>Date</th>\n <th>Error</th>\n </tr>\n </thead>\n <tbody>\n @for (log of filteredLogs; track log) {\n <tr>\n <td>\n <span class=\"log-status-badge\" [ngClass]=\"getStatusClass(log.Status)\">\n <i [class]=\"getStatusIcon(log.Status)\"></i>\n {{log.Status}}\n </span>\n </td>\n <td>\n <span class=\"log-direction\" [ngClass]=\"log.Direction.toLowerCase()\">\n <i [class]=\"log.Direction === 'Sending' ? 'fa-solid fa-arrow-up-right' : 'fa-solid fa-arrow-down-left'\"></i>\n {{log.Direction}}\n </span>\n </td>\n <td>\n <span class=\"log-provider-badge\">\n <i [class]=\"getProviderIcon(log.CommunicationProvider)\" [style.color]=\"getProviderColor(log.CommunicationProvider)\"></i>\n {{log.CommunicationProvider}}\n </span>\n </td>\n <td>{{log.CommunicationProviderMessageType}}</td>\n <td>{{log.MessageDate | date:'medium'}}</td>\n <td>\n @if (log.ErrorMessage) {\n <span class=\"log-error-text\" [title]=\"log.ErrorMessage\">\n {{log.ErrorMessage}}\n </span>\n }\n @if (!log.ErrorMessage) {\n <span class=\"no-error\">—</span>\n }\n </td>\n </tr>\n }\n @if (filteredLogs.length === 0 && !isLoading) {\n <tr>\n <td colspan=\"6\" class=\"no-data\">\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No logs found matching your criteria</p>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n </mj-page-body>\n </mj-page-layout>\n `,\n styles: [`\n /* Card wrapper inside <mj-page-body>: the table sits in a tinted card. */\n .logs-card {\n flex: 1;\n min-height: 0;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\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(--mj-bg-surface-sunken);\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(--mj-text-muted);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n }\n .log-table td {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n vertical-align: middle;\n }\n .log-table tbody tr { transition: background 0.15s; }\n .log-table tbody tr:hover { background: var(--mj-bg-surface-sunken); }\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: 4px;\n }\n .log-status-badge.complete {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n .log-status-badge.failed {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n .log-status-badge.pending {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n .log-status-badge.in-progress {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n\n .log-direction {\n display: flex; align-items: center;\n gap: 4px; font-size: 11px;\n color: var(--mj-text-muted);\n }\n .log-direction i { font-size: 10px; }\n .log-direction.sending i { color: var(--mj-brand-primary); }\n .log-direction.receiving i { color: var(--mj-status-success); }\n\n .log-provider-badge {\n display: inline-flex; align-items: center;\n gap: 6px; padding: 3px 10px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n font-weight: 500;\n }\n\n .log-error-text {\n color: var(--mj-status-error);\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(--mj-text-muted); }\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(--mj-text-muted);\n }\n .empty-state i { font-size: 2rem; margin-bottom: 12px; opacity: 0.5; }\n .empty-state p { margin: 0; font-size: 13px; }\n `]\n})\nexport class CommunicationLogsResourceComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n public logs: MJCommunicationLogEntity[] = [];\n public filteredLogs: MJCommunicationLogEntity[] = [];\n public isLoading = false;\n public statusFilter = '';\n private searchTerm = '';\n\n constructor(private cdr: ChangeDetectorRef) {\n super();\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n await this.loadData();\n this.NotifyLoadComplete();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n public async loadData(): Promise<void> {\n try {\n this.isLoading = true;\n this.cdr.detectChanges();\n\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<MJCommunicationLogEntity>({\n EntityName: 'MJ: Communication Logs',\n OrderBy: 'MessageDate DESC',\n MaxRows: 200,\n ResultType: 'entity_object'\n });\n\n if (result.Success) {\n this.logs = result.Results;\n this.applyFilter();\n }\n } catch (error) {\n console.error('Error loading logs:', error);\n } finally {\n this.isLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n public onSearchValue(value: string): void {\n this.searchTerm = (value ?? '').toLowerCase();\n this.applyFilter();\n }\n\n public onStatusFilter(status: string): void {\n this.statusFilter = status;\n this.applyFilter();\n }\n\n public getStatusClass(status: string): string {\n const s = (status || '').toLowerCase();\n if (s === 'complete') return 'complete';\n if (s === 'failed') return 'failed';\n if (s === 'pending') return 'pending';\n if (s === 'in-progress') return 'in-progress';\n return '';\n }\n\n public getStatusIcon(status: string): string {\n const s = (status || '').toLowerCase();\n if (s === 'complete') return 'fa-solid fa-check';\n if (s === 'failed') return 'fa-solid fa-xmark';\n if (s === 'pending') return 'fa-solid fa-clock';\n if (s === 'in-progress') return 'fa-solid fa-spinner';\n return 'fa-solid fa-circle';\n }\n\n public getProviderIcon(name: string): string {\n if (!name) return 'fa-solid fa-server';\n const n = name.toLowerCase();\n if (n.includes('sendgrid')) return 'fa-solid fa-envelope';\n if (n.includes('twilio')) return 'fa-solid fa-comment-sms';\n if (n.includes('gmail') || n.includes('google')) return 'fa-brands fa-google';\n if (n.includes('microsoft') || n.includes('graph')) return 'fa-brands fa-microsoft';\n return 'fa-solid fa-server';\n }\n\n public getProviderColor(name: string): string {\n if (!name) return 'inherit';\n const n = name.toLowerCase();\n if (n.includes('sendgrid')) return '#1A82E2';\n if (n.includes('twilio')) return '#F22F46';\n if (n.includes('gmail') || n.includes('google')) return '#EA4335';\n if (n.includes('microsoft') || n.includes('graph')) return '#0078D4';\n return 'inherit';\n }\n\n private applyFilter(): void {\n let filtered = this.logs;\n\n if (this.statusFilter) {\n filtered = filtered.filter(l => l.Status === this.statusFilter);\n }\n\n if (this.searchTerm) {\n filtered = filtered.filter(l =>\n l.CommunicationProvider?.toLowerCase().includes(this.searchTerm) ||\n l.CommunicationProviderMessageType?.toLowerCase().includes(this.searchTerm) ||\n l.Status?.toLowerCase().includes(this.searchTerm) ||\n l.ErrorMessage?.toLowerCase().includes(this.searchTerm)\n );\n }\n\n this.filteredLogs = filtered;\n this.cdr.detectChanges();\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Message Logs';\n }\n\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-list-ul';\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"communication-monitor-resource.component.d.ts","sourceRoot":"","sources":["../../src/Communication/communication-monitor-resource.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAiC,MAAM,+BAA+B,CAAC;AAEtH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;AAGlE,UAAU,cAAc;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,gBAAgB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,YAAY;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB;AACD,
|
|
1
|
+
{"version":3,"file":"communication-monitor-resource.component.d.ts","sourceRoot":"","sources":["../../src/Communication/communication-monitor-resource.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAiC,MAAM,+BAA+B,CAAC;AAEtH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;AAGlE,UAAU,cAAc;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,gBAAgB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,YAAY;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB;AACD,qBAuea,qCAAsC,SAAQ,qBAAsB,YAAW,MAAM,EAAE,SAAS;IAmB7F,OAAO,CAAC,GAAG;IAlBhB,SAAS,UAAS;IAClB,KAAK;;;;;MAKV;IACK,UAAU,EAAE,wBAAwB,EAAE,CAAM;IAC5C,SAAS,EAAE,YAAY,EAAE,CAAM;IAC/B,WAAW;;;;;MAKhB;IACK,cAAc,EAAE,cAAc,EAAE,CAAM;IACtC,gBAAgB,EAAE,gBAAgB,EAAE,CAAM;gBAE7B,GAAG,EAAE,iBAAiB;IAIpC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B,WAAW,IAAI,IAAI;IAIN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA0E/B,oBAAoB,CAAC,GAAG,EAAE,wBAAwB,GAAG,MAAM;IAO3D,eAAe,CAAC,GAAG,EAAE,wBAAwB,GAAG,MAAM;IAOtD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAO3C,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,qBAAqB;IAmC7B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,qBAAqB;IASvB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3D,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;yCA7OtD,qCAAqC;2CAArC,qCAAqC;CAgPjD"}
|