@churchillliving/se-ui-toolkit 6.54.234 → 6.54.236

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.
@@ -1,4 +1,5 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { ESelectFileType } from '../../../models/form.model';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "../../../services/request.service";
4
5
  import * as i2 from "../../../services/alert.service";
@@ -8,20 +9,23 @@ export class FileUploadComponent {
8
9
  this.requestService = requestService;
9
10
  this.alertService = alertService;
10
11
  this.allowMultiple = false;
12
+ this.isAzureUpload = true;
11
13
  this.fileUrl = new EventEmitter();
12
14
  this.uploadFileOnReturn = new EventEmitter();
13
15
  }
14
16
  ngOnInit() { }
15
17
  uploadFile(files) {
16
- let fileData = new FormData();
18
+ let excelFileData = [];
19
+ let fileData = new FormData;
17
20
  let chooseFile = false;
18
21
  for (let i = 0; i < files.length; i++) {
19
22
  if (files[i]) {
20
23
  chooseFile = true;
21
24
  fileData.append(files[i].name, files[i]);
25
+ excelFileData.push(files[i]);
22
26
  }
23
27
  }
24
- if (fileData && chooseFile) {
28
+ if (fileData && chooseFile && this.isAzureUpload) {
25
29
  if (this.fields && this.fields.uniqueKey?.length > 0) {
26
30
  fileData.append('uniqueKey', this.fields?.uniqueKey);
27
31
  }
@@ -45,6 +49,12 @@ export class FileUploadComponent {
45
49
  }
46
50
  });
47
51
  }
52
+ else {
53
+ if (this.fields?.onReturn && this.acceptFileTypes == ESelectFileType.EXCEL) {
54
+ this.fields.onReturn(excelFileData);
55
+ this.fields.value = excelFileData;
56
+ }
57
+ }
48
58
  }
49
59
  onClickEvent() {
50
60
  if (this.fields && this.fields.onClick) {
@@ -52,7 +62,7 @@ export class FileUploadComponent {
52
62
  }
53
63
  }
54
64
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: FileUploadComponent, deps: [{ token: i1.RequestService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
55
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: FileUploadComponent, selector: "se-file-upload", inputs: { acceptFileTypes: "acceptFileTypes", allowMultiple: "allowMultiple", fields: "fields" }, 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]" }] }); }
65
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", 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]" }] }); }
56
66
  }
57
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: FileUploadComponent, decorators: [{
58
68
  type: Component,
@@ -63,9 +73,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
63
73
  type: Input
64
74
  }], fields: [{
65
75
  type: Input
76
+ }], isAzureUpload: [{
77
+ type: Input
66
78
  }], fileUrl: [{
67
79
  type: Output
68
80
  }], uploadFileOnReturn: [{
69
81
  type: Output
70
82
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2UtdWktdG9vbGtpdC9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUy9FLE1BQU0sT0FBTyxtQkFBbUI7SUFPOUIsWUFDVSxjQUE4QixFQUM5QixZQUEwQjtRQUQxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFQM0Isa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFOUIsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hELHVCQUFrQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBS2xFLENBQUM7SUFFSixRQUFRLEtBQVUsQ0FBQztJQUVuQixVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLFFBQVEsR0FBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksVUFBVSxHQUFXLEtBQUssQ0FBQztRQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDWixVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUNsQixRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUM7U0FDRjtRQUVELElBQUksUUFBUSxJQUFJLFVBQVUsRUFBRTtZQUMxQixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDcEQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQzthQUN0RDtpQkFBSyxJQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFDO2dCQUMvRCxRQUFRLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUNqRTtZQUNELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFhLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQ2hFLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxJQUFJLEVBQUU7b0JBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQztvQkFDdkQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTt3QkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7cUJBQ2hDO29CQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDakM7WUFDSCxDQUFDLEVBQ0QsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7b0JBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM1QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ2hDO1lBQ0gsQ0FBQyxDQUNGLENBQUM7U0FDSDtJQUNILENBQUM7SUFDRCxZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO2lJQXZEVSxtQkFBbUI7cUhBQW5CLG1CQUFtQixtT0NUaEMsbVBBV0E7OzJGREZhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxnQkFBZ0I7Z0lBS2pCLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFU2VsZWN0RmlsZVR5cGUsIElGb3JtRmllbGQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVxdWVzdC5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlLWZpbGUtdXBsb2FkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGFjY2VwdEZpbGVUeXBlczogYW55O1xuICBASW5wdXQoKSBhbGxvd011bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZpZWxkczogYW55O1xuICBAT3V0cHV0KCkgZmlsZVVybDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSB1cGxvYWRGaWxlT25SZXR1cm46IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVxdWVzdFNlcnZpY2U6IFJlcXVlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICB1cGxvYWRGaWxlKGZpbGVzOiBhbnkpIHtcbiAgICBsZXQgZmlsZURhdGEgPSAgbmV3IEZvcm1EYXRhKCk7IFxuICAgIGxldCBjaG9vc2VGaWxlOmJvb2xlYW4gPSBmYWxzZTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoZmlsZXNbaV0pIHtcbiAgICAgICAgY2hvb3NlRmlsZSA9IHRydWU7XG4gICAgICAgIGZpbGVEYXRhLmFwcGVuZChmaWxlc1tpXS5uYW1lLCBmaWxlc1tpXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZpbGVEYXRhICYmIGNob29zZUZpbGUpIHtcbiAgICAgIGlmICh0aGlzLmZpZWxkcyAmJiB0aGlzLmZpZWxkcy51bmlxdWVLZXk/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgZmlsZURhdGEuYXBwZW5kKCd1bmlxdWVLZXknLCB0aGlzLmZpZWxkcz8udW5pcXVlS2V5KTtcbiAgICAgIH1lbHNlIGlmKHRoaXMuZmllbGRzICYmIHRoaXMuZmllbGRzLnBhdGhTeXN0ZW1Db25maWc/Lmxlbmd0aCA+IDApe1xuICAgICAgICBmaWxlRGF0YS5hcHBlbmQoJ2F6dXJlQ29udGFpbmVyJywgdGhpcy5maWVsZHMucGF0aFN5c3RlbUNvbmZpZyk7XG4gICAgICB9XG4gICAgICB0aGlzLnJlcXVlc3RTZXJ2aWNlLmdldDxhbnlbXSwgYW55PignL1VwbG9hZCcsIGZpbGVEYXRhKS5zdWJzY3JpYmUoXG4gICAgICAgIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcygnRmlsZSBVcGxvYWQgU3VjY2Vzc2Z1bGx5LicpO1xuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGRzPy5vblJldHVybikge1xuICAgICAgICAgICAgICB0aGlzLmZpZWxkcy5vblJldHVybihkYXRhLnJlc3VsdHMpO1xuICAgICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVPblJldHVybi5lbWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmZpbGVVcmwuZW1pdChkYXRhLnJlc3VsdHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKHsgZXJyb3IgfSkgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFwaUVycm9yKGVycm9yKTtcbiAgICAgICAgICBpZiAodGhpcy5maWVsZHMub25SZXR1cm4pIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGRzLm9uUmV0dXJuKGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkRmlsZU9uUmV0dXJuLmVtaXQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIG9uQ2xpY2tFdmVudCgpIHtcbiAgICBpZiAodGhpcy5maWVsZHMgJiYgdGhpcy5maWVsZHMub25DbGljaykge1xuICAgICAgdGhpcy5maWVsZHMub25DbGljaygpO1xuICAgIH1cbiAgfSAgXG59XG4iLCI8IS0tIGZpbGUgVXBsb2FkIENvbXBvbmVudC0tPlxuPGlucHV0XG4gIHBJbnB1dFRleHRcbiAgI2ZpbGVJbnB1dFxuICB0eXBlPVwiZmlsZVwiXG4gIGlkPVwiZmlsZVwiXG4gIFthY2NlcHRdPVwiYWNjZXB0RmlsZVR5cGVzXCJcbiAgW211bHRpcGxlXT1cImFsbG93TXVsdGlwbGVcIlxuICAoY2hhbmdlKT1cInVwbG9hZEZpbGUoZmlsZUlucHV0LmZpbGVzKVwiXG4gIChjbGljayk9XCJvbkNsaWNrRXZlbnQoKVwiXG4vPlxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2UtdWktdG9vbGtpdC9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLDRCQUE0QixDQUFDOzs7OztBQVF6RSxNQUFNLE9BQU8sbUJBQW1CO0lBUTlCLFlBQ1UsY0FBOEIsRUFDOUIsWUFBMEI7UUFEMUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUjNCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRS9CLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBQzdCLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoRCx1QkFBa0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUtsRSxDQUFDO0lBRUosUUFBUSxLQUFVLENBQUM7SUFFbkIsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxhQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzlCLElBQUksUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDO1FBQzVCLElBQUksVUFBVSxHQUFXLEtBQUssQ0FBQztRQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZ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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRVNlbGVjdEZpbGVUeXBlLCBJRm9ybUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBSZXF1ZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3Quc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZS1maWxlLXVwbG9hZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBhY2NlcHRGaWxlVHlwZXM6IGFueTtcbiAgQElucHV0KCkgYWxsb3dNdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBmaWVsZHM6IGFueTtcbiAgQElucHV0KCkgaXNBenVyZVVwbG9hZDogYm9vbGVhbiA9IHRydWU7XG4gIEBPdXRwdXQoKSBmaWxlVXJsOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHVwbG9hZEZpbGVPblJldHVybjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXF1ZXN0U2VydmljZTogUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIHVwbG9hZEZpbGUoZmlsZXM6IGFueSkge1xuICAgIGxldCBleGNlbEZpbGVEYXRhOiBhbnlbXSA9IFtdO1xuICAgIGxldCBmaWxlRGF0YSA9IG5ldyBGb3JtRGF0YTsgXG4gICAgbGV0IGNob29zZUZpbGU6Ym9vbGVhbiA9IGZhbHNlO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChmaWxlc1tpXSkge1xuICAgICAgICBjaG9vc2VGaWxlID0gdHJ1ZTtcbiAgICAgICAgZmlsZURhdGEuYXBwZW5kKGZpbGVzW2ldLm5hbWUsIGZpbGVzW2ldKTtcbiAgICAgICAgZXhjZWxGaWxlRGF0YS5wdXNoKGZpbGVzW2ldKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmlsZURhdGEgJiYgY2hvb3NlRmlsZSAmJiB0aGlzLmlzQXp1cmVVcGxvYWQpIHtcbiAgICAgIGlmICh0aGlzLmZpZWxkcyAmJiB0aGlzLmZpZWxkcy51bmlxdWVLZXk/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgZmlsZURhdGEuYXBwZW5kKCd1bmlxdWVLZXknLCB0aGlzLmZpZWxkcz8udW5pcXVlS2V5KTtcbiAgICAgIH1lbHNlIGlmKHRoaXMuZmllbGRzICYmIHRoaXMuZmllbGRzLnBhdGhTeXN0ZW1Db25maWc/Lmxlbmd0aCA+IDApe1xuICAgICAgICBmaWxlRGF0YS5hcHBlbmQoJ2F6dXJlQ29udGFpbmVyJywgdGhpcy5maWVsZHMucGF0aFN5c3RlbUNvbmZpZyk7XG4gICAgICB9XG4gICAgICB0aGlzLnJlcXVlc3RTZXJ2aWNlLmdldDxhbnlbXSwgYW55PignL1VwbG9hZCcsIGZpbGVEYXRhKS5zdWJzY3JpYmUoXG4gICAgICAgIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcygnRmlsZSBVcGxvYWQgU3VjY2Vzc2Z1bGx5LicpO1xuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGRzPy5vblJldHVybikge1xuICAgICAgICAgICAgICB0aGlzLmZpZWxkcy5vblJldHVybihkYXRhLnJlc3VsdHMpO1xuICAgICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVPblJldHVybi5lbWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmZpbGVVcmwuZW1pdChkYXRhLnJlc3VsdHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKHsgZXJyb3IgfSkgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFwaUVycm9yKGVycm9yKTtcbiAgICAgICAgICBpZiAodGhpcy5maWVsZHMub25SZXR1cm4pIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGRzLm9uUmV0dXJuKGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkRmlsZU9uUmV0dXJuLmVtaXQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaWYgKHRoaXMuZmllbGRzPy5vblJldHVybiAmJiB0aGlzLmFjY2VwdEZpbGVUeXBlcyA9PSBFU2VsZWN0RmlsZVR5cGUuRVhDRUwpIHtcbiAgICAgICAgdGhpcy5maWVsZHMub25SZXR1cm4oZXhjZWxGaWxlRGF0YSk7XG4gICAgICAgIHRoaXMuZmllbGRzLnZhbHVlID0gZXhjZWxGaWxlRGF0YTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgb25DbGlja0V2ZW50KCkge1xuICAgIGlmICh0aGlzLmZpZWxkcyAmJiB0aGlzLmZpZWxkcy5vbkNsaWNrKSB7XG4gICAgICB0aGlzLmZpZWxkcy5vbkNsaWNrKCk7XG4gICAgfVxuICB9ICBcbn1cbiIsIjwhLS0gZmlsZSBVcGxvYWQgQ29tcG9uZW50LS0+XG48aW5wdXRcbiAgcElucHV0VGV4dFxuICAjZmlsZUlucHV0XG4gIHR5cGU9XCJmaWxlXCJcbiAgaWQ9XCJmaWxlXCJcbiAgW2FjY2VwdF09XCJhY2NlcHRGaWxlVHlwZXNcIlxuICBbbXVsdGlwbGVdPVwiYWxsb3dNdWx0aXBsZVwiXG4gIChjaGFuZ2UpPVwidXBsb2FkRmlsZShmaWxlSW5wdXQuZmlsZXMpXCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2tFdmVudCgpXCJcbi8+XG4iXX0=