@firestitch/app-message 9.1.3 → 9.2.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/app/modules/app-message/interfaces/app-message-config.d.ts +2 -1
- package/app/modules/app-message/types/types.type.d.ts +4 -0
- package/app/modules/message-queues/components/queue/queue.component.d.ts +6 -2
- package/app/modules/message-queues/components/queues/queues.component.d.ts +3 -1
- package/app/modules/message-queues/consts/message-queue-event-type.const.d.ts +5 -0
- package/app/modules/message-queues/enums/index.d.ts +1 -0
- package/app/modules/message-queues/enums/message-queue-event-type.enum.d.ts +4 -0
- package/app/modules/message-queues/services/message-queue.service.d.ts +9 -0
- package/bundles/firestitch-app-message.umd.js +111 -64
- package/bundles/firestitch-app-message.umd.js.map +1 -1
- package/bundles/firestitch-app-message.umd.min.js +1 -1
- package/bundles/firestitch-app-message.umd.min.js.map +1 -1
- package/esm2015/app/modules/app-message/interfaces/app-message-config.js +1 -1
- package/esm2015/app/modules/app-message/types/types.type.js +1 -1
- package/esm2015/app/modules/message-queues/components/queue/queue.component.js +20 -7
- package/esm2015/app/modules/message-queues/components/queues/queues.component.js +10 -13
- package/esm2015/app/modules/message-queues/components/recipient/recipient.component.js +1 -1
- package/esm2015/app/modules/message-queues/consts/message-queue-event-type.const.js +6 -0
- package/esm2015/app/modules/message-queues/enums/index.js +2 -1
- package/esm2015/app/modules/message-queues/enums/message-queue-event-type.enum.js +6 -0
- package/esm2015/app/modules/message-queues/message-queues.module.js +8 -2
- package/esm2015/app/modules/message-queues/services/message-queue.service.js +31 -0
- package/esm2015/app/modules/messages/components/messages/messages.component.js +3 -7
- package/esm2015/firestitch-app-message.js +2 -2
- package/esm2015/public_api.js +2 -1
- package/esm5/app/modules/app-message/interfaces/app-message-config.js +1 -1
- package/esm5/app/modules/app-message/types/types.type.js +1 -1
- package/esm5/app/modules/message-queues/components/queue/queue.component.js +21 -7
- package/esm5/app/modules/message-queues/components/queues/queues.component.js +10 -13
- package/esm5/app/modules/message-queues/components/recipient/recipient.component.js +1 -1
- package/esm5/app/modules/message-queues/consts/message-queue-event-type.const.js +6 -0
- package/esm5/app/modules/message-queues/enums/index.js +2 -1
- package/esm5/app/modules/message-queues/enums/message-queue-event-type.enum.js +6 -0
- package/esm5/app/modules/message-queues/message-queues.module.js +8 -2
- package/esm5/app/modules/message-queues/services/message-queue.service.js +33 -0
- package/esm5/app/modules/messages/components/messages/messages.component.js +3 -7
- package/esm5/firestitch-app-message.js +2 -2
- package/esm5/public_api.js +2 -1
- package/fesm2015/firestitch-app-message.js +106 -63
- package/fesm2015/firestitch-app-message.js.map +1 -1
- package/fesm5/firestitch-app-message.js +112 -66
- package/fesm5/firestitch-app-message.js.map +1 -1
- package/firestitch-app-message.d.ts +1 -1
- package/firestitch-app-message.metadata.json +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +1 -0
- package/app/modules/message-queues/components/index.d.ts +0 -3
- package/app/modules/message-queues/components/queue/index.d.ts +0 -1
- package/app/modules/message-queues/components/queues/index.d.ts +0 -1
- package/app/modules/message-queues/components/recipient/index.d.ts +0 -1
- package/esm2015/app/modules/message-queues/components/index.js +0 -4
- package/esm2015/app/modules/message-queues/components/queue/index.js +0 -2
- package/esm2015/app/modules/message-queues/components/queues/index.js +0 -2
- package/esm2015/app/modules/message-queues/components/recipient/index.js +0 -2
- package/esm5/app/modules/message-queues/components/index.js +0 -4
- package/esm5/app/modules/message-queues/components/queue/index.js +0 -2
- package/esm5/app/modules/message-queues/components/queues/index.js +0 -2
- package/esm5/app/modules/message-queues/components/recipient/index.js +0 -2
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { FsListActionSelected } from "@firestitch/list";
|
|
2
2
|
import { Observable } from "rxjs";
|
|
3
|
-
import { DeleteMessageTemplate, DownloadMessageQueueAttachment, ForwardMessageQueue, LoadMessageQueueAttachments, LoadLogs, LoadMessage, LoadMessageQueue, LoadMessageQueues, LoadMessages, LoadMessageTemplate, LoadMessageTemplates, ResendMessageQueue, SaveMessage, SaveMessageTemplate, TestMessage, DeleteWebhook, CreateWebhook, LoadWebhooks } from "../types";
|
|
3
|
+
import { DeleteMessageTemplate, DownloadMessageQueueAttachment, ForwardMessageQueue, LoadMessageQueueAttachments, LoadLogs, LoadMessage, LoadMessageQueue, LoadMessageQueues, LoadMessages, LoadMessageTemplate, LoadMessageTemplates, ResendMessageQueue, SaveMessage, SaveMessageTemplate, TestMessage, DeleteWebhook, CreateWebhook, LoadWebhooks, LoadMessageQueueEvents } from "../types";
|
|
4
4
|
export interface FsAppMessageConfig {
|
|
5
5
|
loadMessages: LoadMessages;
|
|
6
6
|
loadMessageQueues: LoadMessageQueues;
|
|
7
7
|
loadMessageQueue: LoadMessageQueue;
|
|
8
|
+
loadMessageQueueEvents: LoadMessageQueueEvents;
|
|
8
9
|
loadLogs: LoadLogs;
|
|
9
10
|
loadMessageQueueAttachments: LoadMessageQueueAttachments;
|
|
10
11
|
downloadMessageQueueAttachment: DownloadMessageQueueAttachment;
|
|
@@ -12,6 +12,10 @@ export declare type LoadMessageQueues = (query: any) => Observable<{
|
|
|
12
12
|
data: any[];
|
|
13
13
|
paging: any;
|
|
14
14
|
}>;
|
|
15
|
+
export declare type LoadMessageQueueEvents = (messageQueue: any, query: any) => Observable<{
|
|
16
|
+
data: any[];
|
|
17
|
+
paging: any;
|
|
18
|
+
}>;
|
|
15
19
|
export declare type LoadMessageQueue = (messageQueue: any) => Observable<any>;
|
|
16
20
|
export declare type LoadLogs = (messageQueue: any, query: any) => Observable<{
|
|
17
21
|
data: any[];
|
|
@@ -3,7 +3,7 @@ import { MatDialog } from '@angular/material/dialog';
|
|
|
3
3
|
import { FsMessage } from '@firestitch/message';
|
|
4
4
|
import { FsPrompt } from '@firestitch/prompt';
|
|
5
5
|
import { FsListComponent, FsListConfig } from '@firestitch/list';
|
|
6
|
-
import { EmailMessageQueueFormat } from '../../enums';
|
|
6
|
+
import { EmailMessageQueueFormat, MessageQueueEventType } from '../../enums';
|
|
7
7
|
import { FsAppMessageConfig } from '../../../app-message/interfaces';
|
|
8
8
|
import { ResendMessageQueue, ForwardMessageQueue, LoadMessage } from '../../../app-message/types';
|
|
9
9
|
export declare class QueueComponent implements OnInit, OnDestroy {
|
|
@@ -22,15 +22,19 @@ export declare class QueueComponent implements OnInit, OnDestroy {
|
|
|
22
22
|
messageQueueStates: any;
|
|
23
23
|
logConfig: FsListConfig;
|
|
24
24
|
attachmentConfig: FsListConfig;
|
|
25
|
+
eventConfig: FsListConfig;
|
|
26
|
+
MessageQueueEventTypes: {};
|
|
27
|
+
MessageQueueEventType: typeof MessageQueueEventType;
|
|
25
28
|
private _destroy$;
|
|
26
29
|
constructor(_config: FsAppMessageConfig, _message: FsMessage, _prompt: FsPrompt, _dialog: MatDialog, _data: any);
|
|
27
30
|
ngOnInit(): void;
|
|
28
|
-
|
|
31
|
+
anchorMe(html: any): any;
|
|
29
32
|
openMessage(message: any): void;
|
|
30
33
|
resend(): void;
|
|
31
34
|
forward(): void;
|
|
32
35
|
ngOnDestroy(): void;
|
|
33
36
|
private _setLogsConfig;
|
|
37
|
+
private _setEventsConfig;
|
|
34
38
|
private _setAttachmentsConfig;
|
|
35
39
|
private _prettyFilesize;
|
|
36
40
|
}
|
|
@@ -3,16 +3,18 @@ import { MatDialog } from '@angular/material/dialog';
|
|
|
3
3
|
import { FsListComponent, FsListConfig } from '@firestitch/list';
|
|
4
4
|
import { MessageQueueState } from '../../enums/message-queue-state.enum';
|
|
5
5
|
import { FsAppMessageConfig } from '../../../app-message/interfaces';
|
|
6
|
+
import { FsMessageQueueService } from '../../services/message-queue.service';
|
|
6
7
|
export declare class QueuesComponent implements OnInit, OnDestroy {
|
|
7
8
|
private _config;
|
|
8
9
|
private _dialog;
|
|
10
|
+
private _messageQueueService;
|
|
9
11
|
list: FsListComponent;
|
|
10
12
|
query: {};
|
|
11
13
|
config: FsListConfig;
|
|
12
14
|
messageQueueStates: {};
|
|
13
15
|
MessageQueueState: typeof MessageQueueState;
|
|
14
16
|
private _destroy$;
|
|
15
|
-
constructor(_config: FsAppMessageConfig, _dialog: MatDialog);
|
|
17
|
+
constructor(_config: FsAppMessageConfig, _dialog: MatDialog, _messageQueueService: FsMessageQueueService);
|
|
16
18
|
ngOnInit(): void;
|
|
17
19
|
open(messageQueue: any): void;
|
|
18
20
|
ngOnDestroy(): void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { OnDestroy } from "@angular/core";
|
|
2
|
+
import { MatDialog } from "@angular/material/dialog";
|
|
3
|
+
export declare class FsMessageQueueService implements OnDestroy {
|
|
4
|
+
private _dialog;
|
|
5
|
+
private _destroy$;
|
|
6
|
+
constructor(_dialog: MatDialog);
|
|
7
|
+
openMessageQueue(messageQueueId: number, options?: any): import("rxjs").Observable<any>;
|
|
8
|
+
ngOnDestroy(): void;
|
|
9
|
+
}
|
|
@@ -427,12 +427,8 @@
|
|
|
427
427
|
});
|
|
428
428
|
dialogRef.afterClosed()
|
|
429
429
|
.pipe(operators.takeUntil(this._destroy$))
|
|
430
|
-
.subscribe(function (
|
|
431
|
-
|
|
432
|
-
_this.list.updateData(response, function (row) {
|
|
433
|
-
return row.id === response.id;
|
|
434
|
-
});
|
|
435
|
-
}
|
|
430
|
+
.subscribe(function () {
|
|
431
|
+
_this.list.reload();
|
|
436
432
|
});
|
|
437
433
|
};
|
|
438
434
|
MessagesComponent.prototype.ngOnDestroy = function () {
|
|
@@ -521,19 +517,6 @@
|
|
|
521
517
|
return FsAppMessagesModule;
|
|
522
518
|
}());
|
|
523
519
|
|
|
524
|
-
var EmailMessageQueueFormat;
|
|
525
|
-
(function (EmailMessageQueueFormat) {
|
|
526
|
-
EmailMessageQueueFormat["Text"] = "T";
|
|
527
|
-
EmailMessageQueueFormat["HTML"] = "H";
|
|
528
|
-
EmailMessageQueueFormat["RichText"] = "R";
|
|
529
|
-
})(EmailMessageQueueFormat || (EmailMessageQueueFormat = {}));
|
|
530
|
-
|
|
531
|
-
var MessageQueueType;
|
|
532
|
-
(function (MessageQueueType) {
|
|
533
|
-
MessageQueueType["Sms"] = "S";
|
|
534
|
-
MessageQueueType["Email"] = "E";
|
|
535
|
-
})(MessageQueueType || (MessageQueueType = {}));
|
|
536
|
-
|
|
537
520
|
var MessageQueueState;
|
|
538
521
|
(function (MessageQueueState) {
|
|
539
522
|
MessageQueueState["Sent"] = "S";
|
|
@@ -555,6 +538,30 @@
|
|
|
555
538
|
{ name: 'Failed', value: MessageQueueState.Failed }
|
|
556
539
|
];
|
|
557
540
|
|
|
541
|
+
var EmailMessageQueueFormat;
|
|
542
|
+
(function (EmailMessageQueueFormat) {
|
|
543
|
+
EmailMessageQueueFormat["Text"] = "T";
|
|
544
|
+
EmailMessageQueueFormat["HTML"] = "H";
|
|
545
|
+
EmailMessageQueueFormat["RichText"] = "R";
|
|
546
|
+
})(EmailMessageQueueFormat || (EmailMessageQueueFormat = {}));
|
|
547
|
+
|
|
548
|
+
var MessageQueueType;
|
|
549
|
+
(function (MessageQueueType) {
|
|
550
|
+
MessageQueueType["Sms"] = "S";
|
|
551
|
+
MessageQueueType["Email"] = "E";
|
|
552
|
+
})(MessageQueueType || (MessageQueueType = {}));
|
|
553
|
+
|
|
554
|
+
var MessageQueueEventType;
|
|
555
|
+
(function (MessageQueueEventType) {
|
|
556
|
+
MessageQueueEventType["Click"] = "click";
|
|
557
|
+
MessageQueueEventType["Open"] = "open";
|
|
558
|
+
})(MessageQueueEventType || (MessageQueueEventType = {}));
|
|
559
|
+
|
|
560
|
+
var MessageQueueEventTypes = [
|
|
561
|
+
{ name: 'Open', value: MessageQueueEventType.Open },
|
|
562
|
+
{ name: 'Click', value: MessageQueueEventType.Click },
|
|
563
|
+
];
|
|
564
|
+
|
|
558
565
|
var QueueComponent = /** @class */ (function () {
|
|
559
566
|
function QueueComponent(_config, _message, _prompt, _dialog, _data) {
|
|
560
567
|
this._config = _config;
|
|
@@ -564,6 +571,8 @@
|
|
|
564
571
|
this._data = _data;
|
|
565
572
|
this.messageQueueRecipients = {};
|
|
566
573
|
this.emailMessageQueueFormat = EmailMessageQueueFormat;
|
|
574
|
+
this.MessageQueueEventTypes = indexNameValue(MessageQueueEventTypes);
|
|
575
|
+
this.MessageQueueEventType = MessageQueueEventType;
|
|
567
576
|
this._destroy$ = new rxjs.Subject();
|
|
568
577
|
}
|
|
569
578
|
QueueComponent.prototype.ngOnInit = function () {
|
|
@@ -571,7 +580,7 @@
|
|
|
571
580
|
this.messageQueueStates = indexNameValue(MessageQueueStates);
|
|
572
581
|
this.resendMessageQueue = this._config.resendMessageQueue;
|
|
573
582
|
this.forwardMessageQueue = this._config.forwardMessageQueue;
|
|
574
|
-
this._config.loadMessageQueue(this._data.
|
|
583
|
+
this._config.loadMessageQueue(this._data.messageQueueId)
|
|
575
584
|
.subscribe(function (messageQueue) {
|
|
576
585
|
_this.messageQueue = messageQueue;
|
|
577
586
|
if (_this.messageQueue.emailMessageQueue) {
|
|
@@ -588,12 +597,12 @@
|
|
|
588
597
|
}
|
|
589
598
|
}
|
|
590
599
|
else {
|
|
591
|
-
body = _this.
|
|
600
|
+
body = _this.anchorMe(body);
|
|
592
601
|
}
|
|
593
602
|
_this.messageQueue.emailMessageQueue.body = body;
|
|
594
603
|
}
|
|
595
604
|
if (_this.messageQueue.smsMessageQueue) {
|
|
596
|
-
_this.messageQueue.smsMessageQueue.body = _this.
|
|
605
|
+
_this.messageQueue.smsMessageQueue.body = _this.anchorMe(_this.messageQueue.smsMessageQueue.body);
|
|
597
606
|
}
|
|
598
607
|
_this.messageQueueRecipients = _this.messageQueue.messageQueueRecipients
|
|
599
608
|
.reduce(function (accum, messageQueueRecipient) {
|
|
@@ -602,9 +611,10 @@
|
|
|
602
611
|
}, {});
|
|
603
612
|
_this._setLogsConfig(messageQueue);
|
|
604
613
|
_this._setAttachmentsConfig(messageQueue);
|
|
614
|
+
_this._setEventsConfig(messageQueue);
|
|
605
615
|
});
|
|
606
616
|
};
|
|
607
|
-
QueueComponent.prototype.
|
|
617
|
+
QueueComponent.prototype.anchorMe = function (html) {
|
|
608
618
|
return anchorme(html, {
|
|
609
619
|
options: {
|
|
610
620
|
attributes: [
|
|
@@ -675,6 +685,16 @@
|
|
|
675
685
|
}
|
|
676
686
|
};
|
|
677
687
|
};
|
|
688
|
+
QueueComponent.prototype._setEventsConfig = function (messageQueue) {
|
|
689
|
+
var _this = this;
|
|
690
|
+
this.eventConfig = {
|
|
691
|
+
loadMore: true,
|
|
692
|
+
queryParam: false,
|
|
693
|
+
fetch: function (query) {
|
|
694
|
+
return _this._config.loadMessageQueueEvents(messageQueue, query);
|
|
695
|
+
}
|
|
696
|
+
};
|
|
697
|
+
};
|
|
678
698
|
QueueComponent.prototype._setAttachmentsConfig = function (messageQueue) {
|
|
679
699
|
var _this = this;
|
|
680
700
|
this.attachmentConfig = {
|
|
@@ -720,7 +740,7 @@
|
|
|
720
740
|
], QueueComponent.prototype, "logList", void 0);
|
|
721
741
|
QueueComponent = __decorate([
|
|
722
742
|
core.Component({
|
|
723
|
-
template: "<fs-dialog *fsSkeleton=\"messageQueue\">\n <div mat-dialog-title>Message Queue</div>\n <mat-dialog-content>\n <mat-tab-group>\n <mat-tab label=\"Overview\">\n <ng-template matTabContent>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"25px\">\n <ng-container *ngIf=\"messageQueue.emailMessageQueue\">\n <fs-label-field>\n <fs-label>\n To Recipients\n </fs-label>\n <app-recipient \n *ngFor=\"let recipient of messageQueue.emailMessageQueue.toRecipients\"\n [state]=\"messageQueueRecipients[recipient]\"\n [name]=\"recipient\">\n </app-recipient>\n </fs-label-field>\n\n <fs-label-field *ngIf=\"messageQueue.emailMessageQueue.ccRecipients.length\">\n <fs-label>\n CC\n </fs-label>\n <app-recipient \n *ngFor=\"let recipient of messageQueue.emailMessageQueue.ccRecipients\"\n [state]=\"messageQueueRecipients[recipient]\"\n [name]=\"recipient\">\n </app-recipient> \n </fs-label-field>\n\n <fs-label-field *ngIf=\"messageQueue.emailMessageQueue.bccRecipients.length\">\n <fs-label>\n BCC\n </fs-label>\n <app-recipient \n *ngFor=\"let recipient of messageQueue.emailMessageQueue.bccRecipients\"\n [state]=\"messageQueueRecipients[recipient]\"\n [name]=\"recipient\">\n </app-recipient> \n </fs-label-field>\n\n <fs-label-field *ngIf=\"messageQueue.emailMessageQueue.fromName || messageQueue.emailMessageQueue.fromEmail\">\n <fs-label>\n From\n </fs-label>\n <ng-container *ngIf=\"messageQueue.emailMessageQueue.fromName === messageQueue.emailMessageQueue.fromEmail; else fromEmailName\">\n {{messageQueue.emailMessageQueue.fromName}}\n </ng-container>\n\n <ng-template #fromEmailName>\n {{messageQueue.emailMessageQueue.fromName}}\n <ng-container *ngIf=\"messageQueue.emailMessageQueue.fromEmail\">\n ({{messageQueue.emailMessageQueue.fromEmail}})\n </ng-container>\n </ng-template>\n </fs-label-field>\n\n <fs-label-field *ngIf=\"messageQueue.emailMessageQueue.replyEmail && messageQueue.emailMessageQueue.replyEmail.length\">\n <fs-label>\n Reply To\n </fs-label>\n {{messageQueue.emailMessageQueue.replyEmail.join(', ')}}\n </fs-label-field>\n </ng-container>\n\n <ng-container *ngIf=\"messageQueue.smsMessageQueue\">\n <fs-label-field>\n <fs-label>\n To Number\n </fs-label>\n <app-recipient \n [state]=\"messageQueue.state\"\n [name]=\"messageQueue.smsMessageQueue.toNumber\">\n </app-recipient> \n </fs-label-field>\n\n <fs-label-field *ngIf=\"messageQueue.smsMessageQueue.fromNumber\">\n <fs-label>\n From Number\n </fs-label>\n {{messageQueue.smsMessageQueue.fromNumber}}\n </fs-label-field>\n </ng-container>\n \n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{messageQueue.scheduledDate | fsDateFormat: 'full-date-time'}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n {{messageQueueStates[messageQueue.state]}}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"messageQueue.message\">\n <fs-label>\n Message Type\n </fs-label>\n <a\n (click)=\"openMessage(messageQueue.message)\"\n *ngIf=\"loadMessage; else elseMessage\">\n {{messageQueue.message.name}}\n </a>\n <ng-template #elseMessage>\n {{messageQueue.message.name}}\n </ng-template>\n </fs-label-field>\n </div>\n\n <ng-container *ngIf=\"messageQueue.emailMessageQueue\">\n <fs-label-field class=\"subject\">\n <fs-label>\n Subject\n </fs-label>\n {{messageQueue.emailMessageQueue.subject}}\n </fs-label-field>\n\n <fs-label-field class=\"body\">\n <fs-label>\n Body\n </fs-label>\n <div\n *ngIf=\"messageQueue.emailMessageQueue.format===emailMessageQueueFormat.Text\"\n class=\"format-text\"\n [innerHTML]=\"messageQueue.emailMessageQueue.body\">\n </div>\n <fs-iframe\n *ngIf=\"messageQueue.emailMessageQueue.format===emailMessageQueueFormat.HTML || messageQueue.emailMessageQueue.format===emailMessageQueueFormat.RichText\"\n [html]=\"messageQueue.emailMessageQueue.body\">\n </fs-iframe>\n </fs-label-field>\n </ng-container>\n\n <ng-container *ngIf=\"messageQueue.smsMessageQueue\">\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n <div\n class=\"format-text\"\n [innerHTML]=\"messageQueue.smsMessageQueue.body\">\n </div>\n </fs-label-field>\n </ng-container>\n\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Logs\">\n <ng-template matTabContent>\n <fs-list [config]=\"logConfig\" #logList>\n <fs-list-column title=\"Message\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.message}}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Date\">\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.createdDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n </fs-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Attachments\">\n <ng-template matTabContent>\n <fs-list [config]=\"attachmentConfig\">\n <fs-list-column title=\"File Name\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.filename}}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"File Size\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.prettyFilesize}}\n </ng-template>\n </fs-list-column>\n </fs-list>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n [mat-dialog-close]=\"null\"\n color=\"primary\">\n Done\n </button>\n <button\n mat-button\n *ngIf=\"resendMessageQueue\"\n type=\"button\"\n (click)=\"resend()\"\n type=\"button\">\n Resend\n </button>\n <button\n mat-button\n *ngIf=\"forwardMessageQueue\"\n type=\"button\"\n (click)=\"forward()\"\n type=\"button\">\n Forward\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n",
|
|
743
|
+
template: "<fs-dialog *fsSkeleton=\"messageQueue\">\n <div mat-dialog-title>Message Queue</div>\n <mat-dialog-content>\n <mat-tab-group>\n <mat-tab label=\"Overview\">\n <ng-template matTabContent>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"25px\">\n <ng-container *ngIf=\"messageQueue.emailMessageQueue\">\n <fs-label-field>\n <fs-label>\n To Recipients\n </fs-label>\n <app-recipient \n *ngFor=\"let recipient of messageQueue.emailMessageQueue.toRecipients\"\n [state]=\"messageQueueRecipients[recipient]\"\n [name]=\"recipient\">\n </app-recipient>\n </fs-label-field>\n\n <fs-label-field *ngIf=\"messageQueue.emailMessageQueue.ccRecipients.length\">\n <fs-label>\n CC\n </fs-label>\n <app-recipient \n *ngFor=\"let recipient of messageQueue.emailMessageQueue.ccRecipients\"\n [state]=\"messageQueueRecipients[recipient]\"\n [name]=\"recipient\">\n </app-recipient> \n </fs-label-field>\n\n <fs-label-field *ngIf=\"messageQueue.emailMessageQueue.bccRecipients.length\">\n <fs-label>\n BCC\n </fs-label>\n <app-recipient \n *ngFor=\"let recipient of messageQueue.emailMessageQueue.bccRecipients\"\n [state]=\"messageQueueRecipients[recipient]\"\n [name]=\"recipient\">\n </app-recipient> \n </fs-label-field>\n\n <fs-label-field *ngIf=\"messageQueue.emailMessageQueue.fromName || messageQueue.emailMessageQueue.fromEmail\">\n <fs-label>\n From\n </fs-label>\n <ng-container *ngIf=\"messageQueue.emailMessageQueue.fromName === messageQueue.emailMessageQueue.fromEmail; else fromEmailName\">\n {{messageQueue.emailMessageQueue.fromName}}\n </ng-container>\n\n <ng-template #fromEmailName>\n {{messageQueue.emailMessageQueue.fromName}}\n <ng-container *ngIf=\"messageQueue.emailMessageQueue.fromEmail\">\n ({{messageQueue.emailMessageQueue.fromEmail}})\n </ng-container>\n </ng-template>\n </fs-label-field>\n\n <fs-label-field *ngIf=\"messageQueue.emailMessageQueue.replyEmail && messageQueue.emailMessageQueue.replyEmail.length\">\n <fs-label>\n Reply To\n </fs-label>\n {{messageQueue.emailMessageQueue.replyEmail.join(', ')}}\n </fs-label-field>\n </ng-container>\n\n <ng-container *ngIf=\"messageQueue.smsMessageQueue\">\n <fs-label-field>\n <fs-label>\n To Number\n </fs-label>\n <app-recipient \n [state]=\"messageQueue.state\"\n [name]=\"messageQueue.smsMessageQueue.toNumber\">\n </app-recipient> \n </fs-label-field>\n\n <fs-label-field *ngIf=\"messageQueue.smsMessageQueue.fromNumber\">\n <fs-label>\n From Number\n </fs-label>\n {{messageQueue.smsMessageQueue.fromNumber}}\n </fs-label-field>\n </ng-container>\n \n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{messageQueue.scheduledDate | fsDateFormat: 'full-date-time'}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n {{messageQueueStates[messageQueue.state]}}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"messageQueue.message\">\n <fs-label>\n Message Type\n </fs-label>\n <a\n (click)=\"openMessage(messageQueue.message)\"\n *ngIf=\"loadMessage; else elseMessage\">\n {{messageQueue.message.name}}\n </a>\n <ng-template #elseMessage>\n {{messageQueue.message.name}}\n </ng-template>\n </fs-label-field>\n </div>\n\n <ng-container *ngIf=\"messageQueue.emailMessageQueue\">\n <fs-label-field class=\"subject\">\n <fs-label>\n Subject\n </fs-label>\n {{messageQueue.emailMessageQueue.subject}}\n </fs-label-field>\n\n <fs-label-field class=\"body\">\n <fs-label>\n Body\n </fs-label>\n <div\n *ngIf=\"messageQueue.emailMessageQueue.format===emailMessageQueueFormat.Text\"\n class=\"format-text\"\n [innerHTML]=\"messageQueue.emailMessageQueue.body\">\n </div>\n <fs-iframe\n *ngIf=\"messageQueue.emailMessageQueue.format===emailMessageQueueFormat.HTML || messageQueue.emailMessageQueue.format===emailMessageQueueFormat.RichText\"\n [html]=\"messageQueue.emailMessageQueue.body\">\n </fs-iframe>\n </fs-label-field>\n </ng-container>\n\n <ng-container *ngIf=\"messageQueue.smsMessageQueue\">\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n <div\n class=\"format-text\"\n [innerHTML]=\"messageQueue.smsMessageQueue.body\">\n </div>\n </fs-label-field>\n </ng-container>\n\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Logs\">\n <ng-template matTabContent>\n <fs-list [config]=\"logConfig\" #logList>\n <fs-list-column title=\"Message\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.message}}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Date\">\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.createdDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n </fs-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Attachments\">\n <ng-template matTabContent>\n <fs-list [config]=\"attachmentConfig\">\n <fs-list-column title=\"File Name\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.filename}}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"File Size\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.prettyFilesize}}\n </ng-template>\n </fs-list-column>\n </fs-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Events\">\n <ng-template matTabContent>\n <fs-list [config]=\"eventConfig\">\n <fs-list-column title=\"Event\">\n <ng-template fs-list-cell let-row=\"row\">\n {{MessageQueueEventTypes[row.type]}}\n <div class=\"small\" *ngIf=\"row.type === MessageQueueEventType.Click\">\n {{row.meta?.url}}\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Date\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.createDate | fsDateFormat: 'date-time-yearless'}}\n </ng-template>\n </fs-list-column>\n </fs-list>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n [mat-dialog-close]=\"null\"\n color=\"primary\">\n Done\n </button>\n <button\n mat-button\n *ngIf=\"resendMessageQueue\"\n type=\"button\"\n (click)=\"resend()\"\n type=\"button\">\n Resend\n </button>\n <button\n mat-button\n *ngIf=\"forwardMessageQueue\"\n type=\"button\"\n (click)=\"forward()\"\n type=\"button\">\n Forward\n </button>\n </mat-dialog-actions>\n</fs-dialog>\n",
|
|
724
744
|
styles: [".body,.subject{display:block;margin-top:15px}.body .format-text{white-space:pre-wrap}.body .body-frame{border:0}.body ::ng-deep .field-label{margin-bottom:10px}app-recipient{display:block}[hidden]{display:none!important}"]
|
|
725
745
|
}),
|
|
726
746
|
__param(0, core.Inject(FS_APP_MESSAGE_CONFIG)),
|
|
@@ -732,10 +752,37 @@
|
|
|
732
752
|
return QueueComponent;
|
|
733
753
|
}());
|
|
734
754
|
|
|
755
|
+
var FsMessageQueueService = /** @class */ (function () {
|
|
756
|
+
function FsMessageQueueService(_dialog) {
|
|
757
|
+
this._dialog = _dialog;
|
|
758
|
+
this._destroy$ = new rxjs.Subject();
|
|
759
|
+
}
|
|
760
|
+
FsMessageQueueService.prototype.openMessageQueue = function (messageQueueId, options) {
|
|
761
|
+
if (options === void 0) { options = {}; }
|
|
762
|
+
return this._dialog.open(QueueComponent, __assign(__assign({}, options), { data: {
|
|
763
|
+
messageQueueId: messageQueueId,
|
|
764
|
+
}, width: options.width || '85%' })).afterClosed()
|
|
765
|
+
.pipe(operators.takeUntil(this._destroy$));
|
|
766
|
+
};
|
|
767
|
+
FsMessageQueueService.prototype.ngOnDestroy = function () {
|
|
768
|
+
this._destroy$.next();
|
|
769
|
+
this._destroy$.complete();
|
|
770
|
+
};
|
|
771
|
+
FsMessageQueueService.ctorParameters = function () { return [
|
|
772
|
+
{ type: dialog.MatDialog }
|
|
773
|
+
]; };
|
|
774
|
+
FsMessageQueueService = __decorate([
|
|
775
|
+
core.Injectable(),
|
|
776
|
+
__metadata("design:paramtypes", [dialog.MatDialog])
|
|
777
|
+
], FsMessageQueueService);
|
|
778
|
+
return FsMessageQueueService;
|
|
779
|
+
}());
|
|
780
|
+
|
|
735
781
|
var QueuesComponent = /** @class */ (function () {
|
|
736
|
-
function QueuesComponent(_config, _dialog) {
|
|
782
|
+
function QueuesComponent(_config, _dialog, _messageQueueService) {
|
|
737
783
|
this._config = _config;
|
|
738
784
|
this._dialog = _dialog;
|
|
785
|
+
this._messageQueueService = _messageQueueService;
|
|
739
786
|
this.list = null;
|
|
740
787
|
this.query = {};
|
|
741
788
|
this.config = null;
|
|
@@ -824,13 +871,7 @@
|
|
|
824
871
|
};
|
|
825
872
|
QueuesComponent.prototype.open = function (messageQueue) {
|
|
826
873
|
var _this = this;
|
|
827
|
-
this.
|
|
828
|
-
data: {
|
|
829
|
-
messageQueue: messageQueue,
|
|
830
|
-
},
|
|
831
|
-
width: '85%'
|
|
832
|
-
})
|
|
833
|
-
.afterClosed()
|
|
874
|
+
this._messageQueueService.openMessageQueue(messageQueue.id)
|
|
834
875
|
.pipe(operators.takeUntil(this._destroy$))
|
|
835
876
|
.subscribe(function () {
|
|
836
877
|
_this.list.reload();
|
|
@@ -842,7 +883,8 @@
|
|
|
842
883
|
};
|
|
843
884
|
QueuesComponent.ctorParameters = function () { return [
|
|
844
885
|
{ type: undefined, decorators: [{ type: core.Inject, args: [FS_APP_MESSAGE_CONFIG,] }] },
|
|
845
|
-
{ type: dialog.MatDialog }
|
|
886
|
+
{ type: dialog.MatDialog },
|
|
887
|
+
{ type: FsMessageQueueService }
|
|
846
888
|
]; };
|
|
847
889
|
__decorate([
|
|
848
890
|
core.ViewChild(list.FsListComponent, { static: true }),
|
|
@@ -855,15 +897,45 @@
|
|
|
855
897
|
QueuesComponent = __decorate([
|
|
856
898
|
core.Component({
|
|
857
899
|
selector: 'fs-app-message-queues',
|
|
858
|
-
template: "<fs-list [config]=\"config\" #list>\n <fs-list-column title=\"Message\" name=\"subject\" sortable=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n <ng-container *ngIf=\"row.emailMessageQueue\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <a (click)=\"open(row)\">{{row.emailMessageQueue.subject|truncate:100}}</a>\n <mat-icon *ngIf=\"row.messageQueueAttachmentCount\" [matTooltip]=\"row.messageQueueAttachmentCount + ' Attachment(s)'\">attach_file</mat-icon>\n </div>\n </ng-container>\n <ng-container *ngIf=\"row.smsMessageQueue\">\n <a (click)=\"open(row)\">{{row.smsMessageQueue.body|truncate:100}}</a>\n </ng-container>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Recipients\" class=\"col-recipients\">\n <ng-template fs-list-cell let-row=\"row\">\n <ng-container *ngIf=\"row.emailMessageQueue\">\n <ng-container *ngIf=\"row.emailMessageQueue.toRecipients.length; else unspecified\">\n <div class=\"small\" *ngFor=\"let recipient of row.emailMessageQueue.toRecipients\">\n <app-recipient \n [state]=\"row.messageQueueRecipients[recipient]\"\n [name]=\"recipient\">\n </app-recipient>\n </div>\n </ng-container>\n <div class=\"small\" *ngFor=\"let recipient of row.emailMessageQueue.ccRecipients\">\n <app-recipient \n [state]=\"row.messageQueueRecipients[recipient]\"\n [name]=\"recipient\">\n </app-recipient>\n </div>\n <div class=\"small\" *ngFor=\"let recipient of row.emailMessageQueue.bccRecipients\">\n <app-recipient \n [state]=\"row.messageQueueRecipients[recipient]\"\n [name]=\"recipient\">\n </app-recipient>\n </div>\n </ng-container>\n <ng-container *ngIf=\"row.smsMessageQueue\">\n <ng-container *ngIf=\"row.smsMessageQueue.toNumber; else unspecified\">\n <app-recipient \n class=\"small\"\n [state]=\"row.state\"\n [name]=\"row.smsMessageQueue.toNumber\">\n </app-recipient>\n </ng-container>\n </ng-container>\n </ng-template>\n </fs-list-column> \n <fs-list-column title=\"Status\" class=\"col-state\">\n <ng-template fs-list-cell let-row=\"row\">\n <span [class]=\"'state-' + row.state\">{{messageQueueStates[row.state]}}</span>\n </ng-template>\n </fs-list-column> \n <fs-list-column title=\"Date\" name=\"created_date\" sortable=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n
|
|
900
|
+
template: "<fs-list [config]=\"config\" #list>\n <fs-list-column title=\"Message\" name=\"subject\" sortable=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n <ng-container *ngIf=\"row.emailMessageQueue\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <a (click)=\"open(row)\">{{row.emailMessageQueue.subject|truncate:100}}</a>\n <mat-icon *ngIf=\"row.messageQueueAttachmentCount\" [matTooltip]=\"row.messageQueueAttachmentCount + ' Attachment(s)'\">attach_file</mat-icon>\n </div>\n </ng-container>\n <ng-container *ngIf=\"row.smsMessageQueue\">\n <a (click)=\"open(row)\">{{row.smsMessageQueue.body|truncate:100}}</a>\n </ng-container>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Recipients\" class=\"col-recipients\">\n <ng-template fs-list-cell let-row=\"row\">\n <ng-container *ngIf=\"row.emailMessageQueue\">\n <ng-container *ngIf=\"row.emailMessageQueue.toRecipients.length; else unspecified\">\n <div class=\"small\" *ngFor=\"let recipient of row.emailMessageQueue.toRecipients\">\n <app-recipient \n [state]=\"row.messageQueueRecipients[recipient] || row.state\"\n [name]=\"recipient\">\n </app-recipient>\n </div>\n </ng-container>\n <div class=\"small\" *ngFor=\"let recipient of row.emailMessageQueue.ccRecipients\">\n <app-recipient \n [state]=\"row.messageQueueRecipients[recipient] || row.state\"\n [name]=\"recipient\">\n </app-recipient>\n </div>\n <div class=\"small\" *ngFor=\"let recipient of row.emailMessageQueue.bccRecipients\">\n <app-recipient \n [state]=\"row.messageQueueRecipients[recipient] || row.state\"\n [name]=\"recipient\">\n </app-recipient>\n </div>\n </ng-container>\n <ng-container *ngIf=\"row.smsMessageQueue\">\n <ng-container *ngIf=\"row.smsMessageQueue.toNumber; else unspecified\">\n <app-recipient \n class=\"small\"\n [state]=\"row.state\"\n [name]=\"row.smsMessageQueue.toNumber\">\n </app-recipient>\n </ng-container>\n </ng-container>\n </ng-template>\n </fs-list-column> \n <fs-list-column title=\"Status\" class=\"col-state\">\n <ng-template fs-list-cell let-row=\"row\">\n <span [class]=\"'state-' + row.state\">{{messageQueueStates[row.state]}}</span>\n </ng-template>\n </fs-list-column> \n <fs-list-column title=\"Date\" name=\"created_date\" sortable=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.createdDate | fsDateFormat: 'date-time-yeardiff' }}\n </ng-template>\n </fs-list-column>\n</fs-list>\n\n<ng-template #unspecified>\n <app-recipient \n class=\"small\"\n [state]=\"MessageQueueState.Failed\"\n name=\"Unspecified\">\n </app-recipient>\n</ng-template>",
|
|
859
901
|
styles: [":host ::ng-deep .col-recipients small+small:before{content:\", \"}:host ::ng-deep .col-state .state-F,:host ::ng-deep .col-state .state-P{color:#d8524e}"]
|
|
860
902
|
}),
|
|
861
903
|
__param(0, core.Inject(FS_APP_MESSAGE_CONFIG)),
|
|
862
|
-
__metadata("design:paramtypes", [Object, dialog.MatDialog
|
|
904
|
+
__metadata("design:paramtypes", [Object, dialog.MatDialog,
|
|
905
|
+
FsMessageQueueService])
|
|
863
906
|
], QueuesComponent);
|
|
864
907
|
return QueuesComponent;
|
|
865
908
|
}());
|
|
866
909
|
|
|
910
|
+
var RecipientComponent = /** @class */ (function () {
|
|
911
|
+
function RecipientComponent() {
|
|
912
|
+
}
|
|
913
|
+
RecipientComponent.prototype.ngOnInit = function () {
|
|
914
|
+
var icons = {
|
|
915
|
+
'S': { name: 'check_circle', tooltip: 'Sent' },
|
|
916
|
+
'E': { name: 'offline_bolt', tooltip: 'Sending' },
|
|
917
|
+
'F': { name: 'info', tooltip: 'Failed' },
|
|
918
|
+
};
|
|
919
|
+
this.icon = icons[this.state];
|
|
920
|
+
};
|
|
921
|
+
__decorate([
|
|
922
|
+
core.Input(),
|
|
923
|
+
__metadata("design:type", Object)
|
|
924
|
+
], RecipientComponent.prototype, "name", void 0);
|
|
925
|
+
__decorate([
|
|
926
|
+
core.Input(),
|
|
927
|
+
__metadata("design:type", Object)
|
|
928
|
+
], RecipientComponent.prototype, "state", void 0);
|
|
929
|
+
RecipientComponent = __decorate([
|
|
930
|
+
core.Component({
|
|
931
|
+
selector: 'app-recipient',
|
|
932
|
+
template: "<span class=\"recipient\">\n <span class=\"name\">{{name}}</span>\n <mat-icon *ngIf=\"icon\" [class]=\"'state-' + state\" [matTooltip]=\"icon.tooltip\">{{icon.name}}</mat-icon>\n</span>",
|
|
933
|
+
styles: ["mat-icon{font-size:14px;width:14px;height:14px;line-height:normal;margin-left:2px}mat-icon.state-S{color:#5fa099}mat-icon.state-E{color:#fbbc04}mat-icon.state-F{color:#d8524e}.recipient{display:inline-flex;align-items:center}"]
|
|
934
|
+
})
|
|
935
|
+
], RecipientComponent);
|
|
936
|
+
return RecipientComponent;
|
|
937
|
+
}());
|
|
938
|
+
|
|
867
939
|
var LinkifyPipe = /** @class */ (function () {
|
|
868
940
|
function LinkifyPipe() {
|
|
869
941
|
}
|
|
@@ -906,35 +978,6 @@
|
|
|
906
978
|
return TruncatePipe;
|
|
907
979
|
}());
|
|
908
980
|
|
|
909
|
-
var RecipientComponent = /** @class */ (function () {
|
|
910
|
-
function RecipientComponent() {
|
|
911
|
-
}
|
|
912
|
-
RecipientComponent.prototype.ngOnInit = function () {
|
|
913
|
-
var icons = {
|
|
914
|
-
'S': { name: 'check_circle', tooltip: 'Sent' },
|
|
915
|
-
'E': { name: 'offline_bolt', tooltip: 'Sending' },
|
|
916
|
-
'F': { name: 'info', tooltip: 'Failed' },
|
|
917
|
-
};
|
|
918
|
-
this.icon = icons[this.state];
|
|
919
|
-
};
|
|
920
|
-
__decorate([
|
|
921
|
-
core.Input(),
|
|
922
|
-
__metadata("design:type", Object)
|
|
923
|
-
], RecipientComponent.prototype, "name", void 0);
|
|
924
|
-
__decorate([
|
|
925
|
-
core.Input(),
|
|
926
|
-
__metadata("design:type", Object)
|
|
927
|
-
], RecipientComponent.prototype, "state", void 0);
|
|
928
|
-
RecipientComponent = __decorate([
|
|
929
|
-
core.Component({
|
|
930
|
-
selector: 'app-recipient',
|
|
931
|
-
template: "<span class=\"recipient\">\n <span class=\"name\">{{name}}</span>\n <mat-icon *ngIf=\"icon\" [class]=\"'state-' + state\" [matTooltip]=\"icon.tooltip\">{{icon.name}}</mat-icon>\n</span>",
|
|
932
|
-
styles: ["mat-icon{font-size:14px;width:14px;height:14px;line-height:normal;margin-left:2px}mat-icon.state-S{color:#5fa099}mat-icon.state-E{color:#fbbc04}mat-icon.state-F{color:#d8524e}.recipient{display:inline-flex;align-items:center}"]
|
|
933
|
-
})
|
|
934
|
-
], RecipientComponent);
|
|
935
|
-
return RecipientComponent;
|
|
936
|
-
}());
|
|
937
|
-
|
|
938
981
|
var FsAppMessageQueuesModule = /** @class */ (function () {
|
|
939
982
|
function FsAppMessageQueuesModule() {
|
|
940
983
|
}
|
|
@@ -970,6 +1013,9 @@
|
|
|
970
1013
|
exports: [
|
|
971
1014
|
QueuesComponent,
|
|
972
1015
|
QueueComponent,
|
|
1016
|
+
],
|
|
1017
|
+
providers: [
|
|
1018
|
+
FsMessageQueueService
|
|
973
1019
|
]
|
|
974
1020
|
})
|
|
975
1021
|
], FsAppMessageQueuesModule);
|
|
@@ -1269,6 +1315,7 @@
|
|
|
1269
1315
|
exports.FsAppMessageTemplatesModule = FsAppMessageTemplatesModule;
|
|
1270
1316
|
exports.FsAppMessageWebhooksModule = FsAppMessageWebhooksModule;
|
|
1271
1317
|
exports.FsAppMessagesModule = FsAppMessagesModule;
|
|
1318
|
+
exports.FsMessageQueueService = FsMessageQueueService;
|
|
1272
1319
|
exports.MessageComponent = MessageComponent;
|
|
1273
1320
|
exports.MessagesComponent = MessagesComponent;
|
|
1274
1321
|
exports.QueueComponent = QueueComponent;
|