@firestitch/app-message 18.0.9 → 18.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/interfaces/index.d.ts +1 -0
- package/app/interfaces/message-queues-config.d.ts +4 -0
- package/app/modules/message-queues/components/queues/queues.component.d.ts +4 -2
- package/esm2022/app/interfaces/index.mjs +2 -0
- package/esm2022/app/interfaces/message-queues-config.mjs +2 -0
- package/esm2022/app/modules/message-queues/components/queues/queues.component.mjs +11 -24
- package/esm2022/app/modules/messages/components/messages/messages.component.mjs +3 -3
- package/esm2022/public_api.mjs +1 -1
- package/fesm2022/firestitch-app-message.mjs +12 -25
- package/fesm2022/firestitch-app-message.mjs.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './message-queues-config';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { FsListComponent, FsListConfig } from '@firestitch/list';
|
|
3
3
|
import { FsStore } from '@firestitch/store';
|
|
4
|
+
import { MessageQueuesConfig } from '../../../../interfaces';
|
|
4
5
|
import { FsAppMessageConfig } from '../../../app-message/interfaces';
|
|
5
6
|
import { MessageQueueType } from '../../enums';
|
|
6
7
|
import { MessageQueueState } from '../../enums/message-queue-state.enum';
|
|
@@ -14,7 +15,8 @@ export declare class QueuesComponent implements OnInit, OnDestroy {
|
|
|
14
15
|
list: FsListComponent;
|
|
15
16
|
query: {};
|
|
16
17
|
type: MessageQueueType;
|
|
17
|
-
config:
|
|
18
|
+
config: MessageQueuesConfig;
|
|
19
|
+
listConfig: FsListConfig;
|
|
18
20
|
messageQueueStates: {};
|
|
19
21
|
MessageQueueState: typeof MessageQueueState;
|
|
20
22
|
webHookEnabled: any;
|
|
@@ -27,5 +29,5 @@ export declare class QueuesComponent implements OnInit, OnDestroy {
|
|
|
27
29
|
open(messageQueue: any): void;
|
|
28
30
|
ngOnDestroy(): void;
|
|
29
31
|
static ɵfac: i0.ɵɵFactoryDeclaration<QueuesComponent, never>;
|
|
30
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<QueuesComponent, "fs-app-message-queues", never, { "query": { "alias": "query"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, never, false, never>;
|
|
32
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<QueuesComponent, "fs-app-message-queues", never, { "query": { "alias": "query"; "required": false; }; "type": { "alias": "type"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, {}, never, never, false, never>;
|
|
31
33
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './message-queues-config';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZS1xdWV1ZXMtY29uZmlnJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1xdWV1ZXMtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9pbnRlcmZhY2VzL21lc3NhZ2UtcXVldWVzLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUZpbHRlckNvbmZpZ0l0ZW0gfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuXG5leHBvcnQgIGludGVyZmFjZSBNZXNzYWdlUXVldWVzQ29uZmlnIHtcbiAgZmlsdGVycz86IElGaWx0ZXJDb25maWdJdGVtW107XG59XG4iXX0=
|
|
@@ -32,8 +32,9 @@ export class QueuesComponent {
|
|
|
32
32
|
_store;
|
|
33
33
|
list = null;
|
|
34
34
|
query = {};
|
|
35
|
-
type
|
|
36
|
-
config
|
|
35
|
+
type;
|
|
36
|
+
config;
|
|
37
|
+
listConfig = null;
|
|
37
38
|
messageQueueStates = {};
|
|
38
39
|
MessageQueueState = MessageQueueState;
|
|
39
40
|
webHookEnabled;
|
|
@@ -75,7 +76,7 @@ export class QueuesComponent {
|
|
|
75
76
|
});
|
|
76
77
|
}
|
|
77
78
|
initList() {
|
|
78
|
-
this.
|
|
79
|
+
this.listConfig = {
|
|
79
80
|
filters: [
|
|
80
81
|
{
|
|
81
82
|
name: 'keyword',
|
|
@@ -110,23 +111,7 @@ export class QueuesComponent {
|
|
|
110
111
|
type: ItemType.DateRange,
|
|
111
112
|
label: ['From Date', 'To Date'],
|
|
112
113
|
},
|
|
113
|
-
|
|
114
|
-
name: 'direction',
|
|
115
|
-
type: ItemType.Chips,
|
|
116
|
-
label: 'Direction',
|
|
117
|
-
default: [
|
|
118
|
-
{
|
|
119
|
-
value: 'sent',
|
|
120
|
-
name: 'Sent',
|
|
121
|
-
},
|
|
122
|
-
],
|
|
123
|
-
values: () => {
|
|
124
|
-
return [
|
|
125
|
-
{ name: 'Sent', value: 'sent' },
|
|
126
|
-
{ name: 'Received', value: 'received' },
|
|
127
|
-
];
|
|
128
|
-
},
|
|
129
|
-
},
|
|
114
|
+
...(this.config?.filters || []),
|
|
130
115
|
],
|
|
131
116
|
paging: {
|
|
132
117
|
strategy: PaginationStrategy.Many,
|
|
@@ -170,7 +155,7 @@ export class QueuesComponent {
|
|
|
170
155
|
},
|
|
171
156
|
};
|
|
172
157
|
if (this._config.bulkMessageQueues) {
|
|
173
|
-
this.
|
|
158
|
+
this.listConfig.selection = {
|
|
174
159
|
selectAll: false,
|
|
175
160
|
actions: [
|
|
176
161
|
{
|
|
@@ -229,11 +214,11 @@ export class QueuesComponent {
|
|
|
229
214
|
this._destroy$.complete();
|
|
230
215
|
}
|
|
231
216
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: QueuesComponent, deps: [{ token: FS_APP_MESSAGE_CONFIG }, { token: i1.FsMessageQueueService }, { token: i0.ChangeDetectorRef }, { token: i2.FsStore }], target: i0.ɵɵFactoryTarget.Component });
|
|
232
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: QueuesComponent, selector: "fs-app-message-queues", inputs: { query: "query", type: "type" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<ng-container *ngIf=\"webHookEnabled === false\">\n <fs-message-info>\n <div class=\"fs-row\">\n <span class=\"fs-flex\">\n The webhook which provides email delivery confirmations is not enabled.\n </span>\n <a\n (click)=\"enableWebhook()\"\n mat-raised-button>\n Enable\n </a>\n </div>\n </fs-message-info>\n</ng-container>\n<fs-list\n [config]=\"
|
|
217
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: QueuesComponent, selector: "fs-app-message-queues", inputs: { query: "query", type: "type", config: "config" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<ng-container *ngIf=\"webHookEnabled === false\">\n <fs-message-info>\n <div class=\"fs-row\">\n <span class=\"fs-flex\">\n The webhook which provides email delivery confirmations is not enabled.\n </span>\n <a\n (click)=\"enableWebhook()\"\n mat-raised-button>\n Enable\n </a>\n </div>\n </fs-message-info>\n</ng-container>\n<fs-list\n [config]=\"listConfig\"\n #list>\n <fs-list-column\n title=\"Message\"\n name=\"subject\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <ng-container *ngIf=\"row.emailMessageQueue\">\n <a (click)=\"open(row)\">\n {{ row.emailMessageQueue.subject|truncate:100 }}\n </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)\">\n {{ row.smsMessageQueue.body|truncate:100 }}\n </a>\n </ng-container>\n </ng-template>\n </fs-list-column>\n <fs-list-column\n title=\"Recipients\"\n class=\"col-recipients\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <ng-container *ngIf=\"row.emailMessageQueue\">\n <ng-container *ngIf=\"row.emailMessageQueue.toRecipients.length; else unspecified\">\n <div\n class=\"small\"\n *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\n class=\"small\"\n *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\n class=\"small\"\n *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\n title=\"Status\"\n class=\"col-state\">\n <ng-template\n fs-list-cell\n 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\">\n {{ messageQueueStates[row.state] }}\n </span>\n </ng-template>\n </ng-template>\n </fs-list-column>\n <fs-list-column\n title=\"Date\"\n name=\"created_date\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n {{ row.createdDate | fsDateFormat: 'date-time-yeardiff' }}\n </ng-template>\n </fs-list-column>\n</fs-list>\n<ng-template #unspecified>\n <app-recipient\n class=\"small\"\n [state]=\"MessageQueueState.Failed\"\n name=\"Unspecified\">\n </app-recipient>\n</ng-template>", styles: [":host ::ng-deep .col-recipients small+small:before{content:\", \"}:host ::ng-deep .col-state .state-F,:host ::ng-deep .col-state .state-P{color:#d8524e}.attachment-icon{vertical-align:bottom}fs-message-info{margin-bottom:10px;display:block}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i7.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customizable", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: i7.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { kind: "directive", type: i8.FsButtonDirective, selector: "[mat-raised-button]:not([fsFormButtonStandalone]),[mat-button]:not([fsFormButtonStandalone]),[mat-flat-button]:not([fsFormButtonStandalone]),[mat-stroked-button]:not([fsFormButtonStandalone])", inputs: ["name", "dirtySubmit", "form"] }, { kind: "component", type: i9.FsMessageInfoComponent, selector: "fs-message-info" }, { kind: "component", type: i10.RecipientComponent, selector: "app-recipient", inputs: ["name", "state"] }, { kind: "pipe", type: i11.FsDateFormatPipe, name: "fsDateFormat" }, { kind: "pipe", type: i12.TruncatePipe, name: "truncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
233
218
|
}
|
|
234
219
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: QueuesComponent, decorators: [{
|
|
235
220
|
type: Component,
|
|
236
|
-
args: [{ selector: 'fs-app-message-queues', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"webHookEnabled === false\">\n <fs-message-info>\n <div class=\"fs-row\">\n <span class=\"fs-flex\">\n The webhook which provides email delivery confirmations is not enabled.\n </span>\n <a\n (click)=\"enableWebhook()\"\n mat-raised-button>\n Enable\n </a>\n </div>\n </fs-message-info>\n</ng-container>\n<fs-list\n [config]=\"
|
|
221
|
+
args: [{ selector: 'fs-app-message-queues', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"webHookEnabled === false\">\n <fs-message-info>\n <div class=\"fs-row\">\n <span class=\"fs-flex\">\n The webhook which provides email delivery confirmations is not enabled.\n </span>\n <a\n (click)=\"enableWebhook()\"\n mat-raised-button>\n Enable\n </a>\n </div>\n </fs-message-info>\n</ng-container>\n<fs-list\n [config]=\"listConfig\"\n #list>\n <fs-list-column\n title=\"Message\"\n name=\"subject\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <ng-container *ngIf=\"row.emailMessageQueue\">\n <a (click)=\"open(row)\">\n {{ row.emailMessageQueue.subject|truncate:100 }}\n </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)\">\n {{ row.smsMessageQueue.body|truncate:100 }}\n </a>\n </ng-container>\n </ng-template>\n </fs-list-column>\n <fs-list-column\n title=\"Recipients\"\n class=\"col-recipients\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <ng-container *ngIf=\"row.emailMessageQueue\">\n <ng-container *ngIf=\"row.emailMessageQueue.toRecipients.length; else unspecified\">\n <div\n class=\"small\"\n *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\n class=\"small\"\n *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\n class=\"small\"\n *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\n title=\"Status\"\n class=\"col-state\">\n <ng-template\n fs-list-cell\n 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\">\n {{ messageQueueStates[row.state] }}\n </span>\n </ng-template>\n </ng-template>\n </fs-list-column>\n <fs-list-column\n title=\"Date\"\n name=\"created_date\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n {{ row.createdDate | fsDateFormat: 'date-time-yeardiff' }}\n </ng-template>\n </fs-list-column>\n</fs-list>\n<ng-template #unspecified>\n <app-recipient\n class=\"small\"\n [state]=\"MessageQueueState.Failed\"\n name=\"Unspecified\">\n </app-recipient>\n</ng-template>", styles: [":host ::ng-deep .col-recipients small+small:before{content:\", \"}:host ::ng-deep .col-state .state-F,:host ::ng-deep .col-state .state-P{color:#d8524e}.attachment-icon{vertical-align:bottom}fs-message-info{margin-bottom:10px;display:block}\n"] }]
|
|
237
222
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
238
223
|
type: Inject,
|
|
239
224
|
args: [FS_APP_MESSAGE_CONFIG]
|
|
@@ -244,5 +229,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
244
229
|
type: Input
|
|
245
230
|
}], type: [{
|
|
246
231
|
type: Input
|
|
232
|
+
}], config: [{
|
|
233
|
+
type: Input
|
|
247
234
|
}] } });
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tZXNzYWdlLXF1ZXVlcy9jb21wb25lbnRzL3F1ZXVlcy9xdWV1ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21lc3NhZ2UtcXVldWVzL2NvbXBvbmVudHMvcXVldWVzL3F1ZXVlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduSSxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUF3QixlQUFlLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FB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QUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRzVCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBRVUsSUFBSTtzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuaW1wb3J0IHsgSXRlbVR5cGUsIFRleHRJdGVtIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcbmltcG9ydCB7IEZzTGlzdEFjdGlvblNlbGVjdGVkLCBGc0xpc3RDb21wb25lbnQsIEZzTGlzdENvbmZpZywgUGFnaW5hdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGlzdCc7XG5pbXBvcnQgeyBTZWxlY3Rpb25BY3Rpb25UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvc2VsZWN0aW9uJztcbmltcG9ydCB7IEZzU3RvcmUgfSBmcm9tICdAZmlyZXN0aXRjaC9zdG9yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgaXNBZnRlciB9IGZyb20gJ2RhdGUtZm5zJztcblxuaW1wb3J0IHsgaW5kZXhOYW1lVmFsdWUgfSBmcm9tICcuLi8uLi8uLi8uLi9oZWxwZXJzJztcbmltcG9ydCB7IEZTX0FQUF9NRVNTQUdFX0NPTkZJRyB9IGZyb20gJy4uLy4uLy4uL2FwcC1tZXNzYWdlL2luamVjdG9ycyc7XG5pbXBvcnQgeyBGc0FwcE1lc3NhZ2VDb25maWcgfSBmcm9tICcuLi8uLi8uLi9hcHAtbWVzc2FnZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1lc3NhZ2VRdWV1ZVN0YXRlcyB9IGZyb20gJy4uLy4uL2NvbnN0cyc7XG5pbXBvcnQgeyBNZXNzYWdlUXVldWVUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgTWVzc2FnZVF1ZXVlU3RhdGUgfSBmcm9tICcuLi8uLi9lbnVtcy9tZXNzYWdlLXF1ZXVlLXN0YXRlLmVudW0nO1xuaW1wb3J0IHsgRnNNZXNzYWdlUXVldWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZS1xdWV1ZS5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1hcHAtbWVzc2FnZS1xdWV1ZXMnLFxuICBzdHlsZVVybHM6IFsnLi9xdWV1ZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXVlcy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBRdWV1ZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQFZpZXdDaGlsZChGc0xpc3RDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBsaXN0OiBGc0xpc3RDb21wb25lbnQgPSBudWxsO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBxdWVyeSA9IHt9O1xuXG4gIEBJbnB1dCgpIHB1YmxpYyB0eXBlOiBNZXNzYWdlUXVldWVUeXBlID0gbnVsbDtcblxuICBwdWJsaWMgY29uZmlnOiBGc0xpc3RDb25maWcgPSBudWxsO1xuICBwdWJsaWMgbWVzc2FnZVF1ZXVlU3RhdGVzID0ge307XG4gIHB1YmxpYyBNZXNzYWdlUXVldWVTdGF0ZSA9IE1lc3NhZ2VRdWV1ZVN0YXRlO1xuICBwdWJsaWMgd2ViSG9va0VuYWJsZWQ7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRlNfQVBQX01FU1NBR0VfQ09ORklHKSBwcml2YXRlIF9jb25maWc6IEZzQXBwTWVzc2FnZUNvbmZpZyxcbiAgICBwcml2YXRlIF9tZXNzYWdlUXVldWVTZXJ2aWNlOiBGc01lc3NhZ2VRdWV1ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX3N0b3JlOiBGc1N0b3JlLFxuICApIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm1lc3NhZ2VRdWV1ZVN0YXRlcyA9IGluZGV4TmFtZVZhbHVlKE1lc3NhZ2VRdWV1ZVN0YXRlcyk7XG4gICAgdGhpcy5pbml0TGlzdCgpO1xuICAgIHRoaXMuaW5pdFdlYmhvb2soKTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGVXZWJob29rKCkge1xuICAgIHRoaXMuX2NvbmZpZy5jcmVhdGVXZWJob29rKClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXRXZWJob29rKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0V2ViaG9vaygpIHtcbiAgICBjb25zdCBkb21haW4gPSBkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZTtcblxuICAgIGlmKGRvbWFpbiA9PT0gJ2xvY2FsaG9zdCcgfHwgZG9tYWluID09PSAnWzo6MV0nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fY29uZmlnLmxvYWRXZWJob29rcyh7IGRvbWFpbiB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuICF0aGlzLl9zdG9yZS5nZXQoJ21lc3NhZ2VzV2ViaG9va0VuYWJsZWQnKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh3ZWJob29rcykgPT4ge1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy53ZWJIb29rRW5hYmxlZCA9IHdlYmhvb2tzXG4gICAgICAgICAgLnNvbWUoKHdlYmhvb2spID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwod2ViaG9vay51cmwpO1xuXG4gICAgICAgICAgICByZXR1cm4gdXJsLmhvc3QgPT09IGRvbWFpbjtcbiAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9zdG9yZS5zZXQoJ21lc3NhZ2VzV2ViaG9va0VuYWJsZWQnLCB0aGlzLndlYkhvb2tFbmFibGVkKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGluaXRMaXN0KCkge1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgZmlsdGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLktleXdvcmQsXG4gICAgICAgICAgbGFiZWw6ICdTZWFyY2gnLFxuICAgICAgICAgIGNoYW5nZTogKGl0ZW06IFRleHRJdGVtKSA9PiB7XG4gICAgICAgICAgICBpZihTdHJpbmcoaXRlbS52YWx1ZSA/PyAnJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMubGlzdC5maWx0ZXJSZWZcbiAgICAgICAgICAgICAgICAudXBkYXRlU29ydCh7IFxuICAgICAgICAgICAgICAgICAgc29ydEJ5OiAncmVsZXZhbmNlJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMubGlzdC5maWx0ZXJSZWZcbiAgICAgICAgICAgICAgICAudXBkYXRlU29ydCh7IFxuICAgICAgICAgICAgICAgICAgc29ydEJ5OiAnY3JlYXRlZF9kYXRlJyxcbiAgICAgICAgICAgICAgICAgIHNvcnREaXJlY3Rpb246ICdkZXNjJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ3N0YXRlJyxcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5TZWxlY3QsXG4gICAgICAgICAgbGFiZWw6ICdTdGF0dXMnLFxuICAgICAgICAgIHZhbHVlczogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIE1lc3NhZ2VRdWV1ZVN0YXRlcztcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2RhdGUnLFxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLkRhdGVSYW5nZSxcbiAgICAgICAgICBsYWJlbDogWydGcm9tIERhdGUnLCAnVG8gRGF0ZSddLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2RpcmVjdGlvbicsXG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuQ2hpcHMsXG4gICAgICAgICAgbGFiZWw6ICdEaXJlY3Rpb24nLFxuICAgICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdzZW50JyxcbiAgICAgICAgICAgICAgbmFtZTogJ1NlbnQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHZhbHVlczogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgeyBuYW1lOiAnU2VudCcsIHZhbHVlOiAnc2VudCcgfSxcbiAgICAgICAgICAgICAgeyBuYW1lOiAnUmVjZWl2ZWQnLCB2YWx1ZTogJ3JlY2VpdmVkJyB9LFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHBhZ2luZzoge1xuICAgICAgICBzdHJhdGVneTogUGFnaW5hdGlvblN0cmF0ZWd5Lk1hbnksXG4gICAgICB9LFxuICAgICAgc29ydHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiAncmVsZXZhbmNlJyxcbiAgICAgICAgICBuYW1lOiAnUmVsZXZhbmNlJyxcbiAgICAgICAgICBkaXJlY3Rpb246ICdkZXNjJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBzb3J0OiB7IFxuICAgICAgICB2YWx1ZTogJ2NyZWF0ZWRfZGF0ZScsIFxuICAgICAgICBkaXJlY3Rpb246ICdkZXNjJyxcbiAgICAgIH0sXG4gICAgICBmZXRjaDogKHF1ZXJ5KSA9PiB7XG4gICAgICAgIHF1ZXJ5ID0ge1xuICAgICAgICAgIC4uLnF1ZXJ5LFxuICAgICAgICAgIC4uLnRoaXMucXVlcnksXG4gICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgIG1lc3NhZ2VRdWV1ZUF0dGFjaG1lbnRDb3VudHM6IHRydWUsXG4gICAgICAgICAgZW1haWxNZXNzYWdlUXVldWVzOiB0cnVlLFxuICAgICAgICAgIGVtYWlsTWVzc2FnZVF1ZXVlQm9kaWVzOiBmYWxzZSxcbiAgICAgICAgICBzbXNNZXNzYWdlUXVldWVzOiB0cnVlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWcubG9hZE1lc3NhZ2VRdWV1ZXMocXVlcnkpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiAoe1xuICAgICAgICAgICAgICBkYXRhOiByZXNwb25zZS5kYXRhXG4gICAgICAgICAgICAgICAgLm1hcCgobWVzc2FnZVF1ZXVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5tZXNzYWdlUXVldWUsXG4gICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlZDogbWVzc2FnZVF1ZXVlLnN0YXRlID09PSBNZXNzYWdlUXVldWVTdGF0ZS5RdWV1ZWQgJiYgaXNBZnRlcihtZXNzYWdlUXVldWUuc2NoZWR1bGVkRGF0ZSwgbmV3IERhdGUoKSksXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VRdWV1ZVJlY2lwaWVudHM6IG1lc3NhZ2VRdWV1ZS5tZXNzYWdlUXVldWVSZWNpcGllbnRzXG4gICAgICAgICAgICAgICAgICAgICAgLnJlZHVjZSgoYWNjdW0sIG1lc3NhZ2VRdWV1ZVJlY2lwaWVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWNjdW1bbWVzc2FnZVF1ZXVlUmVjaXBpZW50LnJlY2lwaWVudF0gPSBtZXNzYWdlUXVldWVSZWNpcGllbnQuc3RhdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgICAgICAgICAgICAgICAgICB9LCB7fSksXG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pLCBwYWdpbmc6IHJlc3BvbnNlLnBhZ2luZyxcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICApO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5idWxrTWVzc2FnZVF1ZXVlcykge1xuICAgICAgdGhpcy5jb25maWcuc2VsZWN0aW9uID0ge1xuICAgICAgICBzZWxlY3RBbGw6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogU2VsZWN0aW9uQWN0aW9uVHlwZS5BY3Rpb24sXG4gICAgICAgICAgICBuYW1lOiAncXVldWUnLFxuICAgICAgICAgICAgbGFiZWw6ICdRdWV1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBTZWxlY3Rpb25BY3Rpb25UeXBlLkFjdGlvbixcbiAgICAgICAgICAgIG5hbWU6ICdyZXNlbmQnLFxuICAgICAgICAgICAgbGFiZWw6ICdSZXNlbmQnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogU2VsZWN0aW9uQWN0aW9uVHlwZS5BY3Rpb24sXG4gICAgICAgICAgICBuYW1lOiAnY2FuY2VsJyxcbiAgICAgICAgICAgIGxhYmVsOiAnQ2FuY2VsJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBhY3Rpb25TZWxlY3RlZDogKGFjdGlvblNlbGVjdGVkOiBGc0xpc3RBY3Rpb25TZWxlY3RlZCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9jb25maWcuYnVsa01lc3NhZ2VRdWV1ZXMoYWN0aW9uU2VsZWN0ZWQuYWN0aW9uLm5hbWUsIGFjdGlvblNlbGVjdGVkLnNlbGVjdGVkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0LnJlbG9hZCgpO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnLmZpbHRlcnMucHVzaCh7XG4gICAgICBuYW1lOiAnbWVzc2FnZUlkJyxcbiAgICAgIHR5cGU6IEl0ZW1UeXBlLlNlbGVjdCxcbiAgICAgIGxhYmVsOiAnTWVzc2FnZSBUeXBlJyxcbiAgICAgIHZhbHVlczogKHF1ZXJ5KSA9PiB7XG4gICAgICAgIHF1ZXJ5ID0ge1xuICAgICAgICAgIC4uLnF1ZXJ5LFxuICAgICAgICAgIGxpbWl0OiA1MCxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmxvYWRNZXNzYWdlcyhxdWVyeSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiBudWxsLCBuYW1lOiAnQWxsJyB9LFxuICAgICAgICAgICAgICAgIC4uLnJlc3BvbnNlLmRhdGFcbiAgICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+ICh7IG5hbWU6IGl0ZW0ubmFtZSwgdmFsdWU6IGl0ZW0uaWQgfSkpLFxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgfSBhcyBhbnkpO1xuICB9XG5cbiAgcHVibGljIG9wZW4obWVzc2FnZVF1ZXVlKSB7XG4gICAgdGhpcy5fbWVzc2FnZVF1ZXVlU2VydmljZS5vcGVuTWVzc2FnZVF1ZXVlKG1lc3NhZ2VRdWV1ZS5pZClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubGlzdC5yZWxvYWQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIndlYkhvb2tFbmFibGVkID09PSBmYWxzZVwiPlxuICA8ZnMtbWVzc2FnZS1pbmZvPlxuICAgIDxkaXYgY2xhc3M9XCJmcy1yb3dcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZnMtZmxleFwiPlxuICAgICAgICBUaGUgd2ViaG9vayB3aGljaCBwcm92aWRlcyBlbWFpbCBkZWxpdmVyeSBjb25maXJtYXRpb25zIGlzIG5vdCBlbmFibGVkLlxuICAgICAgPC9zcGFuPlxuICAgICAgPGFcbiAgICAgICAgICAoY2xpY2spPVwiZW5hYmxlV2ViaG9vaygpXCJcbiAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbj5cbiAgICAgICAgRW5hYmxlXG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZnMtbWVzc2FnZS1pbmZvPlxuPC9uZy1jb250YWluZXI+XG48ZnMtbGlzdFxuICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICAjbGlzdD5cbiAgPGZzLWxpc3QtY29sdW1uXG4gICAgICB0aXRsZT1cIk1lc3NhZ2VcIlxuICAgICAgbmFtZT1cInN1YmplY3RcIlxuICAgICAgW3NvcnRhYmxlXT1cInRydWVcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cuZW1haWxNZXNzYWdlUXVldWVcIj5cbiAgICAgICAgPGEgKGNsaWNrKT1cIm9wZW4ocm93KVwiPlxuICAgICAgICAgIHt7IHJvdy5lbWFpbE1lc3NhZ2VRdWV1ZS5zdWJqZWN0fHRydW5jYXRlOjEwMCB9fVxuICAgICAgICA8L2E+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cubWVzc2FnZVF1ZXVlQXR0YWNobWVudENvdW50XCI+XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXR0YWNobWVudC1pY29uXCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwicm93Lm1lc3NhZ2VRdWV1ZUF0dGFjaG1lbnRDb3VudCArICcgQXR0YWNobWVudChzKSdcIj5cbiAgICAgICAgICAgIGF0dGFjaF9maWxlXG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cuc21zTWVzc2FnZVF1ZXVlXCI+XG4gICAgICAgIDxhIChjbGljayk9XCJvcGVuKHJvdylcIj5cbiAgICAgICAgICB7eyByb3cuc21zTWVzc2FnZVF1ZXVlLmJvZHl8dHJ1bmNhdGU6MTAwIH19XG4gICAgICAgIDwvYT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtblxuICAgICAgdGl0bGU9XCJSZWNpcGllbnRzXCJcbiAgICAgIGNsYXNzPVwiY29sLXJlY2lwaWVudHNcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cuZW1haWxNZXNzYWdlUXVldWVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvdy5lbWFpbE1lc3NhZ2VRdWV1ZS50b1JlY2lwaWVudHMubGVuZ3RoOyBlbHNlIHVuc3BlY2lmaWVkXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInNtYWxsXCJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJlY2lwaWVudCBvZiByb3cuZW1haWxNZXNzYWdlUXVldWUudG9SZWNpcGllbnRzXCI+XG4gICAgICAgICAgICA8YXBwLXJlY2lwaWVudFxuICAgICAgICAgICAgICBbc3RhdGVdPVwicm93Lm1lc3NhZ2VRdWV1ZVJlY2lwaWVudHNbcmVjaXBpZW50XSB8fCByb3cuc3RhdGVcIlxuICAgICAgICAgICAgICBbbmFtZV09XCJyZWNpcGllbnRcIj5cbiAgICAgICAgICAgIDwvYXBwLXJlY2lwaWVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwic21hbGxcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJlY2lwaWVudCBvZiByb3cuZW1haWxNZXNzYWdlUXVldWUuY2NSZWNpcGllbnRzXCI+XG4gICAgICAgICAgPGFwcC1yZWNpcGllbnRcbiAgICAgICAgICAgIFtzdGF0ZV09XCJyb3cubWVzc2FnZVF1ZXVlUmVjaXBpZW50c1tyZWNpcGllbnRdIHx8IHJvdy5zdGF0ZVwiXG4gICAgICAgICAgICBbbmFtZV09XCJyZWNpcGllbnRcIj5cbiAgICAgICAgICA8L2FwcC1yZWNpcGllbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNtYWxsXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCByZWNpcGllbnQgb2Ygcm93LmVtYWlsTWVzc2FnZVF1ZXVlLmJjY1JlY2lwaWVudHNcIj5cbiAgICAgICAgICA8YXBwLXJlY2lwaWVudFxuICAgICAgICAgICAgW3N0YXRlXT1cInJvdy5tZXNzYWdlUXVldWVSZWNpcGllbnRzW3JlY2lwaWVudF0gfHwgcm93LnN0YXRlXCJcbiAgICAgICAgICAgIFtuYW1lXT1cInJlY2lwaWVudFwiPlxuICAgICAgICAgIDwvYXBwLXJlY2lwaWVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cuc21zTWVzc2FnZVF1ZXVlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cuc21zTWVzc2FnZVF1ZXVlLnRvTnVtYmVyOyBlbHNlIHVuc3BlY2lmaWVkXCI+XG4gICAgICAgICAgPGFwcC1yZWNpcGllbnRcbiAgICAgICAgICAgIGNsYXNzPVwic21hbGxcIlxuICAgICAgICAgICAgW3N0YXRlXT1cInJvdy5zdGF0ZVwiXG4gICAgICAgICAgICBbbmFtZV09XCJyb3cuc21zTWVzc2FnZVF1ZXVlLnRvTnVtYmVyXCI+XG4gICAgICAgICAgPC9hcHAtcmVjaXBpZW50PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtblxuICAgICAgdGl0bGU9XCJTdGF0dXNcIlxuICAgICAgY2xhc3M9XCJjb2wtc3RhdGVcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cuc2NoZWR1bGVkOyBlbHNlIHN0YXRlXCI+XG4gICAgICAgIFNjaGVkdWxlZFxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj5cbiAgICAgICAgICB7eyByb3cuc2NoZWR1bGVkRGF0ZSB8IGZzRGF0ZUZvcm1hdDogJ2RhdGUtdGltZScgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjc3RhdGU+XG4gICAgICAgIDxzcGFuIFtjbGFzc109XCInc3RhdGUtJyArIHJvdy5zdGF0ZVwiPlxuICAgICAgICAgIHt7IG1lc3NhZ2VRdWV1ZVN0YXRlc1tyb3cuc3RhdGVdIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uXG4gICAgICB0aXRsZT1cIkRhdGVcIlxuICAgICAgbmFtZT1cImNyZWF0ZWRfZGF0ZVwiXG4gICAgICBbc29ydGFibGVdPVwidHJ1ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBmcy1saXN0LWNlbGxcbiAgICAgICAgbGV0LXJvdz1cInJvd1wiPlxuICAgICAge3sgcm93LmNyZWF0ZWREYXRlIHwgZnNEYXRlRm9ybWF0OiAnZGF0ZS10aW1lLXllYXJkaWZmJyB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG48L2ZzLWxpc3Q+XG48bmctdGVtcGxhdGUgI3Vuc3BlY2lmaWVkPlxuICA8YXBwLXJlY2lwaWVudFxuICAgIGNsYXNzPVwic21hbGxcIlxuICAgIFtzdGF0ZV09XCJNZXNzYWdlUXVldWVTdGF0ZS5GYWlsZWRcIlxuICAgIG5hbWU9XCJVbnNwZWNpZmllZFwiPlxuICA8L2FwcC1yZWNpcGllbnQ+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tZXNzYWdlLXF1ZXVlcy9jb21wb25lbnRzL3F1ZXVlcy9xdWV1ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21lc3NhZ2UtcXVldWVzL2NvbXBvbmVudHMvcXVldWVzL3F1ZXVlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduSSxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUF3QixlQUFlLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FB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QUUsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3FCQUN4RCxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7WUFDTixDQUFDO1NBQ0ssQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVNLElBQUksQ0FBQyxZQUFZO1FBQ3RCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2FBQ3hELElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO3VHQXROVSxlQUFlLGtCQWtCaEIscUJBQXFCOzJGQWxCcEIsZUFBZSwrSkFFZixlQUFlLDhEQy9CNUIsZzNIQTRIYzs7MkZEL0ZELGVBQWU7a0JBTjNCLFNBQVM7K0JBQ0UsdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFvQjVDLE1BQU07MkJBQUMscUJBQXFCO21JQWZ4QixJQUFJO3NCQURWLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHNUIsS0FBSztzQkFBcEIsS0FBSztnQkFFVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbmltcG9ydCB7IEl0ZW1UeXBlLCBUZXh0SXRlbSB9IGZyb20gJ0BmaXJlc3RpdGNoL2ZpbHRlcic7XG5pbXBvcnQgeyBGc0xpc3RBY3Rpb25TZWxlY3RlZCwgRnNMaXN0Q29tcG9uZW50LCBGc0xpc3RDb25maWcsIFBhZ2luYXRpb25TdHJhdGVneSB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xuaW1wb3J0IHsgU2VsZWN0aW9uQWN0aW9uVHlwZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3NlbGVjdGlvbic7XG5pbXBvcnQgeyBGc1N0b3JlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvc3RvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGlzQWZ0ZXIgfSBmcm9tICdkYXRlLWZucyc7XG5cbmltcG9ydCB7IGluZGV4TmFtZVZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vLi4vaGVscGVycyc7XG5pbXBvcnQgeyBNZXNzYWdlUXVldWVzQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBGU19BUFBfTUVTU0FHRV9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi9hcHAtbWVzc2FnZS9pbmplY3RvcnMnO1xuaW1wb3J0IHsgRnNBcHBNZXNzYWdlQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vYXBwLW1lc3NhZ2UvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNZXNzYWdlUXVldWVTdGF0ZXMgfSBmcm9tICcuLi8uLi9jb25zdHMnO1xuaW1wb3J0IHsgTWVzc2FnZVF1ZXVlVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IE1lc3NhZ2VRdWV1ZVN0YXRlIH0gZnJvbSAnLi4vLi4vZW51bXMvbWVzc2FnZS1xdWV1ZS1zdGF0ZS5lbnVtJztcbmltcG9ydCB7IEZzTWVzc2FnZVF1ZXVlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2UtcXVldWUuc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtYXBwLW1lc3NhZ2UtcXVldWVzJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVldWVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWV1ZXMuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUXVldWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoRnNMaXN0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgbGlzdDogRnNMaXN0Q29tcG9uZW50ID0gbnVsbDtcblxuICBASW5wdXQoKSBwdWJsaWMgcXVlcnkgPSB7fTtcblxuICBASW5wdXQoKSBwdWJsaWMgdHlwZTogTWVzc2FnZVF1ZXVlVHlwZTtcbiAgQElucHV0KCkgcHVibGljIGNvbmZpZzogTWVzc2FnZVF1ZXVlc0NvbmZpZztcblxuICBwdWJsaWMgbGlzdENvbmZpZzogRnNMaXN0Q29uZmlnID0gbnVsbDtcbiAgcHVibGljIG1lc3NhZ2VRdWV1ZVN0YXRlcyA9IHt9O1xuICBwdWJsaWMgTWVzc2FnZVF1ZXVlU3RhdGUgPSBNZXNzYWdlUXVldWVTdGF0ZTtcbiAgcHVibGljIHdlYkhvb2tFbmFibGVkO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEZTX0FQUF9NRVNTQUdFX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBGc0FwcE1lc3NhZ2VDb25maWcsXG4gICAgcHJpdmF0ZSBfbWVzc2FnZVF1ZXVlU2VydmljZTogRnNNZXNzYWdlUXVldWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9zdG9yZTogRnNTdG9yZSxcbiAgKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5tZXNzYWdlUXVldWVTdGF0ZXMgPSBpbmRleE5hbWVWYWx1ZShNZXNzYWdlUXVldWVTdGF0ZXMpO1xuICAgIHRoaXMuaW5pdExpc3QoKTtcbiAgICB0aGlzLmluaXRXZWJob29rKCk7XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlV2ViaG9vaygpIHtcbiAgICB0aGlzLl9jb25maWcuY3JlYXRlV2ViaG9vaygpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5pbml0V2ViaG9vaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgaW5pdFdlYmhvb2soKSB7XG4gICAgY29uc3QgZG9tYWluID0gZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWU7XG5cbiAgICBpZihkb21haW4gPT09ICdsb2NhbGhvc3QnIHx8IGRvbWFpbiA9PT0gJ1s6OjFdJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2NvbmZpZy5sb2FkV2ViaG9va3MoeyBkb21haW4gfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgIHJldHVybiAhdGhpcy5fc3RvcmUuZ2V0KCdtZXNzYWdlc1dlYmhvb2tFbmFibGVkJyk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgod2ViaG9va3MpID0+IHtcbiAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMud2ViSG9va0VuYWJsZWQgPSB3ZWJob29rc1xuICAgICAgICAgIC5zb21lKCh3ZWJob29rKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdlYmhvb2sudXJsKTtcblxuICAgICAgICAgICAgcmV0dXJuIHVybC5ob3N0ID09PSBkb21haW47XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fc3RvcmUuc2V0KCdtZXNzYWdlc1dlYmhvb2tFbmFibGVkJywgdGhpcy53ZWJIb29rRW5hYmxlZCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0TGlzdCgpIHtcbiAgICB0aGlzLmxpc3RDb25maWcgPSB7XG4gICAgICBmaWx0ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAna2V5d29yZCcsXG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuS2V5d29yZCxcbiAgICAgICAgICBsYWJlbDogJ1NlYXJjaCcsXG4gICAgICAgICAgY2hhbmdlOiAoaXRlbTogVGV4dEl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmKFN0cmluZyhpdGVtLnZhbHVlID8/ICcnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5saXN0LmZpbHRlclJlZlxuICAgICAgICAgICAgICAgIC51cGRhdGVTb3J0KHsgXG4gICAgICAgICAgICAgICAgICBzb3J0Qnk6ICdyZWxldmFuY2UnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5saXN0LmZpbHRlclJlZlxuICAgICAgICAgICAgICAgIC51cGRhdGVTb3J0KHsgXG4gICAgICAgICAgICAgICAgICBzb3J0Qnk6ICdjcmVhdGVkX2RhdGUnLFxuICAgICAgICAgICAgICAgICAgc29ydERpcmVjdGlvbjogJ2Rlc2MnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnc3RhdGUnLFxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLlNlbGVjdCxcbiAgICAgICAgICBsYWJlbDogJ1N0YXR1cycsXG4gICAgICAgICAgdmFsdWVzOiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gTWVzc2FnZVF1ZXVlU3RhdGVzO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnZGF0ZScsXG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuRGF0ZVJhbmdlLFxuICAgICAgICAgIGxhYmVsOiBbJ0Zyb20gRGF0ZScsICdUbyBEYXRlJ10sXG4gICAgICAgIH0sXG4gICAgICAgIC4uLih0aGlzLmNvbmZpZz8uZmlsdGVycyB8fCBbXSksXG4gICAgICBdLFxuICAgICAgcGFnaW5nOiB7XG4gICAgICAgIHN0cmF0ZWd5OiBQYWdpbmF0aW9uU3RyYXRlZ3kuTWFueSxcbiAgICAgIH0sXG4gICAgICBzb3J0czogW1xuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6ICdyZWxldmFuY2UnLFxuICAgICAgICAgIG5hbWU6ICdSZWxldmFuY2UnLFxuICAgICAgICAgIGRpcmVjdGlvbjogJ2Rlc2MnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHNvcnQ6IHsgXG4gICAgICAgIHZhbHVlOiAnY3JlYXRlZF9kYXRlJywgXG4gICAgICAgIGRpcmVjdGlvbjogJ2Rlc2MnLFxuICAgICAgfSxcbiAgICAgIGZldGNoOiAocXVlcnkpID0+IHtcbiAgICAgICAgcXVlcnkgPSB7XG4gICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgLi4udGhpcy5xdWVyeSxcbiAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgICAgbWVzc2FnZVF1ZXVlQXR0YWNobWVudENvdW50czogdHJ1ZSxcbiAgICAgICAgICBlbWFpbE1lc3NhZ2VRdWV1ZXM6IHRydWUsXG4gICAgICAgICAgZW1haWxNZXNzYWdlUXVldWVCb2RpZXM6IGZhbHNlLFxuICAgICAgICAgIHNtc01lc3NhZ2VRdWV1ZXM6IHRydWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5sb2FkTWVzc2FnZVF1ZXVlcyhxdWVyeSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+ICh7XG4gICAgICAgICAgICAgIGRhdGE6IHJlc3BvbnNlLmRhdGFcbiAgICAgICAgICAgICAgICAubWFwKChtZXNzYWdlUXVldWUpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLm1lc3NhZ2VRdWV1ZSxcbiAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVkOiBtZXNzYWdlUXVldWUuc3RhdGUgPT09IE1lc3NhZ2VRdWV1ZVN0YXRlLlF1ZXVlZCAmJiBpc0FmdGVyKG1lc3NhZ2VRdWV1ZS5zY2hlZHVsZWREYXRlLCBuZXcgRGF0ZSgpKSxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVF1ZXVlUmVjaXBpZW50czogbWVzc2FnZVF1ZXVlLm1lc3NhZ2VRdWV1ZVJlY2lwaWVudHNcbiAgICAgICAgICAgICAgICAgICAgICAucmVkdWNlKChhY2N1bSwgbWVzc2FnZVF1ZXVlUmVjaXBpZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY2N1bVttZXNzYWdlUXVldWVSZWNpcGllbnQucmVjaXBpZW50XSA9IG1lc3NhZ2VRdWV1ZVJlY2lwaWVudC5zdGF0ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgICAgICAgICAgICAgICAgIH0sIHt9KSxcbiAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSksIHBhZ2luZzogcmVzcG9uc2UucGFnaW5nLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICk7XG4gICAgICB9LFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5fY29uZmlnLmJ1bGtNZXNzYWdlUXVldWVzKSB7XG4gICAgICB0aGlzLmxpc3RDb25maWcuc2VsZWN0aW9uID0ge1xuICAgICAgICBzZWxlY3RBbGw6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogU2VsZWN0aW9uQWN0aW9uVHlwZS5BY3Rpb24sXG4gICAgICAgICAgICBuYW1lOiAncXVldWUnLFxuICAgICAgICAgICAgbGFiZWw6ICdRdWV1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBTZWxlY3Rpb25BY3Rpb25UeXBlLkFjdGlvbixcbiAgICAgICAgICAgIG5hbWU6ICdyZXNlbmQnLFxuICAgICAgICAgICAgbGFiZWw6ICdSZXNlbmQnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogU2VsZWN0aW9uQWN0aW9uVHlwZS5BY3Rpb24sXG4gICAgICAgICAgICBuYW1lOiAnY2FuY2VsJyxcbiAgICAgICAgICAgIGxhYmVsOiAnQ2FuY2VsJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBhY3Rpb25TZWxlY3RlZDogKGFjdGlvblNlbGVjdGVkOiBGc0xpc3RBY3Rpb25TZWxlY3RlZCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9jb25maWcuYnVsa01lc3NhZ2VRdWV1ZXMoYWN0aW9uU2VsZWN0ZWQuYWN0aW9uLm5hbWUsIGFjdGlvblNlbGVjdGVkLnNlbGVjdGVkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0LnJlbG9hZCgpO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnLmZpbHRlcnMucHVzaCh7XG4gICAgICBuYW1lOiAnbWVzc2FnZUlkJyxcbiAgICAgIHR5cGU6IEl0ZW1UeXBlLlNlbGVjdCxcbiAgICAgIGxhYmVsOiAnTWVzc2FnZSBUeXBlJyxcbiAgICAgIHZhbHVlczogKHF1ZXJ5KSA9PiB7XG4gICAgICAgIHF1ZXJ5ID0ge1xuICAgICAgICAgIC4uLnF1ZXJ5LFxuICAgICAgICAgIGxpbWl0OiA1MCxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmxvYWRNZXNzYWdlcyhxdWVyeSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiBudWxsLCBuYW1lOiAnQWxsJyB9LFxuICAgICAgICAgICAgICAgIC4uLnJlc3BvbnNlLmRhdGFcbiAgICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+ICh7IG5hbWU6IGl0ZW0ubmFtZSwgdmFsdWU6IGl0ZW0uaWQgfSkpLFxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgfSBhcyBhbnkpO1xuICB9XG5cbiAgcHVibGljIG9wZW4obWVzc2FnZVF1ZXVlKSB7XG4gICAgdGhpcy5fbWVzc2FnZVF1ZXVlU2VydmljZS5vcGVuTWVzc2FnZVF1ZXVlKG1lc3NhZ2VRdWV1ZS5pZClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubGlzdC5yZWxvYWQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIndlYkhvb2tFbmFibGVkID09PSBmYWxzZVwiPlxuICA8ZnMtbWVzc2FnZS1pbmZvPlxuICAgIDxkaXYgY2xhc3M9XCJmcy1yb3dcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZnMtZmxleFwiPlxuICAgICAgICBUaGUgd2ViaG9vayB3aGljaCBwcm92aWRlcyBlbWFpbCBkZWxpdmVyeSBjb25maXJtYXRpb25zIGlzIG5vdCBlbmFibGVkLlxuICAgICAgPC9zcGFuPlxuICAgICAgPGFcbiAgICAgICAgICAoY2xpY2spPVwiZW5hYmxlV2ViaG9vaygpXCJcbiAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbj5cbiAgICAgICAgRW5hYmxlXG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZnMtbWVzc2FnZS1pbmZvPlxuPC9uZy1jb250YWluZXI+XG48ZnMtbGlzdFxuICAgIFtjb25maWddPVwibGlzdENvbmZpZ1wiXG4gICAgI2xpc3Q+XG4gIDxmcy1saXN0LWNvbHVtblxuICAgICAgdGl0bGU9XCJNZXNzYWdlXCJcbiAgICAgIG5hbWU9XCJzdWJqZWN0XCJcbiAgICAgIFtzb3J0YWJsZV09XCJ0cnVlXCI+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LmVtYWlsTWVzc2FnZVF1ZXVlXCI+XG4gICAgICAgIDxhIChjbGljayk9XCJvcGVuKHJvdylcIj5cbiAgICAgICAgICB7eyByb3cuZW1haWxNZXNzYWdlUXVldWUuc3ViamVjdHx0cnVuY2F0ZToxMDAgfX1cbiAgICAgICAgPC9hPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93Lm1lc3NhZ2VRdWV1ZUF0dGFjaG1lbnRDb3VudFwiPlxuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cImF0dGFjaG1lbnQtaWNvblwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInJvdy5tZXNzYWdlUXVldWVBdHRhY2htZW50Q291bnQgKyAnIEF0dGFjaG1lbnQocyknXCI+XG4gICAgICAgICAgICBhdHRhY2hfZmlsZVxuICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LnNtc01lc3NhZ2VRdWV1ZVwiPlxuICAgICAgICA8YSAoY2xpY2spPVwib3Blbihyb3cpXCI+XG4gICAgICAgICAge3sgcm93LnNtc01lc3NhZ2VRdWV1ZS5ib2R5fHRydW5jYXRlOjEwMCB9fVxuICAgICAgICA8L2E+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW5cbiAgICAgIHRpdGxlPVwiUmVjaXBpZW50c1wiXG4gICAgICBjbGFzcz1cImNvbC1yZWNpcGllbnRzXCI+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LmVtYWlsTWVzc2FnZVF1ZXVlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cuZW1haWxNZXNzYWdlUXVldWUudG9SZWNpcGllbnRzLmxlbmd0aDsgZWxzZSB1bnNwZWNpZmllZFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCByZWNpcGllbnQgb2Ygcm93LmVtYWlsTWVzc2FnZVF1ZXVlLnRvUmVjaXBpZW50c1wiPlxuICAgICAgICAgICAgPGFwcC1yZWNpcGllbnRcbiAgICAgICAgICAgICAgW3N0YXRlXT1cInJvdy5tZXNzYWdlUXVldWVSZWNpcGllbnRzW3JlY2lwaWVudF0gfHwgcm93LnN0YXRlXCJcbiAgICAgICAgICAgICAgW25hbWVdPVwicmVjaXBpZW50XCI+XG4gICAgICAgICAgICA8L2FwcC1yZWNpcGllbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNtYWxsXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCByZWNpcGllbnQgb2Ygcm93LmVtYWlsTWVzc2FnZVF1ZXVlLmNjUmVjaXBpZW50c1wiPlxuICAgICAgICAgIDxhcHAtcmVjaXBpZW50XG4gICAgICAgICAgICBbc3RhdGVdPVwicm93Lm1lc3NhZ2VRdWV1ZVJlY2lwaWVudHNbcmVjaXBpZW50XSB8fCByb3cuc3RhdGVcIlxuICAgICAgICAgICAgW25hbWVdPVwicmVjaXBpZW50XCI+XG4gICAgICAgICAgPC9hcHAtcmVjaXBpZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJzbWFsbFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVjaXBpZW50IG9mIHJvdy5lbWFpbE1lc3NhZ2VRdWV1ZS5iY2NSZWNpcGllbnRzXCI+XG4gICAgICAgICAgPGFwcC1yZWNpcGllbnRcbiAgICAgICAgICAgIFtzdGF0ZV09XCJyb3cubWVzc2FnZVF1ZXVlUmVjaXBpZW50c1tyZWNpcGllbnRdIHx8IHJvdy5zdGF0ZVwiXG4gICAgICAgICAgICBbbmFtZV09XCJyZWNpcGllbnRcIj5cbiAgICAgICAgICA8L2FwcC1yZWNpcGllbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LnNtc01lc3NhZ2VRdWV1ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LnNtc01lc3NhZ2VRdWV1ZS50b051bWJlcjsgZWxzZSB1bnNwZWNpZmllZFwiPlxuICAgICAgICAgIDxhcHAtcmVjaXBpZW50XG4gICAgICAgICAgICBjbGFzcz1cInNtYWxsXCJcbiAgICAgICAgICAgIFtzdGF0ZV09XCJyb3cuc3RhdGVcIlxuICAgICAgICAgICAgW25hbWVdPVwicm93LnNtc01lc3NhZ2VRdWV1ZS50b051bWJlclwiPlxuICAgICAgICAgIDwvYXBwLXJlY2lwaWVudD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW5cbiAgICAgIHRpdGxlPVwiU3RhdHVzXCJcbiAgICAgIGNsYXNzPVwiY29sLXN0YXRlXCI+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LnNjaGVkdWxlZDsgZWxzZSBzdGF0ZVwiPlxuICAgICAgICBTY2hlZHVsZWRcbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+XG4gICAgICAgICAge3sgcm93LnNjaGVkdWxlZERhdGUgfCBmc0RhdGVGb3JtYXQ6ICdkYXRlLXRpbWUnIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI3N0YXRlPlxuICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ3N0YXRlLScgKyByb3cuc3RhdGVcIj5cbiAgICAgICAgICB7eyBtZXNzYWdlUXVldWVTdGF0ZXNbcm93LnN0YXRlXSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtblxuICAgICAgdGl0bGU9XCJEYXRlXCJcbiAgICAgIG5hbWU9XCJjcmVhdGVkX2RhdGVcIlxuICAgICAgW3NvcnRhYmxlXT1cInRydWVcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIHt7IHJvdy5jcmVhdGVkRGF0ZSB8IGZzRGF0ZUZvcm1hdDogJ2RhdGUtdGltZS15ZWFyZGlmZicgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuPC9mcy1saXN0PlxuPG5nLXRlbXBsYXRlICN1bnNwZWNpZmllZD5cbiAgPGFwcC1yZWNpcGllbnRcbiAgICBjbGFzcz1cInNtYWxsXCJcbiAgICBbc3RhdGVdPVwiTWVzc2FnZVF1ZXVlU3RhdGUuRmFpbGVkXCJcbiAgICBuYW1lPVwiVW5zcGVjaWZpZWRcIj5cbiAgPC9hcHAtcmVjaXBpZW50PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
@@ -59,11 +59,11 @@ export class MessagesComponent {
|
|
|
59
59
|
this._destroy$.complete();
|
|
60
60
|
}
|
|
61
61
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MessagesComponent, deps: [{ token: FS_APP_MESSAGE_CONFIG }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: MessagesComponent, selector: "fs-app-messages", viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column\n title=\"Name\"\n name=\"name\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a (click)=\"open(row)\">\n {{ row.name }}\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Email
|
|
62
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: MessagesComponent, selector: "fs-app-messages", viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column\n title=\"Name\"\n name=\"name\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a (click)=\"open(row)\">\n {{ row.name }}\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Email format\">\n <ng-template\n fs-list-cell\n 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\n fs-list-cell\n let-row=\"row\">\n {{ row.emailMessage.messageTemplate?.name || 'None' }}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Channels\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <div class=\"fs-delimit\">\n @if (row.emailMessage) {\n <span>\n Email\n </span>\n }\n @if (row.smsMessage) {\n <span>\n SMS\n </span>\n }\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Customized message\">\n <ng-template\n fs-list-cell\n 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>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i3.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customizable", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: i3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }] });
|
|
63
63
|
}
|
|
64
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MessagesComponent, decorators: [{
|
|
65
65
|
type: Component,
|
|
66
|
-
args: [{ selector: 'fs-app-messages', template: "<fs-list [config]=\"config\">\n <fs-list-column\n title=\"Name\"\n name=\"name\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a (click)=\"open(row)\">\n {{ row.name }}\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Email
|
|
66
|
+
args: [{ selector: 'fs-app-messages', template: "<fs-list [config]=\"config\">\n <fs-list-column\n title=\"Name\"\n name=\"name\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a (click)=\"open(row)\">\n {{ row.name }}\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Email format\">\n <ng-template\n fs-list-cell\n 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\n fs-list-cell\n let-row=\"row\">\n {{ row.emailMessage.messageTemplate?.name || 'None' }}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Channels\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <div class=\"fs-delimit\">\n @if (row.emailMessage) {\n <span>\n Email\n </span>\n }\n @if (row.smsMessage) {\n <span>\n SMS\n </span>\n }\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Customized message\">\n <ng-template\n fs-list-cell\n 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>" }]
|
|
67
67
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
68
68
|
type: Inject,
|
|
69
69
|
args: [FS_APP_MESSAGE_CONFIG]
|
|
@@ -71,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
71
71
|
type: ViewChild,
|
|
72
72
|
args: [FsListComponent, { static: true }]
|
|
73
73
|
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21lc3NhZ2VzL2NvbXBvbmVudHMvbWVzc2FnZXMvbWVzc2FnZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21lc3NhZ2VzL2NvbXBvbmVudHMvbWVzc2FnZXMvbWVzc2FnZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQU92RSxNQUFNLE9BQU8saUJBQWlCO0lBV2E7SUFDL0I7SUFUSCxJQUFJLEdBQW9CLElBQUksQ0FBQztJQUU3QixNQUFNLEdBQWlCLElBQUksQ0FBQztJQUM1QixtQkFBbUIsR0FBRyxFQUFFLENBQUM7SUFFeEIsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFbEMsWUFDeUMsT0FBMkIsRUFDMUQsT0FBa0I7UUFEYSxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMxRCxZQUFPLEdBQVAsT0FBTyxDQUFXO0lBQ3hCLENBQUM7SUFFRSxRQUFRO1FBQ2IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPO29CQUN0QixLQUFLLEVBQUUsUUFBUTtpQkFDaEI7YUFDRjtZQUNELEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztxQkFDdEMsSUFBSSxDQUNILEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDYixPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7Z0JBQzNELENBQUMsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFFTSxJQUFJLENBQUMsT0FBTztRQUNqQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNwRCxJQUFJLEVBQUU7Z0JBQ0osT0FBTyxFQUFFLE9BQU87YUFDakI7WUFDRCxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxXQUFXLEVBQUU7YUFDdEIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7dUdBekRVLGlCQUFpQixrQkFXbEIscUJBQXFCOzJGQVhwQixpQkFBaUIsNkZBRWpCLGVBQWUsOERDdEI1Qiw2dURBOERVOzsyRkQxQ0csaUJBQWlCO2tCQUo3QixTQUFTOytCQUNFLGlCQUFpQjs7MEJBY3hCLE1BQU07MkJBQUMscUJBQXFCO2lFQVJ4QixJQUFJO3NCQURWLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IHRha2VVbnRpbCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGc0xpc3RDb21wb25lbnQsIEZzTGlzdENvbmZpZyB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xuaW1wb3J0IHsgSXRlbVR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuXG5pbXBvcnQgeyBNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vbWVzc2FnZSc7XG5pbXBvcnQgeyBFbWFpbE1lc3NhZ2VGb3JtYXRzIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcbmltcG9ydCB7IGluZGV4TmFtZVZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vLi4vaGVscGVycyc7XG5pbXBvcnQgeyBGU19BUFBfTUVTU0FHRV9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi9hcHAtbWVzc2FnZS9pbmplY3RvcnMnO1xuaW1wb3J0IHsgRnNBcHBNZXNzYWdlQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vYXBwLW1lc3NhZ2UvaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWFwcC1tZXNzYWdlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQFZpZXdDaGlsZChGc0xpc3RDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBsaXN0OiBGc0xpc3RDb21wb25lbnQgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25maWc6IEZzTGlzdENvbmZpZyA9IG51bGw7XG4gIHB1YmxpYyBlbWFpbE1lc3NhZ2VGb3JtYXRzID0ge307XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRlNfQVBQX01FU1NBR0VfQ09ORklHKSBwcml2YXRlIF9jb25maWc6IEZzQXBwTWVzc2FnZUNvbmZpZyxcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcbiAgKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lbWFpbE1lc3NhZ2VGb3JtYXRzID0gaW5kZXhOYW1lVmFsdWUoRW1haWxNZXNzYWdlRm9ybWF0cyk7XG5cbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5LZXl3b3JkLFxuICAgICAgICAgIGxhYmVsOiAnU2VhcmNoJ1xuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgZmV0Y2g6IHF1ZXJ5ID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5sb2FkTWVzc2FnZXMocXVlcnkpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKHsgZGF0YTogcmVzcG9uc2UuZGF0YSwgcGFnaW5nOiByZXNwb25zZS5wYWdpbmcgfSlcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuKG1lc3NhZ2UpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2cub3BlbihNZXNzYWdlQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICB9LFxuICAgICAgd2lkdGg6ICc4NSUnXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKVxuICAgIC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgIClcbiAgICAuc3Vic2NyaWJlKCgpID0+
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21lc3NhZ2VzL2NvbXBvbmVudHMvbWVzc2FnZXMvbWVzc2FnZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21lc3NhZ2VzL2NvbXBvbmVudHMvbWVzc2FnZXMvbWVzc2FnZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQU92RSxNQUFNLE9BQU8saUJBQWlCO0lBV2E7SUFDL0I7SUFUSCxJQUFJLEdBQW9CLElBQUksQ0FBQztJQUU3QixNQUFNLEdBQWlCLElBQUksQ0FBQztJQUM1QixtQkFBbUIsR0FBRyxFQUFFLENBQUM7SUFFeEIsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFbEMsWUFDeUMsT0FBMkIsRUFDMUQsT0FBa0I7UUFEYSxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMxRCxZQUFPLEdBQVAsT0FBTyxDQUFXO0lBQ3hCLENBQUM7SUFFRSxRQUFRO1FBQ2IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPO29CQUN0QixLQUFLLEVBQUUsUUFBUTtpQkFDaEI7YUFDRjtZQUNELEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztxQkFDdEMsSUFBSSxDQUNILEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDYixPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7Z0JBQzNELENBQUMsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFFTSxJQUFJLENBQUMsT0FBTztRQUNqQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNwRCxJQUFJLEVBQUU7Z0JBQ0osT0FBTyxFQUFFLE9BQU87YUFDakI7WUFDRCxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxXQUFXLEVBQUU7YUFDdEIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7dUdBekRVLGlCQUFpQixrQkFXbEIscUJBQXFCOzJGQVhwQixpQkFBaUIsNkZBRWpCLGVBQWUsOERDdEI1Qiw2dURBOERVOzsyRkQxQ0csaUJBQWlCO2tCQUo3QixTQUFTOytCQUNFLGlCQUFpQjs7MEJBY3hCLE1BQU07MkJBQUMscUJBQXFCO2lFQVJ4QixJQUFJO3NCQURWLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IHRha2VVbnRpbCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGc0xpc3RDb21wb25lbnQsIEZzTGlzdENvbmZpZyB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xuaW1wb3J0IHsgSXRlbVR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuXG5pbXBvcnQgeyBNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vbWVzc2FnZSc7XG5pbXBvcnQgeyBFbWFpbE1lc3NhZ2VGb3JtYXRzIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcbmltcG9ydCB7IGluZGV4TmFtZVZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vLi4vaGVscGVycyc7XG5pbXBvcnQgeyBGU19BUFBfTUVTU0FHRV9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi9hcHAtbWVzc2FnZS9pbmplY3RvcnMnO1xuaW1wb3J0IHsgRnNBcHBNZXNzYWdlQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vYXBwLW1lc3NhZ2UvaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWFwcC1tZXNzYWdlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQFZpZXdDaGlsZChGc0xpc3RDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBsaXN0OiBGc0xpc3RDb21wb25lbnQgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25maWc6IEZzTGlzdENvbmZpZyA9IG51bGw7XG4gIHB1YmxpYyBlbWFpbE1lc3NhZ2VGb3JtYXRzID0ge307XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRlNfQVBQX01FU1NBR0VfQ09ORklHKSBwcml2YXRlIF9jb25maWc6IEZzQXBwTWVzc2FnZUNvbmZpZyxcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcbiAgKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lbWFpbE1lc3NhZ2VGb3JtYXRzID0gaW5kZXhOYW1lVmFsdWUoRW1haWxNZXNzYWdlRm9ybWF0cyk7XG5cbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5LZXl3b3JkLFxuICAgICAgICAgIGxhYmVsOiAnU2VhcmNoJ1xuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgZmV0Y2g6IHF1ZXJ5ID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5sb2FkTWVzc2FnZXMocXVlcnkpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKHsgZGF0YTogcmVzcG9uc2UuZGF0YSwgcGFnaW5nOiByZXNwb25zZS5wYWdpbmcgfSlcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuKG1lc3NhZ2UpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2cub3BlbihNZXNzYWdlQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICB9LFxuICAgICAgd2lkdGg6ICc4NSUnXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKVxuICAgIC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgIClcbiAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubGlzdC5yZWxvYWQoKTtcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGZzLWxpc3QgW2NvbmZpZ109XCJjb25maWdcIj5cbiAgPGZzLWxpc3QtY29sdW1uXG4gICAgICB0aXRsZT1cIk5hbWVcIlxuICAgICAgbmFtZT1cIm5hbWVcIlxuICAgICAgW3NvcnRhYmxlXT1cInRydWVcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxhIChjbGljayk9XCJvcGVuKHJvdylcIj5cbiAgICAgICAge3sgcm93Lm5hbWUgfX1cbiAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW4gdGl0bGU9XCJFbWFpbCBmb3JtYXRcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIHt7IGVtYWlsTWVzc2FnZUZvcm1hdHNbcm93LmVtYWlsTWVzc2FnZS5mb3JtYXRdIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uIHRpdGxlPVwiRW1haWwgbWVzc2FnZSB0ZW1wbGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBmcy1saXN0LWNlbGxcbiAgICAgICAgbGV0LXJvdz1cInJvd1wiPlxuICAgICAge3sgcm93LmVtYWlsTWVzc2FnZS5tZXNzYWdlVGVtcGxhdGU/Lm5hbWUgfHwgJ05vbmUnIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uIHRpdGxlPVwiQ2hhbm5lbHNcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmcy1kZWxpbWl0XCI+XG4gICAgICAgIEBpZiAocm93LmVtYWlsTWVzc2FnZSkge1xuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgRW1haWxcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChyb3cuc21zTWVzc2FnZSkge1xuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgU01TXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW4gdGl0bGU9XCJDdXN0b21pemVkIG1lc3NhZ2VcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cuZW1haWxNZXNzYWdlPy5jdXN0b21pemUgfHwgcm93LnNtc01lc3NhZ2U/LmN1c3RvbWl6ZTsgZWxzZSBub0N1c3RvbWl6ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LmVtYWlsTWVzc2FnZT8uY3VzdG9taXplXCI+XG4gICAgICAgICAge3sgcm93LmVtYWlsTWVzc2FnZS5jdXN0b21pemUgPyAnRW1haWwnIDogJycgfX1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cuc21zTWVzc2FnZT8uY3VzdG9taXplXCI+XG4gICAgICAgICAge3sgcm93LnNtc01lc3NhZ2UuY3VzdG9taXplID8gJ1NNUycgOiAnJyB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNub0N1c3RvbWl6ZT5cbiAgICAgICAgTm9uZVxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuPC9mcy1saXN0PiJdfQ==
|
package/esm2022/public_api.mjs
CHANGED
|
@@ -13,4 +13,4 @@ export { WebhooksComponent } from './app/modules/webhooks/components/webhooks/we
|
|
|
13
13
|
export { MessageQueueType } from './app/modules/message-queues/enums/message-queue-type.enum';
|
|
14
14
|
export { FsMessageQueueService } from './app/modules/message-queues/services/message-queue.service';
|
|
15
15
|
export { FS_APP_MESSAGE_CONFIG } from './app/modules/app-message/injectors/app-message-config.injector';
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDOUcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDL0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFJbEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFFOUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFFcEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUVBQWlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCB7IEZzQXBwTWVzc2FnZU1vZHVsZSB9IGZyb20gJy4vYXBwL21vZHVsZXMvYXBwLW1lc3NhZ2UvYXBwLW1lc3NhZ2UubW9kdWxlJztcbmV4cG9ydCB7IEZzQXBwTWVzc2FnZVF1ZXVlc01vZHVsZSB9IGZyb20gJy4vYXBwL21vZHVsZXMvbWVzc2FnZS1xdWV1ZXMvbWVzc2FnZS1xdWV1ZXMubW9kdWxlJztcbmV4cG9ydCB7IEZzQXBwTWVzc2FnZVRlbXBsYXRlc01vZHVsZSB9IGZyb20gJy4vYXBwL21vZHVsZXMvbWVzc2FnZS10ZW1wbGF0ZXMvbWVzc2FnZS10ZW1wbGF0ZXMubW9kdWxlJztcbmV4cG9ydCB7IEZzQXBwTWVzc2FnZXNNb2R1bGUgfSBmcm9tICcuL2FwcC9tb2R1bGVzL21lc3NhZ2VzL21lc3NhZ2VzLm1vZHVsZSc7XG5leHBvcnQgeyBGc0FwcE1lc3NhZ2VXZWJob29rc01vZHVsZSB9IGZyb20gJy4vYXBwL21vZHVsZXMvd2ViaG9va3Mvd2ViaG9va3MubW9kdWxlJztcblxuZXhwb3J0IHsgUXVldWVDb21wb25lbnQgfSBmcm9tICcuL2FwcC9tb2R1bGVzL21lc3NhZ2UtcXVldWVzL2NvbXBvbmVudHMvcXVldWUvcXVldWUuY29tcG9uZW50JztcbmV4cG9ydCB7IFF1ZXVlc0NvbXBvbmVudCB9IGZyb20gJy4vYXBwL21vZHVsZXMvbWVzc2FnZS1xdWV1ZXMvY29tcG9uZW50cy9xdWV1ZXMvcXVldWVzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vYXBwL21vZHVsZXMvbWVzc2FnZS10ZW1wbGF0ZXMvY29tcG9uZW50cyc7XG5leHBvcnQgeyBUZW1wbGF0ZXNDb21wb25lbnQgfSBmcm9tICcuL2FwcC9tb2R1bGVzL21lc3NhZ2UtdGVtcGxhdGVzL2NvbXBvbmVudHMvdGVtcGxhdGVzL3RlbXBsYXRlcy5jb21wb25lbnQnO1xuZXhwb3J0IHsgTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vYXBwL21vZHVsZXMvbWVzc2FnZXMvY29tcG9uZW50cy9tZXNzYWdlL21lc3NhZ2UuY29tcG9uZW50JztcbmV4cG9ydCB7IE1lc3NhZ2VzQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAvbW9kdWxlcy9tZXNzYWdlcy9jb21wb25lbnRzL21lc3NhZ2VzL21lc3NhZ2VzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBXZWJob29rc0NvbXBvbmVudCB9IGZyb20gJy4vYXBwL21vZHVsZXMvd2ViaG9va3MvY29tcG9uZW50cy93ZWJob29rcy93ZWJob29rcy5jb21wb25lbnQnO1xuXG5leHBvcnQgeyBGc0FwcE1lc3NhZ2VDb25maWcgfSBmcm9tICcuL2FwcC9tb2R1bGVzL2FwcC1tZXNzYWdlL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgeyBNZXNzYWdlUXVldWVUeXBlIH0gZnJvbSAnLi9hcHAvbW9kdWxlcy9tZXNzYWdlLXF1ZXVlcy9lbnVtcy9tZXNzYWdlLXF1ZXVlLXR5cGUuZW51bSc7XG5cbmV4cG9ydCB7IEZzTWVzc2FnZVF1ZXVlU2VydmljZSB9IGZyb20gJy4vYXBwL21vZHVsZXMvbWVzc2FnZS1xdWV1ZXMvc2VydmljZXMvbWVzc2FnZS1xdWV1ZS5zZXJ2aWNlJztcblxuZXhwb3J0IHsgRlNfQVBQX01FU1NBR0VfQ09ORklHIH0gZnJvbSAnLi9hcHAvbW9kdWxlcy9hcHAtbWVzc2FnZS9pbmplY3RvcnMvYXBwLW1lc3NhZ2UtY29uZmlnLmluamVjdG9yJztcblxuZXhwb3J0IHsgTWVzc2FnZVF1ZXVlc0NvbmZpZyB9IGZyb20gJy4vYXBwL2ludGVyZmFjZXMvbWVzc2FnZS1xdWV1ZXMtY29uZmlnJztcbiJdfQ==
|
|
@@ -375,11 +375,11 @@ class MessagesComponent {
|
|
|
375
375
|
this._destroy$.complete();
|
|
376
376
|
}
|
|
377
377
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MessagesComponent, deps: [{ token: FS_APP_MESSAGE_CONFIG }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
378
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: MessagesComponent, selector: "fs-app-messages", viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column\n title=\"Name\"\n name=\"name\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a (click)=\"open(row)\">\n {{ row.name }}\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Email
|
|
378
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: MessagesComponent, selector: "fs-app-messages", viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column\n title=\"Name\"\n name=\"name\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a (click)=\"open(row)\">\n {{ row.name }}\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Email format\">\n <ng-template\n fs-list-cell\n 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\n fs-list-cell\n let-row=\"row\">\n {{ row.emailMessage.messageTemplate?.name || 'None' }}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Channels\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <div class=\"fs-delimit\">\n @if (row.emailMessage) {\n <span>\n Email\n </span>\n }\n @if (row.smsMessage) {\n <span>\n SMS\n </span>\n }\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Customized message\">\n <ng-template\n fs-list-cell\n 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>", dependencies: [{ kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i2.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customizable", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: i2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }] });
|
|
379
379
|
}
|
|
380
380
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: MessagesComponent, decorators: [{
|
|
381
381
|
type: Component,
|
|
382
|
-
args: [{ selector: 'fs-app-messages', template: "<fs-list [config]=\"config\">\n <fs-list-column\n title=\"Name\"\n name=\"name\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a (click)=\"open(row)\">\n {{ row.name }}\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Email
|
|
382
|
+
args: [{ selector: 'fs-app-messages', template: "<fs-list [config]=\"config\">\n <fs-list-column\n title=\"Name\"\n name=\"name\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a (click)=\"open(row)\">\n {{ row.name }}\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Email format\">\n <ng-template\n fs-list-cell\n 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\n fs-list-cell\n let-row=\"row\">\n {{ row.emailMessage.messageTemplate?.name || 'None' }}\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Channels\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <div class=\"fs-delimit\">\n @if (row.emailMessage) {\n <span>\n Email\n </span>\n }\n @if (row.smsMessage) {\n <span>\n SMS\n </span>\n }\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column title=\"Customized message\">\n <ng-template\n fs-list-cell\n 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>" }]
|
|
383
383
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
384
384
|
type: Inject,
|
|
385
385
|
args: [FS_APP_MESSAGE_CONFIG]
|
|
@@ -798,8 +798,9 @@ class QueuesComponent {
|
|
|
798
798
|
_store;
|
|
799
799
|
list = null;
|
|
800
800
|
query = {};
|
|
801
|
-
type
|
|
802
|
-
config
|
|
801
|
+
type;
|
|
802
|
+
config;
|
|
803
|
+
listConfig = null;
|
|
803
804
|
messageQueueStates = {};
|
|
804
805
|
MessageQueueState = MessageQueueState;
|
|
805
806
|
webHookEnabled;
|
|
@@ -841,7 +842,7 @@ class QueuesComponent {
|
|
|
841
842
|
});
|
|
842
843
|
}
|
|
843
844
|
initList() {
|
|
844
|
-
this.
|
|
845
|
+
this.listConfig = {
|
|
845
846
|
filters: [
|
|
846
847
|
{
|
|
847
848
|
name: 'keyword',
|
|
@@ -876,23 +877,7 @@ class QueuesComponent {
|
|
|
876
877
|
type: ItemType.DateRange,
|
|
877
878
|
label: ['From Date', 'To Date'],
|
|
878
879
|
},
|
|
879
|
-
|
|
880
|
-
name: 'direction',
|
|
881
|
-
type: ItemType.Chips,
|
|
882
|
-
label: 'Direction',
|
|
883
|
-
default: [
|
|
884
|
-
{
|
|
885
|
-
value: 'sent',
|
|
886
|
-
name: 'Sent',
|
|
887
|
-
},
|
|
888
|
-
],
|
|
889
|
-
values: () => {
|
|
890
|
-
return [
|
|
891
|
-
{ name: 'Sent', value: 'sent' },
|
|
892
|
-
{ name: 'Received', value: 'received' },
|
|
893
|
-
];
|
|
894
|
-
},
|
|
895
|
-
},
|
|
880
|
+
...(this.config?.filters || []),
|
|
896
881
|
],
|
|
897
882
|
paging: {
|
|
898
883
|
strategy: PaginationStrategy.Many,
|
|
@@ -936,7 +921,7 @@ class QueuesComponent {
|
|
|
936
921
|
},
|
|
937
922
|
};
|
|
938
923
|
if (this._config.bulkMessageQueues) {
|
|
939
|
-
this.
|
|
924
|
+
this.listConfig.selection = {
|
|
940
925
|
selectAll: false,
|
|
941
926
|
actions: [
|
|
942
927
|
{
|
|
@@ -995,11 +980,11 @@ class QueuesComponent {
|
|
|
995
980
|
this._destroy$.complete();
|
|
996
981
|
}
|
|
997
982
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: QueuesComponent, deps: [{ token: FS_APP_MESSAGE_CONFIG }, { token: FsMessageQueueService }, { token: i0.ChangeDetectorRef }, { token: i2$2.FsStore }], target: i0.ɵɵFactoryTarget.Component });
|
|
998
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: QueuesComponent, selector: "fs-app-message-queues", inputs: { query: "query", type: "type" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<ng-container *ngIf=\"webHookEnabled === false\">\n <fs-message-info>\n <div class=\"fs-row\">\n <span class=\"fs-flex\">\n The webhook which provides email delivery confirmations is not enabled.\n </span>\n <a\n (click)=\"enableWebhook()\"\n mat-raised-button>\n Enable\n </a>\n </div>\n </fs-message-info>\n</ng-container>\n<fs-list\n [config]=\"
|
|
983
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: QueuesComponent, selector: "fs-app-message-queues", inputs: { query: "query", type: "type", config: "config" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<ng-container *ngIf=\"webHookEnabled === false\">\n <fs-message-info>\n <div class=\"fs-row\">\n <span class=\"fs-flex\">\n The webhook which provides email delivery confirmations is not enabled.\n </span>\n <a\n (click)=\"enableWebhook()\"\n mat-raised-button>\n Enable\n </a>\n </div>\n </fs-message-info>\n</ng-container>\n<fs-list\n [config]=\"listConfig\"\n #list>\n <fs-list-column\n title=\"Message\"\n name=\"subject\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <ng-container *ngIf=\"row.emailMessageQueue\">\n <a (click)=\"open(row)\">\n {{ row.emailMessageQueue.subject|truncate:100 }}\n </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)\">\n {{ row.smsMessageQueue.body|truncate:100 }}\n </a>\n </ng-container>\n </ng-template>\n </fs-list-column>\n <fs-list-column\n title=\"Recipients\"\n class=\"col-recipients\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <ng-container *ngIf=\"row.emailMessageQueue\">\n <ng-container *ngIf=\"row.emailMessageQueue.toRecipients.length; else unspecified\">\n <div\n class=\"small\"\n *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\n class=\"small\"\n *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\n class=\"small\"\n *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\n title=\"Status\"\n class=\"col-state\">\n <ng-template\n fs-list-cell\n 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\">\n {{ messageQueueStates[row.state] }}\n </span>\n </ng-template>\n </ng-template>\n </fs-list-column>\n <fs-list-column\n title=\"Date\"\n name=\"created_date\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n {{ row.createdDate | fsDateFormat: 'date-time-yeardiff' }}\n </ng-template>\n </fs-list-column>\n</fs-list>\n<ng-template #unspecified>\n <app-recipient\n class=\"small\"\n [state]=\"MessageQueueState.Failed\"\n name=\"Unspecified\">\n </app-recipient>\n</ng-template>", styles: [":host ::ng-deep .col-recipients small+small:before{content:\", \"}:host ::ng-deep .col-state .state-F,:host ::ng-deep .col-state .state-P{color:#d8524e}.attachment-icon{vertical-align:bottom}fs-message-info{margin-bottom:10px;display:block}\n"], dependencies: [{ kind: "directive", type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i2.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customizable", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: i2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { kind: "directive", type: i12.FsButtonDirective, selector: "[mat-raised-button]:not([fsFormButtonStandalone]),[mat-button]:not([fsFormButtonStandalone]),[mat-flat-button]:not([fsFormButtonStandalone]),[mat-stroked-button]:not([fsFormButtonStandalone])", inputs: ["name", "dirtySubmit", "form"] }, { kind: "component", type: i1$1.FsMessageInfoComponent, selector: "fs-message-info" }, { kind: "component", type: RecipientComponent, selector: "app-recipient", inputs: ["name", "state"] }, { kind: "pipe", type: i10$1.FsDateFormatPipe, name: "fsDateFormat" }, { kind: "pipe", type: TruncatePipe, name: "truncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
999
984
|
}
|
|
1000
985
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: QueuesComponent, decorators: [{
|
|
1001
986
|
type: Component,
|
|
1002
|
-
args: [{ selector: 'fs-app-message-queues', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"webHookEnabled === false\">\n <fs-message-info>\n <div class=\"fs-row\">\n <span class=\"fs-flex\">\n The webhook which provides email delivery confirmations is not enabled.\n </span>\n <a\n (click)=\"enableWebhook()\"\n mat-raised-button>\n Enable\n </a>\n </div>\n </fs-message-info>\n</ng-container>\n<fs-list\n [config]=\"
|
|
987
|
+
args: [{ selector: 'fs-app-message-queues', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"webHookEnabled === false\">\n <fs-message-info>\n <div class=\"fs-row\">\n <span class=\"fs-flex\">\n The webhook which provides email delivery confirmations is not enabled.\n </span>\n <a\n (click)=\"enableWebhook()\"\n mat-raised-button>\n Enable\n </a>\n </div>\n </fs-message-info>\n</ng-container>\n<fs-list\n [config]=\"listConfig\"\n #list>\n <fs-list-column\n title=\"Message\"\n name=\"subject\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <ng-container *ngIf=\"row.emailMessageQueue\">\n <a (click)=\"open(row)\">\n {{ row.emailMessageQueue.subject|truncate:100 }}\n </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)\">\n {{ row.smsMessageQueue.body|truncate:100 }}\n </a>\n </ng-container>\n </ng-template>\n </fs-list-column>\n <fs-list-column\n title=\"Recipients\"\n class=\"col-recipients\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <ng-container *ngIf=\"row.emailMessageQueue\">\n <ng-container *ngIf=\"row.emailMessageQueue.toRecipients.length; else unspecified\">\n <div\n class=\"small\"\n *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\n class=\"small\"\n *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\n class=\"small\"\n *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\n title=\"Status\"\n class=\"col-state\">\n <ng-template\n fs-list-cell\n 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\">\n {{ messageQueueStates[row.state] }}\n </span>\n </ng-template>\n </ng-template>\n </fs-list-column>\n <fs-list-column\n title=\"Date\"\n name=\"created_date\"\n [sortable]=\"true\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n {{ row.createdDate | fsDateFormat: 'date-time-yeardiff' }}\n </ng-template>\n </fs-list-column>\n</fs-list>\n<ng-template #unspecified>\n <app-recipient\n class=\"small\"\n [state]=\"MessageQueueState.Failed\"\n name=\"Unspecified\">\n </app-recipient>\n</ng-template>", styles: [":host ::ng-deep .col-recipients small+small:before{content:\", \"}:host ::ng-deep .col-state .state-F,:host ::ng-deep .col-state .state-P{color:#d8524e}.attachment-icon{vertical-align:bottom}fs-message-info{margin-bottom:10px;display:block}\n"] }]
|
|
1003
988
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
1004
989
|
type: Inject,
|
|
1005
990
|
args: [FS_APP_MESSAGE_CONFIG]
|
|
@@ -1010,6 +995,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
1010
995
|
type: Input
|
|
1011
996
|
}], type: [{
|
|
1012
997
|
type: Input
|
|
998
|
+
}], config: [{
|
|
999
|
+
type: Input
|
|
1013
1000
|
}] } });
|
|
1014
1001
|
|
|
1015
1002
|
class LinkifyPipe {
|