@firestitch/app-message 9.1.4 → 9.2.1

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 (56) hide show
  1. package/app/modules/app-message/interfaces/app-message-config.d.ts +2 -1
  2. package/app/modules/app-message/types/types.type.d.ts +4 -0
  3. package/app/modules/message-queues/components/queue/queue.component.d.ts +6 -2
  4. package/app/modules/message-queues/components/queues/queues.component.d.ts +3 -1
  5. package/app/modules/message-queues/consts/message-queue-event-type.const.d.ts +5 -0
  6. package/app/modules/message-queues/enums/index.d.ts +1 -0
  7. package/app/modules/message-queues/enums/message-queue-event-type.enum.d.ts +4 -0
  8. package/app/modules/message-queues/services/message-queue.service.d.ts +9 -0
  9. package/bundles/firestitch-app-message.umd.js +110 -63
  10. package/bundles/firestitch-app-message.umd.js.map +1 -1
  11. package/bundles/firestitch-app-message.umd.min.js +1 -1
  12. package/bundles/firestitch-app-message.umd.min.js.map +1 -1
  13. package/esm2015/app/modules/app-message/interfaces/app-message-config.js +1 -1
  14. package/esm2015/app/modules/app-message/types/types.type.js +1 -1
  15. package/esm2015/app/modules/message-queues/components/queue/queue.component.js +20 -7
  16. package/esm2015/app/modules/message-queues/components/queues/queues.component.js +9 -12
  17. package/esm2015/app/modules/message-queues/consts/message-queue-event-type.const.js +6 -0
  18. package/esm2015/app/modules/message-queues/enums/index.js +2 -1
  19. package/esm2015/app/modules/message-queues/enums/message-queue-event-type.enum.js +6 -0
  20. package/esm2015/app/modules/message-queues/message-queues.module.js +8 -2
  21. package/esm2015/app/modules/message-queues/services/message-queue.service.js +31 -0
  22. package/esm2015/app/modules/messages/components/messages/messages.component.js +3 -7
  23. package/esm2015/firestitch-app-message.js +2 -2
  24. package/esm2015/public_api.js +2 -1
  25. package/esm5/app/modules/app-message/interfaces/app-message-config.js +1 -1
  26. package/esm5/app/modules/app-message/types/types.type.js +1 -1
  27. package/esm5/app/modules/message-queues/components/queue/queue.component.js +21 -7
  28. package/esm5/app/modules/message-queues/components/queues/queues.component.js +9 -12
  29. package/esm5/app/modules/message-queues/consts/message-queue-event-type.const.js +6 -0
  30. package/esm5/app/modules/message-queues/enums/index.js +2 -1
  31. package/esm5/app/modules/message-queues/enums/message-queue-event-type.enum.js +6 -0
  32. package/esm5/app/modules/message-queues/message-queues.module.js +8 -2
  33. package/esm5/app/modules/message-queues/services/message-queue.service.js +33 -0
  34. package/esm5/app/modules/messages/components/messages/messages.component.js +3 -7
  35. package/esm5/firestitch-app-message.js +2 -2
  36. package/esm5/public_api.js +2 -1
  37. package/fesm2015/firestitch-app-message.js +105 -62
  38. package/fesm2015/firestitch-app-message.js.map +1 -1
  39. package/fesm5/firestitch-app-message.js +111 -65
  40. package/fesm5/firestitch-app-message.js.map +1 -1
  41. package/firestitch-app-message.d.ts +1 -1
  42. package/firestitch-app-message.metadata.json +1 -1
  43. package/package.json +1 -1
  44. package/public_api.d.ts +1 -0
  45. package/app/modules/message-queues/components/index.d.ts +0 -3
  46. package/app/modules/message-queues/components/queue/index.d.ts +0 -1
  47. package/app/modules/message-queues/components/queues/index.d.ts +0 -1
  48. package/app/modules/message-queues/components/recipient/index.d.ts +0 -1
  49. package/esm2015/app/modules/message-queues/components/index.js +0 -4
  50. package/esm2015/app/modules/message-queues/components/queue/index.js +0 -2
  51. package/esm2015/app/modules/message-queues/components/queues/index.js +0 -2
  52. package/esm2015/app/modules/message-queues/components/recipient/index.js +0 -2
  53. package/esm5/app/modules/message-queues/components/index.js +0 -4
  54. package/esm5/app/modules/message-queues/components/queue/index.js +0 -2
  55. package/esm5/app/modules/message-queues/components/queues/index.js +0 -2
  56. 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
- anchorme(html: any): any;
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,5 @@
1
+ import { MessageQueueEventType } from "../enums";
2
+ export declare const MessageQueueEventTypes: {
3
+ name: string;
4
+ value: MessageQueueEventType;
5
+ }[];
@@ -1,2 +1,3 @@
1
1
  export * from './email-message-queue-format.enum';
2
2
  export * from './message-queue-type.enum';
3
+ export * from './message-queue-event-type.enum';
@@ -0,0 +1,4 @@
1
+ export declare enum MessageQueueEventType {
2
+ Click = "click",
3
+ Open = "open"
4
+ }
@@ -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 (response) {
431
- if (response) {
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.messageQueue.id)
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.anchorme(body);
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.anchorme(_this.messageQueue.smsMessageQueue.body);
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.anchorme = function (html) {
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=\"Recipient\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.messageQueueRecipient.recipient}}\n </ng-template>\n </fs-list-column>\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 <a [href]=\"row.meta?.url\" target=\"_blank\">{{row.meta?.url}}</a>\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._dialog.open(QueueComponent, {
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 }),
@@ -859,11 +901,41 @@
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;