@memberjunction/ng-dashboards 2.126.0 → 2.127.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 (29) hide show
  1. package/dist/Communication/communication-dashboard.component.d.ts +37 -0
  2. package/dist/Communication/communication-dashboard.component.d.ts.map +1 -0
  3. package/dist/Communication/communication-dashboard.component.js +225 -0
  4. package/dist/Communication/communication-dashboard.component.js.map +1 -0
  5. package/dist/Communication/communication-logs-resource.component.d.ts +26 -0
  6. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -0
  7. package/dist/Communication/communication-logs-resource.component.js +244 -0
  8. package/dist/Communication/communication-logs-resource.component.js.map +1 -0
  9. package/dist/Communication/communication-monitor-resource.component.d.ts +36 -0
  10. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -0
  11. package/dist/Communication/communication-monitor-resource.component.js +382 -0
  12. package/dist/Communication/communication-monitor-resource.component.js.map +1 -0
  13. package/dist/Communication/communication-providers-resource.component.d.ts +27 -0
  14. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -0
  15. package/dist/Communication/communication-providers-resource.component.js +253 -0
  16. package/dist/Communication/communication-providers-resource.component.js.map +1 -0
  17. package/dist/Communication/communication-runs-resource.component.d.ts +27 -0
  18. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -0
  19. package/dist/Communication/communication-runs-resource.component.js +291 -0
  20. package/dist/Communication/communication-runs-resource.component.js.map +1 -0
  21. package/dist/module.d.ts +31 -26
  22. package/dist/module.d.ts.map +1 -1
  23. package/dist/module.js +33 -4
  24. package/dist/module.js.map +1 -1
  25. package/dist/public-api.d.ts +5 -0
  26. package/dist/public-api.d.ts.map +1 -1
  27. package/dist/public-api.js +18 -0
  28. package/dist/public-api.js.map +1 -1
  29. package/package.json +25 -25
@@ -0,0 +1,382 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Component } from '@angular/core';
8
+ import { RegisterClass } from '@memberjunction/global';
9
+ import { BaseResourceComponent } from '@memberjunction/ng-shared';
10
+ import { RunView } from '@memberjunction/core';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/common";
13
+ import * as i2 from "../AI/components/charts/time-series-chart.component";
14
+ function CommunicationMonitorResourceComponent_div_73_Template(rf, ctx) { if (rf & 1) {
15
+ i0.ɵɵelementStart(0, "div", 36)(1, "div", 37);
16
+ i0.ɵɵelement(2, "i");
17
+ i0.ɵɵelementEnd();
18
+ i0.ɵɵelementStart(3, "div", 38)(4, "span", 39);
19
+ i0.ɵɵtext(5);
20
+ i0.ɵɵelementEnd();
21
+ i0.ɵɵelementStart(6, "span", 40);
22
+ i0.ɵɵtext(7);
23
+ i0.ɵɵpipe(8, "date");
24
+ i0.ɵɵelementEnd()();
25
+ i0.ɵɵelementStart(9, "div", 41);
26
+ i0.ɵɵtext(10);
27
+ i0.ɵɵelementEnd()();
28
+ } if (rf & 2) {
29
+ const log_r1 = ctx.$implicit;
30
+ i0.ɵɵadvance();
31
+ i0.ɵɵclassMap(log_r1.Status.toLowerCase());
32
+ i0.ɵɵadvance();
33
+ i0.ɵɵclassMap(log_r1.Direction === "Sending" ? "fa-solid fa-arrow-up" : "fa-solid fa-arrow-down");
34
+ i0.ɵɵadvance(3);
35
+ i0.ɵɵtextInterpolate(log_r1.CommunicationProviderMessageType);
36
+ i0.ɵɵadvance(2);
37
+ i0.ɵɵtextInterpolate2("", log_r1.CommunicationProvider, " \u2022 ", i0.ɵɵpipeBind2(8, 10, log_r1.MessageDate, "shortTime"), "");
38
+ i0.ɵɵadvance(2);
39
+ i0.ɵɵclassMap(log_r1.Status.toLowerCase());
40
+ i0.ɵɵadvance();
41
+ i0.ɵɵtextInterpolate1(" ", log_r1.Status, " ");
42
+ } }
43
+ function CommunicationMonitorResourceComponent_div_74_Template(rf, ctx) { if (rf & 1) {
44
+ i0.ɵɵelementStart(0, "div", 42);
45
+ i0.ɵɵelement(1, "i", 43);
46
+ i0.ɵɵelementStart(2, "p");
47
+ i0.ɵɵtext(3, "No recent activity found");
48
+ i0.ɵɵelementEnd()();
49
+ } }
50
+ /**
51
+ * Tree-shaking prevention function
52
+ */
53
+ export function LoadCommunicationMonitorResource() {
54
+ // Force inclusion in production builds
55
+ }
56
+ let CommunicationMonitorResourceComponent = class CommunicationMonitorResourceComponent extends BaseResourceComponent {
57
+ cdr;
58
+ isLoading = false;
59
+ stats = {
60
+ totalSent: 0,
61
+ deliveryRate: 0,
62
+ pending: 0,
63
+ failed: 0
64
+ };
65
+ recentLogs = [];
66
+ chartData = [];
67
+ chartConfig = {
68
+ useDualAxis: false,
69
+ showGrid: true,
70
+ showTooltip: true,
71
+ colors: ['#3b82f6', '#ef4444']
72
+ };
73
+ constructor(cdr) {
74
+ super();
75
+ this.cdr = cdr;
76
+ }
77
+ async ngOnInit() {
78
+ await this.loadData();
79
+ this.NotifyLoadComplete();
80
+ }
81
+ ngOnDestroy() { }
82
+ async loadData() {
83
+ try {
84
+ this.isLoading = true;
85
+ this.cdr.detectChanges();
86
+ const rv = new RunView();
87
+ // Fetch stats for the last 24 hours
88
+ const yesterday = new Date();
89
+ yesterday.setDate(yesterday.getDate() - 1);
90
+ const yesterdayIso = yesterday.toISOString();
91
+ const [totalResult, failedResult, pendingResult, recentResult, allLogsResult] = await Promise.all([
92
+ rv.RunView({
93
+ EntityName: 'Communication Logs',
94
+ ExtraFilter: `MessageDate >= '${yesterdayIso}'`,
95
+ ResultType: 'count_only'
96
+ }),
97
+ rv.RunView({
98
+ EntityName: 'Communication Logs',
99
+ ExtraFilter: `MessageDate >= '${yesterdayIso}' AND Status = 'Failed'`,
100
+ ResultType: 'count_only'
101
+ }),
102
+ rv.RunView({
103
+ EntityName: 'Communication Logs',
104
+ ExtraFilter: `Status = 'Pending'`,
105
+ ResultType: 'count_only'
106
+ }),
107
+ rv.RunView({
108
+ EntityName: 'Communication Logs',
109
+ OrderBy: 'MessageDate DESC',
110
+ MaxRows: 6,
111
+ ResultType: 'entity_object'
112
+ }),
113
+ rv.RunView({
114
+ EntityName: 'Communication Logs',
115
+ ExtraFilter: `MessageDate >= '${yesterdayIso}'`,
116
+ OrderBy: 'MessageDate ASC',
117
+ ResultType: 'entity_object'
118
+ })
119
+ ]);
120
+ if (totalResult.Success)
121
+ this.stats.totalSent = totalResult.TotalRowCount;
122
+ if (failedResult.Success)
123
+ this.stats.failed = failedResult.TotalRowCount;
124
+ if (pendingResult.Success)
125
+ this.stats.pending = pendingResult.TotalRowCount;
126
+ if (this.stats.totalSent > 0) {
127
+ this.stats.deliveryRate = parseFloat(((this.stats.totalSent - this.stats.failed) / this.stats.totalSent * 100).toFixed(1));
128
+ }
129
+ else {
130
+ this.stats.deliveryRate = 100;
131
+ }
132
+ if (recentResult.Success) {
133
+ this.recentLogs = recentResult.Results;
134
+ }
135
+ if (allLogsResult.Success) {
136
+ this.chartData = this.processTrendData(allLogsResult.Results, yesterday);
137
+ }
138
+ }
139
+ catch (error) {
140
+ console.error('Error loading monitor data:', error);
141
+ }
142
+ finally {
143
+ this.isLoading = false;
144
+ this.cdr.detectChanges();
145
+ }
146
+ }
147
+ processTrendData(logs, startTime) {
148
+ const buckets = [];
149
+ const now = new Date();
150
+ const current = new Date(startTime);
151
+ current.setMinutes(0, 0, 0);
152
+ while (current <= now) {
153
+ const bucketStart = new Date(current);
154
+ const bucketEnd = new Date(current.getTime() + 60 * 60 * 1000);
155
+ const bucketLogs = logs.filter(l => {
156
+ const d = new Date(l.MessageDate);
157
+ return d >= bucketStart && d < bucketEnd;
158
+ });
159
+ buckets.push({
160
+ timestamp: bucketStart,
161
+ executions: bucketLogs.length,
162
+ errors: bucketLogs.filter(l => l.Status === 'Failed').length,
163
+ cost: 0,
164
+ tokens: 0,
165
+ avgTime: 0
166
+ });
167
+ current.setHours(current.getHours() + 1);
168
+ }
169
+ return buckets;
170
+ }
171
+ async GetResourceDisplayName(data) {
172
+ return 'Monitor';
173
+ }
174
+ async GetResourceIconClass(data) {
175
+ return 'fa-solid fa-chart-line';
176
+ }
177
+ static ɵfac = function CommunicationMonitorResourceComponent_Factory(t) { return new (t || CommunicationMonitorResourceComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
178
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CommunicationMonitorResourceComponent, selectors: [["mj-communication-monitor-resource"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 75, vars: 20, consts: [[1, "monitor-wrapper"], [1, "monitor-container"], [1, "monitor-header"], [1, "title-area"], [1, "header-actions"], [1, "refresh-btn", 3, "click"], [1, "fa-solid", "fa-rotate"], [1, "stats-grid"], [1, "stat-card", "primary"], [1, "stat-icon"], [1, "fa-solid", "fa-paper-plane"], [1, "stat-content"], [1, "label"], [1, "value"], [1, "trend", "positive"], [1, "fa-solid", "fa-arrow-up"], [1, "stat-card", "success"], [1, "fa-solid", "fa-check-double"], [1, "progress-bar"], [1, "progress"], [1, "stat-card", "warning"], [1, "fa-solid", "fa-clock"], [1, "sub-label"], [1, "stat-card", "danger"], [1, "fa-solid", "fa-circle-exclamation"], [1, "trend", "negative"], [1, "dashboard-grid"], [1, "chart-section"], [1, "section-header"], [1, "chart-container-inner"], [3, "data", "showLegend", "showControls", "config"], [1, "activity-section"], ["href", "javascript:void(0)", 1, "view-all"], [1, "activity-list"], ["class", "activity-item", 4, "ngFor", "ngForOf"], ["class", "empty-state", 4, "ngIf"], [1, "activity-item"], [1, "activity-icon"], [1, "activity-info"], [1, "activity-title"], [1, "activity-meta"], [1, "activity-status"], [1, "empty-state"], [1, "fa-solid", "fa-inbox"]], template: function CommunicationMonitorResourceComponent_Template(rf, ctx) { if (rf & 1) {
179
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "header", 2)(3, "div", 3)(4, "h1");
180
+ i0.ɵɵtext(5, "Communication Command Center");
181
+ i0.ɵɵelementEnd();
182
+ i0.ɵɵelementStart(6, "p");
183
+ i0.ɵɵtext(7, "Real-time monitoring and delivery analytics");
184
+ i0.ɵɵelementEnd()();
185
+ i0.ɵɵelementStart(8, "div", 4)(9, "button", 5);
186
+ i0.ɵɵlistener("click", function CommunicationMonitorResourceComponent_Template_button_click_9_listener() { return ctx.loadData(); });
187
+ i0.ɵɵelement(10, "i", 6);
188
+ i0.ɵɵelementStart(11, "span");
189
+ i0.ɵɵtext(12, "Refresh");
190
+ i0.ɵɵelementEnd()()()();
191
+ i0.ɵɵelementStart(13, "div", 7)(14, "div", 8)(15, "div", 9);
192
+ i0.ɵɵelement(16, "i", 10);
193
+ i0.ɵɵelementEnd();
194
+ i0.ɵɵelementStart(17, "div", 11)(18, "span", 12);
195
+ i0.ɵɵtext(19, "Total Sent (24h)");
196
+ i0.ɵɵelementEnd();
197
+ i0.ɵɵelementStart(20, "span", 13);
198
+ i0.ɵɵtext(21);
199
+ i0.ɵɵpipe(22, "number");
200
+ i0.ɵɵelementEnd();
201
+ i0.ɵɵelementStart(23, "span", 14);
202
+ i0.ɵɵelement(24, "i", 15);
203
+ i0.ɵɵtext(25, " 12% vs yesterday");
204
+ i0.ɵɵelementEnd()()();
205
+ i0.ɵɵelementStart(26, "div", 16)(27, "div", 9);
206
+ i0.ɵɵelement(28, "i", 17);
207
+ i0.ɵɵelementEnd();
208
+ i0.ɵɵelementStart(29, "div", 11)(30, "span", 12);
209
+ i0.ɵɵtext(31, "Delivery Rate");
210
+ i0.ɵɵelementEnd();
211
+ i0.ɵɵelementStart(32, "span", 13);
212
+ i0.ɵɵtext(33);
213
+ i0.ɵɵelementEnd();
214
+ i0.ɵɵelementStart(34, "div", 18);
215
+ i0.ɵɵelement(35, "div", 19);
216
+ i0.ɵɵelementEnd()()();
217
+ i0.ɵɵelementStart(36, "div", 20)(37, "div", 9);
218
+ i0.ɵɵelement(38, "i", 21);
219
+ i0.ɵɵelementEnd();
220
+ i0.ɵɵelementStart(39, "div", 11)(40, "span", 12);
221
+ i0.ɵɵtext(41, "Pending");
222
+ i0.ɵɵelementEnd();
223
+ i0.ɵɵelementStart(42, "span", 13);
224
+ i0.ɵɵtext(43);
225
+ i0.ɵɵpipe(44, "number");
226
+ i0.ɵɵelementEnd();
227
+ i0.ɵɵelementStart(45, "span", 22);
228
+ i0.ɵɵtext(46, "Awaiting provider");
229
+ i0.ɵɵelementEnd()()();
230
+ i0.ɵɵelementStart(47, "div", 23)(48, "div", 9);
231
+ i0.ɵɵelement(49, "i", 24);
232
+ i0.ɵɵelementEnd();
233
+ i0.ɵɵelementStart(50, "div", 11)(51, "span", 12);
234
+ i0.ɵɵtext(52, "Failed");
235
+ i0.ɵɵelementEnd();
236
+ i0.ɵɵelementStart(53, "span", 13);
237
+ i0.ɵɵtext(54);
238
+ i0.ɵɵpipe(55, "number");
239
+ i0.ɵɵelementEnd();
240
+ i0.ɵɵelementStart(56, "span", 25);
241
+ i0.ɵɵelement(57, "i", 15);
242
+ i0.ɵɵtext(58, " 2% increase");
243
+ i0.ɵɵelementEnd()()()();
244
+ i0.ɵɵelementStart(59, "div", 26)(60, "div", 27)(61, "div", 28)(62, "h3");
245
+ i0.ɵɵtext(63, "Delivery Volume");
246
+ i0.ɵɵelementEnd()();
247
+ i0.ɵɵelementStart(64, "div", 29);
248
+ i0.ɵɵelement(65, "app-time-series-chart", 30);
249
+ i0.ɵɵelementEnd()();
250
+ i0.ɵɵelementStart(66, "div", 31)(67, "div", 28)(68, "h3");
251
+ i0.ɵɵtext(69, "Recent Activity");
252
+ i0.ɵɵelementEnd();
253
+ i0.ɵɵelementStart(70, "a", 32);
254
+ i0.ɵɵtext(71, "View All");
255
+ i0.ɵɵelementEnd()();
256
+ i0.ɵɵelementStart(72, "div", 33);
257
+ i0.ɵɵtemplate(73, CommunicationMonitorResourceComponent_div_73_Template, 11, 13, "div", 34)(74, CommunicationMonitorResourceComponent_div_74_Template, 4, 0, "div", 35);
258
+ i0.ɵɵelementEnd()()()()();
259
+ } if (rf & 2) {
260
+ i0.ɵɵadvance(9);
261
+ i0.ɵɵclassProp("loading", ctx.isLoading);
262
+ i0.ɵɵadvance(12);
263
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(22, 14, ctx.stats.totalSent));
264
+ i0.ɵɵadvance(12);
265
+ i0.ɵɵtextInterpolate1("", ctx.stats.deliveryRate, "%");
266
+ i0.ɵɵadvance(2);
267
+ i0.ɵɵstyleProp("width", ctx.stats.deliveryRate, "%");
268
+ i0.ɵɵadvance(8);
269
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(44, 16, ctx.stats.pending));
270
+ i0.ɵɵadvance(11);
271
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(55, 18, ctx.stats.failed));
272
+ i0.ɵɵadvance(11);
273
+ i0.ɵɵproperty("data", ctx.chartData)("showLegend", true)("showControls", false)("config", ctx.chartConfig);
274
+ i0.ɵɵadvance(8);
275
+ i0.ɵɵproperty("ngForOf", ctx.recentLogs);
276
+ i0.ɵɵadvance();
277
+ i0.ɵɵproperty("ngIf", ctx.recentLogs.length === 0);
278
+ } }, dependencies: [i1.NgForOf, i1.NgIf, i2.TimeSeriesChartComponent, i1.DecimalPipe, i1.DatePipe], styles: [".monitor-wrapper[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n background-color: #f8fafc;\n }\n .monitor-container[_ngcontent-%COMP%] {\n padding: 32px;\n min-height: 100%;\n font-family: 'Inter', system-ui, -apple-system, sans-serif;\n max-width: 1600px;\n margin: 0 auto;\n }\n .monitor-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 32px;\n }\n .title-area[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.875rem;\n font-weight: 800;\n color: #0f172a;\n letter-spacing: -0.025em;\n }\n .title-area[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 4px 0 0;\n color: #64748b;\n font-size: 1rem;\n }\n .refresh-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: white;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n color: #475569;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s;\n }\n .refresh-btn[_ngcontent-%COMP%]:hover {\n background: #f1f5f9;\n border-color: #cbd5e1;\n }\n .refresh-btn.loading[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n }\n @keyframes _ngcontent-%COMP%_spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n .stats-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));\n gap: 24px;\n margin-bottom: 32px;\n }\n .stat-card[_ngcontent-%COMP%] {\n background: white;\n padding: 24px;\n border-radius: 16px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.05), 0 1px 2px rgba(0,0,0,0.02);\n display: flex;\n gap: 20px;\n align-items: center;\n border: 1px solid #f1f5f9;\n transition: transform 0.2s, box-shadow 0.2s;\n }\n .stat-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);\n }\n .stat-icon[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.5rem;\n }\n .primary[_ngcontent-%COMP%] .stat-icon[_ngcontent-%COMP%] { background: #eff6ff; color: #3b82f6; }\n .success[_ngcontent-%COMP%] .stat-icon[_ngcontent-%COMP%] { background: #ecfdf5; color: #10b981; }\n .warning[_ngcontent-%COMP%] .stat-icon[_ngcontent-%COMP%] { background: #fffbeb; color: #f59e0b; }\n .danger[_ngcontent-%COMP%] .stat-icon[_ngcontent-%COMP%] { background: #fef2f2; color: #ef4444; }\n\n .stat-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n flex: 1;\n }\n .stat-content[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n font-weight: 600;\n color: #64748b;\n margin-bottom: 4px;\n }\n .stat-content[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] {\n font-size: 1.75rem;\n font-weight: 700;\n color: #1e293b;\n }\n .trend[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n font-weight: 600;\n margin-top: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n }\n .trend.positive[_ngcontent-%COMP%] { color: #10b981; }\n .trend.negative[_ngcontent-%COMP%] { color: #ef4444; }\n \n .progress-bar[_ngcontent-%COMP%] {\n height: 6px;\n background: #f1f5f9;\n border-radius: 3px;\n margin-top: 12px;\n overflow: hidden;\n }\n .progress[_ngcontent-%COMP%] {\n height: 100%;\n background: #10b981;\n border-radius: 3px;\n }\n\n .dashboard-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 2fr 1fr;\n gap: 24px;\n }\n .chart-section[_ngcontent-%COMP%], .activity-section[_ngcontent-%COMP%] {\n background: white;\n border-radius: 16px;\n padding: 24px;\n border: 1px solid #f1f5f9;\n display: flex;\n flex-direction: column;\n }\n .section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 24px;\n }\n .section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.125rem;\n font-weight: 700;\n color: #1e293b;\n }\n\n .chart-container-inner[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 350px;\n }\n\n .activity-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n .activity-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 12px;\n border-radius: 12px;\n transition: background 0.2s;\n }\n .activity-item[_ngcontent-%COMP%]:hover {\n background: #f8fafc;\n }\n .activity-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1rem;\n }\n .activity-icon.complete[_ngcontent-%COMP%] { background: #ecfdf5; color: #10b981; }\n .activity-icon.failed[_ngcontent-%COMP%] { background: #fef2f2; color: #ef4444; }\n .activity-icon.pending[_ngcontent-%COMP%] { background: #fffbeb; color: #f59e0b; }\n\n .activity-info[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n }\n .activity-title[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n font-weight: 600;\n color: #1e293b;\n }\n .activity-meta[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n color: #64748b;\n }\n .activity-status[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n font-weight: 700;\n padding: 4px 10px;\n border-radius: 20px;\n text-transform: uppercase;\n }\n .activity-status.complete[_ngcontent-%COMP%] { background: #dcfce7; color: #166534; }\n .activity-status.failed[_ngcontent-%COMP%] { background: #fee2e2; color: #991b1b; }\n .activity-status.pending[_ngcontent-%COMP%] { background: #fef3c7; color: #92400e; }\n\n .view-all[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n font-weight: 600;\n color: #3b82f6;\n text-decoration: none;\n }\n .view-all[_ngcontent-%COMP%]:hover {\n text-decoration: underline;\n }\n\n .empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 0;\n color: #94a3b8;\n }\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3rem;\n margin-bottom: 16px;\n }\n\n @media (max-width: 1024px) {\n .dashboard-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }"] });
279
+ };
280
+ CommunicationMonitorResourceComponent = __decorate([
281
+ RegisterClass(BaseResourceComponent, 'CommunicationMonitorResource')
282
+ ], CommunicationMonitorResourceComponent);
283
+ export { CommunicationMonitorResourceComponent };
284
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CommunicationMonitorResourceComponent, [{
285
+ type: Component,
286
+ args: [{ selector: 'mj-communication-monitor-resource', template: `
287
+ <div class="monitor-wrapper">
288
+ <div class="monitor-container">
289
+ <header class="monitor-header">
290
+ <div class="title-area">
291
+ <h1>Communication Command Center</h1>
292
+ <p>Real-time monitoring and delivery analytics</p>
293
+ </div>
294
+ <div class="header-actions">
295
+ <button class="refresh-btn" (click)="loadData()" [class.loading]="isLoading">
296
+ <i class="fa-solid fa-rotate"></i>
297
+ <span>Refresh</span>
298
+ </button>
299
+ </div>
300
+ </header>
301
+
302
+ <div class="stats-grid">
303
+ <div class="stat-card primary">
304
+ <div class="stat-icon"><i class="fa-solid fa-paper-plane"></i></div>
305
+ <div class="stat-content">
306
+ <span class="label">Total Sent (24h)</span>
307
+ <span class="value">{{stats.totalSent | number}}</span>
308
+ <span class="trend positive"><i class="fa-solid fa-arrow-up"></i> 12% vs yesterday</span>
309
+ </div>
310
+ </div>
311
+ <div class="stat-card success">
312
+ <div class="stat-icon"><i class="fa-solid fa-check-double"></i></div>
313
+ <div class="stat-content">
314
+ <span class="label">Delivery Rate</span>
315
+ <span class="value">{{stats.deliveryRate}}%</span>
316
+ <div class="progress-bar"><div class="progress" [style.width.%]="stats.deliveryRate"></div></div>
317
+ </div>
318
+ </div>
319
+ <div class="stat-card warning">
320
+ <div class="stat-icon"><i class="fa-solid fa-clock"></i></div>
321
+ <div class="stat-content">
322
+ <span class="label">Pending</span>
323
+ <span class="value">{{stats.pending | number}}</span>
324
+ <span class="sub-label">Awaiting provider</span>
325
+ </div>
326
+ </div>
327
+ <div class="stat-card danger">
328
+ <div class="stat-icon"><i class="fa-solid fa-circle-exclamation"></i></div>
329
+ <div class="stat-content">
330
+ <span class="label">Failed</span>
331
+ <span class="value">{{stats.failed | number}}</span>
332
+ <span class="trend negative"><i class="fa-solid fa-arrow-up"></i> 2% increase</span>
333
+ </div>
334
+ </div>
335
+ </div>
336
+
337
+ <div class="dashboard-grid">
338
+ <div class="chart-section">
339
+ <div class="section-header">
340
+ <h3>Delivery Volume</h3>
341
+ </div>
342
+ <div class="chart-container-inner">
343
+ <app-time-series-chart
344
+ [data]="chartData"
345
+ [showLegend]="true"
346
+ [showControls]="false"
347
+ [config]="chartConfig">
348
+ </app-time-series-chart>
349
+ </div>
350
+ </div>
351
+
352
+ <div class="activity-section">
353
+ <div class="section-header">
354
+ <h3>Recent Activity</h3>
355
+ <a href="javascript:void(0)" class="view-all">View All</a>
356
+ </div>
357
+ <div class="activity-list">
358
+ <div *ngFor="let log of recentLogs" class="activity-item">
359
+ <div class="activity-icon" [class]="log.Status.toLowerCase()">
360
+ <i [class]="log.Direction === 'Sending' ? 'fa-solid fa-arrow-up' : 'fa-solid fa-arrow-down'"></i>
361
+ </div>
362
+ <div class="activity-info">
363
+ <span class="activity-title">{{log.CommunicationProviderMessageType}}</span>
364
+ <span class="activity-meta">{{log.CommunicationProvider}} • {{log.MessageDate | date:'shortTime'}}</span>
365
+ </div>
366
+ <div class="activity-status" [class]="log.Status.toLowerCase()">
367
+ {{log.Status}}
368
+ </div>
369
+ </div>
370
+ <div *ngIf="recentLogs.length === 0" class="empty-state">
371
+ <i class="fa-solid fa-inbox"></i>
372
+ <p>No recent activity found</p>
373
+ </div>
374
+ </div>
375
+ </div>
376
+ </div>
377
+ </div>
378
+ </div>
379
+ `, styles: ["\n .monitor-wrapper {\n height: 100%;\n overflow-y: auto;\n background-color: #f8fafc;\n }\n .monitor-container {\n padding: 32px;\n min-height: 100%;\n font-family: 'Inter', system-ui, -apple-system, sans-serif;\n max-width: 1600px;\n margin: 0 auto;\n }\n .monitor-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 32px;\n }\n .title-area h1 {\n margin: 0;\n font-size: 1.875rem;\n font-weight: 800;\n color: #0f172a;\n letter-spacing: -0.025em;\n }\n .title-area p {\n margin: 4px 0 0;\n color: #64748b;\n font-size: 1rem;\n }\n .refresh-btn {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n background: white;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n color: #475569;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s;\n }\n .refresh-btn:hover {\n background: #f1f5f9;\n border-color: #cbd5e1;\n }\n .refresh-btn.loading i {\n animation: spin 1s linear infinite;\n }\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n .stats-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));\n gap: 24px;\n margin-bottom: 32px;\n }\n .stat-card {\n background: white;\n padding: 24px;\n border-radius: 16px;\n box-shadow: 0 1px 3px rgba(0,0,0,0.05), 0 1px 2px rgba(0,0,0,0.02);\n display: flex;\n gap: 20px;\n align-items: center;\n border: 1px solid #f1f5f9;\n transition: transform 0.2s, box-shadow 0.2s;\n }\n .stat-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);\n }\n .stat-icon {\n width: 56px;\n height: 56px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.5rem;\n }\n .primary .stat-icon { background: #eff6ff; color: #3b82f6; }\n .success .stat-icon { background: #ecfdf5; color: #10b981; }\n .warning .stat-icon { background: #fffbeb; color: #f59e0b; }\n .danger .stat-icon { background: #fef2f2; color: #ef4444; }\n\n .stat-content {\n display: flex;\n flex-direction: column;\n flex: 1;\n }\n .stat-content .label {\n font-size: 0.875rem;\n font-weight: 600;\n color: #64748b;\n margin-bottom: 4px;\n }\n .stat-content .value {\n font-size: 1.75rem;\n font-weight: 700;\n color: #1e293b;\n }\n .trend {\n font-size: 0.75rem;\n font-weight: 600;\n margin-top: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n }\n .trend.positive { color: #10b981; }\n .trend.negative { color: #ef4444; }\n \n .progress-bar {\n height: 6px;\n background: #f1f5f9;\n border-radius: 3px;\n margin-top: 12px;\n overflow: hidden;\n }\n .progress {\n height: 100%;\n background: #10b981;\n border-radius: 3px;\n }\n\n .dashboard-grid {\n display: grid;\n grid-template-columns: 2fr 1fr;\n gap: 24px;\n }\n .chart-section, .activity-section {\n background: white;\n border-radius: 16px;\n padding: 24px;\n border: 1px solid #f1f5f9;\n display: flex;\n flex-direction: column;\n }\n .section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 24px;\n }\n .section-header h3 {\n margin: 0;\n font-size: 1.125rem;\n font-weight: 700;\n color: #1e293b;\n }\n\n .chart-container-inner {\n flex: 1;\n min-height: 350px;\n }\n\n .activity-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n .activity-item {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 12px;\n border-radius: 12px;\n transition: background 0.2s;\n }\n .activity-item:hover {\n background: #f8fafc;\n }\n .activity-icon {\n width: 40px;\n height: 40px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1rem;\n }\n .activity-icon.complete { background: #ecfdf5; color: #10b981; }\n .activity-icon.failed { background: #fef2f2; color: #ef4444; }\n .activity-icon.pending { background: #fffbeb; color: #f59e0b; }\n\n .activity-info {\n flex: 1;\n display: flex;\n flex-direction: column;\n }\n .activity-title {\n font-size: 0.875rem;\n font-weight: 600;\n color: #1e293b;\n }\n .activity-meta {\n font-size: 0.75rem;\n color: #64748b;\n }\n .activity-status {\n font-size: 0.75rem;\n font-weight: 700;\n padding: 4px 10px;\n border-radius: 20px;\n text-transform: uppercase;\n }\n .activity-status.complete { background: #dcfce7; color: #166534; }\n .activity-status.failed { background: #fee2e2; color: #991b1b; }\n .activity-status.pending { background: #fef3c7; color: #92400e; }\n\n .view-all {\n font-size: 0.875rem;\n font-weight: 600;\n color: #3b82f6;\n text-decoration: none;\n }\n .view-all:hover {\n text-decoration: underline;\n }\n\n .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 0;\n color: #94a3b8;\n }\n .empty-state i {\n font-size: 3rem;\n margin-bottom: 16px;\n }\n\n @media (max-width: 1024px) {\n .dashboard-grid {\n grid-template-columns: 1fr;\n }\n }\n "] }]
380
+ }], () => [{ type: i0.ChangeDetectorRef }], null); })();
381
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CommunicationMonitorResourceComponent, { className: "CommunicationMonitorResourceComponent", filePath: "src/Communication/communication-monitor-resource.component.ts", lineNumber: 357 }); })();
382
+ //# sourceMappingURL=communication-monitor-resource.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"communication-monitor-resource.component.js","sourceRoot":"","sources":["../../src/Communication/communication-monitor-resource.component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
2
+ import { ResourceData } from '@memberjunction/core-entities';
3
+ import { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Tree-shaking prevention function
7
+ */
8
+ export declare function LoadCommunicationProvidersResource(): void;
9
+ export declare class CommunicationProvidersResourceComponent extends BaseResourceComponent implements OnInit, OnDestroy {
10
+ private cdr;
11
+ private navService;
12
+ isLoading: boolean;
13
+ providers: any[];
14
+ constructor(cdr: ChangeDetectorRef, navService: NavigationService);
15
+ ngOnInit(): Promise<void>;
16
+ ngOnDestroy(): void;
17
+ loadData(): Promise<void>;
18
+ getProviderIcon(name: string): string;
19
+ configureProvider(provider: any): void;
20
+ viewProviderLogs(provider: any): void;
21
+ addNewProvider(): void;
22
+ GetResourceDisplayName(data: ResourceData): Promise<string>;
23
+ GetResourceIconClass(data: ResourceData): Promise<string>;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<CommunicationProvidersResourceComponent, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<CommunicationProvidersResourceComponent, "mj-communication-providers-resource", never, {}, {}, never, never, false, never>;
26
+ }
27
+ //# sourceMappingURL=communication-providers-resource.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"communication-providers-resource.component.d.ts","sourceRoot":"","sources":["../../src/Communication/communication-providers-resource.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;;AAGrF;;GAEG;AACH,wBAAgB,kCAAkC,SAEjD;AAED,qBAyRa,uCAAwC,SAAQ,qBAAsB,YAAW,MAAM,EAAE,SAAS;IAI/F,OAAO,CAAC,GAAG;IAAqB,OAAO,CAAC,UAAU;IAHvD,SAAS,UAAS;IAClB,SAAS,EAAE,GAAG,EAAE,CAAM;gBAET,GAAG,EAAE,iBAAiB,EAAU,UAAU,EAAE,iBAAiB;IAI3E,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B,WAAW,IAAI,IAAI;IAEN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB/B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAUrC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAMtC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAMrC,cAAc,IAAI,IAAI;IAIvB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3D,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;yCApEtD,uCAAuC;2CAAvC,uCAAuC;CAuEnD"}