@firestitch/app-message 13.1.1 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/app/helpers/index-name-value.d.ts +1 -1
  2. package/app/helpers/index.d.ts +1 -1
  3. package/app/modules/app-message/app-message.module.d.ts +8 -8
  4. package/app/modules/app-message/injectors/app-message-config.injector.d.ts +3 -3
  5. package/app/modules/app-message/injectors/index.d.ts +1 -1
  6. package/app/modules/app-message/interfaces/app-message-config.d.ts +30 -30
  7. package/app/modules/app-message/interfaces/index.d.ts +1 -1
  8. package/app/modules/app-message/types/index.d.ts +1 -1
  9. package/app/modules/app-message/types/types.type.d.ts +49 -49
  10. package/app/modules/message-preview/components/index.d.ts +1 -1
  11. package/app/modules/message-preview/components/preview/index.d.ts +1 -1
  12. package/app/modules/message-preview/components/preview/preview.component.d.ts +11 -11
  13. package/app/modules/message-preview/message-preview.module.d.ts +11 -11
  14. package/app/modules/message-queues/components/queue/queue.component.d.ts +44 -44
  15. package/app/modules/message-queues/components/queues/queues.component.d.ts +31 -31
  16. package/app/modules/message-queues/components/recipient/recipient.component.d.ts +10 -10
  17. package/app/modules/message-queues/consts/index.d.ts +1 -1
  18. package/app/modules/message-queues/consts/message-queue-event-type.const.d.ts +5 -5
  19. package/app/modules/message-queues/consts/message-queue-states.const.d.ts +5 -5
  20. package/app/modules/message-queues/enums/email-message-queue-format.enum.d.ts +5 -5
  21. package/app/modules/message-queues/enums/index.d.ts +3 -3
  22. package/app/modules/message-queues/enums/message-queue-event-type.enum.d.ts +4 -4
  23. package/app/modules/message-queues/enums/message-queue-state.enum.d.ts +9 -9
  24. package/app/modules/message-queues/enums/message-queue-type.enum.d.ts +4 -4
  25. package/app/modules/message-queues/message-queues.module.d.ts +29 -29
  26. package/app/modules/message-queues/pipes/linkify.pipe.d.ts +7 -7
  27. package/app/modules/message-queues/pipes/truncate.pipe.d.ts +7 -7
  28. package/app/modules/message-queues/services/message-queue.service.d.ts +10 -10
  29. package/app/modules/message-templates/components/index.d.ts +2 -2
  30. package/app/modules/message-templates/components/template/index.d.ts +1 -1
  31. package/app/modules/message-templates/components/template/template.component.d.ts +23 -23
  32. package/app/modules/message-templates/components/templates/index.d.ts +1 -1
  33. package/app/modules/message-templates/components/templates/templates.component.d.ts +19 -19
  34. package/app/modules/message-templates/message-templates.module.d.ts +24 -24
  35. package/app/modules/messages/components/attachments/attachments.component.d.ts +18 -18
  36. package/app/modules/messages/components/attachments/index.d.ts +1 -1
  37. package/app/modules/messages/components/index.d.ts +3 -3
  38. package/app/modules/messages/components/message/index.d.ts +1 -1
  39. package/app/modules/messages/components/message/message.component.d.ts +30 -30
  40. package/app/modules/messages/components/messages/index.d.ts +1 -1
  41. package/app/modules/messages/components/messages/messages.component.d.ts +19 -19
  42. package/app/modules/messages/consts/email-message-formats.const.d.ts +5 -5
  43. package/app/modules/messages/consts/index.d.ts +1 -1
  44. package/app/modules/messages/enums/email-message-format.enum.d.ts +5 -5
  45. package/app/modules/messages/enums/index.d.ts +1 -1
  46. package/app/modules/messages/messages.module.d.ts +31 -31
  47. package/app/modules/webhooks/components/webhooks/webhooks.component.d.ts +15 -15
  48. package/app/modules/webhooks/webhooks.module.d.ts +9 -9
  49. package/esm2020/app/helpers/index-name-value.mjs +7 -7
  50. package/esm2020/app/helpers/index.mjs +1 -1
  51. package/esm2020/app/modules/app-message/app-message.module.mjs +16 -16
  52. package/esm2020/app/modules/app-message/injectors/app-message-config.injector.mjs +3 -3
  53. package/esm2020/app/modules/app-message/injectors/index.mjs +1 -1
  54. package/esm2020/app/modules/app-message/interfaces/app-message-config.mjs +1 -1
  55. package/esm2020/app/modules/app-message/interfaces/index.mjs +1 -1
  56. package/esm2020/app/modules/app-message/types/index.mjs +1 -1
  57. package/esm2020/app/modules/app-message/types/types.type.mjs +1 -1
  58. package/esm2020/app/modules/message-preview/components/index.mjs +1 -1
  59. package/esm2020/app/modules/message-preview/components/preview/index.mjs +1 -1
  60. package/esm2020/app/modules/message-preview/components/preview/preview.component.mjs +25 -25
  61. package/esm2020/app/modules/message-preview/message-preview.module.mjs +36 -38
  62. package/esm2020/app/modules/message-queues/components/queue/queue.component.mjs +209 -209
  63. package/esm2020/app/modules/message-queues/components/queues/queues.component.mjs +197 -197
  64. package/esm2020/app/modules/message-queues/components/recipient/recipient.component.mjs +25 -25
  65. package/esm2020/app/modules/message-queues/consts/index.mjs +1 -1
  66. package/esm2020/app/modules/message-queues/consts/message-queue-event-type.const.mjs +5 -5
  67. package/esm2020/app/modules/message-queues/consts/message-queue-states.const.mjs +10 -10
  68. package/esm2020/app/modules/message-queues/enums/email-message-queue-format.enum.mjs +6 -6
  69. package/esm2020/app/modules/message-queues/enums/index.mjs +3 -3
  70. package/esm2020/app/modules/message-queues/enums/message-queue-event-type.enum.mjs +5 -5
  71. package/esm2020/app/modules/message-queues/enums/message-queue-state.enum.mjs +10 -10
  72. package/esm2020/app/modules/message-queues/enums/message-queue-type.enum.mjs +5 -5
  73. package/esm2020/app/modules/message-queues/message-queues.module.mjs +112 -114
  74. package/esm2020/app/modules/message-queues/pipes/linkify.pipe.mjs +21 -21
  75. package/esm2020/app/modules/message-queues/pipes/truncate.pipe.mjs +21 -21
  76. package/esm2020/app/modules/message-queues/services/message-queue.service.mjs +28 -28
  77. package/esm2020/app/modules/message-templates/components/index.mjs +2 -2
  78. package/esm2020/app/modules/message-templates/components/template/index.mjs +1 -1
  79. package/esm2020/app/modules/message-templates/components/template/template.component.mjs +81 -81
  80. package/esm2020/app/modules/message-templates/components/templates/index.mjs +1 -1
  81. package/esm2020/app/modules/message-templates/components/templates/templates.component.mjs +80 -80
  82. package/esm2020/app/modules/message-templates/message-templates.module.mjs +92 -94
  83. package/esm2020/app/modules/messages/components/attachments/attachments.component.mjs +80 -80
  84. package/esm2020/app/modules/messages/components/attachments/index.mjs +1 -1
  85. package/esm2020/app/modules/messages/components/index.mjs +3 -3
  86. package/esm2020/app/modules/messages/components/message/index.mjs +1 -1
  87. package/esm2020/app/modules/messages/components/message/message.component.mjs +128 -128
  88. package/esm2020/app/modules/messages/components/messages/index.mjs +1 -1
  89. package/esm2020/app/modules/messages/components/messages/messages.component.mjs +71 -71
  90. package/esm2020/app/modules/messages/consts/email-message-formats.const.mjs +6 -6
  91. package/esm2020/app/modules/messages/consts/index.mjs +1 -1
  92. package/esm2020/app/modules/messages/enums/email-message-format.enum.mjs +6 -6
  93. package/esm2020/app/modules/messages/enums/index.mjs +1 -1
  94. package/esm2020/app/modules/messages/messages.module.mjs +119 -121
  95. package/esm2020/app/modules/webhooks/components/webhooks/webhooks.component.mjs +62 -62
  96. package/esm2020/app/modules/webhooks/webhooks.module.mjs +28 -30
  97. package/esm2020/firestitch-app-message.mjs +4 -4
  98. package/esm2020/public_api.mjs +15 -15
  99. package/fesm2015/firestitch-app-message.mjs +1213 -1223
  100. package/fesm2015/firestitch-app-message.mjs.map +1 -1
  101. package/fesm2020/firestitch-app-message.mjs +1217 -1227
  102. package/fesm2020/firestitch-app-message.mjs.map +1 -1
  103. package/{firestitch-app-message.d.ts → index.d.ts} +5 -5
  104. package/package.json +3 -3
  105. package/public_api.d.ts +16 -16
@@ -1 +1 @@
1
- {"version":3,"file":"firestitch-app-message.mjs","sources":["../../src/app/modules/app-message/app-message.module.ts","../../src/app/modules/message-preview/components/preview/preview.component.ts","../../src/app/modules/message-preview/components/preview/preview.component.html","../../src/app/modules/message-preview/message-preview.module.ts","../../src/app/modules/app-message/injectors/app-message-config.injector.ts","../../src/app/modules/messages/enums/email-message-format.enum.ts","../../src/app/modules/messages/consts/email-message-formats.const.ts","../../src/app/modules/messages/components/attachments/attachments.component.ts","../../src/app/modules/messages/components/attachments/attachments.component.html","../../src/app/modules/messages/components/message/message.component.ts","../../src/app/modules/messages/components/message/message.component.html","../../src/app/helpers/index-name-value.ts","../../src/app/modules/messages/components/messages/messages.component.ts","../../src/app/modules/messages/components/messages/messages.component.html","../../src/app/modules/messages/messages.module.ts","../../src/app/modules/message-queues/enums/message-queue-state.enum.ts","../../src/app/modules/message-queues/consts/message-queue-states.const.ts","../../src/app/modules/message-queues/enums/email-message-queue-format.enum.ts","../../src/app/modules/message-queues/enums/message-queue-type.enum.ts","../../src/app/modules/message-queues/enums/message-queue-event-type.enum.ts","../../src/app/modules/message-queues/consts/message-queue-event-type.const.ts","../../src/app/modules/message-queues/components/recipient/recipient.component.ts","../../src/app/modules/message-queues/components/recipient/recipient.component.html","../../src/app/modules/message-queues/components/queue/queue.component.ts","../../src/app/modules/message-queues/components/queue/queue.component.html","../../src/app/modules/message-queues/services/message-queue.service.ts","../../src/app/modules/message-queues/pipes/truncate.pipe.ts","../../src/app/modules/message-queues/components/queues/queues.component.ts","../../src/app/modules/message-queues/components/queues/queues.component.html","../../src/app/modules/message-queues/pipes/linkify.pipe.ts","../../src/app/modules/message-queues/message-queues.module.ts","../../src/app/modules/message-templates/components/template/template.component.ts","../../src/app/modules/message-templates/components/template/template.component.html","../../src/app/modules/message-templates/components/templates/templates.component.ts","../../src/app/modules/message-templates/components/templates/templates.component.html","../../src/app/modules/message-templates/message-templates.module.ts","../../src/app/modules/webhooks/components/webhooks/webhooks.component.ts","../../src/app/modules/webhooks/components/webhooks/webhooks.component.html","../../src/app/modules/webhooks/webhooks.module.ts","../../src/firestitch-app-message.ts"],"sourcesContent":["import { NgModule, ModuleWithProviders } from '@angular/core';\n\n\n@NgModule({\n})\nexport class FsAppMessageModule {\n static forRoot(): ModuleWithProviders<FsAppMessageModule> {\n return {\n ngModule: FsAppMessageModule,\n };\n }\n}\n","import { Component, OnInit, Inject } from '@angular/core';\n\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n\n@Component({\n templateUrl: './preview.component.html',\n styleUrls: ['./preview.component.scss']\n})\nexport class PreviewComponent implements OnInit {\n\n public html;\n public styles;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data,\n ) {\n this.html = _data.html;\n this.styles = _data.styles;\n }\n\n public ngOnInit() {\n\n }\n}\n","<fs-dialog>\n <div mat-dialog-title>Preview</div>\n <mat-dialog-content>\n <fs-iframe\n [html]=\"html\"\n [width]=\"'100%'\"\n [styles]=\"styles\">\n </fs-iframe>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"null\" color=\"primary\" type=\"button\">Done</button>\n </mat-dialog-actions>\n</fs-dialog>\n","import { NgModule } from '@angular/core';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { FsIFrameModule } from '@firestitch/iframe';\nimport { FsDialogModule } from '@firestitch/dialog';\n\nimport { PreviewComponent } from './components/preview';\n\n\n@NgModule({\n imports: [\n MatDialogModule,\n MatButtonModule,\n\n FsDialogModule,\n FsIFrameModule,\n ],\n declarations: [\n PreviewComponent,\n ],\n exports: [\n PreviewComponent,\n ]\n})\nexport class FsAppMessagePreviewModule {\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FS_APP_MESSAGE_ROOT_CONFIG = new InjectionToken<any[]>('fs-app-message-root-config');\nexport const FS_APP_MESSAGE_CONFIG = new InjectionToken<any[]>('fs-app-message-config');\n","export enum EmailMessageFormat {\n Text = 'T',\n HTML = 'H',\n RichText = 'R'\n}\n","\nimport { EmailMessageFormat } from '../enums';\n\nexport const EmailMessageFormats = [\n { name: 'Text', value: EmailMessageFormat.Text },\n { name: 'HTML', value: EmailMessageFormat.HTML },\n { name: 'Rich Text', value: EmailMessageFormat.RichText }\n];\n","import { Component, OnDestroy, OnInit, ViewChild, Inject, ChangeDetectionStrategy, Input } from '@angular/core';\n\nimport { FsFile } from '@firestitch/file';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ActionMode } from '@firestitch/filter';\n\nimport { Subject } from 'rxjs';\n\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\nimport { FsMessage } from '@firestitch/message';\n\n\n@Component({\n selector: 'fs-app-message-attachments',\n templateUrl: './attachments.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AttachmentsComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent, { static: true }) \n public list: FsListComponent = null;\n\n @Input() public message;\n\n public config: FsListConfig = null;\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _message: FsMessage,\n ) { }\n\n public ngOnInit(): void {\n this.config = {\n rowActions: [],\n actions: [\n {\n label: 'Upload',\n mode: ActionMode.File,\n select: (fsFile: FsFile) => {\n this._config.uploadMessageAttachment(this.message, fsFile)\n .subscribe(() => {\n this._message.success('Saved attachment');\n this.list.reload();\n });\n }\n }\n ],\n fetch: query => {\n return this._config.loadMessageAttachments(this.message, query);\n }\n }\n\n if (this._config.downloadMessageAttachment) {\n this.config.rowActions\n .push(\n {\n click: data => {\n return this._config.downloadMessageAttachment(data);\n },\n label: 'Download',\n },\n );\n }\n\n if (this._config.deleteMessageAttachment) {\n this.config.rowActions\n .push(\n {\n click: data => {\n return this._config.deleteMessageAttachment(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this template?',\n },\n label: 'Delete',\n },\n );\n }\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n}\n","<fs-list [config]=\"config\">\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.size | fsFormatBytes}}\n </ng-template>\n </fs-list-column>\n</fs-list>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { switchMap, tap } from 'rxjs/operators';\n\nimport { of } from 'rxjs';\nimport { PreviewComponent } from '../../../../modules/message-preview/components';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\nimport { EmailMessageFormats } from '../../consts';\nimport { EmailMessageFormat } from '../../enums';\n\n\n@Component({\n templateUrl: './message.component.html',\n styleUrls: ['./message.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MessageComponent implements OnInit {\n\n public message;\n public tab = 'general';\n public messageTemplates = [];\n public emailMessageFormats = EmailMessageFormats;\n public emailMessageFormat = EmailMessageFormat;\n\n public constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n @Inject(MAT_DIALOG_DATA) private _data,\n private _prompt: FsPrompt,\n private _message: FsMessage,\n private _dialog: MatDialog,\n private _cdRef: ChangeDetectorRef,\n ) {\n }\n\n public ngOnInit() {\n this._config.loadMessage(this._data.message)\n .subscribe((message) => {\n this.message = message;\n\n if (this.message.emailMessage && this.message.emailMessage.customize === undefined) {\n this.message.emailMessage.customize = true;\n }\n if (this.message.smsMessage && this.message.smsMessage.customize === undefined) {\n this.message.smsMessage.customize = true;\n }\n\n this.message.reference = String(message.tag)\n .toLocaleLowerCase()\n .split('_')\n .map((item: string) => item.charAt(0).toUpperCase() + item.slice(1))\n .join('');\n\n this._cdRef.markForCheck();\n });\n\n this._config.loadMessageTemplates()\n .subscribe((data) => {\n this.messageTemplates = data.data;\n this._cdRef.markForCheck();\n });\n }\n\n public save = () => {\n return this._config.saveMessage(this.message)\n .pipe(\n tap(() => {\n this._message.success('Saved Changes');\n })\n );\n }\n\n public openPreview(): void {\n const emailMessage = this.message.emailMessage;\n let html = emailMessage.customize ? emailMessage.body : this.message.defaultEmailBody;\n let styles = emailMessage.styles || '';\n\n if (emailMessage.messageTemplateId) {\n const messageTemplate = this.messageTemplates\n .find((item) => {\n return emailMessage.messageTemplateId === item.id;\n });\n\n if (messageTemplate) {\n html = messageTemplate.content.replace('{$content}', html);\n styles = `${messageTemplate.styles || ''}\\n\\n${styles}`;\n }\n }\n\n this._dialog.open(PreviewComponent, {\n data: {\n styles,\n html,\n },\n width: '95%'\n });\n }\n\n public sendTest(type) {\n of(true)\n .pipe(\n switchMap(() => {\n return type === 'email' ? this._config.getTestEmail() : of('');\n }),\n switchMap((default_) => {\n const typeName = type === 'email' ? 'an email' : 'phone number';\n\n return this._prompt.input({\n label: `Please enter ${typeName} to send test to`,\n title: 'Send Test',\n commitLabel: 'Send',\n default: default_,\n required: true\n })\n })\n )\n .subscribe((value: string) => {\n this._config.testMessage(this.message, value, type)\n .subscribe(() => {\n this._message.success('Test Sent');\n });\n });\n }\n}\n","<form\n fsForm\n [submit]=\"save\"\n #form=\"ngForm\"\n *fsSkeleton=\"message\"\n [confirmTabs]=\"false\">\n <fs-dialog *ngIf=\"message\">\n <div mat-dialog-title>Edit Message</div>\n <mat-dialog-content>\n <mat-tab-group\n fsTabs\n [(selected)]=\"tab\">\n <mat-tab label=\"General\" name=\"general\">\n <ng-template matTabContent>\n <div class=\"fs-column\">\n <mat-form-field>\n <mat-label>Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.name\"\n name=\"Name\"\n required>\n </mat-form-field>\n <fs-label-field>\n <fs-label>Reference</fs-label>\n {{message.reference}}\n </fs-label-field>\n <mat-form-field>\n <mat-label>Description</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.description\"\n name=\"description\">\n </mat-form-field>\n\n <div class=\"fs-row.gap-small.wrap\">\n <mat-form-field>\n <mat-label>From Email</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.fromEmail\"\n name=\"from_email\">\n </mat-form-field>\n <mat-form-field>\n <mat-label>From Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.fromName\"\n name=\"from_name\">\n </mat-form-field>\n <mat-form-field>\n <mat-label>Reply To</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.replyEmail\"\n name=\"reply_to\">\n </mat-form-field>\n </div>\n\n <div class=\"fs-row.gap-small.wrap\">\n <mat-form-field>\n <mat-label>To</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.toRecipients\"\n name=\"to\">\n </mat-form-field>\n <mat-form-field>\n <mat-label>CC</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.ccRecipients\"\n name=\"cc\">\n </mat-form-field>\n <mat-form-field>\n <mat-label>BCC</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.bccRecipients\"\n name=\"bcc\">\n </mat-form-field>\n </div>\n </div>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Email Message\" *ngIf=\"message.emailMessage\" name=\"email\">\n <ng-template matTabContent>\n <div class=\"fs-column\">\n <div class=\"fs-row.gap-small\">\n <mat-form-field>\n <mat-label>Customize Message</mat-label>\n <mat-select\n required\n [(ngModel)]=\"message.emailMessage.customize\"\n name=\"customizeEmail\">\n <mat-option [value]=\"true\">Yes</mat-option>\n <mat-option [value]=\"false\">No</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Format</mat-label>\n <mat-select\n required\n [(ngModel)]=\"message.emailMessage.format\"\n name=\"format\">\n <mat-option *ngFor=\"let item of emailMessageFormats\" [value]=\"item.value\">\n {{item.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Template</mat-label>\n <mat-select\n [(ngModel)]=\"message.emailMessage.messageTemplateId\"\n name=\"template\">\n <mat-option [value]=\"null\">None</mat-option>\n <mat-option *ngFor=\"let item of messageTemplates\" [value]=\"item.id\">\n {{item.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <ng-container *ngIf=\"message.emailMessage.customize\">\n <mat-form-field>\n <mat-label>Subject</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.subject\"\n name=\"name\"\n required>\n </mat-form-field>\n\n <div [@.disabled]=\"true\">\n <mat-tab-group [dynamicHeight]=\"false\">\n <mat-tab label=\"Content\">\n <ng-template matTabContent>\n <ng-container *ngIf=\"message.emailMessage.format===emailMessageFormat.HTML\">\n <fs-text-editor\n [(ngModel)]=\"message.emailMessage.body\"\n name=\"body\"\n [config]=\"{ language: 'html '}\">\n </fs-text-editor>\n </ng-container>\n\n <ng-container *ngIf=\"message.emailMessage.format===emailMessageFormat.RichText\">\n <fs-html-editor\n [(ngModel)]=\"message.emailMessage.body\"\n name=\"body\">\n </fs-html-editor>\n </ng-container>\n\n <ng-container *ngIf=\"message.emailMessage.format===emailMessageFormat.Text\">\n <fs-text-editor\n [(ngModel)]=\"message.emailMessage.body\"\n name=\"emailMessageBody\"\n [config]=\"{ language: 'text' }\">\n </fs-text-editor>\n </ng-container>\n </ng-template>\n </mat-tab>\n <mat-tab\n *ngIf=\"message.emailMessage.format===emailMessageFormat.HTML || message.emailMessage.format===emailMessageFormat.RichText\"\n label=\"Styles\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"message.emailMessage.styles\"\n name=\"styles\"\n [config]=\"{ language: 'scss' }\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!message.emailMessage.customize\">\n <fs-label-field>\n <fs-label>Subject</fs-label>\n {{message.defaultEmailSubject}}\n </fs-label-field>\n <div>\n <fs-label-field>\n <fs-label>Content</fs-label>\n <div class=\"email-body-html-default\">\n <fs-html-renderer\n *ngIf=\"message.emailMessage.format===emailMessageFormat.RichText || message.emailMessage.format===emailMessageFormat.HTML\"\n [html]=\"message.defaultEmailBody\">\n </fs-html-renderer>\n </div>\n <div\n class=\"email-body-text-default\"\n *ngIf=\"message.emailMessage.format===emailMessageFormat.Text\">\n {{message.defaultEmailBody}}\n </div>\n </fs-label-field>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </mat-tab>\n\n <ng-container *ngIf=\"!!message.smsMessage\">\n <mat-tab label=\"SMS Message\" name=\"sms\">\n <ng-template matTabContent>\n <mat-form-field>\n <mat-label>Customize Message</mat-label>\n <mat-select\n required\n [(ngModel)]=\"message.smsMessage.customize\"\n name=\"customizeSms\">\n <mat-option [value]=\"true\">Yes</mat-option>\n <mat-option [value]=\"false\">No</mat-option>\n </mat-select>\n </mat-form-field>\n <div\n *ngIf=\"message.smsMessage.customize\"\n [@.disabled]=\"true\">\n <mat-tab-group [dynamicHeight]=\"false\">\n <mat-tab label=\"Content\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"message.smsMessage.message\"\n name=\"smsMessageMessage\"\n [config]=\"{ language: 'text '}\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n <fs-label-field *ngIf=\"!message.smsMessage.customize\">\n <fs-label>Message</fs-label>\n <div class=\"content\">{{message.defaultSmsMessage}}</div> \n </fs-label-field>\n </ng-template>\n </mat-tab>\n </ng-container>\n\n <mat-tab label=\"Attachments\" *ngIf=\"message.emailMessage\" name=\"attachments\">\n <ng-template matTabContent>\n <fs-app-message-attachments\n [message]=\"message\">\n </fs-app-message-attachments>\n </ng-template>\n </mat-tab>\n\n <mat-tab label=\"Variables\" *ngIf=\"message.variables\">\n <ng-template matTabContent>\n <div *ngFor=\"let variable of message.variables\" class=\"variable\">\n {{variable.name}}\n </div>\n </ng-template>\n </mat-tab>\n\n <mat-tab label=\"Defaults\">\n <ng-template matTabContent>\n <ng-container *ngIf=\"message.emailMessage\">\n <h2 *ngIf=\"message.emailMessage && message.smsMessage\">Email</h2>\n <fs-label-field>\n <fs-label>Subject</fs-label>\n <div class=\"content\">{{message.defaultEmailSubject}}</div>\n </fs-label-field>\n <fs-label-field>\n <fs-label>Content</fs-label>\n <div class=\"content\">{{message.defaultEmailBody}}</div>\n </fs-label-field>\n </ng-container>\n <ng-container *ngIf=\"message.smsMessage\">\n <h2 *ngIf=\"message.emailMessage && message.smsMessage\">SMS</h2>\n <fs-label-field>\n <fs-label>Content</fs-label>\n <div class=\"content\">{{message.defaultSmsMessage}}</div>\n </fs-label-field>\n </ng-container>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n\n </mat-dialog-content>\n <mat-dialog-actions>\n <ng-container *ngIf=\"tab==='email' || tab==='sms' || tab==='general'; else done\">\n <button\n mat-button\n color=\"primary\">\n Save\n </button>\n <ng-container *ngIf=\"tab==='email'\">\n <button\n mat-button\n type=\"button\"\n (click)=\"openPreview()\"\n type=\"button\">\n Preview\n </button>\n <button\n mat-button\n type=\"button\"\n (click)=\"sendTest('email')\"\n type=\"button\">\n Send Test Email\n </button>\n </ng-container>\n <ng-container *ngIf=\"tab==='sms'\">\n <button\n mat-button\n type=\"button\"\n (click)=\"sendTest('sms')\"\n type=\"button\">\n Send Test SMS\n </button>\n </ng-container>\n <button\n mat-button\n [mat-dialog-close]=\"null\"\n type=\"button\">\n Cancel\n </button>\n </ng-container>\n <ng-template #done>\n <button\n mat-button\n color=\"primary\"\n [mat-dialog-close]=\"null\"\n type=\"button\">\n Close\n </button>\n </ng-template>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n","\nexport function indexNameValue(arry) {\n const obj = {};\n arry.forEach(item => {\n obj[item.value] = item.name;\n });\n\n return obj;\n}\n","import { Component, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { takeUntil, map } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\n\nimport { MessageComponent } from '../message';\nimport { EmailMessageFormats } from '../../consts';\nimport { indexNameValue } from '../../../../helpers';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\n\n@Component({\n selector: 'fs-app-messages',\n templateUrl: './messages.component.html'\n})\nexport class MessagesComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent, { static: true })\n public list: FsListComponent = null;\n\n public config: FsListConfig = null;\n public emailMessageFormats = {};\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _dialog: MatDialog,\n ) { }\n\n public ngOnInit(): void {\n this.emailMessageFormats = indexNameValue(EmailMessageFormats);\n\n this.config = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search'\n }\n ],\n fetch: query => {\n return this._config.loadMessages(query)\n .pipe(\n map(response => {\n return ({ data: response.data, paging: response.paging })\n })\n );\n }\n }\n }\n\n public open(message) {\n const dialogRef = this._dialog.open(MessageComponent, {\n data: {\n message: message,\n },\n width: '85%'\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe(() => {\n this.list.reload();\n })\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","<fs-list [config]=\"config\">\n <fs-list-column title=\"Name\" name=\"name\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"open(row)\">{{row.name}}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Email Format\">\n <ng-template fs-list-cell let-row=\"row\">\n {{emailMessageFormats[row.emailMessage.format]}}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Email Message Template\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.emailMessage.messageTemplate?.name || 'None'}}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Customized Message\">\n <ng-template fs-list-cell let-row=\"row\">\n <ng-container *ngIf=\"row.emailMessage?.customize || row.smsMessage?.customize; else noCustomize\">\n <ng-container *ngIf=\"row.emailMessage?.customize\">\n {{row.emailMessage.customize ? 'Email' : ''}}\n </ng-container> \n <ng-container *ngIf=\"row.smsMessage?.customize\">\n {{row.smsMessage.customize ? 'SMS' : ''}}\n </ng-container> \n </ng-container>\n <ng-template #noCustomize>\n None\n </ng-template>\n </ng-template>\n </fs-list-column>\n</fs-list>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { FsCommonModule } from '@firestitch/common';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsHtmlEditorModule, FsHtmlRendererModule } from '@firestitch/html-editor';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsListModule } from '@firestitch/list';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsTabsModule } from '@firestitch/tabs';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { FsAppMessagePreviewModule } from '../message-preview/message-preview.module';\n\nimport { AttachmentsComponent } from './components';\nimport { MessageComponent } from './components/message/message.component';\nimport { MessagesComponent } from './components/messages/messages.component';\n\n\n@NgModule({\n imports: [\n RouterModule,\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatButtonModule,\n MatTabsModule,\n MatFormFieldModule,\n MatInputModule,\n MatOptionModule,\n MatSelectModule,\n MatTooltipModule,\n MatCheckboxModule,\n\n FsDialogModule,\n FsListModule,\n FsLabelModule,\n FsSkeletonModule,\n FsFormModule,\n FsTextEditorModule,\n FsHtmlEditorModule,\n FsHtmlRendererModule,\n FsCommonModule,\n FsTabsModule,\n\n FsAppMessagePreviewModule,\n ],\n declarations: [\n MessagesComponent,\n MessageComponent,\n AttachmentsComponent,\n ],\n exports: [\n MessagesComponent,\n MessageComponent,\n ],\n})\nexport class FsAppMessagesModule {}\n","export enum MessageQueueState {\n Sent = 'S',\n PartiallySent = 'P',\n Sending = 'E',\n Queued = 'Q',\n Canceled = 'C',\n InvalidRecipients = 'I',\n Failed = 'F'\n}","import { MessageQueueState } from '../enums/message-queue-state.enum';\n\n\nexport const MessageQueueStates = [\n { name: 'Sent', value: MessageQueueState.Sent },\n { name: 'Partially Sent', value: MessageQueueState.PartiallySent },\n { name: 'Sending', value: MessageQueueState.Sending },\n { name: 'Queued', value: MessageQueueState.Queued },\n { name: 'Canceled', value: MessageQueueState.Canceled },\n { name: 'Invalid Recipients', value: MessageQueueState.InvalidRecipients },\n { name: 'Failed', value: MessageQueueState.Failed }\n];\n","export enum EmailMessageQueueFormat {\n Text = 'T',\n HTML = 'H',\n RichText = 'R'\n}\n","export enum MessageQueueType {\n Sms = 'S',\n Email = 'E'\n}\n","export enum MessageQueueEventType {\n Click = 'click',\n Open = 'open',\n}\n","import { MessageQueueEventType } from \"../enums\";\n\n\nexport const MessageQueueEventTypes = [\n { name: 'Open', value: MessageQueueEventType.Open },\n { name: 'Click', value: MessageQueueEventType.Click },\n];\n","import {\n ChangeDetectionStrategy,\n Component, Input, OnInit,\n} from '@angular/core';\n\n\n\n@Component({\n selector: 'app-recipient',\n templateUrl: './recipient.component.html',\n styleUrls: ['./recipient.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RecipientComponent implements OnInit {\n \n @Input() name;\n @Input() state;\n \n public icon;\n\n public ngOnInit(): void {\n \n const icons = {\n 'S': { name: 'check_circle', tooltip: 'Sent' },\n 'E': { name: 'offline_bolt', tooltip: 'Sending' },\n 'F': { name: 'info', tooltip: 'Failed' },\n }\n\n this.icon = icons[this.state];\n }\n\n}\n","<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>","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Inject, OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { FsMessage } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport anchorme from 'anchorme';\n\nimport { indexNameValue } from '../../../../helpers';\nimport { MessageComponent } from '../../../../modules/messages/components';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\nimport { ForwardMessageQueue, LoadMessage, ResendMessageQueue } from '../../../app-message/types';\nimport { MessageQueueStates } from '../../consts';\nimport { MessageQueueEventTypes } from '../../consts/message-queue-event-type.const';\nimport { EmailMessageQueueFormat, MessageQueueEventType, MessageQueueType } from '../../enums';\n\n\n@Component({\n templateUrl: './queue.component.html',\n styleUrls: ['./queue.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class QueueComponent implements OnInit, OnDestroy {\n\n @ViewChild('logList')\n public logList: FsListComponent;\n\n public messageQueue;\n public loadMessage: LoadMessage;\n public resendMessageQueue: ResendMessageQueue;\n public forwardMessageQueue: ForwardMessageQueue;\n public messageQueueRecipients = {};\n public emailMessageQueueFormat = EmailMessageQueueFormat;\n public messageQueueStates;\n public logConfig: FsListConfig;\n public attachmentConfig: FsListConfig;\n public eventConfig: FsListConfig;\n public MessageQueueEventTypes = indexNameValue(MessageQueueEventTypes);\n public MessageQueueEventType = MessageQueueEventType;\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n @Inject(MAT_DIALOG_DATA) private _data,\n private _message: FsMessage,\n private _prompt: FsPrompt,\n private _dialog: MatDialog,\n private _cdRef: ChangeDetectorRef,\n ) {\n }\n\n public ngOnInit() {\n this.messageQueueStates = indexNameValue(MessageQueueStates);\n this.resendMessageQueue = this._config.resendMessageQueue;\n this.forwardMessageQueue = this._config.forwardMessageQueue;\n\n this._config.loadMessageQueue(this._data.messageQueueId)\n .subscribe((messageQueue) => {\n this.messageQueue = messageQueue;\n\n if (this.messageQueue.emailMessageQueue) {\n let body = this.messageQueue.emailMessageQueue.body;\n if (this.messageQueue.emailMessageQueue.format === EmailMessageQueueFormat.HTML) {\n try {\n const doc = new DOMParser().parseFromString(body, 'text/html');\n\n doc.querySelectorAll('a').forEach((el) => {\n el.setAttribute('target', '_blank');\n });\n\n body = doc.documentElement.innerHTML;\n\n } catch (e) {\n }\n } else {\n body = this.anchorMe(body);\n }\n\n this.messageQueue.emailMessageQueue.body = body;\n }\n\n if (this.messageQueue.smsMessageQueue) {\n this.messageQueue.smsMessageQueue.body = this.anchorMe(this.messageQueue.smsMessageQueue.body);\n }\n\n this.messageQueueRecipients = this.messageQueue.messageQueueRecipients\n .reduce((accum, messageQueueRecipient) => {\n accum[messageQueueRecipient.recipient] = messageQueueRecipient.state;\n\n return accum;\n }, {});\n\n this._setLogsConfig(messageQueue);\n this._setAttachmentsConfig(messageQueue);\n this._setEventsConfig(messageQueue);\n this._cdRef.markForCheck();\n });\n }\n\n public anchorMe(input) {\n return anchorme({\n input,\n options: {\n attributes: {\n target: \"_blank\",\n }\n }\n });\n }\n\n public openMessage(message) {\n this._dialog.open(MessageComponent, {\n data: {\n message: message,\n },\n width: '85%'\n });\n }\n\n public resend() {\n this._prompt.confirm({\n title: 'Confirm',\n template: 'Are you sure you would like to resend this message?'\n }).subscribe(() => {\n this.resendMessageQueue(this.messageQueue)\n .subscribe(messageQueue => {\n Object.assign(this.messageQueue, messageQueue);\n this._cdRef.markForCheck();\n this._message.success('Successfully resent');\n\n if (this.logList) {\n this.logList.reload();\n }\n });\n });\n }\n\n public forward() {\n const typeName = this.messageQueue.type === MessageQueueType.Email ? 'an email' : 'a phone number';\n\n this._prompt.input({\n label: `Please enter ${typeName} to forward to`,\n title: 'Forward Message',\n commitLabel: 'Forward',\n required: true\n }).subscribe((value: string) => {\n if (value) {\n this.forwardMessageQueue(this.messageQueue, value)\n .subscribe(messageQueue => {\n this.messageQueue = {\n ...this.messageQueue,\n messageQueue,\n };\n this._message.success('Successfully forwarded');\n this._cdRef.markForCheck();\n \n if (this.logList) {\n this.logList.reload();\n }\n });\n }\n });\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _setLogsConfig(messageQueue) {\n this.logConfig = {\n loadMore: true,\n queryParam: false,\n fetch: query => {\n return this._config.loadLogs(messageQueue, query);\n }\n }\n }\n\n private _setEventsConfig(messageQueue) {\n this.eventConfig = {\n loadMore: true,\n queryParam: false,\n fetch: (query) => {\n return this._config.loadMessageQueueEvents(messageQueue, query);\n }\n }\n }\n\n private _setAttachmentsConfig(messageQueue) {\n this.attachmentConfig = {\n queryParam: false,\n fetch: query => {\n return this._config.loadMessageQueueAttachments(messageQueue, query)\n .pipe(\n map(response => ({\n data: response.data.map(value => {\n value.prettyFilesize = this._prettyFilesize(value.filesize);\n return value;\n }), paging: response.paging\n }))\n );\n }\n };\n\n if (this._config.downloadMessageQueueAttachment) {\n this.attachmentConfig.rowActions = [\n {\n click: (messageAttachment) => {\n this._config.downloadMessageQueueAttachment(messageAttachment, this.messageQueue);\n },\n label: 'Download',\n }\n ];\n }\n }\n\n private _prettyFilesize(bytes) {\n if (bytes === 0) { return '0.00 B'; }\n const e = Math.floor(Math.log(bytes) / Math.log(1024));\n return (bytes / Math.pow(1024, e)).toFixed(2) + ' ' + ' KMGTP'.charAt(e) + 'B';\n }\n}\n","<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 class=\"fs-row.gap-large.wrap\">\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 [width]=\"'100%'\">\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","import { Injectable } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\n\nimport { Observable } from 'rxjs';\n\nimport { QueueComponent } from '../components/queue/queue.component';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FsMessageQueueService {\n\n constructor(\n private _dialog: MatDialog,\n ) { }\n\n public openMessageQueue(messageQueueId: number, options: any = {}): Observable<any> {\n return this._dialog.open(QueueComponent, {\n ...options,\n data: {\n messageQueueId,\n },\n width: options.width || '85%',\n })\n .afterClosed();\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate'\n})\nexport class TruncatePipe implements PipeTransform {\ntransform(value: string, limit = 25, completeWords = false, ellipsis = '...') {\n\n if (value.length < limit) {\n return `${value.substr(0, limit)}`;\n }\n\n if (completeWords) {\n limit = value.substr(0, limit).lastIndexOf(' ');\n }\n return `${value.substr(0, limit)}${ellipsis}`;\n}\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\n\n\nimport { ItemType } from '@firestitch/filter';\nimport { FsListActionSelected, FsListComponent, FsListConfig } from '@firestitch/list';\nimport { SelectionActionType } from '@firestitch/selection';\nimport { FsStore } from '@firestitch/store';\n\nimport { Subject } from 'rxjs';\nimport { filter, map, takeUntil, tap } from 'rxjs/operators';\n\nimport { isAfter } from 'date-fns';\n\nimport { indexNameValue } from '../../../../helpers';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\nimport { MessageQueueStates } from '../../consts';\nimport { MessageQueueType } from '../../enums';\nimport { MessageQueueState } from '../../enums/message-queue-state.enum';\nimport { FsMessageQueueService } from '../../services/message-queue.service';\n\n\n@Component({\n selector: 'fs-app-message-queues',\n styleUrls: ['./queues.component.scss'],\n templateUrl: './queues.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class QueuesComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent, { static: true })\n public list: FsListComponent = null;\n\n @Input() public query = {};\n\n @Input() public type: MessageQueueType = null;\n\n public config: FsListConfig = null;\n public messageQueueStates = {};\n public MessageQueueState = MessageQueueState;\n public webHookEnabled;\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _messageQueueService: FsMessageQueueService,\n private _cdRef: ChangeDetectorRef,\n private _store: FsStore,\n ) { }\n\n public ngOnInit() {\n this.messageQueueStates = indexNameValue(MessageQueueStates);\n this.initList();\n this.initWebhook();\n }\n\n public enableWebhook() {\n this._config.createWebhook()\n .subscribe(() => {\n this.initWebhook();\n });\n }\n\n public initWebhook() {\n const domain = document.location.hostname;\n\n if(domain === 'localhost' || domain === '[::1]') {\n return;\n }\n\n this._config.loadWebhooks({ domain })\n .pipe(\n filter(() => {\n return !this._store.get('messagesWebhookEnabled');\n }),\n )\n .subscribe((webhooks) => {\n this._cdRef.markForCheck();\n this.webHookEnabled = webhooks\n .some((webhook) => {\n const url = new URL(webhook.url);\n\n return url.host === domain;\n });\n\n this._store.set('messagesWebhookEnabled', this.webHookEnabled);\n });\n }\n\n public initList() {\n this.config = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n {\n name: 'state',\n type: ItemType.Select,\n label: 'Status',\n values: () => {\n return MessageQueueStates;\n },\n },\n {\n name: 'date',\n type: ItemType.DateRange,\n label: ['From Date', 'To Date'],\n },\n ],\n sort: { value: 'created_date', direction: 'desc' },\n fetch: (query) => {\n query = {\n ...query,\n ...this.query,\n type: this.type,\n messageQueueAttachmentCounts: true,\n emailMessageQueues: true,\n emailMessageQueueBodies: false,\n smsMessageQueues: true,\n };\n\n return this._config.loadMessageQueues(query)\n .pipe(\n map((response) => ({\n data: response.data\n .map((messageQueue) => {\n return {\n ...messageQueue,\n scheduled: messageQueue.state === MessageQueueState.Queued && isAfter(messageQueue.scheduledDate, new Date()),\n messageQueueRecipients: messageQueue.messageQueueRecipients\n .reduce((accum, messageQueueRecipient) => {\n accum[messageQueueRecipient.recipient] = messageQueueRecipient.state;\n\n return accum;\n }, {}),\n };\n }), paging: response.paging,\n })),\n );\n },\n };\n\n if (this._config.bulkMessageQueues) {\n this.config.selection = {\n selectAll: false,\n actions: [\n {\n type: SelectionActionType.Action,\n name: 'queue',\n label: 'Queue',\n },\n {\n type: SelectionActionType.Action,\n name: 'resend',\n label: 'Resend',\n },\n {\n type: SelectionActionType.Action,\n name: 'cancel',\n label: 'Cancel',\n },\n ],\n actionSelected: (actionSelected: FsListActionSelected) => {\n return this._config.bulkMessageQueues(actionSelected.action.name, actionSelected.selected)\n .pipe(\n tap(() => {\n this.list.reload();\n }),\n );\n },\n };\n }\n\n this.config.filters.push({\n name: 'messageId',\n type: ItemType.Select,\n label: 'Message Type',\n values: (query) => {\n query = {\n ...query,\n limit: 50,\n };\n\n return this._config.loadMessages(query)\n .pipe(\n map((response) => {\n return [\n { value: null, name: 'All' },\n ...response.data\n .map((item) => ({ name: item.name, value: item.id })),\n ];\n }),\n );\n },\n } as any);\n }\n\n public open(messageQueue) {\n this._messageQueueService.openMessageQueue(messageQueue.id)\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.list.reload();\n });\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"webHookEnabled === false\">\n <fs-message-info>\n <div class=\"fs-row\">\n <span class=\"fs-flex\">The webhook which provides email delivery confirmations is not enabled.</span>\n <a \n (click)=\"enableWebhook()\"\n mat-raised-button>\n Enable\n </a>\n </div>\n\n </fs-message-info>\n</ng-container>\n\n<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 <a (click)=\"open(row)\">{{row.emailMessageQueue.subject|truncate:100}}</a>\n <ng-container *ngIf=\"row.messageQueueAttachmentCount\">\n <mat-icon \n class=\"attachment-icon\"\n [matTooltip]=\"row.messageQueueAttachmentCount + ' Attachment(s)'\">\n attach_file\n </mat-icon>\n </ng-container>\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 <ng-container *ngIf=\"row.scheduled; else state\">\n Scheduled\n <div class=\"small\">\n {{row.scheduledDate | fsDateFormat: 'date-time' }}\n </div>\n </ng-container>\n <ng-template #state>\n <span [class]=\"'state-' + row.state\">{{messageQueueStates[row.state]}}</span>\n </ng-template>\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>","import { Pipe, PipeTransform } from '@angular/core';\n\nimport anchorme from 'anchorme';\n\n\n@Pipe({name: 'linkify'})\nexport class LinkifyPipe implements PipeTransform {\n transform(input: string): string {\n return anchorme({\n input,\n options: {\n attributes: {\n target: \"_blank\",\n }\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { FsDateModule } from '@firestitch/date';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsIFrameModule } from '@firestitch/iframe';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsListModule } from '@firestitch/list';\nimport { FsMessageModule } from '@firestitch/message';\nimport { FsPromptInputModule } from '@firestitch/prompt';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\n\nimport { FsAppMessagesModule } from '../messages/messages.module';\n\nimport { QueueComponent } from './components/queue/queue.component';\nimport { QueuesComponent } from './components/queues/queues.component';\nimport { RecipientComponent } from './components/recipient/recipient.component';\nimport { LinkifyPipe } from './pipes/linkify.pipe';\nimport { TruncatePipe } from './pipes/truncate.pipe';\nimport { FsMessageQueueService } from './services/message-queue.service';\n\n\n@NgModule({\n imports: [\n RouterModule,\n FormsModule,\n CommonModule,\n\n MatTooltipModule,\n MatDialogModule,\n MatButtonModule,\n MatIconModule,\n MatTabsModule,\n\n FsListModule,\n FsDialogModule,\n FsLabelModule,\n FsDateModule,\n FsSkeletonModule,\n FsAppMessagesModule,\n FsFormModule,\n FsPromptInputModule,\n FsIFrameModule,\n FsMessageModule,\n ],\n declarations: [\n QueuesComponent,\n QueueComponent,\n LinkifyPipe,\n TruncatePipe,\n RecipientComponent,\n ],\n exports: [\n QueuesComponent,\n QueueComponent,\n ],\n providers: [\n FsMessageQueueService,\n ],\n})\nexport class FsAppMessageQueuesModule { }\n","import { Component, OnInit, Inject } from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorConfig } from '@firestitch/text-editor';\nimport { SubmitEvent } from '@firestitch/form';\n\nimport { tap } from 'rxjs/operators';\n\nimport { PreviewComponent } from '../../../../modules/message-preview/components';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\n\n\n@Component({\n templateUrl: './template.component.html',\n styleUrls: ['./template.component.scss']\n})\nexport class TemplateComponent implements OnInit {\n\n public messageTemplate;\n public htmlEditorconfig: FsTextEditorConfig = {\n language: 'html',\n insertSpaces: true,\n tabSize: 2,\n };\n\n public cssEditorconfig: FsTextEditorConfig = {\n language: 'scss',\n insertSpaces: true,\n tabSize: 2,\n };\n\n public constructor(\n @Inject(MAT_DIALOG_DATA) private _data,\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _dialogRef: MatDialogRef<TemplateComponent>,\n private _message: FsMessage,\n private _dialog: MatDialog,\n ) { }\n\n public ngOnInit(): void {\n if (this._data.messageTemplate.id) {\n this._config.loadMessageTemplate(this._data.messageTemplate)\n .subscribe(messageTemplate => {\n this.messageTemplate = messageTemplate;\n });\n } else {\n this.messageTemplate = {};\n }\n }\n\n public openPreview(): void {\n this._dialog.open(PreviewComponent, {\n data: {\n styles: this.messageTemplate.styles,\n html: this.messageTemplate.content,\n },\n width: '95%',\n });\n }\n\n public save = (event: SubmitEvent) => {\n return this._config.saveMessageTemplate(this.messageTemplate)\n .pipe(\n tap((messageTemplate) => {\n this._message.success('Saved Changes');\n if (event.submitter === 'save-close') {\n this._dialogRef.close(messageTemplate);\n }\n })\n );\n }\n}\n","<form\n fsForm\n [submit]=\"save\"\n #form=\"ngForm\"\n *fsSkeleton=\"messageTemplate\"\n [confirmTabs]=\"false\">\n <fs-dialog *ngIf=\"messageTemplate\">\n <div mat-dialog-title>Message Template</div>\n <mat-dialog-content>\n <mat-form-field class=\"name\">\n <mat-label>Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"messageTemplate.name\"\n name=\"name\"\n >\n </mat-form-field>\n <div [@.disabled]=\"true\">\n <mat-tab-group\n mat-align-tabs=\"start\"\n [dynamicHeight]=\"false\">\n <mat-tab label=\"Content\">\n <ng-template matTabContent>\n <div class=\"content\">\n <fs-label-field>\n <fs-text-editor\n [(ngModel)]=\"messageTemplate.content\"\n name=\"body\"\n [config]=\"htmlEditorconfig\">\n </fs-text-editor>\n <fs-label-message>\n &#123;$content&#125; will be replaced with the message content.\n </fs-label-message>\n </fs-label-field>\n </div>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Styles\">\n <ng-template matTabContent>\n <div class=\"styles\">\n <fs-text-editor\n [(ngModel)]=\"messageTemplate.styles\"\n name=\"styles\"\n [config]=\"cssEditorconfig\">\n </fs-text-editor>\n </div>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button type=\"submit\" color=\"primary\" name=\"close\">Save</button>\n <button mat-button type=\"submit\" name=\"save-close\">Save & Close</button>\n <button mat-button (click)=\"openPreview()\" type=\"button\">Preview</button>\n <button mat-button [mat-dialog-close]=\"null\" type=\"button\">Cancel</button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n","import { Component, OnDestroy, OnInit, ViewChild, Inject } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\n\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { TemplateComponent } from '../template';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\n\n\n@Component({\n selector: 'fs-app-message-templates',\n templateUrl: './templates.component.html'\n})\nexport class TemplatesComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent, { static: true }) \n public list: FsListComponent = null;\n\n public config: FsListConfig = null;\n public messageQueueStates = [];\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _dialog: MatDialog,\n ) { }\n\n public ngOnInit(): void {\n this.config = {\n actions: [\n {\n label: 'Create',\n click: () => {\n this.open({});\n }\n }\n ],\n status: false,\n fetch: query => {\n return this._config.loadMessageTemplates(query);\n }\n }\n\n if (this._config.deleteMessageTemplate) {\n this.config.rowActions = [\n {\n click: data => {\n return this._config.deleteMessageTemplate(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this template?',\n },\n menu: true,\n label: 'Delete',\n },\n ];\n }\n }\n\n public open(messageTemplate): void {\n const dialogRef = this._dialog.open(TemplateComponent, {\n data: {\n messageTemplate,\n },\n width: '85%',\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.list.reload();\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n}\n","<fs-list [config]=\"config\">\n <fs-list-column title=\"Name\">\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"open(row)\">{{row.name}}</a>\n </ng-template>\n </fs-list-column>\n</fs-list>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsListModule } from '@firestitch/list';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { FsAppMessagePreviewModule } from '../message-preview/message-preview.module';\n\nimport { TemplateComponent } from './components/template/template.component';\nimport { TemplatesComponent } from './components/templates/templates.component';\n\n\n@NgModule({\n imports: [\n RouterModule,\n CommonModule,\n FormsModule,\n\n MatTooltipModule,\n MatDialogModule,\n MatButtonModule,\n MatTabsModule,\n MatFormFieldModule,\n MatFormFieldModule,\n MatInputModule,\n\n FsListModule,\n FsDialogModule,\n FsLabelModule,\n FsSkeletonModule,\n FsFormModule,\n FsTextEditorModule,\n\n FsAppMessagePreviewModule,\n ],\n declarations: [\n TemplatesComponent,\n TemplateComponent,\n ],\n exports: [\n TemplatesComponent,\n TemplateComponent,\n ],\n})\nexport class FsAppMessageTemplatesModule {\n}\n","import { ChangeDetectionStrategy, Component, Inject, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\r\nimport { FsMessage } from '@firestitch/message';\r\n\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\r\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\r\n\r\n\r\n@Component({\r\n selector: 'fs-app-message-webhooks',\r\n templateUrl: './webhooks.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class WebhooksComponent implements OnInit {\r\n\r\n @ViewChild(FsListComponent)\r\n public list: FsListComponent;\r\n\r\n public listConfig: FsListConfig;\r\n\r\n constructor(\r\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\r\n private _message: FsMessage,\r\n ) {}\r\n\r\n public ngOnInit(): void {\r\n this.listConfig = {\r\n paging: false,\r\n actions: [\r\n {\r\n click: () => {\r\n this._config.createWebhook()\r\n .subscribe(() => {\r\n this._message.success('Created webhook');\r\n this.list.reload();\r\n });\r\n },\r\n label: 'Create',\r\n },\r\n ],\r\n rowActions: [\r\n {\r\n click: (webhook) => {\r\n this._config.deleteWebhook(webhook)\r\n .subscribe(() => {\r\n this._message.success('Deleted webhook');\r\n this.list.reload();\r\n });\r\n },\r\n label: 'Delete',\r\n },\r\n ],\r\n fetch: () => {\r\n return this._config.loadWebhooks({\r\n domain: window.location.hostname,\r\n })\r\n .pipe(\r\n map((webhooks) => ({ data: webhooks })),\r\n );\r\n },\r\n };\r\n }\r\n}\r\n","<fs-list [config]=\"listConfig\">\r\n <fs-list-column title=\"URL\">\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.url}}\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column title=\"Created\">\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.createDate | fsDate}}\r\n </ng-template>\r\n </fs-list-column>\r\n</fs-list>","import { NgModule } from '@angular/core';\nimport { FsDateModule } from '@firestitch/date';\n\nimport { FsListModule } from '@firestitch/list';\n\nimport { WebhooksComponent } from './components/webhooks/webhooks.component';\n\n@NgModule({\n imports: [\n FsListModule,\n\n FsDateModule,\n ],\n declarations: [\n WebhooksComponent,\n ],\n exports: [\n WebhooksComponent,\n ],\n})\nexport class FsAppMessageWebhooksModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i4","i2","i3","i7","i12.AttachmentsComponent","i13","i6","i7.RecipientComponent","i8","i9","i10","i11","i12","i14","i1.FsMessageQueueService","i5","i11.TruncatePipe"],"mappings":"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"}
1
+ {"version":3,"file":"firestitch-app-message.mjs","sources":["../../src/app/modules/app-message/app-message.module.ts","../../src/app/modules/message-preview/components/preview/preview.component.ts","../../src/app/modules/message-preview/components/preview/preview.component.html","../../src/app/modules/message-preview/message-preview.module.ts","../../src/app/modules/app-message/injectors/app-message-config.injector.ts","../../src/app/modules/messages/enums/email-message-format.enum.ts","../../src/app/modules/messages/consts/email-message-formats.const.ts","../../src/app/modules/messages/components/attachments/attachments.component.ts","../../src/app/modules/messages/components/attachments/attachments.component.html","../../src/app/modules/messages/components/message/message.component.ts","../../src/app/modules/messages/components/message/message.component.html","../../src/app/helpers/index-name-value.ts","../../src/app/modules/messages/components/messages/messages.component.ts","../../src/app/modules/messages/components/messages/messages.component.html","../../src/app/modules/messages/messages.module.ts","../../src/app/modules/message-queues/enums/message-queue-state.enum.ts","../../src/app/modules/message-queues/consts/message-queue-states.const.ts","../../src/app/modules/message-queues/enums/email-message-queue-format.enum.ts","../../src/app/modules/message-queues/enums/message-queue-type.enum.ts","../../src/app/modules/message-queues/enums/message-queue-event-type.enum.ts","../../src/app/modules/message-queues/consts/message-queue-event-type.const.ts","../../src/app/modules/message-queues/components/recipient/recipient.component.ts","../../src/app/modules/message-queues/components/recipient/recipient.component.html","../../src/app/modules/message-queues/components/queue/queue.component.ts","../../src/app/modules/message-queues/components/queue/queue.component.html","../../src/app/modules/message-queues/services/message-queue.service.ts","../../src/app/modules/message-queues/pipes/truncate.pipe.ts","../../src/app/modules/message-queues/components/queues/queues.component.ts","../../src/app/modules/message-queues/components/queues/queues.component.html","../../src/app/modules/message-queues/pipes/linkify.pipe.ts","../../src/app/modules/message-queues/message-queues.module.ts","../../src/app/modules/message-templates/components/template/template.component.ts","../../src/app/modules/message-templates/components/template/template.component.html","../../src/app/modules/message-templates/components/templates/templates.component.ts","../../src/app/modules/message-templates/components/templates/templates.component.html","../../src/app/modules/message-templates/message-templates.module.ts","../../src/app/modules/webhooks/components/webhooks/webhooks.component.ts","../../src/app/modules/webhooks/components/webhooks/webhooks.component.html","../../src/app/modules/webhooks/webhooks.module.ts","../../src/firestitch-app-message.ts"],"sourcesContent":["import { NgModule, ModuleWithProviders } from '@angular/core';\n\n\n@NgModule({\n})\nexport class FsAppMessageModule {\n static forRoot(): ModuleWithProviders<FsAppMessageModule> {\n return {\n ngModule: FsAppMessageModule,\n };\n }\n}\n","import { Component, OnInit, Inject } from '@angular/core';\n\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n\n@Component({\n templateUrl: './preview.component.html',\n styleUrls: ['./preview.component.scss']\n})\nexport class PreviewComponent implements OnInit {\n\n public html;\n public styles;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) private _data,\n ) {\n this.html = _data.html;\n this.styles = _data.styles;\n }\n\n public ngOnInit() {\n\n }\n}\n","<fs-dialog>\n <div mat-dialog-title>Preview</div>\n <mat-dialog-content>\n <fs-iframe\n [html]=\"html\"\n [width]=\"'100%'\"\n [styles]=\"styles\">\n </fs-iframe>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"null\" color=\"primary\" type=\"button\">Done</button>\n </mat-dialog-actions>\n</fs-dialog>\n","import { NgModule } from '@angular/core';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { FsIFrameModule } from '@firestitch/iframe';\nimport { FsDialogModule } from '@firestitch/dialog';\n\nimport { PreviewComponent } from './components/preview';\n\n\n@NgModule({\n imports: [\n MatDialogModule,\n MatButtonModule,\n\n FsDialogModule,\n FsIFrameModule,\n ],\n declarations: [\n PreviewComponent,\n ],\n exports: [\n PreviewComponent,\n ]\n})\nexport class FsAppMessagePreviewModule {\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FS_APP_MESSAGE_ROOT_CONFIG = new InjectionToken<any[]>('fs-app-message-root-config');\nexport const FS_APP_MESSAGE_CONFIG = new InjectionToken<any[]>('fs-app-message-config');\n","export enum EmailMessageFormat {\n Text = 'T',\n HTML = 'H',\n RichText = 'R'\n}\n","\nimport { EmailMessageFormat } from '../enums';\n\nexport const EmailMessageFormats = [\n { name: 'Text', value: EmailMessageFormat.Text },\n { name: 'HTML', value: EmailMessageFormat.HTML },\n { name: 'Rich Text', value: EmailMessageFormat.RichText }\n];\n","import { Component, OnDestroy, OnInit, ViewChild, Inject, ChangeDetectionStrategy, Input } from '@angular/core';\n\nimport { FsFile } from '@firestitch/file';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ActionMode } from '@firestitch/filter';\n\nimport { Subject } from 'rxjs';\n\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\nimport { FsMessage } from '@firestitch/message';\n\n\n@Component({\n selector: 'fs-app-message-attachments',\n templateUrl: './attachments.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AttachmentsComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent, { static: true }) \n public list: FsListComponent = null;\n\n @Input() public message;\n\n public config: FsListConfig = null;\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _message: FsMessage,\n ) { }\n\n public ngOnInit(): void {\n this.config = {\n rowActions: [],\n actions: [\n {\n label: 'Upload',\n mode: ActionMode.File,\n select: (fsFile: FsFile) => {\n this._config.uploadMessageAttachment(this.message, fsFile)\n .subscribe(() => {\n this._message.success('Saved attachment');\n this.list.reload();\n });\n }\n }\n ],\n fetch: query => {\n return this._config.loadMessageAttachments(this.message, query);\n }\n }\n\n if (this._config.downloadMessageAttachment) {\n this.config.rowActions\n .push(\n {\n click: data => {\n return this._config.downloadMessageAttachment(data);\n },\n label: 'Download',\n },\n );\n }\n\n if (this._config.deleteMessageAttachment) {\n this.config.rowActions\n .push(\n {\n click: data => {\n return this._config.deleteMessageAttachment(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this template?',\n },\n label: 'Delete',\n },\n );\n }\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n}\n","<fs-list [config]=\"config\">\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.size | fsFormatBytes}}\n </ng-template>\n </fs-list-column>\n</fs-list>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { switchMap, tap } from 'rxjs/operators';\n\nimport { of } from 'rxjs';\nimport { PreviewComponent } from '../../../../modules/message-preview/components';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\nimport { EmailMessageFormats } from '../../consts';\nimport { EmailMessageFormat } from '../../enums';\n\n\n@Component({\n templateUrl: './message.component.html',\n styleUrls: ['./message.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MessageComponent implements OnInit {\n\n public message;\n public tab = 'general';\n public messageTemplates = [];\n public emailMessageFormats = EmailMessageFormats;\n public emailMessageFormat = EmailMessageFormat;\n\n public constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n @Inject(MAT_DIALOG_DATA) private _data,\n private _prompt: FsPrompt,\n private _message: FsMessage,\n private _dialog: MatDialog,\n private _cdRef: ChangeDetectorRef,\n ) {\n }\n\n public ngOnInit() {\n this._config.loadMessage(this._data.message)\n .subscribe((message) => {\n this.message = message;\n\n if (this.message.emailMessage && this.message.emailMessage.customize === undefined) {\n this.message.emailMessage.customize = true;\n }\n if (this.message.smsMessage && this.message.smsMessage.customize === undefined) {\n this.message.smsMessage.customize = true;\n }\n\n this.message.reference = String(message.tag)\n .toLocaleLowerCase()\n .split('_')\n .map((item: string) => item.charAt(0).toUpperCase() + item.slice(1))\n .join('');\n\n this._cdRef.markForCheck();\n });\n\n this._config.loadMessageTemplates()\n .subscribe((data) => {\n this.messageTemplates = data.data;\n this._cdRef.markForCheck();\n });\n }\n\n public save = () => {\n return this._config.saveMessage(this.message)\n .pipe(\n tap(() => {\n this._message.success('Saved Changes');\n })\n );\n }\n\n public openPreview(): void {\n const emailMessage = this.message.emailMessage;\n let html = emailMessage.customize ? emailMessage.body : this.message.defaultEmailBody;\n let styles = emailMessage.styles || '';\n\n if (emailMessage.messageTemplateId) {\n const messageTemplate = this.messageTemplates\n .find((item) => {\n return emailMessage.messageTemplateId === item.id;\n });\n\n if (messageTemplate) {\n html = messageTemplate.content.replace('{$content}', html);\n styles = `${messageTemplate.styles || ''}\\n\\n${styles}`;\n }\n }\n\n this._dialog.open(PreviewComponent, {\n data: {\n styles,\n html,\n },\n width: '95%'\n });\n }\n\n public sendTest(type) {\n of(true)\n .pipe(\n switchMap(() => {\n return type === 'email' ? this._config.getTestEmail() : of('');\n }),\n switchMap((default_) => {\n const typeName = type === 'email' ? 'an email' : 'phone number';\n\n return this._prompt.input({\n label: `Please enter ${typeName} to send test to`,\n title: 'Send Test',\n commitLabel: 'Send',\n default: default_,\n required: true\n })\n })\n )\n .subscribe((value: string) => {\n this._config.testMessage(this.message, value, type)\n .subscribe(() => {\n this._message.success('Test Sent');\n });\n });\n }\n}\n","<form\n fsForm\n [submit]=\"save\"\n #form=\"ngForm\"\n *fsSkeleton=\"message\"\n [confirmTabs]=\"false\">\n <fs-dialog *ngIf=\"message\">\n <div mat-dialog-title>Edit Message</div>\n <mat-dialog-content>\n <mat-tab-group\n fsTabs\n [(selected)]=\"tab\">\n <mat-tab label=\"General\" name=\"general\">\n <ng-template matTabContent>\n <div class=\"fs-column\">\n <mat-form-field>\n <mat-label>Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.name\"\n name=\"Name\"\n required>\n </mat-form-field>\n <fs-label-field>\n <fs-label>Reference</fs-label>\n {{message.reference}}\n </fs-label-field>\n <mat-form-field>\n <mat-label>Description</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.description\"\n name=\"description\">\n </mat-form-field>\n\n <div class=\"fs-row.gap-small.wrap\">\n <mat-form-field>\n <mat-label>From Email</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.fromEmail\"\n name=\"from_email\">\n </mat-form-field>\n <mat-form-field>\n <mat-label>From Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.fromName\"\n name=\"from_name\">\n </mat-form-field>\n <mat-form-field>\n <mat-label>Reply To</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.replyEmail\"\n name=\"reply_to\">\n </mat-form-field>\n </div>\n\n <div class=\"fs-row.gap-small.wrap\">\n <mat-form-field>\n <mat-label>To</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.toRecipients\"\n name=\"to\">\n </mat-form-field>\n <mat-form-field>\n <mat-label>CC</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.ccRecipients\"\n name=\"cc\">\n </mat-form-field>\n <mat-form-field>\n <mat-label>BCC</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.bccRecipients\"\n name=\"bcc\">\n </mat-form-field>\n </div>\n </div>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Email Message\" *ngIf=\"message.emailMessage\" name=\"email\">\n <ng-template matTabContent>\n <div class=\"fs-column\">\n <div class=\"fs-row.gap-small\">\n <mat-form-field>\n <mat-label>Customize Message</mat-label>\n <mat-select\n required\n [(ngModel)]=\"message.emailMessage.customize\"\n name=\"customizeEmail\">\n <mat-option [value]=\"true\">Yes</mat-option>\n <mat-option [value]=\"false\">No</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Format</mat-label>\n <mat-select\n required\n [(ngModel)]=\"message.emailMessage.format\"\n name=\"format\">\n <mat-option *ngFor=\"let item of emailMessageFormats\" [value]=\"item.value\">\n {{item.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <mat-label>Template</mat-label>\n <mat-select\n [(ngModel)]=\"message.emailMessage.messageTemplateId\"\n name=\"template\">\n <mat-option [value]=\"null\">None</mat-option>\n <mat-option *ngFor=\"let item of messageTemplates\" [value]=\"item.id\">\n {{item.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <ng-container *ngIf=\"message.emailMessage.customize\">\n <mat-form-field>\n <mat-label>Subject</mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.subject\"\n name=\"name\"\n required>\n </mat-form-field>\n\n <div [@.disabled]=\"true\">\n <mat-tab-group [dynamicHeight]=\"false\">\n <mat-tab label=\"Content\">\n <ng-template matTabContent>\n <ng-container *ngIf=\"message.emailMessage.format===emailMessageFormat.HTML\">\n <fs-text-editor\n [(ngModel)]=\"message.emailMessage.body\"\n name=\"body\"\n [config]=\"{ language: 'html '}\">\n </fs-text-editor>\n </ng-container>\n\n <ng-container *ngIf=\"message.emailMessage.format===emailMessageFormat.RichText\">\n <fs-html-editor\n [(ngModel)]=\"message.emailMessage.body\"\n name=\"body\">\n </fs-html-editor>\n </ng-container>\n\n <ng-container *ngIf=\"message.emailMessage.format===emailMessageFormat.Text\">\n <fs-text-editor\n [(ngModel)]=\"message.emailMessage.body\"\n name=\"emailMessageBody\"\n [config]=\"{ language: 'text' }\">\n </fs-text-editor>\n </ng-container>\n </ng-template>\n </mat-tab>\n <mat-tab\n *ngIf=\"message.emailMessage.format===emailMessageFormat.HTML || message.emailMessage.format===emailMessageFormat.RichText\"\n label=\"Styles\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"message.emailMessage.styles\"\n name=\"styles\"\n [config]=\"{ language: 'scss' }\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!message.emailMessage.customize\">\n <fs-label-field>\n <fs-label>Subject</fs-label>\n {{message.defaultEmailSubject}}\n </fs-label-field>\n <div>\n <fs-label-field>\n <fs-label>Content</fs-label>\n <div class=\"email-body-html-default\">\n <fs-html-renderer\n *ngIf=\"message.emailMessage.format===emailMessageFormat.RichText || message.emailMessage.format===emailMessageFormat.HTML\"\n [html]=\"message.defaultEmailBody\">\n </fs-html-renderer>\n </div>\n <div\n class=\"email-body-text-default\"\n *ngIf=\"message.emailMessage.format===emailMessageFormat.Text\">\n {{message.defaultEmailBody}}\n </div>\n </fs-label-field>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </mat-tab>\n\n <ng-container *ngIf=\"!!message.smsMessage\">\n <mat-tab label=\"SMS Message\" name=\"sms\">\n <ng-template matTabContent>\n <mat-form-field>\n <mat-label>Customize Message</mat-label>\n <mat-select\n required\n [(ngModel)]=\"message.smsMessage.customize\"\n name=\"customizeSms\">\n <mat-option [value]=\"true\">Yes</mat-option>\n <mat-option [value]=\"false\">No</mat-option>\n </mat-select>\n </mat-form-field>\n <div\n *ngIf=\"message.smsMessage.customize\"\n [@.disabled]=\"true\">\n <mat-tab-group [dynamicHeight]=\"false\">\n <mat-tab label=\"Content\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"message.smsMessage.message\"\n name=\"smsMessageMessage\"\n [config]=\"{ language: 'text '}\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n <fs-label-field *ngIf=\"!message.smsMessage.customize\">\n <fs-label>Message</fs-label>\n <div class=\"content\">{{message.defaultSmsMessage}}</div> \n </fs-label-field>\n </ng-template>\n </mat-tab>\n </ng-container>\n\n <mat-tab label=\"Attachments\" *ngIf=\"message.emailMessage\" name=\"attachments\">\n <ng-template matTabContent>\n <fs-app-message-attachments\n [message]=\"message\">\n </fs-app-message-attachments>\n </ng-template>\n </mat-tab>\n\n <mat-tab label=\"Variables\" *ngIf=\"message.variables\">\n <ng-template matTabContent>\n <div *ngFor=\"let variable of message.variables\" class=\"variable\">\n {{variable.name}}\n </div>\n </ng-template>\n </mat-tab>\n\n <mat-tab label=\"Defaults\">\n <ng-template matTabContent>\n <ng-container *ngIf=\"message.emailMessage\">\n <h2 *ngIf=\"message.emailMessage && message.smsMessage\">Email</h2>\n <fs-label-field>\n <fs-label>Subject</fs-label>\n <div class=\"content\">{{message.defaultEmailSubject}}</div>\n </fs-label-field>\n <fs-label-field>\n <fs-label>Content</fs-label>\n <div class=\"content\">{{message.defaultEmailBody}}</div>\n </fs-label-field>\n </ng-container>\n <ng-container *ngIf=\"message.smsMessage\">\n <h2 *ngIf=\"message.emailMessage && message.smsMessage\">SMS</h2>\n <fs-label-field>\n <fs-label>Content</fs-label>\n <div class=\"content\">{{message.defaultSmsMessage}}</div>\n </fs-label-field>\n </ng-container>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n\n </mat-dialog-content>\n <mat-dialog-actions>\n <ng-container *ngIf=\"tab==='email' || tab==='sms' || tab==='general'; else done\">\n <button\n mat-button\n color=\"primary\">\n Save\n </button>\n <ng-container *ngIf=\"tab==='email'\">\n <button\n mat-button\n type=\"button\"\n (click)=\"openPreview()\"\n type=\"button\">\n Preview\n </button>\n <button\n mat-button\n type=\"button\"\n (click)=\"sendTest('email')\"\n type=\"button\">\n Send Test Email\n </button>\n </ng-container>\n <ng-container *ngIf=\"tab==='sms'\">\n <button\n mat-button\n type=\"button\"\n (click)=\"sendTest('sms')\"\n type=\"button\">\n Send Test SMS\n </button>\n </ng-container>\n <button\n mat-button\n [mat-dialog-close]=\"null\"\n type=\"button\">\n Cancel\n </button>\n </ng-container>\n <ng-template #done>\n <button\n mat-button\n color=\"primary\"\n [mat-dialog-close]=\"null\"\n type=\"button\">\n Close\n </button>\n </ng-template>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n","\nexport function indexNameValue(arry) {\n const obj = {};\n arry.forEach(item => {\n obj[item.value] = item.name;\n });\n\n return obj;\n}\n","import { Component, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { takeUntil, map } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\n\nimport { MessageComponent } from '../message';\nimport { EmailMessageFormats } from '../../consts';\nimport { indexNameValue } from '../../../../helpers';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\n\n@Component({\n selector: 'fs-app-messages',\n templateUrl: './messages.component.html'\n})\nexport class MessagesComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent, { static: true })\n public list: FsListComponent = null;\n\n public config: FsListConfig = null;\n public emailMessageFormats = {};\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _dialog: MatDialog,\n ) { }\n\n public ngOnInit(): void {\n this.emailMessageFormats = indexNameValue(EmailMessageFormats);\n\n this.config = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search'\n }\n ],\n fetch: query => {\n return this._config.loadMessages(query)\n .pipe(\n map(response => {\n return ({ data: response.data, paging: response.paging })\n })\n );\n }\n }\n }\n\n public open(message) {\n const dialogRef = this._dialog.open(MessageComponent, {\n data: {\n message: message,\n },\n width: '85%'\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe(() => {\n this.list.reload();\n })\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","<fs-list [config]=\"config\">\n <fs-list-column title=\"Name\" name=\"name\" [sortable]=\"true\">\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"open(row)\">{{row.name}}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Email Format\">\n <ng-template fs-list-cell let-row=\"row\">\n {{emailMessageFormats[row.emailMessage.format]}}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Email Message Template\">\n <ng-template fs-list-cell let-row=\"row\">\n {{row.emailMessage.messageTemplate?.name || 'None'}}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Customized Message\">\n <ng-template fs-list-cell let-row=\"row\">\n <ng-container *ngIf=\"row.emailMessage?.customize || row.smsMessage?.customize; else noCustomize\">\n <ng-container *ngIf=\"row.emailMessage?.customize\">\n {{row.emailMessage.customize ? 'Email' : ''}}\n </ng-container> \n <ng-container *ngIf=\"row.smsMessage?.customize\">\n {{row.smsMessage.customize ? 'SMS' : ''}}\n </ng-container> \n </ng-container>\n <ng-template #noCustomize>\n None\n </ng-template>\n </ng-template>\n </fs-list-column>\n</fs-list>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { FsCommonModule } from '@firestitch/common';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsHtmlEditorModule, FsHtmlRendererModule } from '@firestitch/html-editor';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsListModule } from '@firestitch/list';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsTabsModule } from '@firestitch/tabs';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { FsAppMessagePreviewModule } from '../message-preview/message-preview.module';\n\nimport { AttachmentsComponent } from './components';\nimport { MessageComponent } from './components/message/message.component';\nimport { MessagesComponent } from './components/messages/messages.component';\n\n\n@NgModule({\n imports: [\n RouterModule,\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatButtonModule,\n MatTabsModule,\n MatFormFieldModule,\n MatInputModule,\n MatOptionModule,\n MatSelectModule,\n MatTooltipModule,\n MatCheckboxModule,\n\n FsDialogModule,\n FsListModule,\n FsLabelModule,\n FsSkeletonModule,\n FsFormModule,\n FsTextEditorModule,\n FsHtmlEditorModule,\n FsHtmlRendererModule,\n FsCommonModule,\n FsTabsModule,\n\n FsAppMessagePreviewModule,\n ],\n declarations: [\n MessagesComponent,\n MessageComponent,\n AttachmentsComponent,\n ],\n exports: [\n MessagesComponent,\n MessageComponent,\n ],\n})\nexport class FsAppMessagesModule {}\n","export enum MessageQueueState {\n Sent = 'S',\n PartiallySent = 'P',\n Sending = 'E',\n Queued = 'Q',\n Canceled = 'C',\n InvalidRecipients = 'I',\n Failed = 'F'\n}","import { MessageQueueState } from '../enums/message-queue-state.enum';\n\n\nexport const MessageQueueStates = [\n { name: 'Sent', value: MessageQueueState.Sent },\n { name: 'Partially Sent', value: MessageQueueState.PartiallySent },\n { name: 'Sending', value: MessageQueueState.Sending },\n { name: 'Queued', value: MessageQueueState.Queued },\n { name: 'Canceled', value: MessageQueueState.Canceled },\n { name: 'Invalid Recipients', value: MessageQueueState.InvalidRecipients },\n { name: 'Failed', value: MessageQueueState.Failed }\n];\n","export enum EmailMessageQueueFormat {\n Text = 'T',\n HTML = 'H',\n RichText = 'R'\n}\n","export enum MessageQueueType {\n Sms = 'S',\n Email = 'E'\n}\n","export enum MessageQueueEventType {\n Click = 'click',\n Open = 'open',\n}\n","import { MessageQueueEventType } from \"../enums\";\n\n\nexport const MessageQueueEventTypes = [\n { name: 'Open', value: MessageQueueEventType.Open },\n { name: 'Click', value: MessageQueueEventType.Click },\n];\n","import {\n ChangeDetectionStrategy,\n Component, Input, OnInit,\n} from '@angular/core';\n\n\n\n@Component({\n selector: 'app-recipient',\n templateUrl: './recipient.component.html',\n styleUrls: ['./recipient.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RecipientComponent implements OnInit {\n \n @Input() name;\n @Input() state;\n \n public icon;\n\n public ngOnInit(): void {\n \n const icons = {\n 'S': { name: 'check_circle', tooltip: 'Sent' },\n 'E': { name: 'offline_bolt', tooltip: 'Sending' },\n 'F': { name: 'info', tooltip: 'Failed' },\n }\n\n this.icon = icons[this.state];\n }\n\n}\n","<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>","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n Inject, OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { FsMessage } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport anchorme from 'anchorme';\n\nimport { indexNameValue } from '../../../../helpers';\nimport { MessageComponent } from '../../../../modules/messages/components';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\nimport { ForwardMessageQueue, LoadMessage, ResendMessageQueue } from '../../../app-message/types';\nimport { MessageQueueStates } from '../../consts';\nimport { MessageQueueEventTypes } from '../../consts/message-queue-event-type.const';\nimport { EmailMessageQueueFormat, MessageQueueEventType, MessageQueueType } from '../../enums';\n\n\n@Component({\n templateUrl: './queue.component.html',\n styleUrls: ['./queue.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class QueueComponent implements OnInit, OnDestroy {\n\n @ViewChild('logList')\n public logList: FsListComponent;\n\n public messageQueue;\n public loadMessage: LoadMessage;\n public resendMessageQueue: ResendMessageQueue;\n public forwardMessageQueue: ForwardMessageQueue;\n public messageQueueRecipients = {};\n public emailMessageQueueFormat = EmailMessageQueueFormat;\n public messageQueueStates;\n public logConfig: FsListConfig;\n public attachmentConfig: FsListConfig;\n public eventConfig: FsListConfig;\n public MessageQueueEventTypes = indexNameValue(MessageQueueEventTypes);\n public MessageQueueEventType = MessageQueueEventType;\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n @Inject(MAT_DIALOG_DATA) private _data,\n private _message: FsMessage,\n private _prompt: FsPrompt,\n private _dialog: MatDialog,\n private _cdRef: ChangeDetectorRef,\n ) {\n }\n\n public ngOnInit() {\n this.messageQueueStates = indexNameValue(MessageQueueStates);\n this.resendMessageQueue = this._config.resendMessageQueue;\n this.forwardMessageQueue = this._config.forwardMessageQueue;\n\n this._config.loadMessageQueue(this._data.messageQueueId)\n .subscribe((messageQueue) => {\n this.messageQueue = messageQueue;\n\n if (this.messageQueue.emailMessageQueue) {\n let body = this.messageQueue.emailMessageQueue.body;\n if (this.messageQueue.emailMessageQueue.format === EmailMessageQueueFormat.HTML) {\n try {\n const doc = new DOMParser().parseFromString(body, 'text/html');\n\n doc.querySelectorAll('a').forEach((el) => {\n el.setAttribute('target', '_blank');\n });\n\n body = doc.documentElement.innerHTML;\n\n } catch (e) {\n }\n } else {\n body = this.anchorMe(body);\n }\n\n this.messageQueue.emailMessageQueue.body = body;\n }\n\n if (this.messageQueue.smsMessageQueue) {\n this.messageQueue.smsMessageQueue.body = this.anchorMe(this.messageQueue.smsMessageQueue.body);\n }\n\n this.messageQueueRecipients = this.messageQueue.messageQueueRecipients\n .reduce((accum, messageQueueRecipient) => {\n accum[messageQueueRecipient.recipient] = messageQueueRecipient.state;\n\n return accum;\n }, {});\n\n this._setLogsConfig(messageQueue);\n this._setAttachmentsConfig(messageQueue);\n this._setEventsConfig(messageQueue);\n this._cdRef.markForCheck();\n });\n }\n\n public anchorMe(input) {\n return anchorme({\n input,\n options: {\n attributes: {\n target: \"_blank\",\n }\n }\n });\n }\n\n public openMessage(message) {\n this._dialog.open(MessageComponent, {\n data: {\n message: message,\n },\n width: '85%'\n });\n }\n\n public resend() {\n this._prompt.confirm({\n title: 'Confirm',\n template: 'Are you sure you would like to resend this message?'\n }).subscribe(() => {\n this.resendMessageQueue(this.messageQueue)\n .subscribe(messageQueue => {\n Object.assign(this.messageQueue, messageQueue);\n this._cdRef.markForCheck();\n this._message.success('Successfully resent');\n\n if (this.logList) {\n this.logList.reload();\n }\n });\n });\n }\n\n public forward() {\n const typeName = this.messageQueue.type === MessageQueueType.Email ? 'an email' : 'a phone number';\n\n this._prompt.input({\n label: `Please enter ${typeName} to forward to`,\n title: 'Forward Message',\n commitLabel: 'Forward',\n required: true\n }).subscribe((value: string) => {\n if (value) {\n this.forwardMessageQueue(this.messageQueue, value)\n .subscribe(messageQueue => {\n this.messageQueue = {\n ...this.messageQueue,\n messageQueue,\n };\n this._message.success('Successfully forwarded');\n this._cdRef.markForCheck();\n \n if (this.logList) {\n this.logList.reload();\n }\n });\n }\n });\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _setLogsConfig(messageQueue) {\n this.logConfig = {\n loadMore: true,\n queryParam: false,\n fetch: query => {\n return this._config.loadLogs(messageQueue, query);\n }\n }\n }\n\n private _setEventsConfig(messageQueue) {\n this.eventConfig = {\n loadMore: true,\n queryParam: false,\n fetch: (query) => {\n return this._config.loadMessageQueueEvents(messageQueue, query);\n }\n }\n }\n\n private _setAttachmentsConfig(messageQueue) {\n this.attachmentConfig = {\n queryParam: false,\n fetch: query => {\n return this._config.loadMessageQueueAttachments(messageQueue, query)\n .pipe(\n map(response => ({\n data: response.data.map(value => {\n value.prettyFilesize = this._prettyFilesize(value.filesize);\n return value;\n }), paging: response.paging\n }))\n );\n }\n };\n\n if (this._config.downloadMessageQueueAttachment) {\n this.attachmentConfig.rowActions = [\n {\n click: (messageAttachment) => {\n this._config.downloadMessageQueueAttachment(messageAttachment, this.messageQueue);\n },\n label: 'Download',\n }\n ];\n }\n }\n\n private _prettyFilesize(bytes) {\n if (bytes === 0) { return '0.00 B'; }\n const e = Math.floor(Math.log(bytes) / Math.log(1024));\n return (bytes / Math.pow(1024, e)).toFixed(2) + ' ' + ' KMGTP'.charAt(e) + 'B';\n }\n}\n","<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 class=\"fs-row.gap-large.wrap\">\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 [width]=\"'100%'\">\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","import { Injectable } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\n\nimport { Observable } from 'rxjs';\n\nimport { QueueComponent } from '../components/queue/queue.component';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FsMessageQueueService {\n\n constructor(\n private _dialog: MatDialog,\n ) { }\n\n public openMessageQueue(messageQueueId: number, options: any = {}): Observable<any> {\n return this._dialog.open(QueueComponent, {\n ...options,\n data: {\n messageQueueId,\n },\n width: options.width || '85%',\n })\n .afterClosed();\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate'\n})\nexport class TruncatePipe implements PipeTransform {\ntransform(value: string, limit = 25, completeWords = false, ellipsis = '...') {\n\n if (value.length < limit) {\n return `${value.substr(0, limit)}`;\n }\n\n if (completeWords) {\n limit = value.substr(0, limit).lastIndexOf(' ');\n }\n return `${value.substr(0, limit)}${ellipsis}`;\n}\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\n\n\nimport { ItemType } from '@firestitch/filter';\nimport { FsListActionSelected, FsListComponent, FsListConfig } from '@firestitch/list';\nimport { SelectionActionType } from '@firestitch/selection';\nimport { FsStore } from '@firestitch/store';\n\nimport { Subject } from 'rxjs';\nimport { filter, map, takeUntil, tap } from 'rxjs/operators';\n\nimport { isAfter } from 'date-fns';\n\nimport { indexNameValue } from '../../../../helpers';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\nimport { MessageQueueStates } from '../../consts';\nimport { MessageQueueType } from '../../enums';\nimport { MessageQueueState } from '../../enums/message-queue-state.enum';\nimport { FsMessageQueueService } from '../../services/message-queue.service';\n\n\n@Component({\n selector: 'fs-app-message-queues',\n styleUrls: ['./queues.component.scss'],\n templateUrl: './queues.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class QueuesComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent, { static: true })\n public list: FsListComponent = null;\n\n @Input() public query = {};\n\n @Input() public type: MessageQueueType = null;\n\n public config: FsListConfig = null;\n public messageQueueStates = {};\n public MessageQueueState = MessageQueueState;\n public webHookEnabled;\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _messageQueueService: FsMessageQueueService,\n private _cdRef: ChangeDetectorRef,\n private _store: FsStore,\n ) { }\n\n public ngOnInit() {\n this.messageQueueStates = indexNameValue(MessageQueueStates);\n this.initList();\n this.initWebhook();\n }\n\n public enableWebhook() {\n this._config.createWebhook()\n .subscribe(() => {\n this.initWebhook();\n });\n }\n\n public initWebhook() {\n const domain = document.location.hostname;\n\n if(domain === 'localhost' || domain === '[::1]') {\n return;\n }\n\n this._config.loadWebhooks({ domain })\n .pipe(\n filter(() => {\n return !this._store.get('messagesWebhookEnabled');\n }),\n )\n .subscribe((webhooks) => {\n this._cdRef.markForCheck();\n this.webHookEnabled = webhooks\n .some((webhook) => {\n const url = new URL(webhook.url);\n\n return url.host === domain;\n });\n\n this._store.set('messagesWebhookEnabled', this.webHookEnabled);\n });\n }\n\n public initList() {\n this.config = {\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n {\n name: 'state',\n type: ItemType.Select,\n label: 'Status',\n values: () => {\n return MessageQueueStates;\n },\n },\n {\n name: 'date',\n type: ItemType.DateRange,\n label: ['From Date', 'To Date'],\n },\n ],\n sort: { value: 'created_date', direction: 'desc' },\n fetch: (query) => {\n query = {\n ...query,\n ...this.query,\n type: this.type,\n messageQueueAttachmentCounts: true,\n emailMessageQueues: true,\n emailMessageQueueBodies: false,\n smsMessageQueues: true,\n };\n\n return this._config.loadMessageQueues(query)\n .pipe(\n map((response) => ({\n data: response.data\n .map((messageQueue) => {\n return {\n ...messageQueue,\n scheduled: messageQueue.state === MessageQueueState.Queued && isAfter(messageQueue.scheduledDate, new Date()),\n messageQueueRecipients: messageQueue.messageQueueRecipients\n .reduce((accum, messageQueueRecipient) => {\n accum[messageQueueRecipient.recipient] = messageQueueRecipient.state;\n\n return accum;\n }, {}),\n };\n }), paging: response.paging,\n })),\n );\n },\n };\n\n if (this._config.bulkMessageQueues) {\n this.config.selection = {\n selectAll: false,\n actions: [\n {\n type: SelectionActionType.Action,\n name: 'queue',\n label: 'Queue',\n },\n {\n type: SelectionActionType.Action,\n name: 'resend',\n label: 'Resend',\n },\n {\n type: SelectionActionType.Action,\n name: 'cancel',\n label: 'Cancel',\n },\n ],\n actionSelected: (actionSelected: FsListActionSelected) => {\n return this._config.bulkMessageQueues(actionSelected.action.name, actionSelected.selected)\n .pipe(\n tap(() => {\n this.list.reload();\n }),\n );\n },\n };\n }\n\n this.config.filters.push({\n name: 'messageId',\n type: ItemType.Select,\n label: 'Message Type',\n values: (query) => {\n query = {\n ...query,\n limit: 50,\n };\n\n return this._config.loadMessages(query)\n .pipe(\n map((response) => {\n return [\n { value: null, name: 'All' },\n ...response.data\n .map((item) => ({ name: item.name, value: item.id })),\n ];\n }),\n );\n },\n } as any);\n }\n\n public open(messageQueue) {\n this._messageQueueService.openMessageQueue(messageQueue.id)\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.list.reload();\n });\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","<ng-container *ngIf=\"webHookEnabled === false\">\n <fs-message-info>\n <div class=\"fs-row\">\n <span class=\"fs-flex\">The webhook which provides email delivery confirmations is not enabled.</span>\n <a \n (click)=\"enableWebhook()\"\n mat-raised-button>\n Enable\n </a>\n </div>\n\n </fs-message-info>\n</ng-container>\n\n<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 <a (click)=\"open(row)\">{{row.emailMessageQueue.subject|truncate:100}}</a>\n <ng-container *ngIf=\"row.messageQueueAttachmentCount\">\n <mat-icon \n class=\"attachment-icon\"\n [matTooltip]=\"row.messageQueueAttachmentCount + ' Attachment(s)'\">\n attach_file\n </mat-icon>\n </ng-container>\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 <ng-container *ngIf=\"row.scheduled; else state\">\n Scheduled\n <div class=\"small\">\n {{row.scheduledDate | fsDateFormat: 'date-time' }}\n </div>\n </ng-container>\n <ng-template #state>\n <span [class]=\"'state-' + row.state\">{{messageQueueStates[row.state]}}</span>\n </ng-template>\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>","import { Pipe, PipeTransform } from '@angular/core';\n\nimport anchorme from 'anchorme';\n\n\n@Pipe({name: 'linkify'})\nexport class LinkifyPipe implements PipeTransform {\n transform(input: string): string {\n return anchorme({\n input,\n options: {\n attributes: {\n target: \"_blank\",\n }\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { FsDateModule } from '@firestitch/date';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsIFrameModule } from '@firestitch/iframe';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsListModule } from '@firestitch/list';\nimport { FsMessageModule } from '@firestitch/message';\nimport { FsPromptInputModule } from '@firestitch/prompt';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\n\nimport { FsAppMessagesModule } from '../messages/messages.module';\n\nimport { QueueComponent } from './components/queue/queue.component';\nimport { QueuesComponent } from './components/queues/queues.component';\nimport { RecipientComponent } from './components/recipient/recipient.component';\nimport { LinkifyPipe } from './pipes/linkify.pipe';\nimport { TruncatePipe } from './pipes/truncate.pipe';\nimport { FsMessageQueueService } from './services/message-queue.service';\n\n\n@NgModule({\n imports: [\n RouterModule,\n FormsModule,\n CommonModule,\n\n MatTooltipModule,\n MatDialogModule,\n MatButtonModule,\n MatIconModule,\n MatTabsModule,\n\n FsListModule,\n FsDialogModule,\n FsLabelModule,\n FsDateModule,\n FsSkeletonModule,\n FsAppMessagesModule,\n FsFormModule,\n FsPromptInputModule,\n FsIFrameModule,\n FsMessageModule,\n ],\n declarations: [\n QueuesComponent,\n QueueComponent,\n LinkifyPipe,\n TruncatePipe,\n RecipientComponent,\n ],\n exports: [\n QueuesComponent,\n QueueComponent,\n ],\n providers: [\n FsMessageQueueService,\n ],\n})\nexport class FsAppMessageQueuesModule { }\n","import { Component, OnInit, Inject } from '@angular/core';\n\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\nimport { FsTextEditorConfig } from '@firestitch/text-editor';\nimport { SubmitEvent } from '@firestitch/form';\n\nimport { tap } from 'rxjs/operators';\n\nimport { PreviewComponent } from '../../../../modules/message-preview/components';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\n\n\n@Component({\n templateUrl: './template.component.html',\n styleUrls: ['./template.component.scss']\n})\nexport class TemplateComponent implements OnInit {\n\n public messageTemplate;\n public htmlEditorconfig: FsTextEditorConfig = {\n language: 'html',\n insertSpaces: true,\n tabSize: 2,\n };\n\n public cssEditorconfig: FsTextEditorConfig = {\n language: 'scss',\n insertSpaces: true,\n tabSize: 2,\n };\n\n public constructor(\n @Inject(MAT_DIALOG_DATA) private _data,\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _dialogRef: MatDialogRef<TemplateComponent>,\n private _message: FsMessage,\n private _dialog: MatDialog,\n ) { }\n\n public ngOnInit(): void {\n if (this._data.messageTemplate.id) {\n this._config.loadMessageTemplate(this._data.messageTemplate)\n .subscribe(messageTemplate => {\n this.messageTemplate = messageTemplate;\n });\n } else {\n this.messageTemplate = {};\n }\n }\n\n public openPreview(): void {\n this._dialog.open(PreviewComponent, {\n data: {\n styles: this.messageTemplate.styles,\n html: this.messageTemplate.content,\n },\n width: '95%',\n });\n }\n\n public save = (event: SubmitEvent) => {\n return this._config.saveMessageTemplate(this.messageTemplate)\n .pipe(\n tap((messageTemplate) => {\n this._message.success('Saved Changes');\n if (event.submitter === 'save-close') {\n this._dialogRef.close(messageTemplate);\n }\n })\n );\n }\n}\n","<form\n fsForm\n [submit]=\"save\"\n #form=\"ngForm\"\n *fsSkeleton=\"messageTemplate\"\n [confirmTabs]=\"false\">\n <fs-dialog *ngIf=\"messageTemplate\">\n <div mat-dialog-title>Message Template</div>\n <mat-dialog-content>\n <mat-form-field class=\"name\">\n <mat-label>Name</mat-label>\n <input\n matInput\n [(ngModel)]=\"messageTemplate.name\"\n required\n name=\"name\">\n </mat-form-field>\n <div [@.disabled]=\"true\">\n <mat-tab-group\n mat-align-tabs=\"start\"\n [dynamicHeight]=\"false\">\n <mat-tab label=\"Content\">\n <ng-template matTabContent>\n <div class=\"content\">\n <fs-label-field>\n <fs-text-editor\n [(ngModel)]=\"messageTemplate.content\"\n name=\"body\"\n [config]=\"htmlEditorconfig\">\n </fs-text-editor>\n <fs-label-message>\n &#123;$content&#125; will be replaced with the message content.\n </fs-label-message>\n </fs-label-field>\n </div>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Styles\">\n <ng-template matTabContent>\n <div class=\"styles\">\n <fs-text-editor\n [(ngModel)]=\"messageTemplate.styles\"\n name=\"styles\"\n [config]=\"cssEditorconfig\">\n </fs-text-editor>\n </div>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button type=\"submit\" color=\"primary\" name=\"close\">Save</button>\n <button mat-button type=\"submit\" name=\"save-close\">Save & Close</button>\n <button mat-button (click)=\"openPreview()\" type=\"button\">Preview</button>\n <button mat-button [mat-dialog-close]=\"null\" type=\"button\">Cancel</button>\n </mat-dialog-actions>\n </fs-dialog>\n</form>\n","import { Component, OnDestroy, OnInit, ViewChild, Inject } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\n\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\nimport { TemplateComponent } from '../template';\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\n\n\n@Component({\n selector: 'fs-app-message-templates',\n templateUrl: './templates.component.html'\n})\nexport class TemplatesComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent, { static: true }) \n public list: FsListComponent = null;\n\n public config: FsListConfig = null;\n public messageQueueStates = [];\n\n private _destroy$ = new Subject();\n\n constructor(\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\n private _dialog: MatDialog,\n ) { }\n\n public ngOnInit(): void {\n this.config = {\n actions: [\n {\n label: 'Create',\n click: () => {\n this.open({});\n }\n }\n ],\n status: false,\n fetch: query => {\n return this._config.loadMessageTemplates(query);\n }\n }\n\n if (this._config.deleteMessageTemplate) {\n this.config.rowActions = [\n {\n click: data => {\n return this._config.deleteMessageTemplate(data);\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this template?',\n },\n menu: true,\n label: 'Delete',\n },\n ];\n }\n }\n\n public open(messageTemplate): void {\n const dialogRef = this._dialog.open(TemplateComponent, {\n data: {\n messageTemplate,\n },\n width: '85%',\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.list.reload();\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n}\n","<fs-list [config]=\"config\">\n <fs-list-column title=\"Name\">\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"open(row)\">{{row.name}}</a>\n </ng-template>\n </fs-list-column>\n</fs-list>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsListModule } from '@firestitch/list';\nimport { FsSkeletonModule } from '@firestitch/skeleton';\nimport { FsTextEditorModule } from '@firestitch/text-editor';\n\nimport { FsAppMessagePreviewModule } from '../message-preview/message-preview.module';\n\nimport { TemplateComponent } from './components/template/template.component';\nimport { TemplatesComponent } from './components/templates/templates.component';\n\n\n@NgModule({\n imports: [\n RouterModule,\n CommonModule,\n FormsModule,\n\n MatTooltipModule,\n MatDialogModule,\n MatButtonModule,\n MatTabsModule,\n MatFormFieldModule,\n MatFormFieldModule,\n MatInputModule,\n\n FsListModule,\n FsDialogModule,\n FsLabelModule,\n FsSkeletonModule,\n FsFormModule,\n FsTextEditorModule,\n\n FsAppMessagePreviewModule,\n ],\n declarations: [\n TemplatesComponent,\n TemplateComponent,\n ],\n exports: [\n TemplatesComponent,\n TemplateComponent,\n ],\n})\nexport class FsAppMessageTemplatesModule {\n}\n","import { ChangeDetectionStrategy, Component, Inject, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\r\nimport { FsMessage } from '@firestitch/message';\r\n\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { FS_APP_MESSAGE_CONFIG } from '../../../app-message/injectors';\r\nimport { FsAppMessageConfig } from '../../../app-message/interfaces';\r\n\r\n\r\n@Component({\r\n selector: 'fs-app-message-webhooks',\r\n templateUrl: './webhooks.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class WebhooksComponent implements OnInit {\r\n\r\n @ViewChild(FsListComponent)\r\n public list: FsListComponent;\r\n\r\n public listConfig: FsListConfig;\r\n\r\n constructor(\r\n @Inject(FS_APP_MESSAGE_CONFIG) private _config: FsAppMessageConfig,\r\n private _message: FsMessage,\r\n ) {}\r\n\r\n public ngOnInit(): void {\r\n this.listConfig = {\r\n paging: false,\r\n actions: [\r\n {\r\n click: () => {\r\n this._config.createWebhook()\r\n .subscribe(() => {\r\n this._message.success('Created webhook');\r\n this.list.reload();\r\n });\r\n },\r\n label: 'Create',\r\n },\r\n ],\r\n rowActions: [\r\n {\r\n click: (webhook) => {\r\n this._config.deleteWebhook(webhook)\r\n .subscribe(() => {\r\n this._message.success('Deleted webhook');\r\n this.list.reload();\r\n });\r\n },\r\n label: 'Delete',\r\n },\r\n ],\r\n fetch: () => {\r\n return this._config.loadWebhooks({\r\n domain: window.location.hostname,\r\n })\r\n .pipe(\r\n map((webhooks) => ({ data: webhooks })),\r\n );\r\n },\r\n };\r\n }\r\n}\r\n","<fs-list [config]=\"listConfig\">\r\n <fs-list-column title=\"URL\">\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.url}}\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column title=\"Created\">\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.createDate | fsDate}}\r\n </ng-template>\r\n </fs-list-column>\r\n</fs-list>","import { NgModule } from '@angular/core';\nimport { FsDateModule } from '@firestitch/date';\n\nimport { FsListModule } from '@firestitch/list';\n\nimport { WebhooksComponent } from './components/webhooks/webhooks.component';\n\n@NgModule({\n imports: [\n FsListModule,\n\n FsDateModule,\n ],\n declarations: [\n WebhooksComponent,\n ],\n exports: [\n WebhooksComponent,\n ],\n})\nexport class FsAppMessageWebhooksModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i1","i3","i4","i5","i6","i7","i12","i14","i15","i19.AttachmentsComponent","i8","i9","i10","i11","i13","i14.RecipientComponent","i1.FsMessageQueueService","i10.RecipientComponent","i12.TruncatePipe"],"mappings":"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"}