@messaia/cdk-cms 18.0.0-rc24 → 18.0.0-rc25
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/esm2022/lib/cms.module.mjs +9 -5
- package/esm2022/lib/comnponents/template-preview-dialog/template-preview-dialog.component.mjs +67 -10
- package/fesm2022/messaia-cdk-cms.mjs +69 -9
- package/fesm2022/messaia-cdk-cms.mjs.map +1 -1
- package/lib/cms.module.d.ts +16 -15
- package/lib/comnponents/template-preview-dialog/template-preview-dialog.component.d.ts +12 -1
- package/package.json +2 -2
|
@@ -6,6 +6,7 @@ import { MatCardModule } from '@angular/material/card';
|
|
|
6
6
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
7
7
|
import { MatChipsModule } from '@angular/material/chips';
|
|
8
8
|
import { MatDialogModule } from '@angular/material/dialog';
|
|
9
|
+
import { MatDividerModule } from '@angular/material/divider';
|
|
9
10
|
import { MatExpansionModule } from '@angular/material/expansion';
|
|
10
11
|
import { MatIconModule } from '@angular/material/icon';
|
|
11
12
|
import { MatInputModule } from '@angular/material/input';
|
|
@@ -24,7 +25,7 @@ import { TemplateFormComponent } from './comnponents/template-form/template-form
|
|
|
24
25
|
import { TemplatePreviewDialogComponent } from './comnponents/template-preview-dialog/template-preview-dialog.component';
|
|
25
26
|
import DocumentFormTemplate from './templates/document-form.template';
|
|
26
27
|
import * as i0 from "@angular/core";
|
|
27
|
-
export { ContentFormComponent, DocumentDialogComponent, DocumentFormBaseComponent, TemplateFormComponent, TemplatePreviewDialogComponent
|
|
28
|
+
export { ContentFormComponent, DocumentDialogComponent, DocumentFormBaseComponent, DocumentFormTemplate, TemplateFormComponent, TemplatePreviewDialogComponent };
|
|
28
29
|
export class MaterialModule {
|
|
29
30
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
30
31
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.6", ngImport: i0, type: MaterialModule, exports: [MatCardModule,
|
|
@@ -37,7 +38,8 @@ export class MaterialModule {
|
|
|
37
38
|
MatDialogModule,
|
|
38
39
|
MatInputModule,
|
|
39
40
|
MatSelectModule,
|
|
40
|
-
MatProgressBarModule
|
|
41
|
+
MatProgressBarModule,
|
|
42
|
+
MatDividerModule] });
|
|
41
43
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: MaterialModule, imports: [MatCardModule,
|
|
42
44
|
MatExpansionModule,
|
|
43
45
|
MatButtonModule,
|
|
@@ -48,7 +50,8 @@ export class MaterialModule {
|
|
|
48
50
|
MatDialogModule,
|
|
49
51
|
MatInputModule,
|
|
50
52
|
MatSelectModule,
|
|
51
|
-
MatProgressBarModule
|
|
53
|
+
MatProgressBarModule,
|
|
54
|
+
MatDividerModule] });
|
|
52
55
|
}
|
|
53
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: MaterialModule, decorators: [{
|
|
54
57
|
type: NgModule,
|
|
@@ -64,7 +67,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
64
67
|
MatDialogModule,
|
|
65
68
|
MatInputModule,
|
|
66
69
|
MatSelectModule,
|
|
67
|
-
MatProgressBarModule
|
|
70
|
+
MatProgressBarModule,
|
|
71
|
+
MatDividerModule
|
|
68
72
|
]
|
|
69
73
|
}]
|
|
70
74
|
}] });
|
|
@@ -152,4 +156,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
152
156
|
]
|
|
153
157
|
}]
|
|
154
158
|
}] });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay1jbXMvc3JjL2xpYi9jbXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pJ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QUNmLFFBQVE7WUFDUixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLFlBQVk7WUFDWixlQUFlLEVBbEJWLFFBQVEsRUFiUixjQUFjLEVBcUNuQixZQUFZO1lBQ1osZUFBZTs7MkZBSVYsV0FBVztrQkFwQnZCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLFFBQVE7d0JBQ1IsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osZUFBZTtxQkFDbEI7b0JBQ0QsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDO29CQUMzQixPQUFPLEVBQUU7d0JBQ0wsUUFBUTt3QkFDUixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixXQUFXO3FCQUNkO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcclxuaW1wb3J0IHsgTWF0RXhwYW5zaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBDb2RlbWlycm9yTW9kdWxlIH0gZnJvbSAnQGN0cmwvbmd4LWNvZGVtaXJyb3InO1xyXG5pbXBvcnQgeyBWZENoaXBzTW9kdWxlLCBWZENvbW1vbk1vZHVsZSwgVmRGaWxlTW9kdWxlLCBWZEZvcm1zTW9kdWxlLCBWZExheW91dE1vZHVsZSwgVmRNZWRpYU1vZHVsZSwgVmRTZWxlY3RNb2R1bGUgfSBmcm9tICdAbWVzc2FpYS9jZGsnO1xyXG5pbXBvcnQgeyBWZENka0Jhc2VNb2R1bGUgfSBmcm9tICdAbWVzc2FpYS9jZGstYmFzZSc7XHJcbmltcG9ydCB7IEVkaXRvck1vZHVsZSB9IGZyb20gJ0B0aW55bWNlL3RpbnltY2UtYW5ndWxhcic7XHJcbmltcG9ydCB7IFBkZlZpZXdlck1vZHVsZSB9IGZyb20gJ25nMi1wZGYtdmlld2VyJztcclxuaW1wb3J0IHsgVmRDbXNSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9jbXMtcm91dGluZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBDb250ZW50Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tbnBvbmVudHMvY29udGVudC1mb3JtL2NvbnRlbnQtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEb2N1bWVudERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tbnBvbmVudHMvZG9jdW1lbnQtZGlhbG9nL2RvY3VtZW50LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEb2N1bWVudEZvcm1CYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21ucG9uZW50cy9kb2N1bWVudC1mb3JtLWJhc2UvZG9jdW1lbnQtZm9ybS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRlbXBsYXRlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tbnBvbmVudHMvdGVtcGxhdGUtZm9ybS90ZW1wbGF0ZS1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRlbXBsYXRlUHJldmlld0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tbnBvbmVudHMvdGVtcGxhdGUtcHJldmlldy1kaWFsb2cvdGVtcGxhdGUtcHJldmlldy1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IERvY3VtZW50Rm9ybVRlbXBsYXRlIGZyb20gJy4vdGVtcGxhdGVzL2RvY3VtZW50LWZvcm0udGVtcGxhdGUnO1xyXG5cclxuZXhwb3J0IHtcclxuICAgIENvbnRlbnRGb3JtQ29tcG9uZW50LFxyXG4gICAgRG9jdW1lbnREaWFsb2dDb21wb25lbnQsXHJcbiAgICBEb2N1bWVudEZvcm1CYXNlQ29tcG9uZW50LCBEb2N1bWVudEZvcm1UZW1wbGF0ZSwgVGVtcGxhdGVGb3JtQ29tcG9uZW50LFxyXG4gICAgVGVtcGxhdGVQcmV2aWV3RGlhbG9nQ29tcG9uZW50XHJcbn07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIE1hdENhcmRNb2R1bGUsXHJcbiAgICAgICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxyXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgICAgIE1hdENoaXBzTW9kdWxlLFxyXG4gICAgICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcclxuICAgICAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgICAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICAgICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxyXG4gICAgICAgIE1hdERpdmlkZXJNb2R1bGVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsTW9kdWxlIHsgfVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBWZENvbW1vbk1vZHVsZSxcclxuICAgICAgICBWZExheW91dE1vZHVsZSxcclxuICAgICAgICBWZE1lZGlhTW9kdWxlLFxyXG4gICAgICAgIFZkRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgVmRTZWxlY3RNb2R1bGUsXHJcbiAgICAgICAgVmRDaGlwc01vZHVsZSxcclxuICAgICAgICBWZEZpbGVNb2R1bGVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFZkTW9kdWxlIHsgfVxyXG5cclxuY29uc3QgREVDTEFSQVRJT04gPSBbXHJcbiAgICBDb250ZW50Rm9ybUNvbXBvbmVudCxcclxuICAgIFRlbXBsYXRlRm9ybUNvbXBvbmVudCxcclxuICAgIFRlbXBsYXRlUHJldmlld0RpYWxvZ0NvbXBvbmVudCxcclxuICAgIERvY3VtZW50RGlhbG9nQ29tcG9uZW50XHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBDb2RlbWlycm9yTW9kdWxlLFxyXG4gICAgICAgIFZkQ2RrQmFzZU1vZHVsZSxcclxuICAgICAgICBWZE1vZHVsZSxcclxuICAgICAgICBNYXRlcmlhbE1vZHVsZSxcclxuICAgICAgICBWZENtc1JvdXRpbmdNb2R1bGUsXHJcbiAgICAgICAgRWRpdG9yTW9kdWxlLFxyXG4gICAgICAgIFBkZlZpZXdlck1vZHVsZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW0RFQ0xBUkFUSU9OXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBWZE1vZHVsZSxcclxuICAgICAgICBNYXRlcmlhbE1vZHVsZSxcclxuICAgICAgICBFZGl0b3JNb2R1bGUsXHJcbiAgICAgICAgUGRmVmlld2VyTW9kdWxlLFxyXG4gICAgICAgIERFQ0xBUkFUSU9OXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWZENtc01vZHVsZSB7IH0iXX0=
|
package/esm2022/lib/comnponents/template-preview-dialog/template-preview-dialog.component.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, Inject } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, Component, ElementRef, Inject, ViewChild } from '@angular/core';
|
|
2
|
+
import { NgModel } from '@angular/forms';
|
|
2
3
|
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
3
4
|
import { ActivatedRoute } from '@angular/router';
|
|
4
5
|
import { BaseComponent } from '@messaia/cdk';
|
|
@@ -19,8 +20,9 @@ import * as i9 from "@angular/material/icon";
|
|
|
19
20
|
import * as i10 from "@angular/material/form-field";
|
|
20
21
|
import * as i11 from "@angular/material/input";
|
|
21
22
|
import * as i12 from "@angular/material/progress-bar";
|
|
22
|
-
import * as i13 from "
|
|
23
|
-
import * as i14 from "
|
|
23
|
+
import * as i13 from "@angular/material/divider";
|
|
24
|
+
import * as i14 from "ng2-pdf-viewer";
|
|
25
|
+
import * as i15 from "../../models/template-preview";
|
|
24
26
|
export class TemplatePreviewDialogComponent extends BaseComponent {
|
|
25
27
|
service;
|
|
26
28
|
dialogRef;
|
|
@@ -47,6 +49,20 @@ export class TemplatePreviewDialogComponent extends BaseComponent {
|
|
|
47
49
|
* Pdf zoom scale
|
|
48
50
|
*/
|
|
49
51
|
zoomScale = 'page-width';
|
|
52
|
+
/**
|
|
53
|
+
* Track whether the dialog is maximized
|
|
54
|
+
*/
|
|
55
|
+
isMaximized = false;
|
|
56
|
+
/*
|
|
57
|
+
* Reference to the iframe element.
|
|
58
|
+
* This will be used to manipulate the iframe's content programmatically.
|
|
59
|
+
* 'static: false' indicates that the reference is resolved after view initialization.
|
|
60
|
+
*/
|
|
61
|
+
iframeRef;
|
|
62
|
+
/*
|
|
63
|
+
* Reference to the NgModel directive for the input element.
|
|
64
|
+
*/
|
|
65
|
+
emailModel;
|
|
50
66
|
/**
|
|
51
67
|
* Constructor
|
|
52
68
|
* @param dialogRef
|
|
@@ -66,24 +82,46 @@ export class TemplatePreviewDialogComponent extends BaseComponent {
|
|
|
66
82
|
* of a directive are initialized.
|
|
67
83
|
*/
|
|
68
84
|
ngOnInit() {
|
|
85
|
+
/* Set loading state to true */
|
|
69
86
|
this.isLoading = true;
|
|
70
87
|
if (this.data.type == TemplateType.Pdf) {
|
|
71
88
|
this.service.create(this.data, undefined, { responseType: 'arraybuffer' }).subscribe({
|
|
72
89
|
next: (x) => {
|
|
90
|
+
/* Set loading state to false */
|
|
73
91
|
this.isLoading = false;
|
|
92
|
+
/* Create a Blob from the response */
|
|
74
93
|
this.pdfBlob = new Blob([x], { type: 'application/pdf' });
|
|
94
|
+
/* Create a URL for the PDF Blob */
|
|
75
95
|
this.pdfSrc = URL.createObjectURL(this.pdfBlob);
|
|
76
96
|
},
|
|
77
|
-
error: () =>
|
|
97
|
+
error: () => {
|
|
98
|
+
/* Handle error and set loading state to false */
|
|
99
|
+
this.isLoading = false;
|
|
100
|
+
}
|
|
78
101
|
});
|
|
79
102
|
}
|
|
80
103
|
else {
|
|
81
104
|
this.service.create(this.data).subscribe({
|
|
82
105
|
next: (x) => {
|
|
106
|
+
/* Set loading state to false */
|
|
83
107
|
this.isLoading = false;
|
|
108
|
+
/* Merge response data with existing data */
|
|
84
109
|
Object.assign(this.data, x);
|
|
110
|
+
/* Get the iframe element from the template reference variable */
|
|
111
|
+
const iframe = this.iframeRef?.nativeElement;
|
|
112
|
+
if (iframe) {
|
|
113
|
+
/* Access the document object of the iframe */
|
|
114
|
+
const doc = iframe.contentDocument || iframe.contentWindow.document;
|
|
115
|
+
/* Write the HTML content to the iframe */
|
|
116
|
+
doc.open();
|
|
117
|
+
doc.write(x?.content ?? '');
|
|
118
|
+
doc.close();
|
|
119
|
+
}
|
|
85
120
|
},
|
|
86
|
-
error: () =>
|
|
121
|
+
error: () => {
|
|
122
|
+
/* Handle error and set loading state to false */
|
|
123
|
+
this.isLoading = false;
|
|
124
|
+
}
|
|
87
125
|
});
|
|
88
126
|
}
|
|
89
127
|
}
|
|
@@ -131,14 +169,33 @@ export class TemplatePreviewDialogComponent extends BaseComponent {
|
|
|
131
169
|
cancel() {
|
|
132
170
|
this.dialogRef.close();
|
|
133
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Toggle the dialog between maximized and normal size
|
|
174
|
+
*/
|
|
175
|
+
toggleMaximize() {
|
|
176
|
+
this.isMaximized = !this.isMaximized;
|
|
177
|
+
/* Apply or remove the full-screen class based on the isMaximized flag */
|
|
178
|
+
if (this.isMaximized) {
|
|
179
|
+
this.dialogRef.addPanelClass('full-screen');
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
this.dialogRef.removePanelClass('full-screen');
|
|
183
|
+
}
|
|
184
|
+
}
|
|
134
185
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: TemplatePreviewDialogComponent, deps: [{ token: i1.TemplatePreviewService }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i3.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
135
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.6", type: TemplatePreviewDialogComponent, selector: "app-template-preview", usesInheritance: true, ngImport: i0, template: "<div mat-dialog-title class=\"mat-headline-6\">\r\n <div layout=\"row\" flex>\r\n <span i18n=\"@@templatePreview\">Template preview</span>\r\n <span flex></span>\r\n <div *ngIf=\"data.type == TemplateType.Pdf && pdfSrc\">\r\n <a mat-icon-button (click)=\"download()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">download</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomIn()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_in</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomOut()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_out</mat-icon>\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n<form #form=\"ngForm\" novalidate>\r\n <!-- #region Entity -->\r\n <div layout=\"row\" flex *ngIf=\"data.endpoint\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label>{{data.entityName}}</mat-label>\r\n <vd-chips [(ngModel)]=\"data.entityId\" [endpoint]=\"data.endpoint\" [params]=\"{sortBy: 'id'}\" text=\"displayName\" name=\"entityId\" #entityId=\"ngModel\" [placeholder]=\"data.entityName??''\" required flex>\r\n <ng-template vd-chip let-entity=\"chip\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n <ng-template vd-autocomplete-option let-entity=\"option\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n </vd-chips>\r\n <mat-error *ngIf=\"entityId.errors?.required\"><span>{{data.entityName}}</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <div layout=\"column\" layout-gt-sm=\"row\" class=\"push-bottom\" flex *ngIf=\"isLoading\">\r\n <div flex layout-margin>\r\n <div class=\"push-bottom-sm\" i18n=\"@@pleaseWait\">Please Wait...</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n </div>\r\n\r\n <!-- #region PDF Content -->\r\n <mat-card>\r\n <pdf-viewer [src]=\"pdfSrc\" *ngIf=\"data.type == TemplateType.Pdf && pdfSrc\" [render-text]=\"true\" [zoom]=\"zoom\" [zoom-scale]=\"zoomScale\" [show-borders]=\"true\" [original-size]=\"false\" [autoresize]=\"true\"></pdf-viewer>\r\n </mat-card>\r\n <!-- #region Content -->\r\n\r\n <div *ngIf=\"data.type != TemplateType.Pdf\">\r\n <!-- #region Content -->\r\n <div layout=\"row\" layout-margin flex class=\"content\">\r\n <div *ngIf=\"data.content\" [innerHtml]=\"data.content\"></div>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Email-->\r\n <div layout-gt-sm=\"row\" layout=\"column\" class=\"push-top pad-top\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label i18n=\"@@email\">Email</mat-label>\r\n <input matInput type=\"email\" name=\"email\" [(ngModel)]=\"data.email\" #email=\"ngModel\" required email placeholder=\"Email\" i18n-placeholder=\"@@email\">\r\n <button mat-icon-button matSuffix (click)=\"sendMail()\" [disabled]=\"!email.valid\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">send</mat-icon>\r\n </button>\r\n <mat-error *ngIf=\"email.errors?.required\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n <mat-error *ngIf=\"!email.errors?.required && email.errors?.email\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isInvalid\"> is invalid</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n </div>\r\n\r\n <div mat-dialog-actions class=\"pad-top\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" (click)=\"cancel()\" i18n=\"@@close\">Close</button>\r\n </div>\r\n</form>", styles: [".content{overflow:scroll;min-height:200px;max-height:500px;border:1px solid #e5e5e5;border-radius:4px;padding:8px}pdf-viewer{display:block;margin-left:-16px;width:calc(100% + 32px);height:calc(100vh - 170px);background:#dbdbdb}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { kind: "directive", type: i6.RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["rxalpha", "rxalphaNumeric", "rxascii", "rxcompare", "rxcompose", "rxcontains", "rxcreditCard", "rxdataUri", "rxdifferent", "rxdigit", "rxemail", "rxendsWith", "rxeven", "rxextension", "rxfactor", "rxfileSize", "rxgreaterThanEqualTo", "rxgreaterThan", "rxhexColor", "rxjson", "rxlatitude", "rxlatLong", "rxleapYear", "rxlessThan", "rxlessThanEqualTo", "rxlongitude", "rxlowerCase", "rxmac", "rxmaxDate", "rxmaxLength", "rxmaxNumber", "rxminDate", "rxminLength", "rxminNumber", "rxnumeric", "rxodd", "rxpassword", "rxport", "rxprimeNumber", "rxrequired", "rxrange", "rxrule", "rxstartsWith", "rxtime", "rxupperCase", "rxurl", "rxunique", "rxnotEmpty", "rxcusip", "rxgrid", "rxdate"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i6.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { kind: "directive", type: i6.MatFormFieldReadonlyDirective, selector: "mat-form-field" }, { kind: "directive", type: i6.EmptyStringResetDirective, selector: "[ngModel],[formControlName],[formControl]" }, { kind: "component", type: i6.VdChipsComponent, selector: "vd-chips", inputs: ["classType", "chips", "endpoint", "params", "projection", "paginated", "customValue", "context", "key", "searchField", "searchFields", "removable", "debounce", "autocompleteCssClass", "suffixButtons"], outputs: ["initSelect", "selected", "cleared", "launch", "chipFocus"] }, { kind: "directive", type: i6.VdAutocompleteOptionDirective, selector: "[vd-autocomplete-option]ng-template" }, { kind: "directive", type: i6.VdChipDirective, selector: "[vd-chip]ng-template" }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i13.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }] });
|
|
186
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.6", type: TemplatePreviewDialogComponent, selector: "app-template-preview", viewQueries: [{ propertyName: "iframeRef", first: true, predicate: ["iframeRef"], descendants: true }, { propertyName: "emailModel", first: true, predicate: ["email"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div mat-dialog-title>\r\n <span i18n=\"@@templatePreview\">Template preview</span>\r\n <span flex></span>\r\n <div *ngIf=\"data.type == TemplateType.Pdf && pdfSrc ||true\">\r\n <a mat-icon-button (click)=\"download()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">download</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomIn()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_in</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomOut()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_out</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"toggleMaximize()\" class=\"maximize-button\">\r\n <mat-icon>{{ isMaximized ? 'fullscreen_exit' : 'fullscreen' }}</mat-icon>\r\n </a>\r\n </div>\r\n</div>\r\n<form #form=\"ngForm\" novalidate layout=\"column\" flex>\r\n <!-- #region Entity -->\r\n <div layout=\"row\" flex *ngIf=\"data.endpoint\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label>{{data.entityName}}</mat-label>\r\n <vd-chips [(ngModel)]=\"data.entityId\" [endpoint]=\"data.endpoint\" [params]=\"{sortBy: 'id'}\" text=\"displayName\" name=\"entityId\" #entityId=\"ngModel\" [placeholder]=\"data.entityName??''\" required flex>\r\n <ng-template vd-chip let-entity=\"chip\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n <ng-template vd-autocomplete-option let-entity=\"option\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n </vd-chips>\r\n <mat-error *ngIf=\"entityId.errors?.required\"><span>{{data.entityName}}</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <div layout=\"column\" layout-gt-sm=\"row\" class=\"push-bottom\" flex *ngIf=\"isLoading\">\r\n <div flex layout-margin>\r\n <div class=\"push-bottom-sm\" i18n=\"@@pleaseWait\">Please Wait...</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n </div>\r\n\r\n <!-- #region PDF Content -->\r\n <mat-card *ngIf=\"data.type == TemplateType.Pdf\" flex>\r\n <pdf-viewer [src]=\"pdfSrc\" *ngIf=\"data.type == TemplateType.Pdf && pdfSrc\" [render-text]=\"true\" [zoom]=\"zoom\" [zoom-scale]=\"zoomScale\" [show-borders]=\"true\" [original-size]=\"false\" [autoresize]=\"true\"></pdf-viewer>\r\n </mat-card>\r\n <!-- #region Content -->\r\n\r\n <div *ngIf=\"data.type != TemplateType.Pdf\" layout=\"column\" class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <!-- #region Content -->\r\n <div class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <iframe #iframeRef frameborder=\"0\"></iframe>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Email-->\r\n <div layout-gt-sm=\"row\" layout=\"column\" class=\"pad-top\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label i18n=\"@@email\">Email</mat-label>\r\n <input matInput type=\"email\" name=\"email\" [(ngModel)]=\"data.email\" #email=\"ngModel\" email placeholder=\"Email\" i18n-placeholder=\"@@email\">\r\n <mat-error *ngIf=\"email.errors?.required\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n <mat-error *ngIf=\"!email.errors?.required && email.errors?.email\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isInvalid\"> is invalid</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div mat-dialog-actions class=\"pad-left\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" (click)=\"cancel()\" [autofocus]=\"true\" i18n=\"@@close\">Close</button>\r\n <button type=\"button\" mat-flat-button (click)=\"sendMail()\" [disabled]=\"data.email == undefined || !emailModel?.valid\" i18n=\"@@sendMail\">Send mail</button>\r\n </div>\r\n</form>", styles: [".content{overflow:scroll;min-height:200px;max-height:500px;border:1px solid #e5e5e5;border-radius:4px;padding:8px}iframe{width:100%;height:100%;min-height:200px;border:1px solid #e5e5e5;border-radius:4px}pdf-viewer{display:block;margin-left:-16px;width:calc(100% + 32px);height:calc(100vh - 170px);background:#dbdbdb}.mat-mdc-dialog-title{display:flex;padding:8px 12px;align-items:center}.dialog-content{width:100%;height:100%;box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { kind: "directive", type: i6.RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["rxalpha", "rxalphaNumeric", "rxascii", "rxcompare", "rxcompose", "rxcontains", "rxcreditCard", "rxdataUri", "rxdifferent", "rxdigit", "rxemail", "rxendsWith", "rxeven", "rxextension", "rxfactor", "rxfileSize", "rxgreaterThanEqualTo", "rxgreaterThan", "rxhexColor", "rxjson", "rxlatitude", "rxlatLong", "rxleapYear", "rxlessThan", "rxlessThanEqualTo", "rxlongitude", "rxlowerCase", "rxmac", "rxmaxDate", "rxmaxLength", "rxmaxNumber", "rxminDate", "rxminLength", "rxminNumber", "rxnumeric", "rxodd", "rxpassword", "rxport", "rxprimeNumber", "rxrequired", "rxrange", "rxrule", "rxstartsWith", "rxtime", "rxupperCase", "rxurl", "rxunique", "rxnotEmpty", "rxcusip", "rxgrid", "rxdate"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { kind: "directive", type: i6.MatFormFieldReadonlyDirective, selector: "mat-form-field" }, { kind: "directive", type: i6.EmptyStringResetDirective, selector: "[ngModel],[formControlName],[formControl]" }, { kind: "component", type: i6.VdChipsComponent, selector: "vd-chips", inputs: ["classType", "chips", "endpoint", "params", "projection", "paginated", "customValue", "context", "key", "searchField", "searchFields", "removable", "debounce", "autocompleteCssClass", "suffixButtons"], outputs: ["initSelect", "selected", "cleared", "launch", "chipFocus"] }, { kind: "directive", type: i6.VdAutocompleteOptionDirective, selector: "[vd-autocomplete-option]ng-template" }, { kind: "directive", type: i6.VdChipDirective, selector: "[vd-chip]ng-template" }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i13.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i14.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }] });
|
|
136
187
|
}
|
|
137
188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: TemplatePreviewDialogComponent, decorators: [{
|
|
138
189
|
type: Component,
|
|
139
|
-
args: [{ selector: 'app-template-preview', template: "<div mat-dialog-title
|
|
140
|
-
}], ctorParameters: () => [{ type: i1.TemplatePreviewService }, { type: i2.MatDialogRef }, { type:
|
|
190
|
+
args: [{ selector: 'app-template-preview', template: "<div mat-dialog-title>\r\n <span i18n=\"@@templatePreview\">Template preview</span>\r\n <span flex></span>\r\n <div *ngIf=\"data.type == TemplateType.Pdf && pdfSrc ||true\">\r\n <a mat-icon-button (click)=\"download()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">download</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomIn()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_in</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomOut()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_out</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"toggleMaximize()\" class=\"maximize-button\">\r\n <mat-icon>{{ isMaximized ? 'fullscreen_exit' : 'fullscreen' }}</mat-icon>\r\n </a>\r\n </div>\r\n</div>\r\n<form #form=\"ngForm\" novalidate layout=\"column\" flex>\r\n <!-- #region Entity -->\r\n <div layout=\"row\" flex *ngIf=\"data.endpoint\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label>{{data.entityName}}</mat-label>\r\n <vd-chips [(ngModel)]=\"data.entityId\" [endpoint]=\"data.endpoint\" [params]=\"{sortBy: 'id'}\" text=\"displayName\" name=\"entityId\" #entityId=\"ngModel\" [placeholder]=\"data.entityName??''\" required flex>\r\n <ng-template vd-chip let-entity=\"chip\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n <ng-template vd-autocomplete-option let-entity=\"option\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n </vd-chips>\r\n <mat-error *ngIf=\"entityId.errors?.required\"><span>{{data.entityName}}</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <div layout=\"column\" layout-gt-sm=\"row\" class=\"push-bottom\" flex *ngIf=\"isLoading\">\r\n <div flex layout-margin>\r\n <div class=\"push-bottom-sm\" i18n=\"@@pleaseWait\">Please Wait...</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n </div>\r\n\r\n <!-- #region PDF Content -->\r\n <mat-card *ngIf=\"data.type == TemplateType.Pdf\" flex>\r\n <pdf-viewer [src]=\"pdfSrc\" *ngIf=\"data.type == TemplateType.Pdf && pdfSrc\" [render-text]=\"true\" [zoom]=\"zoom\" [zoom-scale]=\"zoomScale\" [show-borders]=\"true\" [original-size]=\"false\" [autoresize]=\"true\"></pdf-viewer>\r\n </mat-card>\r\n <!-- #region Content -->\r\n\r\n <div *ngIf=\"data.type != TemplateType.Pdf\" layout=\"column\" class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <!-- #region Content -->\r\n <div class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <iframe #iframeRef frameborder=\"0\"></iframe>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Email-->\r\n <div layout-gt-sm=\"row\" layout=\"column\" class=\"pad-top\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label i18n=\"@@email\">Email</mat-label>\r\n <input matInput type=\"email\" name=\"email\" [(ngModel)]=\"data.email\" #email=\"ngModel\" email placeholder=\"Email\" i18n-placeholder=\"@@email\">\r\n <mat-error *ngIf=\"email.errors?.required\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n <mat-error *ngIf=\"!email.errors?.required && email.errors?.email\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isInvalid\"> is invalid</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div mat-dialog-actions class=\"pad-left\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" (click)=\"cancel()\" [autofocus]=\"true\" i18n=\"@@close\">Close</button>\r\n <button type=\"button\" mat-flat-button (click)=\"sendMail()\" [disabled]=\"data.email == undefined || !emailModel?.valid\" i18n=\"@@sendMail\">Send mail</button>\r\n </div>\r\n</form>", styles: [".content{overflow:scroll;min-height:200px;max-height:500px;border:1px solid #e5e5e5;border-radius:4px;padding:8px}iframe{width:100%;height:100%;min-height:200px;border:1px solid #e5e5e5;border-radius:4px}pdf-viewer{display:block;margin-left:-16px;width:calc(100% + 32px);height:calc(100vh - 170px);background:#dbdbdb}.mat-mdc-dialog-title{display:flex;padding:8px 12px;align-items:center}.dialog-content{width:100%;height:100%;box-sizing:border-box}\n"] }]
|
|
191
|
+
}], ctorParameters: () => [{ type: i1.TemplatePreviewService }, { type: i2.MatDialogRef }, { type: i15.TemplatePreview, decorators: [{
|
|
141
192
|
type: Inject,
|
|
142
193
|
args: [MAT_DIALOG_DATA]
|
|
143
|
-
}] }, { type: i3.ActivatedRoute }, { type: i0.ChangeDetectorRef }]
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtcHJldmlldy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrLWNtcy9zcmMvbGliL2NvbW5wb25lbnRzL3RlbXBsYXRlLXByZXZpZXctZGlhbG9nL3RlbXBsYXRlLXByZXZpZXctZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay1jbXMvc3JjL2xpYi9jb21ucG9uZW50cy90ZW1wbGF0ZS1wcmV2aWV3LWRpYWxvZy90ZW1wbGF0ZS1wcmV2aWV3LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQU9qRixNQUFNLE9BQU8sOEJBQStCLFNBQVEsYUFBYTtJQWlDL0M7SUFDSDtJQUN5QjtJQUN0QjtJQUNBO0lBbkNkOztPQUVHO0lBQ0ksWUFBWSxHQUF3QixZQUFZLENBQUM7SUFFeEQ7O09BRUc7SUFDSSxPQUFPLENBQVE7SUFFdEI7O09BRUc7SUFDSSxNQUFNLENBQW1DO0lBRWhEOztPQUVH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QztpQkFDMUIsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUs7U0FDdEMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU07UUFDVCxJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPO1FBQ1YsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO3VHQXJIUSw4QkFBOEIsb0ZBbUMzQixlQUFlOzJGQW5DbEIsOEJBQThCLG1GQ2YzQywrK0hBeUVPOzsyRkQxRE0sOEJBQThCO2tCQUwxQyxTQUFTOytCQUNJLHNCQUFzQjs7MEJBdUMzQixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdAbWVzc2FpYS9jZGsnO1xyXG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHsgUERGU291cmNlIH0gZnJvbSAnbmcyLXBkZi12aWV3ZXInO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy90ZW1wbGF0ZS10eXBlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVQcmV2aWV3IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RlbXBsYXRlLXByZXZpZXcnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVByZXZpZXdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVtcGxhdGUtcHJldmlldy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtdGVtcGxhdGUtcHJldmlldycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLXByZXZpZXctZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWyd0ZW1wbGF0ZS1wcmV2aWV3LWRpYWxvZy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZVByZXZpZXdEaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbXBsYXRlVHlwZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgVGVtcGxhdGVUeXBlOiB0eXBlb2YgVGVtcGxhdGVUeXBlID0gVGVtcGxhdGVUeXBlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGRmIGJsb2JcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBkZkJsb2I/OiBCbG9iO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUERGIHNvdXJjZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcGRmU3JjPzogc3RyaW5nIHwgVWludDhBcnJheSB8IFBERlNvdXJjZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBkZiB6b29tXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB6b29tID0gMC45ODtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBkZiB6b29tIHNjYWxlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB6b29tU2NhbGU6ICdwYWdlLWhlaWdodCcgfCAncGFnZS1maXQnIHwgJ3BhZ2Utd2lkdGgnID0gJ3BhZ2Utd2lkdGgnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3JcclxuICAgICAqIEBwYXJhbSBkaWFsb2dSZWYgXHJcbiAgICAgKiBAcGFyYW0gZGF0YSBcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIHNlcnZpY2U6IFRlbXBsYXRlUHJldmlld1NlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRlbXBsYXRlUHJldmlld0RpYWxvZ0NvbXBvbmVudD4sXHJcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBUZW1wbGF0ZVByZXZpZXcsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihyb3V0ZSwgY2hhbmdlRGV0ZWN0b3JSZWYpXHJcbiAgICAgICAgdGhpcy5kYXRhLmVtYWlsID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RlbXBsYXRlUHJldmlld0VtYWlsJykgPz8gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCBhZnRlciBkYXRhLWJvdW5kIHByb3BlcnRpZXNcclxuICAgICAqIG9mIGEgZGlyZWN0aXZlIGFyZSBpbml0aWFsaXplZC5cclxuICAgICAqL1xyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGEudHlwZSA9PSBUZW1wbGF0ZVR5cGUuUGRmKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5jcmVhdGUodGhpcy5kYXRhLCB1bmRlZmluZWQsIHsgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAoeCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZGZCbG9iID0gbmV3IEJsb2IoWzxhbnk+eF0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3BkZicgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZGZTcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHRoaXMucGRmQmxvYik7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+IHRoaXMuaXNMb2FkaW5nID0gZmFsc2VcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZSh0aGlzLmRhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAoeCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmRhdGEsIHgpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB0aGlzLmlzTG9hZGluZyA9IGZhbHNlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlbmRzIGEgbWFpbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VuZE1haWwoKSB7XHJcbiAgICAgICAgLyogVGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoaXMuZGF0YS5lbWFpbCBpcyBudWxsICovXHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YS5lbWFpbCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRW1haWwgaXMgbnVsbC4gQ2Fubm90IHNlbmQgbWFpbC4nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VydmljZS5jcmVhdGUodGhpcy5kYXRhLCAnL3NlbmRNYWlsJykuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKHgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndGVtcGxhdGVQcmV2aWV3RW1haWwnLCB0aGlzLmRhdGEuZW1haWwhKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJGxvY2FsaXplYDpAQHNuYWNrYmFyLnNlbmQuc3VjY2VzczpEYXRhIHNlbnQgc3VjY2Vzc2Z1bGx5LmAsIHVuZGVmaW5lZCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFsncHJpbWFyeSddXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6ICgpID0+IHRoaXMuaXNMb2FkaW5nID0gZmFsc2VcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERvd25sb2FkcyB0aGUgcGRmXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkb3dubG9hZCgpOiB2b2lkIHtcclxuICAgICAgICBzYXZlQXModGhpcy5wZGZCbG9iISwgXCJQZGYucGRmXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogWm9vbXMgaW4gdGhlIHBkZlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgem9vbUluKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuem9vbSArPSAwLjE7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBab29tcyBvdXQgdGhlIHBkZlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgem9vbU91dCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnpvb20gKz0gLTAuMTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENsb3NlcyB0aGUgZGlhbG9nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH1cclxufSIsIjxkaXYgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cIm1hdC1oZWFkbGluZS02XCI+XHJcbiAgICA8ZGl2IGxheW91dD1cInJvd1wiIGZsZXg+XHJcbiAgICAgICAgPHNwYW4gaTE4bj1cIkBAdGVtcGxhdGVQcmV2aWV3XCI+VGVtcGxhdGUgcHJldmlldzwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBmbGV4Pjwvc3Bhbj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YS50eXBlID09IFRlbXBsYXRlVHlwZS5QZGYgJiYgcGRmU3JjXCI+XHJcbiAgICAgICAgICAgIDxhIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZG93bmxvYWQoKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGZvbnRTZXQ9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+ZG93bmxvYWQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDxhIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiem9vbUluKClcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBmb250U2V0PVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPnpvb21faW48L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDxhIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiem9vbU91dCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24gZm9udFNldD1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj56b29tX291dDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGZvcm0gI2Zvcm09XCJuZ0Zvcm1cIiBub3ZhbGlkYXRlPlxyXG4gICAgPCEtLSAjcmVnaW9uIEVudGl0eSAtLT5cclxuICAgIDxkaXYgbGF5b3V0PVwicm93XCIgZmxleCAqbmdJZj1cImRhdGEuZW5kcG9pbnRcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgZmxleCBsYXlvdXQtbWFyZ2luPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ZGF0YS5lbnRpdHlOYW1lfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPHZkLWNoaXBzIFsobmdNb2RlbCldPVwiZGF0YS5lbnRpdHlJZFwiIFtlbmRwb2ludF09XCJkYXRhLmVuZHBvaW50XCIgW3BhcmFtc109XCJ7c29ydEJ5OiAnaWQnfVwiIHRleHQ9XCJkaXNwbGF5TmFtZVwiIG5hbWU9XCJlbnRpdHlJZFwiICNlbnRpdHlJZD1cIm5nTW9kZWxcIiBbcGxhY2Vob2xkZXJdPVwiZGF0YS5lbnRpdHlOYW1lPz8nJ1wiIHJlcXVpcmVkIGZsZXg+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgdmQtY2hpcCBsZXQtZW50aXR5PVwiY2hpcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ZW50aXR5W2RhdGEuZGlzcGxheU5hbWU/PycnXX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB2ZC1hdXRvY29tcGxldGUtb3B0aW9uIGxldC1lbnRpdHk9XCJvcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2VudGl0eVtkYXRhLmRpc3BsYXlOYW1lPz8nJ119fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvdmQtY2hpcHM+XHJcbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJlbnRpdHlJZC5lcnJvcnM/LnJlcXVpcmVkXCI+PHNwYW4+e3tkYXRhLmVudGl0eU5hbWV9fTwvc3Bhbj48c3BhbiBpMThuPVwiQEBpc1JlcXVpcmVkXCI+IGlzIHJlcXVpcmVkPC9zcGFuPjwvbWF0LWVycm9yPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICA8ZGl2IGxheW91dD1cImNvbHVtblwiIGxheW91dC1ndC1zbT1cInJvd1wiIGNsYXNzPVwicHVzaC1ib3R0b21cIiBmbGV4ICpuZ0lmPVwiaXNMb2FkaW5nXCI+XHJcbiAgICAgICAgPGRpdiBmbGV4IGxheW91dC1tYXJnaW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdXNoLWJvdHRvbS1zbVwiIGkxOG49XCJAQHBsZWFzZVdhaXRcIj5QbGVhc2UgV2FpdC4uLjwvZGl2PlxyXG4gICAgICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gI3JlZ2lvbiBQREYgQ29udGVudCAtLT5cclxuICAgIDxtYXQtY2FyZD5cclxuICAgICAgICA8cGRmLXZpZXdlciBbc3JjXT1cInBkZlNyY1wiICpuZ0lmPVwiZGF0YS50eXBlID09IFRlbXBsYXRlVHlwZS5QZGYgJiYgcGRmU3JjXCIgW3JlbmRlci10ZXh0XT1cInRydWVcIiBbem9vbV09XCJ6b29tXCIgW3pvb20tc2NhbGVdPVwiem9vbVNjYWxlXCIgW3Nob3ctYm9yZGVyc109XCJ0cnVlXCIgW29yaWdpbmFsLXNpemVdPVwiZmFsc2VcIiBbYXV0b3Jlc2l6ZV09XCJ0cnVlXCI+PC9wZGYtdmlld2VyPlxyXG4gICAgPC9tYXQtY2FyZD5cclxuICAgIDwhLS0gI3JlZ2lvbiBDb250ZW50IC0tPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJkYXRhLnR5cGUgIT0gVGVtcGxhdGVUeXBlLlBkZlwiPlxyXG4gICAgICAgIDwhLS0gI3JlZ2lvbiBDb250ZW50IC0tPlxyXG4gICAgICAgIDxkaXYgbGF5b3V0PVwicm93XCIgbGF5b3V0LW1hcmdpbiBmbGV4IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5jb250ZW50XCIgW2lubmVySHRtbF09XCJkYXRhLmNvbnRlbnRcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG4gICAgICAgIDwhLS0gI3JlZ2lvbiBFbWFpbC0tPlxyXG4gICAgICAgIDxkaXYgbGF5b3V0LWd0LXNtPVwicm93XCIgbGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJwdXNoLXRvcCBwYWQtdG9wXCI+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsIGkxOG49XCJAQGVtYWlsXCI+RW1haWw8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwiZW1haWxcIiBuYW1lPVwiZW1haWxcIiBbKG5nTW9kZWwpXT1cImRhdGEuZW1haWxcIiAjZW1haWw9XCJuZ01vZGVsXCIgcmVxdWlyZWQgZW1haWwgcGxhY2Vob2xkZXI9XCJFbWFpbFwiIGkxOG4tcGxhY2Vob2xkZXI9XCJAQGVtYWlsXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXggKGNsaWNrKT1cInNlbmRNYWlsKClcIiBbZGlzYWJsZWRdPVwiIWVtYWlsLnZhbGlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGZvbnRTZXQ9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+c2VuZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJlbWFpbC5lcnJvcnM/LnJlcXVpcmVkXCI+PHNwYW4gaTE4bj1cIkBAZW1haWxcIj5FbWFpbDwvc3Bhbj48c3BhbiBpMThuPVwiQEBpc1JlcXVpcmVkXCI+IGlzIHJlcXVpcmVkPC9zcGFuPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cIiFlbWFpbC5lcnJvcnM/LnJlcXVpcmVkICYmIGVtYWlsLmVycm9ycz8uZW1haWxcIj48c3BhbiBpMThuPVwiQEBlbWFpbFwiPkVtYWlsPC9zcGFuPjxzcGFuIGkxOG49XCJAQGlzSW52YWxpZFwiPiBpcyBpbnZhbGlkPC9zcGFuPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwicGFkLXRvcFwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2FuY2VsKClcIiBpMThuPVwiQEBjbG9zZVwiPkNsb3NlPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9mb3JtPiJdfQ==
|
|
194
|
+
}] }, { type: i3.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { iframeRef: [{
|
|
195
|
+
type: ViewChild,
|
|
196
|
+
args: ['iframeRef', { static: false }]
|
|
197
|
+
}], emailModel: [{
|
|
198
|
+
type: ViewChild,
|
|
199
|
+
args: ['email']
|
|
200
|
+
}] } });
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtcHJldmlldy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrLWNtcy9zcmMvbGliL2NvbW5wb25lbnRzL3RlbXBsYXRlLXByZXZpZXctZGlhbG9nL3RlbXBsYXRlLXByZXZpZXctZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay1jbXMvc3JjL2xpYi9jb21ucG9uZW50cy90ZW1wbGF0ZS1wcmV2aWV3LWRpYWxvZy90ZW1wbGF0ZS1wcmV2aWV3LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPakYsTUFBTSxPQUFPLDhCQUErQixTQUFRLGFBQWE7SUFvRC9DO0lBQ0g7SUFDeUI7SUFDdEI7SUFDQTtJQXREZDs7T0FFRztJQUNJLFlBQVksR0FBd0IsWUFBWSxDQUFDO0lB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SUFDSSxPQUFPO1FBQ1YsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLHlFQUF5RTtRQUN6RSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNMLENBQUM7dUdBakxRLDhCQUE4QixvRkFzRDNCLGVBQWU7MkZBdERsQiw4QkFBOEIsaVJDaEIzQyxncklBd0VPOzsyRkR4RE0sOEJBQThCO2tCQUwxQyxTQUFTOytCQUNJLHNCQUFzQjs7MEJBMEQzQixNQUFNOzJCQUFDLGVBQWU7c0dBaEJwQixTQUFTO3NCQURmLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFPbEMsVUFBVTtzQkFEaEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdAbWVzc2FpYS9jZGsnO1xyXG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHsgUERGU291cmNlIH0gZnJvbSAnbmcyLXBkZi12aWV3ZXInO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy90ZW1wbGF0ZS10eXBlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVQcmV2aWV3IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RlbXBsYXRlLXByZXZpZXcnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVByZXZpZXdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVtcGxhdGUtcHJldmlldy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtdGVtcGxhdGUtcHJldmlldycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLXByZXZpZXctZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWyd0ZW1wbGF0ZS1wcmV2aWV3LWRpYWxvZy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZVByZXZpZXdEaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbXBsYXRlVHlwZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgVGVtcGxhdGVUeXBlOiB0eXBlb2YgVGVtcGxhdGVUeXBlID0gVGVtcGxhdGVUeXBlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGRmIGJsb2JcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBkZkJsb2I/OiBCbG9iO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUERGIHNvdXJjZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcGRmU3JjPzogc3RyaW5nIHwgVWludDhBcnJheSB8IFBERlNvdXJjZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBkZiB6b29tXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB6b29tID0gMC45ODtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBkZiB6b29tIHNjYWxlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB6b29tU2NhbGU6ICdwYWdlLWhlaWdodCcgfCAncGFnZS1maXQnIHwgJ3BhZ2Utd2lkdGgnID0gJ3BhZ2Utd2lkdGgnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJhY2sgd2hldGhlciB0aGUgZGlhbG9nIGlzIG1heGltaXplZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXNNYXhpbWl6ZWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKiBcclxuICAgICAqIFJlZmVyZW5jZSB0byB0aGUgaWZyYW1lIGVsZW1lbnQuIFxyXG4gICAgICogVGhpcyB3aWxsIGJlIHVzZWQgdG8gbWFuaXB1bGF0ZSB0aGUgaWZyYW1lJ3MgY29udGVudCBwcm9ncmFtbWF0aWNhbGx5LlxyXG4gICAgICogJ3N0YXRpYzogZmFsc2UnIGluZGljYXRlcyB0aGF0IHRoZSByZWZlcmVuY2UgaXMgcmVzb2x2ZWQgYWZ0ZXIgdmlldyBpbml0aWFsaXphdGlvbi5cclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgnaWZyYW1lUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgICBwdWJsaWMgaWZyYW1lUmVmPzogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvKiBcclxuICAgICAqIFJlZmVyZW5jZSB0byB0aGUgTmdNb2RlbCBkaXJlY3RpdmUgZm9yIHRoZSBpbnB1dCBlbGVtZW50LlxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdlbWFpbCcpXHJcbiAgICBwdWJsaWMgZW1haWxNb2RlbD86IE5nTW9kZWw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvclxyXG4gICAgICogQHBhcmFtIGRpYWxvZ1JlZiBcclxuICAgICAqIEBwYXJhbSBkYXRhIFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgc2VydmljZTogVGVtcGxhdGVQcmV2aWV3U2VydmljZSxcclxuICAgICAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VGVtcGxhdGVQcmV2aWV3RGlhbG9nQ29tcG9uZW50PixcclxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFRlbXBsYXRlUHJldmlldyxcclxuICAgICAgICBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKHJvdXRlLCBjaGFuZ2VEZXRlY3RvclJlZilcclxuICAgICAgICB0aGlzLmRhdGEuZW1haWwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGVtcGxhdGVQcmV2aWV3RW1haWwnKSA/PyAnJztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIExpZmVjeWNsZSBob29rIHRoYXQgaXMgY2FsbGVkIGFmdGVyIGRhdGEtYm91bmQgcHJvcGVydGllc1xyXG4gICAgICogb2YgYSBkaXJlY3RpdmUgYXJlIGluaXRpYWxpemVkLlxyXG4gICAgICovXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICAvKiBTZXQgbG9hZGluZyBzdGF0ZSB0byB0cnVlICovXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5kYXRhLnR5cGUgPT0gVGVtcGxhdGVUeXBlLlBkZikge1xyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuY3JlYXRlKHRoaXMuZGF0YSwgdW5kZWZpbmVkLCB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKHgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvKiBTZXQgbG9hZGluZyBzdGF0ZSB0byBmYWxzZSAqL1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8qIENyZWF0ZSBhIEJsb2IgZnJvbSB0aGUgcmVzcG9uc2UgKi9cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBkZkJsb2IgPSBuZXcgQmxvYihbPGFueT54XSwgeyB0eXBlOiAnYXBwbGljYXRpb24vcGRmJyB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLyogQ3JlYXRlIGEgVVJMIGZvciB0aGUgUERGIEJsb2IgKi9cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBkZlNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwodGhpcy5wZGZCbG9iKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIEhhbmRsZSBlcnJvciBhbmQgc2V0IGxvYWRpbmcgc3RhdGUgdG8gZmFsc2UgKi9cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuY3JlYXRlKHRoaXMuZGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6ICh4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvKiBTZXQgbG9hZGluZyBzdGF0ZSB0byBmYWxzZSAqL1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8qIE1lcmdlIHJlc3BvbnNlIGRhdGEgd2l0aCBleGlzdGluZyBkYXRhICovXHJcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmRhdGEsIHgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvKiBHZXQgdGhlIGlmcmFtZSBlbGVtZW50IGZyb20gdGhlIHRlbXBsYXRlIHJlZmVyZW5jZSB2YXJpYWJsZSAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlmcmFtZSA9IHRoaXMuaWZyYW1lUmVmPy5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpZnJhbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLyogQWNjZXNzIHRoZSBkb2N1bWVudCBvYmplY3Qgb2YgdGhlIGlmcmFtZSAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkb2MgPSBpZnJhbWUuY29udGVudERvY3VtZW50IHx8IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLyogV3JpdGUgdGhlIEhUTUwgY29udGVudCB0byB0aGUgaWZyYW1lICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvYy5vcGVuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvYy53cml0ZSh4Py5jb250ZW50ID8/ICcnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLyogSGFuZGxlIGVycm9yIGFuZCBzZXQgbG9hZGluZyBzdGF0ZSB0byBmYWxzZSAqL1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlbmRzIGEgbWFpbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VuZE1haWwoKSB7XHJcbiAgICAgICAgLyogVGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoaXMuZGF0YS5lbWFpbCBpcyBudWxsICovXHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YS5lbWFpbCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRW1haWwgaXMgbnVsbC4gQ2Fubm90IHNlbmQgbWFpbC4nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VydmljZS5jcmVhdGUodGhpcy5kYXRhLCAnL3NlbmRNYWlsJykuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKHgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndGVtcGxhdGVQcmV2aWV3RW1haWwnLCB0aGlzLmRhdGEuZW1haWwhKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJGxvY2FsaXplYDpAQHNuYWNrYmFyLnNlbmQuc3VjY2VzczpEYXRhIHNlbnQgc3VjY2Vzc2Z1bGx5LmAsIHVuZGVmaW5lZCwge1xyXG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFsncHJpbWFyeSddXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6ICgpID0+IHRoaXMuaXNMb2FkaW5nID0gZmFsc2VcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERvd25sb2FkcyB0aGUgcGRmXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkb3dubG9hZCgpOiB2b2lkIHtcclxuICAgICAgICBzYXZlQXModGhpcy5wZGZCbG9iISwgXCJQZGYucGRmXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogWm9vbXMgaW4gdGhlIHBkZlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgem9vbUluKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuem9vbSArPSAwLjE7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBab29tcyBvdXQgdGhlIHBkZlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgem9vbU91dCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnpvb20gKz0gLTAuMTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENsb3NlcyB0aGUgZGlhbG9nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRvZ2dsZSB0aGUgZGlhbG9nIGJldHdlZW4gbWF4aW1pemVkIGFuZCBub3JtYWwgc2l6ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdG9nZ2xlTWF4aW1pemUoKSB7XHJcbiAgICAgICAgdGhpcy5pc01heGltaXplZCA9ICF0aGlzLmlzTWF4aW1pemVkO1xyXG4gICAgICAgIC8qIEFwcGx5IG9yIHJlbW92ZSB0aGUgZnVsbC1zY3JlZW4gY2xhc3MgYmFzZWQgb24gdGhlIGlzTWF4aW1pemVkIGZsYWcgKi9cclxuICAgICAgICBpZiAodGhpcy5pc01heGltaXplZCkge1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5hZGRQYW5lbENsYXNzKCdmdWxsLXNjcmVlbicpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLnJlbW92ZVBhbmVsQ2xhc3MoJ2Z1bGwtc2NyZWVuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiPGRpdiBtYXQtZGlhbG9nLXRpdGxlPlxyXG4gICAgPHNwYW4gaTE4bj1cIkBAdGVtcGxhdGVQcmV2aWV3XCI+VGVtcGxhdGUgcHJldmlldzwvc3Bhbj5cclxuICAgIDxzcGFuIGZsZXg+PC9zcGFuPlxyXG4gICAgPGRpdiAqbmdJZj1cImRhdGEudHlwZSA9PSBUZW1wbGF0ZVR5cGUuUGRmICYmIHBkZlNyYyB8fHRydWVcIj5cclxuICAgICAgICA8YSBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImRvd25sb2FkKClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGZvbnRTZXQ9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+ZG93bmxvYWQ8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgICA8YSBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInpvb21JbigpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBmb250U2V0PVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPnpvb21faW48L21hdC1pY29uPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgICA8YSBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInpvb21PdXQoKVwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gZm9udFNldD1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj56b29tX291dDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDxhIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlTWF4aW1pemUoKVwiIGNsYXNzPVwibWF4aW1pemUtYnV0dG9uXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj57eyBpc01heGltaXplZCA/ICdmdWxsc2NyZWVuX2V4aXQnIDogJ2Z1bGxzY3JlZW4nIH19PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2E+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxmb3JtICNmb3JtPVwibmdGb3JtXCIgbm92YWxpZGF0ZSBsYXlvdXQ9XCJjb2x1bW5cIiBmbGV4PlxyXG4gICAgPCEtLSAjcmVnaW9uIEVudGl0eSAtLT5cclxuICAgIDxkaXYgbGF5b3V0PVwicm93XCIgZmxleCAqbmdJZj1cImRhdGEuZW5kcG9pbnRcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgZmxleCBsYXlvdXQtbWFyZ2luPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ZGF0YS5lbnRpdHlOYW1lfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPHZkLWNoaXBzIFsobmdNb2RlbCldPVwiZGF0YS5lbnRpdHlJZFwiIFtlbmRwb2ludF09XCJkYXRhLmVuZHBvaW50XCIgW3BhcmFtc109XCJ7c29ydEJ5OiAnaWQnfVwiIHRleHQ9XCJkaXNwbGF5TmFtZVwiIG5hbWU9XCJlbnRpdHlJZFwiICNlbnRpdHlJZD1cIm5nTW9kZWxcIiBbcGxhY2Vob2xkZXJdPVwiZGF0YS5lbnRpdHlOYW1lPz8nJ1wiIHJlcXVpcmVkIGZsZXg+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgdmQtY2hpcCBsZXQtZW50aXR5PVwiY2hpcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ZW50aXR5W2RhdGEuZGlzcGxheU5hbWU/PycnXX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB2ZC1hdXRvY29tcGxldGUtb3B0aW9uIGxldC1lbnRpdHk9XCJvcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2VudGl0eVtkYXRhLmRpc3BsYXlOYW1lPz8nJ119fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvdmQtY2hpcHM+XHJcbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJlbnRpdHlJZC5lcnJvcnM/LnJlcXVpcmVkXCI+PHNwYW4+e3tkYXRhLmVudGl0eU5hbWV9fTwvc3Bhbj48c3BhbiBpMThuPVwiQEBpc1JlcXVpcmVkXCI+IGlzIHJlcXVpcmVkPC9zcGFuPjwvbWF0LWVycm9yPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICA8ZGl2IGxheW91dD1cImNvbHVtblwiIGxheW91dC1ndC1zbT1cInJvd1wiIGNsYXNzPVwicHVzaC1ib3R0b21cIiBmbGV4ICpuZ0lmPVwiaXNMb2FkaW5nXCI+XHJcbiAgICAgICAgPGRpdiBmbGV4IGxheW91dC1tYXJnaW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdXNoLWJvdHRvbS1zbVwiIGkxOG49XCJAQHBsZWFzZVdhaXRcIj5QbGVhc2UgV2FpdC4uLjwvZGl2PlxyXG4gICAgICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gI3JlZ2lvbiBQREYgQ29udGVudCAtLT5cclxuICAgIDxtYXQtY2FyZCAqbmdJZj1cImRhdGEudHlwZSA9PSBUZW1wbGF0ZVR5cGUuUGRmXCIgZmxleD5cclxuICAgICAgICA8cGRmLXZpZXdlciBbc3JjXT1cInBkZlNyY1wiICpuZ0lmPVwiZGF0YS50eXBlID09IFRlbXBsYXRlVHlwZS5QZGYgJiYgcGRmU3JjXCIgW3JlbmRlci10ZXh0XT1cInRydWVcIiBbem9vbV09XCJ6b29tXCIgW3pvb20tc2NhbGVdPVwiem9vbVNjYWxlXCIgW3Nob3ctYm9yZGVyc109XCJ0cnVlXCIgW29yaWdpbmFsLXNpemVdPVwiZmFsc2VcIiBbYXV0b3Jlc2l6ZV09XCJ0cnVlXCI+PC9wZGYtdmlld2VyPlxyXG4gICAgPC9tYXQtY2FyZD5cclxuICAgIDwhLS0gI3JlZ2lvbiBDb250ZW50IC0tPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJkYXRhLnR5cGUgIT0gVGVtcGxhdGVUeXBlLlBkZlwiIGxheW91dD1cImNvbHVtblwiIGNsYXNzPVwicGFkLXRvcC1ub25lXCIgbGF5b3V0LXBhZGRpbmcgbWFyZ2luLWxheW91dCBmbGV4PlxyXG4gICAgICAgIDwhLS0gI3JlZ2lvbiBDb250ZW50IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYWQtdG9wLW5vbmVcIiBsYXlvdXQtcGFkZGluZyBtYXJnaW4tbGF5b3V0IGZsZXg+XHJcbiAgICAgICAgICAgIDxpZnJhbWUgI2lmcmFtZVJlZiBmcmFtZWJvcmRlcj1cIjBcIj48L2lmcmFtZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG4gICAgICAgIDwhLS0gI3JlZ2lvbiBFbWFpbC0tPlxyXG4gICAgICAgIDxkaXYgbGF5b3V0LWd0LXNtPVwicm93XCIgbGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJwYWQtdG9wXCI+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsIGkxOG49XCJAQGVtYWlsXCI+RW1haWw8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwiZW1haWxcIiBuYW1lPVwiZW1haWxcIiBbKG5nTW9kZWwpXT1cImRhdGEuZW1haWxcIiAjZW1haWw9XCJuZ01vZGVsXCIgZW1haWwgcGxhY2Vob2xkZXI9XCJFbWFpbFwiIGkxOG4tcGxhY2Vob2xkZXI9XCJAQGVtYWlsXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZW1haWwuZXJyb3JzPy5yZXF1aXJlZFwiPjxzcGFuIGkxOG49XCJAQGVtYWlsXCI+RW1haWw8L3NwYW4+PHNwYW4gaTE4bj1cIkBAaXNSZXF1aXJlZFwiPiBpcyByZXF1aXJlZDwvc3Bhbj48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCIhZW1haWwuZXJyb3JzPy5yZXF1aXJlZCAmJiBlbWFpbC5lcnJvcnM/LmVtYWlsXCI+PHNwYW4gaTE4bj1cIkBAZW1haWxcIj5FbWFpbDwvc3Bhbj48c3BhbiBpMThuPVwiQEBpc0ludmFsaWRcIj4gaXMgaW52YWxpZDwvc3Bhbj48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tICNlbmRyZWdpb24gLS0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJwYWQtbGVmdFwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2FuY2VsKClcIiBbYXV0b2ZvY3VzXT1cInRydWVcIiBpMThuPVwiQEBjbG9zZVwiPkNsb3NlPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWZsYXQtYnV0dG9uIChjbGljayk9XCJzZW5kTWFpbCgpXCIgW2Rpc2FibGVkXT1cImRhdGEuZW1haWwgPT0gdW5kZWZpbmVkIHx8ICFlbWFpbE1vZGVsPy52YWxpZFwiIGkxOG49XCJAQHNlbmRNYWlsXCI+U2VuZCBtYWlsPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9mb3JtPiJdfQ==
|