@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,5 +1,5 @@
1
1
  import { __decorate, __param, __metadata } from 'tslib';
2
- import { Inject, Component, InjectionToken, ChangeDetectorRef, ChangeDetectionStrategy, ViewChild, NgModule, Input, Pipe } from '@angular/core';
2
+ import { Inject, Component, InjectionToken, ChangeDetectorRef, ChangeDetectionStrategy, ViewChild, NgModule, Injectable, Input, Pipe } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { RouterModule } from '@angular/router';
5
5
  import { FlexLayoutModule } from '@angular/flex-layout';
@@ -225,12 +225,8 @@ let MessagesComponent = class MessagesComponent {
225
225
  });
226
226
  dialogRef.afterClosed()
227
227
  .pipe(takeUntil(this._destroy$))
228
- .subscribe((response) => {
229
- if (response) {
230
- this.list.updateData(response, (row) => {
231
- return row.id === response.id;
232
- });
233
- }
228
+ .subscribe(() => {
229
+ this.list.reload();
234
230
  });
235
231
  }
236
232
  ngOnDestroy() {
@@ -312,19 +308,6 @@ FsAppMessagesModule = __decorate([
312
308
  })
313
309
  ], FsAppMessagesModule);
314
310
 
315
- var EmailMessageQueueFormat;
316
- (function (EmailMessageQueueFormat) {
317
- EmailMessageQueueFormat["Text"] = "T";
318
- EmailMessageQueueFormat["HTML"] = "H";
319
- EmailMessageQueueFormat["RichText"] = "R";
320
- })(EmailMessageQueueFormat || (EmailMessageQueueFormat = {}));
321
-
322
- var MessageQueueType;
323
- (function (MessageQueueType) {
324
- MessageQueueType["Sms"] = "S";
325
- MessageQueueType["Email"] = "E";
326
- })(MessageQueueType || (MessageQueueType = {}));
327
-
328
311
  var MessageQueueState;
329
312
  (function (MessageQueueState) {
330
313
  MessageQueueState["Sent"] = "S";
@@ -346,6 +329,30 @@ const MessageQueueStates = [
346
329
  { name: 'Failed', value: MessageQueueState.Failed }
347
330
  ];
348
331
 
332
+ var EmailMessageQueueFormat;
333
+ (function (EmailMessageQueueFormat) {
334
+ EmailMessageQueueFormat["Text"] = "T";
335
+ EmailMessageQueueFormat["HTML"] = "H";
336
+ EmailMessageQueueFormat["RichText"] = "R";
337
+ })(EmailMessageQueueFormat || (EmailMessageQueueFormat = {}));
338
+
339
+ var MessageQueueType;
340
+ (function (MessageQueueType) {
341
+ MessageQueueType["Sms"] = "S";
342
+ MessageQueueType["Email"] = "E";
343
+ })(MessageQueueType || (MessageQueueType = {}));
344
+
345
+ var MessageQueueEventType;
346
+ (function (MessageQueueEventType) {
347
+ MessageQueueEventType["Click"] = "click";
348
+ MessageQueueEventType["Open"] = "open";
349
+ })(MessageQueueEventType || (MessageQueueEventType = {}));
350
+
351
+ const MessageQueueEventTypes = [
352
+ { name: 'Open', value: MessageQueueEventType.Open },
353
+ { name: 'Click', value: MessageQueueEventType.Click },
354
+ ];
355
+
349
356
  let QueueComponent = class QueueComponent {
350
357
  constructor(_config, _message, _prompt, _dialog, _data) {
351
358
  this._config = _config;
@@ -355,13 +362,15 @@ let QueueComponent = class QueueComponent {
355
362
  this._data = _data;
356
363
  this.messageQueueRecipients = {};
357
364
  this.emailMessageQueueFormat = EmailMessageQueueFormat;
365
+ this.MessageQueueEventTypes = indexNameValue(MessageQueueEventTypes);
366
+ this.MessageQueueEventType = MessageQueueEventType;
358
367
  this._destroy$ = new Subject();
359
368
  }
360
369
  ngOnInit() {
361
370
  this.messageQueueStates = indexNameValue(MessageQueueStates);
362
371
  this.resendMessageQueue = this._config.resendMessageQueue;
363
372
  this.forwardMessageQueue = this._config.forwardMessageQueue;
364
- this._config.loadMessageQueue(this._data.messageQueue.id)
373
+ this._config.loadMessageQueue(this._data.messageQueueId)
365
374
  .subscribe((messageQueue) => {
366
375
  this.messageQueue = messageQueue;
367
376
  if (this.messageQueue.emailMessageQueue) {
@@ -378,12 +387,12 @@ let QueueComponent = class QueueComponent {
378
387
  }
379
388
  }
380
389
  else {
381
- body = this.anchorme(body);
390
+ body = this.anchorMe(body);
382
391
  }
383
392
  this.messageQueue.emailMessageQueue.body = body;
384
393
  }
385
394
  if (this.messageQueue.smsMessageQueue) {
386
- this.messageQueue.smsMessageQueue.body = this.anchorme(this.messageQueue.smsMessageQueue.body);
395
+ this.messageQueue.smsMessageQueue.body = this.anchorMe(this.messageQueue.smsMessageQueue.body);
387
396
  }
388
397
  this.messageQueueRecipients = this.messageQueue.messageQueueRecipients
389
398
  .reduce((accum, messageQueueRecipient) => {
@@ -392,9 +401,10 @@ let QueueComponent = class QueueComponent {
392
401
  }, {});
393
402
  this._setLogsConfig(messageQueue);
394
403
  this._setAttachmentsConfig(messageQueue);
404
+ this._setEventsConfig(messageQueue);
395
405
  });
396
406
  }
397
- anchorme(html) {
407
+ anchorMe(html) {
398
408
  return anchorme(html, {
399
409
  options: {
400
410
  attributes: [
@@ -462,6 +472,15 @@ let QueueComponent = class QueueComponent {
462
472
  }
463
473
  };
464
474
  }
475
+ _setEventsConfig(messageQueue) {
476
+ this.eventConfig = {
477
+ loadMore: true,
478
+ queryParam: false,
479
+ fetch: (query) => {
480
+ return this._config.loadMessageQueueEvents(messageQueue, query);
481
+ }
482
+ };
483
+ }
465
484
  _setAttachmentsConfig(messageQueue) {
466
485
  this.attachmentConfig = {
467
486
  queryParam: false,
@@ -507,7 +526,7 @@ __decorate([
507
526
  ], QueueComponent.prototype, "logList", void 0);
508
527
  QueueComponent = __decorate([
509
528
  Component({
510
- 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",
529
+ 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",
511
530
  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}"]
512
531
  }),
513
532
  __param(0, Inject(FS_APP_MESSAGE_CONFIG)),
@@ -517,10 +536,35 @@ QueueComponent = __decorate([
517
536
  MatDialog, Object])
518
537
  ], QueueComponent);
519
538
 
539
+ let FsMessageQueueService = class FsMessageQueueService {
540
+ constructor(_dialog) {
541
+ this._dialog = _dialog;
542
+ this._destroy$ = new Subject();
543
+ }
544
+ openMessageQueue(messageQueueId, options = {}) {
545
+ return this._dialog.open(QueueComponent, Object.assign(Object.assign({}, options), { data: {
546
+ messageQueueId,
547
+ }, width: options.width || '85%' })).afterClosed()
548
+ .pipe(takeUntil(this._destroy$));
549
+ }
550
+ ngOnDestroy() {
551
+ this._destroy$.next();
552
+ this._destroy$.complete();
553
+ }
554
+ };
555
+ FsMessageQueueService.ctorParameters = () => [
556
+ { type: MatDialog }
557
+ ];
558
+ FsMessageQueueService = __decorate([
559
+ Injectable(),
560
+ __metadata("design:paramtypes", [MatDialog])
561
+ ], FsMessageQueueService);
562
+
520
563
  let QueuesComponent = class QueuesComponent {
521
- constructor(_config, _dialog) {
564
+ constructor(_config, _dialog, _messageQueueService) {
522
565
  this._config = _config;
523
566
  this._dialog = _dialog;
567
+ this._messageQueueService = _messageQueueService;
524
568
  this.list = null;
525
569
  this.query = {};
526
570
  this.config = null;
@@ -608,13 +652,7 @@ let QueuesComponent = class QueuesComponent {
608
652
  });
609
653
  }
610
654
  open(messageQueue) {
611
- this._dialog.open(QueueComponent, {
612
- data: {
613
- messageQueue: messageQueue,
614
- },
615
- width: '85%'
616
- })
617
- .afterClosed()
655
+ this._messageQueueService.openMessageQueue(messageQueue.id)
618
656
  .pipe(takeUntil(this._destroy$))
619
657
  .subscribe(() => {
620
658
  this.list.reload();
@@ -627,7 +665,8 @@ let QueuesComponent = class QueuesComponent {
627
665
  };
628
666
  QueuesComponent.ctorParameters = () => [
629
667
  { type: undefined, decorators: [{ type: Inject, args: [FS_APP_MESSAGE_CONFIG,] }] },
630
- { type: MatDialog }
668
+ { type: MatDialog },
669
+ { type: FsMessageQueueService }
631
670
  ];
632
671
  __decorate([
633
672
  ViewChild(FsListComponent, { static: true }),
@@ -644,9 +683,36 @@ QueuesComponent = __decorate([
644
683
  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}"]
645
684
  }),
646
685
  __param(0, Inject(FS_APP_MESSAGE_CONFIG)),
647
- __metadata("design:paramtypes", [Object, MatDialog])
686
+ __metadata("design:paramtypes", [Object, MatDialog,
687
+ FsMessageQueueService])
648
688
  ], QueuesComponent);
649
689
 
690
+ let RecipientComponent = class RecipientComponent {
691
+ ngOnInit() {
692
+ const icons = {
693
+ 'S': { name: 'check_circle', tooltip: 'Sent' },
694
+ 'E': { name: 'offline_bolt', tooltip: 'Sending' },
695
+ 'F': { name: 'info', tooltip: 'Failed' },
696
+ };
697
+ this.icon = icons[this.state];
698
+ }
699
+ };
700
+ __decorate([
701
+ Input(),
702
+ __metadata("design:type", Object)
703
+ ], RecipientComponent.prototype, "name", void 0);
704
+ __decorate([
705
+ Input(),
706
+ __metadata("design:type", Object)
707
+ ], RecipientComponent.prototype, "state", void 0);
708
+ RecipientComponent = __decorate([
709
+ Component({
710
+ selector: 'app-recipient',
711
+ 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>",
712
+ 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}"]
713
+ })
714
+ ], RecipientComponent);
715
+
650
716
  let LinkifyPipe = class LinkifyPipe {
651
717
  transform(value) {
652
718
  return anchorme(value, {
@@ -680,32 +746,6 @@ TruncatePipe = __decorate([
680
746
  })
681
747
  ], TruncatePipe);
682
748
 
683
- let RecipientComponent = class RecipientComponent {
684
- ngOnInit() {
685
- const icons = {
686
- 'S': { name: 'check_circle', tooltip: 'Sent' },
687
- 'E': { name: 'offline_bolt', tooltip: 'Sending' },
688
- 'F': { name: 'info', tooltip: 'Failed' },
689
- };
690
- this.icon = icons[this.state];
691
- }
692
- };
693
- __decorate([
694
- Input(),
695
- __metadata("design:type", Object)
696
- ], RecipientComponent.prototype, "name", void 0);
697
- __decorate([
698
- Input(),
699
- __metadata("design:type", Object)
700
- ], RecipientComponent.prototype, "state", void 0);
701
- RecipientComponent = __decorate([
702
- Component({
703
- selector: 'app-recipient',
704
- 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>",
705
- 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}"]
706
- })
707
- ], RecipientComponent);
708
-
709
749
  let FsAppMessageQueuesModule = class FsAppMessageQueuesModule {
710
750
  };
711
751
  FsAppMessageQueuesModule = __decorate([
@@ -740,6 +780,9 @@ FsAppMessageQueuesModule = __decorate([
740
780
  exports: [
741
781
  QueuesComponent,
742
782
  QueueComponent,
783
+ ],
784
+ providers: [
785
+ FsMessageQueueService
743
786
  ]
744
787
  })
745
788
  ], FsAppMessageQueuesModule);
@@ -1021,5 +1064,5 @@ FsAppMessageModule = FsAppMessageModule_1 = __decorate([
1021
1064
  * Generated bundle index. Do not edit.
1022
1065
  */
1023
1066
 
1024
- export { FS_APP_MESSAGE_CONFIG, FsAppMessageModule, FsAppMessageQueuesModule, FsAppMessageTemplatesModule, FsAppMessageWebhooksModule, FsAppMessagesModule, MessageComponent, MessagesComponent, QueueComponent, QueuesComponent, TemplatesComponent, FsAppMessagePreviewModule as ɵa, PreviewComponent as ɵb, FS_APP_MESSAGE_CONFIG as ɵc, LinkifyPipe as ɵd, TruncatePipe as ɵe, RecipientComponent as ɵf, TemplateComponent as ɵg, WebhooksComponent as ɵh };
1067
+ export { FS_APP_MESSAGE_CONFIG, FsAppMessageModule, FsAppMessageQueuesModule, FsAppMessageTemplatesModule, FsAppMessageWebhooksModule, FsAppMessagesModule, FsMessageQueueService, MessageComponent, MessagesComponent, QueueComponent, QueuesComponent, TemplatesComponent, FsAppMessagePreviewModule as ɵa, PreviewComponent as ɵb, FS_APP_MESSAGE_CONFIG as ɵc, LinkifyPipe as ɵd, TruncatePipe as ɵe, RecipientComponent as ɵf, TemplateComponent as ɵg, WebhooksComponent as ɵh };
1025
1068
  //# sourceMappingURL=firestitch-app-message.js.map