@churchillliving/se-ui-toolkit 6.54.686 → 6.54.688
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/components/base/file-upload/file-upload.component.mjs +17 -4
- package/esm2022/lib/components/base/form/form.component.mjs +3 -3
- package/esm2022/lib/models/form.model.mjs +1 -1
- package/esm2022/lib/services/form.service.mjs +3 -2
- package/fesm2022/churchillliving-se-ui-toolkit.mjs +17 -5
- package/fesm2022/churchillliving-se-ui-toolkit.mjs.map +1 -1
- package/lib/components/base/file-upload/file-upload.component.d.ts +4 -1
- package/lib/models/form.model.d.ts +2 -0
- package/package.json +1 -1
|
@@ -3,17 +3,25 @@ import { ESelectFileType } from '../../../models/form.model';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../../../services/request.service";
|
|
5
5
|
import * as i2 from "../../../services/alert.service";
|
|
6
|
-
import * as i3 from "
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/forms";
|
|
8
|
+
import * as i5 from "primeng/inputtext";
|
|
7
9
|
export class FileUploadComponent {
|
|
8
10
|
constructor(requestService, alertService) {
|
|
9
11
|
this.requestService = requestService;
|
|
10
12
|
this.alertService = alertService;
|
|
11
13
|
this.allowMultiple = false;
|
|
12
14
|
this.isAzureUpload = true;
|
|
15
|
+
this.allowResize = false;
|
|
13
16
|
this.fileUrl = new EventEmitter();
|
|
14
17
|
this.uploadFileOnReturn = new EventEmitter();
|
|
15
18
|
}
|
|
16
19
|
ngOnInit() { }
|
|
20
|
+
onResizeBlur(files) {
|
|
21
|
+
if (files?.length > 0) {
|
|
22
|
+
this.uploadFile(files);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
17
25
|
uploadFile(files) {
|
|
18
26
|
let excelFileData = [];
|
|
19
27
|
let fileData = new FormData;
|
|
@@ -32,6 +40,9 @@ export class FileUploadComponent {
|
|
|
32
40
|
else if (this.fields && this.fields.pathSystemConfig?.length > 0) {
|
|
33
41
|
fileData.append('azureContainer', this.fields.pathSystemConfig);
|
|
34
42
|
}
|
|
43
|
+
if (this.allowResize && this.imageWidth) {
|
|
44
|
+
fileData.append('imageWidth', this.imageWidth.toString());
|
|
45
|
+
}
|
|
35
46
|
this.requestService.get('/Upload', fileData).subscribe((data) => {
|
|
36
47
|
if (data) {
|
|
37
48
|
this.alertService.success('File Upload Successfully.');
|
|
@@ -62,11 +73,11 @@ export class FileUploadComponent {
|
|
|
62
73
|
}
|
|
63
74
|
}
|
|
64
75
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileUploadComponent, deps: [{ token: i1.RequestService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FileUploadComponent, selector: "se-file-upload", inputs: { acceptFileTypes: "acceptFileTypes", allowMultiple: "allowMultiple", fields: "fields", isAzureUpload: "isAzureUpload" }, outputs: { fileUrl: "fileUrl", uploadFileOnReturn: "uploadFileOnReturn" }, ngImport: i0, template: "<!-- file Upload Component-->\n<input\n pInputText\n #fileInput\n type=\"file\"\n id=\"file\"\n [accept]=\"acceptFileTypes\"\n [multiple]=\"allowMultiple\"\n (change)=\"uploadFile(fileInput.files)\"\n (click)=\"onClickEvent()\"\n/>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }] }); }
|
|
76
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FileUploadComponent, selector: "se-file-upload", inputs: { acceptFileTypes: "acceptFileTypes", allowMultiple: "allowMultiple", fields: "fields", isAzureUpload: "isAzureUpload", allowResize: "allowResize" }, outputs: { fileUrl: "fileUrl", uploadFileOnReturn: "uploadFileOnReturn" }, ngImport: i0, template: "<div class=\"field-resizer\">\n<!-- file Upload Component-->\n<input\n pInputText\n #fileInput\n type=\"file\"\n id=\"file\"\n [accept]=\"acceptFileTypes\"\n [multiple]=\"allowMultiple\"\n (change)=\"uploadFile(fileInput.files)\"\n (click)=\"onClickEvent()\"\n/>\n\n<!-- Resize Input (only if allowResize is true) -->\n<div *ngIf=\"allowResize\" class=\"p-field p-grid\">\n <label for=\"resizeWidth\" class=\"p-col-fixed\" style=\"width: 30px\">Width (px):</label>\n <div class=\"p-col\">\n <input\n type=\"number\"\n pInputText\n [(ngModel)]=\"imageWidth\"\n placeholder=\"Image width\"\n (blur)=\"onResizeBlur(fileInput.files)\" \n />\n </div>\n</div>\n</div>\n", styles: [".field-resizer{display:flex;align-items:center;gap:5px}.field-resizer .p-field{position:relative;top:-10px}.field-resizer .p-field label{position:relative;top:-9px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }] }); }
|
|
66
77
|
}
|
|
67
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
68
79
|
type: Component,
|
|
69
|
-
args: [{ selector: 'se-file-upload', template: "<!-- file Upload Component-->\n<input\n pInputText\n #fileInput\n type=\"file\"\n id=\"file\"\n [accept]=\"acceptFileTypes\"\n [multiple]=\"allowMultiple\"\n (change)=\"uploadFile(fileInput.files)\"\n (click)=\"onClickEvent()\"\n/>\n" }]
|
|
80
|
+
args: [{ selector: 'se-file-upload', template: "<div class=\"field-resizer\">\n<!-- file Upload Component-->\n<input\n pInputText\n #fileInput\n type=\"file\"\n id=\"file\"\n [accept]=\"acceptFileTypes\"\n [multiple]=\"allowMultiple\"\n (change)=\"uploadFile(fileInput.files)\"\n (click)=\"onClickEvent()\"\n/>\n\n<!-- Resize Input (only if allowResize is true) -->\n<div *ngIf=\"allowResize\" class=\"p-field p-grid\">\n <label for=\"resizeWidth\" class=\"p-col-fixed\" style=\"width: 30px\">Width (px):</label>\n <div class=\"p-col\">\n <input\n type=\"number\"\n pInputText\n [(ngModel)]=\"imageWidth\"\n placeholder=\"Image width\"\n (blur)=\"onResizeBlur(fileInput.files)\" \n />\n </div>\n</div>\n</div>\n", styles: [".field-resizer{display:flex;align-items:center;gap:5px}.field-resizer .p-field{position:relative;top:-10px}.field-resizer .p-field label{position:relative;top:-9px}\n"] }]
|
|
70
81
|
}], ctorParameters: () => [{ type: i1.RequestService }, { type: i2.AlertService }], propDecorators: { acceptFileTypes: [{
|
|
71
82
|
type: Input
|
|
72
83
|
}], allowMultiple: [{
|
|
@@ -75,9 +86,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
75
86
|
type: Input
|
|
76
87
|
}], isAzureUpload: [{
|
|
77
88
|
type: Input
|
|
89
|
+
}], allowResize: [{
|
|
90
|
+
type: Input
|
|
78
91
|
}], fileUrl: [{
|
|
79
92
|
type: Output
|
|
80
93
|
}], uploadFileOnReturn: [{
|
|
81
94
|
type: Output
|
|
82
95
|
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2UtdWktdG9vbGtpdC9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBUXpFLE1BQU0sT0FBTyxtQkFBbUI7SUFVOUIsWUFDVSxjQUE4QixFQUM5QixZQUEwQjtRQUQxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFWM0Isa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFL0Isa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFDOUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFNUIsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hELHVCQUFrQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBS2xFLENBQUM7SUFFSixRQUFRLEtBQVUsQ0FBQztJQUduQixZQUFZLENBQUMsS0FBSztRQUNsQixJQUFJLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVDLFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksYUFBYSxHQUFVLEVB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QUMsS0FBSyxHQUFHLGFBQWEsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztrSUE3RVUsbUJBQW1CO3NIQUFuQixtQkFBbUIsK1JDVGhDLG9zQkEyQkE7OzRGRGxCYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsZ0JBQWdCOzhHQUtqQixlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVTZWxlY3RGaWxlVHlwZSwgSUZvcm1GaWVsZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9mb3JtLm1vZGVsJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0LnNlcnZpY2UnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2UtZmlsZS11cGxvYWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgYWNjZXB0RmlsZVR5cGVzOiBhbnk7XG4gIEBJbnB1dCgpIGFsbG93TXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZmllbGRzOiBhbnk7XG4gIEBJbnB1dCgpIGlzQXp1cmVVcGxvYWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBhbGxvd1Jlc2l6ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpbWFnZVdpZHRoOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBmaWxlVXJsOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHVwbG9hZEZpbGVPblJldHVybjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXF1ZXN0U2VydmljZTogUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG5cbiAgb25SZXNpemVCbHVyKGZpbGVzKSB7XG4gIGlmIChmaWxlcz8ubGVuZ3RoID4gMCkge1xuICAgIHRoaXMudXBsb2FkRmlsZShmaWxlcyk7XG4gIH1cbn1cblxuICB1cGxvYWRGaWxlKGZpbGVzOiBhbnkpIHtcbiAgICBsZXQgZXhjZWxGaWxlRGF0YTogYW55W10gPSBbXTtcbiAgICBsZXQgZmlsZURhdGEgPSBuZXcgRm9ybURhdGE7IFxuICAgIGxldCBjaG9vc2VGaWxlOmJvb2xlYW4gPSBmYWxzZTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoZmlsZXNbaV0pIHtcbiAgICAgICAgY2hvb3NlRmlsZSA9IHRydWU7XG4gICAgICAgIGZpbGVEYXRhLmFwcGVuZChmaWxlc1tpXS5uYW1lLCBmaWxlc1tpXSk7XG4gICAgICAgIGV4Y2VsRmlsZURhdGEucHVzaChmaWxlc1tpXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZpbGVEYXRhICYmIGNob29zZUZpbGUgJiYgdGhpcy5pc0F6dXJlVXBsb2FkKSB7XG4gICAgICBpZiAodGhpcy5maWVsZHMgJiYgdGhpcy5maWVsZHMudW5pcXVlS2V5Py5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZpbGVEYXRhLmFwcGVuZCgndW5pcXVlS2V5JywgdGhpcy5maWVsZHM/LnVuaXF1ZUtleSk7XG4gICAgICB9ZWxzZSBpZih0aGlzLmZpZWxkcyAmJiB0aGlzLmZpZWxkcy5wYXRoU3lzdGVtQ29uZmlnPy5sZW5ndGggPiAwKXtcbiAgICAgICAgZmlsZURhdGEuYXBwZW5kKCdhenVyZUNvbnRhaW5lcicsIHRoaXMuZmllbGRzLnBhdGhTeXN0ZW1Db25maWcpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5hbGxvd1Jlc2l6ZSAmJiB0aGlzLmltYWdlV2lkdGgpIHtcbiAgICAgICAgZmlsZURhdGEuYXBwZW5kKCdpbWFnZVdpZHRoJywgdGhpcy5pbWFnZVdpZHRoLnRvU3RyaW5nKCkpO1xuICAgICAgfVxuICAgICAgdGhpcy5yZXF1ZXN0U2VydmljZS5nZXQ8YW55W10sIGFueT4oJy9VcGxvYWQnLCBmaWxlRGF0YSkuc3Vic2NyaWJlKFxuICAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoJ0ZpbGUgVXBsb2FkIFN1Y2Nlc3NmdWxseS4nKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkcz8ub25SZXR1cm4pIHtcbiAgICAgICAgICAgICAgdGhpcy5maWVsZHMub25SZXR1cm4oZGF0YS5yZXN1bHRzKTtcbiAgICAgICAgICAgICAgdGhpcy51cGxvYWRGaWxlT25SZXR1cm4uZW1pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5maWxlVXJsLmVtaXQoZGF0YS5yZXN1bHRzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICh7IGVycm9yIH0pID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hcGlFcnJvcihlcnJvcik7XG4gICAgICAgICAgaWYgKHRoaXMuZmllbGRzLm9uUmV0dXJuKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkcy5vblJldHVybihlcnJvcik7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVPblJldHVybi5lbWl0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmZpZWxkcz8ub25SZXR1cm4gJiYgdGhpcy5hY2NlcHRGaWxlVHlwZXMgPT0gRVNlbGVjdEZpbGVUeXBlLkVYQ0VMKSB7XG4gICAgICAgIHRoaXMuZmllbGRzLm9uUmV0dXJuKGV4Y2VsRmlsZURhdGEpO1xuICAgICAgICB0aGlzLmZpZWxkcy52YWx1ZSA9IGV4Y2VsRmlsZURhdGE7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIG9uQ2xpY2tFdmVudCgpIHtcbiAgICBpZiAodGhpcy5maWVsZHMgJiYgdGhpcy5maWVsZHMub25DbGljaykge1xuICAgICAgdGhpcy5maWVsZHMub25DbGljaygpO1xuICAgIH1cbiAgfSAgXG59XG4iLCI8ZGl2IGNsYXNzPVwiZmllbGQtcmVzaXplclwiPlxuPCEtLSBmaWxlIFVwbG9hZCBDb21wb25lbnQtLT5cbjxpbnB1dFxuICBwSW5wdXRUZXh0XG4gICNmaWxlSW5wdXRcbiAgdHlwZT1cImZpbGVcIlxuICBpZD1cImZpbGVcIlxuICBbYWNjZXB0XT1cImFjY2VwdEZpbGVUeXBlc1wiXG4gIFttdWx0aXBsZV09XCJhbGxvd011bHRpcGxlXCJcbiAgKGNoYW5nZSk9XCJ1cGxvYWRGaWxlKGZpbGVJbnB1dC5maWxlcylcIlxuICAoY2xpY2spPVwib25DbGlja0V2ZW50KClcIlxuLz5cblxuPCEtLSBSZXNpemUgSW5wdXQgKG9ubHkgaWYgYWxsb3dSZXNpemUgaXMgdHJ1ZSkgLS0+XG48ZGl2ICpuZ0lmPVwiYWxsb3dSZXNpemVcIiBjbGFzcz1cInAtZmllbGQgcC1ncmlkXCI+XG4gIDxsYWJlbCBmb3I9XCJyZXNpemVXaWR0aFwiIGNsYXNzPVwicC1jb2wtZml4ZWRcIiBzdHlsZT1cIndpZHRoOiAzMHB4XCI+V2lkdGggKHB4KTo8L2xhYmVsPlxuICA8ZGl2IGNsYXNzPVwicC1jb2xcIj5cbiAgICA8aW5wdXRcbiAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgcElucHV0VGV4dFxuICAgICAgWyhuZ01vZGVsKV09XCJpbWFnZVdpZHRoXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiSW1hZ2Ugd2lkdGhcIlxuICAgICAgKGJsdXIpPVwib25SZXNpemVCbHVyKGZpbGVJbnB1dC5maWxlcylcIiAgXG4gICAgLz5cbiAgPC9kaXY+XG48L2Rpdj5cbjwvZGl2PlxuIl19
|