@seniorsistemas/angular-components 17.8.8 → 17.8.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +61 -24
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +1 -1
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/dynamic-form/configurations/fields/profile-picture.d.ts +2 -2
  6. package/components/dynamic-form/dynamic-form.d.ts +1 -0
  7. package/components/dynamic-form/dynamic-form.directive.d.ts +3 -2
  8. package/components/file-upload/index.d.ts +1 -1
  9. package/components/profile-picture-picker/index.d.ts +1 -1
  10. package/components/profile-picture-picker/profile-picture-picker.component.d.ts +7 -4
  11. package/esm2015/components/country-phone-picker/country-phone-picker.component.js +1 -1
  12. package/esm2015/components/dynamic-form/components/fields/password/password-field.component.js +1 -1
  13. package/esm2015/components/dynamic-form/configurations/fields/profile-picture.js +1 -1
  14. package/esm2015/components/dynamic-form/dynamic-form.directive.js +5 -2
  15. package/esm2015/components/dynamic-form/dynamic-form.js +23 -4
  16. package/esm2015/components/file-upload/file-upload.component.js +2 -2
  17. package/esm2015/components/file-upload/index.js +2 -2
  18. package/esm2015/components/profile-picture-picker/index.js +1 -1
  19. package/esm2015/components/profile-picture-picker/profile-picture-picker.component.js +25 -14
  20. package/esm5/components/country-phone-picker/country-phone-picker.component.js +1 -1
  21. package/esm5/components/dynamic-form/components/fields/password/password-field.component.js +1 -1
  22. package/esm5/components/dynamic-form/configurations/fields/profile-picture.js +1 -1
  23. package/esm5/components/dynamic-form/dynamic-form.directive.js +5 -2
  24. package/esm5/components/dynamic-form/dynamic-form.js +23 -4
  25. package/esm5/components/file-upload/file-upload.component.js +2 -2
  26. package/esm5/components/file-upload/index.js +2 -2
  27. package/esm5/components/profile-picture-picker/index.js +1 -1
  28. package/esm5/components/profile-picture-picker/profile-picture-picker.component.js +29 -14
  29. package/fesm2015/seniorsistemas-angular-components.js +50 -17
  30. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  31. package/fesm5/seniorsistemas-angular-components.js +54 -17
  32. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  33. package/package.json +1 -1
  34. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -13,16 +13,20 @@ let ProfilePicturePickerComponent = ProfilePicturePickerComponent_1 = class Prof
13
13
  this.translateService = translateService;
14
14
  this.aspectRatio = 1;
15
15
  this.supportedExtensions = [];
16
- this.imageChange = new EventEmitter();
16
+ /**
17
+ * @deprecated Use imageChange instead.
18
+ */
17
19
  this.changedImage = new EventEmitter();
20
+ this.imageChange = new EventEmitter();
18
21
  this.removedImage = new EventEmitter();
19
22
  this.invalidFile = new EventEmitter();
20
23
  }
24
+ get imageBase64() {
25
+ var _a;
26
+ return typeof this.image === "string" ? this.image : (_a = this.image) === null || _a === void 0 ? void 0 : _a.base64;
27
+ }
21
28
  writeValue(value) {
22
- this._value = value;
23
- if (value) {
24
- this.image = value.base64;
25
- }
29
+ this.image = value;
26
30
  }
27
31
  registerOnChange(onChange) {
28
32
  this._onChange = onChange;
@@ -103,12 +107,19 @@ let ProfilePicturePickerComponent = ProfilePicturePickerComponent_1 = class Prof
103
107
  fileReader.onloadend = (fileEvent) => {
104
108
  this.imageCropperService.show(Object.assign({ imageSource: fileEvent.target.result, croppedImage: image => {
105
109
  var _a;
106
- const data = { source: file, base64: image };
107
- this.image = image;
108
- this.imageChange.emit(data);
109
110
  this.changedImage.emit(image);
110
- this._value = { source: file, base64: image };
111
- (_a = this._onChange) === null || _a === void 0 ? void 0 : _a.call(this, this._value);
111
+ const data = { source: file, base64: image };
112
+ // Se o tipo do image for string eu preciso atualizar e mandar para o imageChange uma string.
113
+ // Se for ProfilePicturePickerData eu preciso mandar o data completo.
114
+ if (typeof this.image === "string") {
115
+ this.image = image;
116
+ this.imageChange.emit(image);
117
+ }
118
+ else {
119
+ this.image = data;
120
+ this.imageChange.emit(data);
121
+ }
122
+ (_a = this._onChange) === null || _a === void 0 ? void 0 : _a.call(this, this.image);
112
123
  }, changeImage: () => this.selectPhoto(), allowSelectAnother: false, aspectRatio: this.aspectRatio }, this.cropperLabelsConfig));
113
124
  };
114
125
  }
@@ -213,10 +224,10 @@ __decorate([
213
224
  ], ProfilePicturePickerComponent.prototype, "fileInput", void 0);
214
225
  __decorate([
215
226
  Output()
216
- ], ProfilePicturePickerComponent.prototype, "imageChange", void 0);
227
+ ], ProfilePicturePickerComponent.prototype, "changedImage", void 0);
217
228
  __decorate([
218
229
  Output()
219
- ], ProfilePicturePickerComponent.prototype, "changedImage", void 0);
230
+ ], ProfilePicturePickerComponent.prototype, "imageChange", void 0);
220
231
  __decorate([
221
232
  Output()
222
233
  ], ProfilePicturePickerComponent.prototype, "removedImage", void 0);
@@ -238,7 +249,7 @@ __decorate([
238
249
  ProfilePicturePickerComponent = ProfilePicturePickerComponent_1 = __decorate([
239
250
  Component({
240
251
  selector: "s-profile-picture-picker",
241
- template: "<p-confirmDialog></p-confirmDialog>\n\n<input #fileInput [accept]=\"accept\" class=\"file-input\" type=\"file\" (change)=\"photoSelected($event)\">\n<div #uploadPicture class=\"upload-picture\">\n <s-thumbnail\n #thumbnail\n iconClass=\"far fa-user\"\n [imageSource]=\"image\"\n [hasAction]=\"!image\"\n (click)=\"selectPhoto()\">\n </s-thumbnail>\n <div #info class=\"info\">\n <ng-container *ngIf=\"image; then withImage; else noImage\"></ng-container>\n <p class=\"subtitle\">{{ subtitle }}</p>\n </div>\n</div>\n\n<ng-template #withImage>\n <div class=\"buttons\">\n <s-button\n [label]=\"changeButtonLabel || 'platform.angular_components.change_photo' | translate\"\n priority=\"primary\"\n (onClick)=\"selectPhoto()\">\n </s-button>\n <s-button\n [label]=\"removeButtonLabel || 'platform.angular_components.remove' | translate\"\n priority=\"secondary\"\n (onClick)=\"removePhoto()\">\n </s-button>\n </div>\n</ng-template>\n\n<ng-template #noImage>\n <p class=\"title\">\n {{ simpleTitle || 'platform.angular_components.drag_your_photo_or' | translate }}\n <span\n class=\"action-title\"\n (click)=\"selectPhoto()\">\n {{ actionTitle || 'platform.angular_components.select_a_file' | translate }}\n </span>\n </p>\n</ng-template>",
252
+ template: "<p-confirmDialog></p-confirmDialog>\n\n<input #fileInput [accept]=\"accept\" class=\"file-input\" type=\"file\" (change)=\"photoSelected($event)\">\n<div #uploadPicture class=\"upload-picture\">\n <s-thumbnail\n #thumbnail\n iconClass=\"far fa-user\"\n [imageSource]=\"imageBase64\"\n [hasAction]=\"!image\"\n (click)=\"selectPhoto()\">\n </s-thumbnail>\n <div #info class=\"info\">\n <ng-container *ngIf=\"image; then withImage; else noImage\"></ng-container>\n <p class=\"subtitle\">{{ subtitle }}</p>\n </div>\n</div>\n\n<ng-template #withImage>\n <div class=\"buttons\">\n <s-button\n [label]=\"changeButtonLabel || 'platform.angular_components.change_photo' | translate\"\n priority=\"primary\"\n (onClick)=\"selectPhoto()\">\n </s-button>\n <s-button\n [label]=\"removeButtonLabel || 'platform.angular_components.remove' | translate\"\n priority=\"secondary\"\n (onClick)=\"removePhoto()\">\n </s-button>\n </div>\n</ng-template>\n\n<ng-template #noImage>\n <p class=\"title\">\n {{ simpleTitle || 'platform.angular_components.drag_your_photo_or' | translate }}\n <span\n class=\"action-title\"\n (click)=\"selectPhoto()\">\n {{ actionTitle || 'platform.angular_components.select_a_file' | translate }}\n </span>\n </p>\n</ng-template>",
242
253
  providers: [{
243
254
  provide: NG_VALUE_ACCESSOR,
244
255
  useExisting: forwardRef(() => ProfilePicturePickerComponent_1),
@@ -248,4 +259,4 @@ ProfilePicturePickerComponent = ProfilePicturePickerComponent_1 = __decorate([
248
259
  })
249
260
  ], ProfilePicturePickerComponent);
250
261
  export { ProfilePicturePickerComponent };
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1waWN0dXJlLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wcm9maWxlLXBpY3R1cmUtcGlja2VyL3Byb2ZpbGUtcGljdHVyZS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNKLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQTBDLGNBQWMsRUFBa0QsTUFBTSxnQkFBZ0IsQ0FBQztBQVl4SSxJQUFhLDZCQUE2QixxQ0FBMUMsTUFBYSw2QkFBNkI7SUFpRXZDLFlBQ29CLG1CQUF3QyxFQUN4QyxtQkFBd0MsRUFDeEMsZ0JBQWtDO1FBRmxDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBekQvQyxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQXFCaEIsd0JBQW1CLEdBQWEsRUFBRSxDQUFDO1FBa0JuQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFBO1FBRzFELGlCQUFZLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHeEQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFB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QUFHeEI7SUFEQyxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDO2dFQUNoQjtBQUc3QjtJQURDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUM7Z0VBQ2hCO0FBRzdCO0lBREMsTUFBTSxFQUFFO2tFQUN3RDtBQUdqRTtJQURDLE1BQU0sRUFBRTttRUFDc0Q7QUFHL0Q7SUFEQyxNQUFNLEVBQUU7bUVBQ2dDO0FBR3pDO0lBREMsTUFBTSxFQUFFO2tFQUNtRTtBQWdDNUU7SUFEQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7K0RBSXBDO0FBR0Q7SUFEQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7Z0VBSXJDO0FBR0Q7SUFEQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7MkRBZWhDO0FBSUQ7SUFEQyxZQUFZLENBQUMsZUFBZSxDQUFDOzZEQWE3QjtBQXJJUyw2QkFBNkI7SUFWekMsU0FBUyxDQUFDO1FBQ1IsUUFBUSxFQUFFLDBCQUEwQjtRQUNwQyw2M0NBQW9EO1FBRXBELFNBQVMsRUFBRSxDQUFDO2dCQUNULE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsK0JBQTZCLENBQUM7Z0JBQzVELEtBQUssRUFBRSxJQUFJO2FBQ2IsQ0FBQzs7S0FDSixDQUFDO0dBQ1csNkJBQTZCLENBcVB6QztTQXJQWSw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgQ29tcG9uZW50LFxuICAgRWxlbWVudFJlZixcbiAgIEV2ZW50RW1pdHRlcixcbiAgIGZvcndhcmRSZWYsXG4gICBIb3N0TGlzdGVuZXIsXG4gICBJbnB1dCxcbiAgIE9uSW5pdCxcbiAgIE91dHB1dCxcbiAgIFZpZXdDaGlsZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcblxuaW1wb3J0IHsgSW1hZ2VDcm9wcGVyU2VydmljZSB9IGZyb20gXCIuLi9pbWFnZS1jcm9wcGVyL2ltYWdlLWNyb3BwZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uVGV4dHMsIENyb3BwZXJMYWJlbHNDb25maWcsIEZpbGVWYWxpZGF0aW9uLCBGaWxlVmFsaWRhdGlvbkVycm9ycywgUHJvZmlsZVBpY3R1cmVQaWNrZXJEYXRhIH0gZnJvbSBcIi4vbW9kZWxzL2luZGV4XCI7XG5cbkBDb21wb25lbnQoe1xuICAgc2VsZWN0b3I6IFwicy1wcm9maWxlLXBpY3R1cmUtcGlja2VyXCIsXG4gICB0ZW1wbGF0ZVVybDogXCJwcm9maWxlLXBpY3R1cmUtcGlja2VyLmNvbXBvbmVudC5odG1sXCIsXG4gICBzdHlsZVVybHM6IFtcInByb2ZpbGUtcGljdHVyZS1waWNrZXIuY29tcG9uZW50LnNjc3NcIl0sXG4gICBwcm92aWRlcnM6IFt7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFByb2ZpbGVQaWN0dXJlUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFByb2ZpbGVQaWN0dXJlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICBASW5wdXQoKVxuICAgcHVibGljIHNpbXBsZVRpdGxlOiBzdHJpbmc7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgYWN0aW9uVGl0bGU6IHN0cmluZztcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBzdWJ0aXRsZTogc3RyaW5nO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIGFzcGVjdFJhdGlvID0gMTtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBjcm9wcGVyTGFiZWxzQ29uZmlnOiBDcm9wcGVyTGFiZWxzQ29uZmlnO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIHJlbW92ZUJ1dHRvbkxhYmVsOiBzdHJpbmc7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgY2hhbmdlQnV0dG9uTGFiZWw6IHN0cmluZztcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBjb25maXJtYXRpb25UZXh0czogQ29uZmlybWF0aW9uVGV4dHM7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgbWF4RmlsZVNpemU6IG51bWJlcjtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBhY2NlcHQ6IHN0cmluZztcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBzdXBwb3J0ZWRFeHRlbnNpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIGltYWdlOiBzdHJpbmc7XG5cbiAgIEBWaWV3Q2hpbGQoXCJ1cGxvYWRQaWN0dXJlXCIpXG4gICBwdWJsaWMgdXBsb2FkUGljdHVyZTogRWxlbWVudFJlZjtcblxuICAgQFZpZXdDaGlsZChcImluZm9cIilcbiAgIHB1YmxpYyBpbmZvOiBFbGVtZW50UmVmO1xuXG4gICBAVmlld0NoaWxkKFwidGh1bWJuYWlsXCIsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgcHVibGljIHRodW1ibmFpbDogRWxlbWVudFJlZjtcblxuICAgQFZpZXdDaGlsZChcImZpbGVJbnB1dFwiLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgIHB1YmxpYyBmaWxlSW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgIEBPdXRwdXQoKVxuICAgcHVibGljIGltYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxQcm9maWxlUGljdHVyZVBpY2tlckRhdGE+KClcblxuICAgQE91dHB1dCgpXG4gICBwdWJsaWMgY2hhbmdlZEltYWdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgQE91dHB1dCgpXG4gICBwdWJsaWMgcmVtb3ZlZEltYWdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICBAT3V0cHV0KClcbiAgIHB1YmxpYyBpbnZhbGlkRmlsZTogRXZlbnRFbWl0dGVyPEZpbGVWYWxpZGF0aW9uRXJyb3JzPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgcHJpdmF0ZSBfdmFsdWU6IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YTtcbiAgIHByaXZhdGUgX29uQ2hhbmdlOiAodmFsdWU6IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSkgPT4gdm9pZDtcbiAgIHByaXZhdGUgX29uVG91Y2hlZDogKCkgPT4gdm9pZDtcblxuICAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGltYWdlQ3JvcHBlclNlcnZpY2U6IEltYWdlQ3JvcHBlclNlcnZpY2UsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICApIHsgfVxuXG4gICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogUHJvZmlsZVBpY3R1cmVQaWNrZXJEYXRhKTogdm9pZCB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICB0aGlzLmltYWdlID0gdmFsdWUuYmFzZTY0O1xuICAgICAgfVxuICAgfVxuXG4gICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogKHZhbHVlOiBQcm9maWxlUGljdHVyZVBpY2tlckRhdGEpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgIHRoaXMuX29uQ2hhbmdlID0gb25DaGFuZ2U7XG4gICB9XG5cbiAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgIHRoaXMuX29uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgIH1cblxuICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy5fbm9ybWFsaXplU3Vwb3J0ZWRFeHRlbnNpb25zKCk7XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJkcmFnb3ZlclwiLCBbXCIkZXZlbnRcIl0pXG4gICBwdWJsaWMgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJkcmFnbGVhdmVcIiwgW1wiJGV2ZW50XCJdKVxuICAgcHVibGljIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcImRyb3BcIiwgW1wiJGV2ZW50XCJdKVxuICAgcHVibGljIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgIHRoaXMuX29uVG91Y2hlZD8uKCk7XG5cbiAgICAgIGNvbnN0IGZpbGVzOiBGaWxlW10gPSBbXTtcbiAgICAgIGNvbnN0IGRhdGFUcmFuc2ZlckZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGFUcmFuc2ZlckZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICBmaWxlcy5wdXNoKGRhdGFUcmFuc2ZlckZpbGVzLml0ZW0oaSkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9zaG93SW1hZ2VDcm9wcGVyKGZpbGVzKTtcbiAgIH1cblxuICAgLy8gVmVyaWZpY2FuZG8gbyByZWRpbWVuc2lvbmFtZW50byBwYXJhIGFqdXN0YXIgbyBkZXNpZ24gcGFyYSBmaWNhciByZXNwb25zaXZvLlxuICAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIilcbiAgIHB1YmxpYyBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnVwbG9hZFBpY3R1cmUgJiYgdGhpcy5pbmZvICYmIHRoaXMudGh1bWJuYWlsKSB7XG4gICAgICAgICBjb25zdCB1cGxvYWRQaWN0dXJlV2lkdGggPSB0aGlzLl9nZXRXaWR0aEVsZW1lbnQodGhpcy51cGxvYWRQaWN0dXJlKTtcbiAgICAgICAgIGNvbnN0IGluZm9XaWR0aCA9IHRoaXMuX2dldFdpZHRoRWxlbWVudCh0aGlzLmluZm8pO1xuICAgICAgICAgY29uc3QgdGh1bWJuYWlsV2lkdGggPSB0aGlzLl9nZXRXaWR0aEVsZW1lbnQodGhpcy50aHVtYm5haWwpO1xuXG4gICAgICAgICBpZiAodGh1bWJuYWlsV2lkdGggKyBpbmZvV2lkdGggPiB1cGxvYWRQaWN0dXJlV2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkUGljdHVyZS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJ1cGxvYWQtcGljdHVyZS0tc21hbGxcIik7XG4gICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRQaWN0dXJlLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcInVwbG9hZC1waWN0dXJlLS1zbWFsbFwiKTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cblxuICAgcHVibGljIHNlbGVjdFBob3RvKCk6IHZvaWQge1xuICAgICAgY29uc3QgZmlsZUlucHV0RWxlbWVudCA9IHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBmaWxlSW5wdXRFbGVtZW50LnZhbHVlID0gXCJcIjtcbiAgICAgIGZpbGVJbnB1dEVsZW1lbnQuY2xpY2soKTtcblxuICAgICAgdGhpcy5fb25Ub3VjaGVkPy4oKTtcbiAgIH1cblxuICAgcHVibGljIHJlbW92ZVBob3RvKCk6IHZvaWQge1xuICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgbWVzc2FnZTogdGhpcy5jb25maXJtYXRpb25UZXh0cz8ucmVtb3ZhbE1lc3NhZ2UgPz8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuY29uZmlybWF0aW9uX3JlbW92ZV9pbWFnZVwiKSxcbiAgICAgICAgIGFjY2VwdExhYmVsOiB0aGlzLmNvbmZpcm1hdGlvblRleHRzPy5yZW1vdmFsQWNjZXB0TGFiZWwgPz8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMucmVtb3ZlXCIpLFxuICAgICAgICAgcmVqZWN0TGFiZWw6IHRoaXMuY29uZmlybWF0aW9uVGV4dHM/LnJlbW92YWxSZWplY3RMYWJlbCA/PyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcInBsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5jYW5jZWxcIiksXG4gICAgICAgICBoZWFkZXI6IHRoaXMuY29uZmlybWF0aW9uVGV4dHM/LnJlbW92YWxIZWFkZXIgPz8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMucmVtb3ZlX2ltYWdlXCIpLFxuICAgICAgICAgcmVqZWN0QnV0dG9uU3R5bGVDbGFzczogXCJ1aS1idXR0b24tc2Vjb25kYXJ5XCIsXG4gICAgICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVJbnB1dEVsZW1lbnQgPSB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgZmlsZUlucHV0RWxlbWVudC52YWx1ZSA9IFwiXCI7XG4gICAgICAgICAgICB0aGlzLmltYWdlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlZEltYWdlLmVtaXQoKTtcbiAgICAgICAgIH0sXG4gICAgICB9KTtcbiAgIH1cblxuICAgcHVibGljIHBob3RvU2VsZWN0ZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgdGhpcy5fc2hvd0ltYWdlQ3JvcHBlcihldmVudC5zcmNFbGVtZW50LmZpbGVzKTtcbiAgIH1cblxuICAgcHJpdmF0ZSBfc2hvd0ltYWdlQ3JvcHBlcihmaWxlczogRmlsZVtdKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMuX3ZhbGlkYXRlRGF0YShmaWxlcykpIHtcbiAgICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZSA9IGZpbGVzWzBdO1xuXG4gICAgICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIGZpbGVSZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgIGZpbGVSZWFkZXIub25sb2FkZW5kID0gKGZpbGVFdmVudDogYW55KSA9PiB7XG4gICAgICAgICB0aGlzLmltYWdlQ3JvcHBlclNlcnZpY2Uuc2hvdyh7XG4gICAgICAgICAgICBpbWFnZVNvdXJjZTogZmlsZUV2ZW50LnRhcmdldC5yZXN1bHQsXG4gICAgICAgICAgICBjcm9wcGVkSW1hZ2U6IGltYWdlID0+IHtcbiAgICAgICAgICAgICAgIGNvbnN0IGRhdGE6IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSA9IHsgc291cmNlOiBmaWxlLCBiYXNlNjQ6IGltYWdlfTtcbiAgICAgICAgICAgICAgIHRoaXMuaW1hZ2UgPSBpbWFnZTtcbiAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VDaGFuZ2UuZW1pdChkYXRhKTtcbiAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlZEltYWdlLmVtaXQoaW1hZ2UpO1xuICAgICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB7IHNvdXJjZTogZmlsZSwgYmFzZTY0OiBpbWFnZSB9O1xuICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2U/Lih0aGlzLl92YWx1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2hhbmdlSW1hZ2U6ICgpID0+IHRoaXMuc2VsZWN0UGhvdG8oKSxcbiAgICAgICAgICAgIGFsbG93U2VsZWN0QW5vdGhlcjogZmFsc2UsXG4gICAgICAgICAgICBhc3BlY3RSYXRpbzogdGhpcy5hc3BlY3RSYXRpbyxcbiAgICAgICAgICAgIC4uLnRoaXMuY3JvcHBlckxhYmVsc0NvbmZpZyxcbiAgICAgICAgIH0pO1xuICAgICAgfTtcbiAgIH1cblxuICAgcHJpdmF0ZSBfbm9ybWFsaXplU3Vwb3J0ZWRFeHRlbnNpb25zKCk6IHZvaWQge1xuICAgICAgdGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zID0gdGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zXG4gICAgICAgICA/Lm1hcChleHRlbnNpb24gPT4gZXh0ZW5zaW9uLnJlcGxhY2UoXCIuXCIsIFwiXCIpLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xuICAgfVxuXG4gICBwcml2YXRlIF92YWxpZGF0ZURhdGEoZmlsZXM6IEZpbGVbXSk6IGJvb2xlYW4ge1xuICAgICAgaWYgKCFmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpbGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgIHRoaXMuaW52YWxpZEZpbGUuZW1pdCh7IGZpbGU6IG51bGwsIHZhbGlkYXRpb246IEZpbGVWYWxpZGF0aW9uLk1heEZpbGVMaW1pdCB9KTtcbiAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZSA9IGZpbGVzWzBdO1xuXG4gICAgICBpZiAoIWZpbGUudHlwZS5pbmNsdWRlcyhcImltYWdlXCIpKSB7XG4gICAgICAgICB0aGlzLmludmFsaWRGaWxlLmVtaXQoeyBmaWxlLCB2YWxpZGF0aW9uOiBGaWxlVmFsaWRhdGlvbi5UeXBlSW52YWxpZCB9KTtcbiAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLl92YWxpZGF0ZUZpbGVFeHRlbnNpb24oZmlsZSkpIHtcbiAgICAgICAgIHRoaXMuaW52YWxpZEZpbGUuZW1pdCh7IGZpbGUsIHZhbGlkYXRpb246IEZpbGVWYWxpZGF0aW9uLlVuc3VwcG9ydGVkRXh0ZW5zaW9uIH0pO1xuICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuX3ZhbGlkYXRlRmlsZVNpemUoZmlsZSkpIHtcbiAgICAgICAgIHRoaXMuaW52YWxpZEZpbGUuZW1pdCh7IGZpbGUsIHZhbGlkYXRpb246IEZpbGVWYWxpZGF0aW9uLk1heEZpbGVTaXplIH0pO1xuICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgIH1cblxuICAgcHJpdmF0ZSBfdmFsaWRhdGVGaWxlRXh0ZW5zaW9uKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgIGlmICh0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gZmlsZS5uYW1lLnNwbGl0KFwiLlwiKS5wb3AoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgcmV0dXJuIHRoaXMuc3VwcG9ydGVkRXh0ZW5zaW9ucy5pbmNsdWRlcyhleHRlbnNpb24pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICB9XG5cbiAgIHByaXZhdGUgX3ZhbGlkYXRlRmlsZVNpemUoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgaWYgKHRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgICAgIHJldHVybiBmaWxlLnNpemUgPD0gdGhpcy5tYXhGaWxlU2l6ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgfVxuXG4gICBwcml2YXRlIF9nZXRXaWR0aEVsZW1lbnQoZWxlbWVudDogRWxlbWVudFJlZik6IG51bWJlciB7XG4gICAgICBjb25zdCB7IGxlZnQsIHJpZ2h0IH0gPSBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICByZXR1cm4gcmlnaHQgLSBsZWZ0O1xuICAgfVxufVxuIl19
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1waWN0dXJlLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wcm9maWxlLXBpY3R1cmUtcGlja2VyL3Byb2ZpbGUtcGljdHVyZS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNKLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQTBDLGNBQWMsRUFBa0QsTUFBTSxnQkFBZ0IsQ0FBQztBQVl4SSxJQUFhLDZCQUE2QixxQ0FBMUMsTUFBYSw2QkFBNkI7SUF1RXZDLFlBQ29CLG1CQUF3QyxFQUN4QyxtQkFBd0MsRUFDeEMsZ0JBQWtDO1FBRmxDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBL0QvQyxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQXFCaEIsd0JBQW1CLEdBQWEsRUFBRSxDQUFDO1FBaUIxQzs7VUFFRTtRQUVLLGlCQUFZLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHeEQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBcUMsQ0FBQTtRQUduRSxpQkFBWSxHQUFHLElB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bnQiOlsiaW1wb3J0IHtcbiAgIENvbXBvbmVudCxcbiAgIEVsZW1lbnRSZWYsXG4gICBFdmVudEVtaXR0ZXIsXG4gICBmb3J3YXJkUmVmLFxuICAgSG9zdExpc3RlbmVyLFxuICAgSW5wdXQsXG4gICBPbkluaXQsXG4gICBPdXRwdXQsXG4gICBWaWV3Q2hpbGQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5cbmltcG9ydCB7IEltYWdlQ3JvcHBlclNlcnZpY2UgfSBmcm9tIFwiLi4vaW1hZ2UtY3JvcHBlci9pbWFnZS1jcm9wcGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblRleHRzLCBDcm9wcGVyTGFiZWxzQ29uZmlnLCBGaWxlVmFsaWRhdGlvbiwgRmlsZVZhbGlkYXRpb25FcnJvcnMsIFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSB9IGZyb20gXCIuL21vZGVscy9pbmRleFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgIHNlbGVjdG9yOiBcInMtcHJvZmlsZS1waWN0dXJlLXBpY2tlclwiLFxuICAgdGVtcGxhdGVVcmw6IFwicHJvZmlsZS1waWN0dXJlLXBpY2tlci5jb21wb25lbnQuaHRtbFwiLFxuICAgc3R5bGVVcmxzOiBbXCJwcm9maWxlLXBpY3R1cmUtcGlja2VyLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgcHJvdmlkZXJzOiBbe1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQcm9maWxlUGljdHVyZVBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9maWxlUGljdHVyZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgQElucHV0KClcbiAgIHB1YmxpYyBzaW1wbGVUaXRsZTogc3RyaW5nO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIGFjdGlvblRpdGxlOiBzdHJpbmc7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgc3VidGl0bGU6IHN0cmluZztcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBhc3BlY3RSYXRpbyA9IDE7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgY3JvcHBlckxhYmVsc0NvbmZpZzogQ3JvcHBlckxhYmVsc0NvbmZpZztcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyByZW1vdmVCdXR0b25MYWJlbDogc3RyaW5nO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIGNoYW5nZUJ1dHRvbkxhYmVsOiBzdHJpbmc7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgY29uZmlybWF0aW9uVGV4dHM6IENvbmZpcm1hdGlvblRleHRzO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIG1heEZpbGVTaXplOiBudW1iZXI7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgYWNjZXB0OiBzdHJpbmc7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgc3VwcG9ydGVkRXh0ZW5zaW9uczogc3RyaW5nW10gPSBbXTtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBpbWFnZTogc3RyaW5nIHwgUHJvZmlsZVBpY3R1cmVQaWNrZXJEYXRhO1xuXG4gICBAVmlld0NoaWxkKFwidXBsb2FkUGljdHVyZVwiKVxuICAgcHVibGljIHVwbG9hZFBpY3R1cmU6IEVsZW1lbnRSZWY7XG5cbiAgIEBWaWV3Q2hpbGQoXCJpbmZvXCIpXG4gICBwdWJsaWMgaW5mbzogRWxlbWVudFJlZjtcblxuICAgQFZpZXdDaGlsZChcInRodW1ibmFpbFwiLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgIHB1YmxpYyB0aHVtYm5haWw6IEVsZW1lbnRSZWY7XG5cbiAgIEBWaWV3Q2hpbGQoXCJmaWxlSW5wdXRcIiwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICBwdWJsaWMgZmlsZUlucHV0OiBFbGVtZW50UmVmO1xuXG4gICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGltYWdlQ2hhbmdlIGluc3RlYWQuXG4gICAqL1xuICAgQE91dHB1dCgpXG4gICBwdWJsaWMgY2hhbmdlZEltYWdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgQE91dHB1dCgpXG4gICBwdWJsaWMgaW1hZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YT4oKVxuXG4gICBAT3V0cHV0KClcbiAgIHB1YmxpYyByZW1vdmVkSW1hZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgIEBPdXRwdXQoKVxuICAgcHVibGljIGludmFsaWRGaWxlOiBFdmVudEVtaXR0ZXI8RmlsZVZhbGlkYXRpb25FcnJvcnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICBwdWJsaWMgZ2V0IGltYWdlQmFzZTY0KCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdHlwZW9mIHRoaXMuaW1hZ2UgPT09IFwic3RyaW5nXCIgPyB0aGlzLmltYWdlIDogdGhpcy5pbWFnZT8uYmFzZTY0O1xuICAgfVxuXG4gICBwcml2YXRlIF9vbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcgfCBQcm9maWxlUGljdHVyZVBpY2tlckRhdGEpID0+IHZvaWQ7XG4gICBwcml2YXRlIF9vblRvdWNoZWQ6ICgpID0+IHZvaWQ7XG5cbiAgIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBpbWFnZUNyb3BwZXJTZXJ2aWNlOiBJbWFnZUNyb3BwZXJTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgKSB7IH1cblxuICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSk6IHZvaWQge1xuICAgICAgdGhpcy5pbWFnZSA9IHZhbHVlO1xuICAgfVxuXG4gICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogKHZhbHVlOiBQcm9maWxlUGljdHVyZVBpY2tlckRhdGEpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgIHRoaXMuX29uQ2hhbmdlID0gb25DaGFuZ2U7XG4gICB9XG5cbiAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgIHRoaXMuX29uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgIH1cblxuICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy5fbm9ybWFsaXplU3Vwb3J0ZWRFeHRlbnNpb25zKCk7XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJkcmFnb3ZlclwiLCBbXCIkZXZlbnRcIl0pXG4gICBwdWJsaWMgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJkcmFnbGVhdmVcIiwgW1wiJGV2ZW50XCJdKVxuICAgcHVibGljIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcImRyb3BcIiwgW1wiJGV2ZW50XCJdKVxuICAgcHVibGljIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgIHRoaXMuX29uVG91Y2hlZD8uKCk7XG5cbiAgICAgIGNvbnN0IGZpbGVzOiBGaWxlW10gPSBbXTtcbiAgICAgIGNvbnN0IGRhdGFUcmFuc2ZlckZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGFUcmFuc2ZlckZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICBmaWxlcy5wdXNoKGRhdGFUcmFuc2ZlckZpbGVzLml0ZW0oaSkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9zaG93SW1hZ2VDcm9wcGVyKGZpbGVzKTtcbiAgIH1cblxuICAgLy8gVmVyaWZpY2FuZG8gbyByZWRpbWVuc2lvbmFtZW50byBwYXJhIGFqdXN0YXIgbyBkZXNpZ24gcGFyYSBmaWNhciByZXNwb25zaXZvLlxuICAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIilcbiAgIHB1YmxpYyBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnVwbG9hZFBpY3R1cmUgJiYgdGhpcy5pbmZvICYmIHRoaXMudGh1bWJuYWlsKSB7XG4gICAgICAgICBjb25zdCB1cGxvYWRQaWN0dXJlV2lkdGggPSB0aGlzLl9nZXRXaWR0aEVsZW1lbnQodGhpcy51cGxvYWRQaWN0dXJlKTtcbiAgICAgICAgIGNvbnN0IGluZm9XaWR0aCA9IHRoaXMuX2dldFdpZHRoRWxlbWVudCh0aGlzLmluZm8pO1xuICAgICAgICAgY29uc3QgdGh1bWJuYWlsV2lkdGggPSB0aGlzLl9nZXRXaWR0aEVsZW1lbnQodGhpcy50aHVtYm5haWwpO1xuXG4gICAgICAgICBpZiAodGh1bWJuYWlsV2lkdGggKyBpbmZvV2lkdGggPiB1cGxvYWRQaWN0dXJlV2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkUGljdHVyZS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJ1cGxvYWQtcGljdHVyZS0tc21hbGxcIik7XG4gICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRQaWN0dXJlLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcInVwbG9hZC1waWN0dXJlLS1zbWFsbFwiKTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cblxuICAgcHVibGljIHNlbGVjdFBob3RvKCk6IHZvaWQge1xuICAgICAgY29uc3QgZmlsZUlucHV0RWxlbWVudCA9IHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBmaWxlSW5wdXRFbGVtZW50LnZhbHVlID0gXCJcIjtcbiAgICAgIGZpbGVJbnB1dEVsZW1lbnQuY2xpY2soKTtcblxuICAgICAgdGhpcy5fb25Ub3VjaGVkPy4oKTtcbiAgIH1cblxuICAgcHVibGljIHJlbW92ZVBob3RvKCk6IHZvaWQge1xuICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgbWVzc2FnZTogdGhpcy5jb25maXJtYXRpb25UZXh0cz8ucmVtb3ZhbE1lc3NhZ2UgPz8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuY29uZmlybWF0aW9uX3JlbW92ZV9pbWFnZVwiKSxcbiAgICAgICAgIGFjY2VwdExhYmVsOiB0aGlzLmNvbmZpcm1hdGlvblRleHRzPy5yZW1vdmFsQWNjZXB0TGFiZWwgPz8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMucmVtb3ZlXCIpLFxuICAgICAgICAgcmVqZWN0TGFiZWw6IHRoaXMuY29uZmlybWF0aW9uVGV4dHM/LnJlbW92YWxSZWplY3RMYWJlbCA/PyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcInBsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5jYW5jZWxcIiksXG4gICAgICAgICBoZWFkZXI6IHRoaXMuY29uZmlybWF0aW9uVGV4dHM/LnJlbW92YWxIZWFkZXIgPz8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMucmVtb3ZlX2ltYWdlXCIpLFxuICAgICAgICAgcmVqZWN0QnV0dG9uU3R5bGVDbGFzczogXCJ1aS1idXR0b24tc2Vjb25kYXJ5XCIsXG4gICAgICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVJbnB1dEVsZW1lbnQgPSB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgZmlsZUlucHV0RWxlbWVudC52YWx1ZSA9IFwiXCI7XG4gICAgICAgICAgICB0aGlzLmltYWdlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlZEltYWdlLmVtaXQoKTtcbiAgICAgICAgIH0sXG4gICAgICB9KTtcbiAgIH1cblxuICAgcHVibGljIHBob3RvU2VsZWN0ZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgdGhpcy5fc2hvd0ltYWdlQ3JvcHBlcihldmVudC5zcmNFbGVtZW50LmZpbGVzKTtcbiAgIH1cblxuICAgcHJpdmF0ZSBfc2hvd0ltYWdlQ3JvcHBlcihmaWxlczogRmlsZVtdKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMuX3ZhbGlkYXRlRGF0YShmaWxlcykpIHtcbiAgICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZSA9IGZpbGVzWzBdO1xuXG4gICAgICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIGZpbGVSZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgIGZpbGVSZWFkZXIub25sb2FkZW5kID0gKGZpbGVFdmVudDogYW55KSA9PiB7XG4gICAgICAgICB0aGlzLmltYWdlQ3JvcHBlclNlcnZpY2Uuc2hvdyh7XG4gICAgICAgICAgICBpbWFnZVNvdXJjZTogZmlsZUV2ZW50LnRhcmdldC5yZXN1bHQsXG4gICAgICAgICAgICBjcm9wcGVkSW1hZ2U6IGltYWdlID0+IHtcbiAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlZEltYWdlLmVtaXQoaW1hZ2UpO1xuXG4gICAgICAgICAgICAgICBjb25zdCBkYXRhOiBQcm9maWxlUGljdHVyZVBpY2tlckRhdGEgPSB7IHNvdXJjZTogZmlsZSwgYmFzZTY0OiBpbWFnZX07XG4gICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgIC8vIFNlIG8gdGlwbyBkbyBpbWFnZSBmb3Igc3RyaW5nIGV1IHByZWNpc28gYXR1YWxpemFyIGUgbWFuZGFyIHBhcmEgbyBpbWFnZUNoYW5nZSB1bWEgc3RyaW5nLlxuICAgICAgICAgICAgICAgLy8gU2UgZm9yIFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSBldSBwcmVjaXNvIG1hbmRhciBvIGRhdGEgY29tcGxldG8uXG4gICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW1hZ2UgID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmltYWdlID0gaW1hZ2U7XG4gICAgICAgICAgICAgICAgICB0aGlzLmltYWdlQ2hhbmdlLmVtaXQoaW1hZ2UpO1xuICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2UgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZUNoYW5nZS5lbWl0KGRhdGEpO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICB0aGlzLl9vbkNoYW5nZT8uKHRoaXMuaW1hZ2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNoYW5nZUltYWdlOiAoKSA9PiB0aGlzLnNlbGVjdFBob3RvKCksXG4gICAgICAgICAgICBhbGxvd1NlbGVjdEFub3RoZXI6IGZhbHNlLFxuICAgICAgICAgICAgYXNwZWN0UmF0aW86IHRoaXMuYXNwZWN0UmF0aW8sXG4gICAgICAgICAgICAuLi50aGlzLmNyb3BwZXJMYWJlbHNDb25maWcsXG4gICAgICAgICB9KTtcbiAgICAgIH07XG4gICB9XG5cbiAgIHByaXZhdGUgX25vcm1hbGl6ZVN1cG9ydGVkRXh0ZW5zaW9ucygpOiB2b2lkIHtcbiAgICAgIHRoaXMuc3VwcG9ydGVkRXh0ZW5zaW9ucyA9IHRoaXMuc3VwcG9ydGVkRXh0ZW5zaW9uc1xuICAgICAgICAgPy5tYXAoZXh0ZW5zaW9uID0+IGV4dGVuc2lvbi5yZXBsYWNlKFwiLlwiLCBcIlwiKS50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcbiAgIH1cblxuICAgcHJpdmF0ZSBfdmFsaWRhdGVEYXRhKGZpbGVzOiBGaWxlW10pOiBib29sZWFuIHtcbiAgICAgIGlmICghZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWxlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICB0aGlzLmludmFsaWRGaWxlLmVtaXQoeyBmaWxlOiBudWxsLCB2YWxpZGF0aW9uOiBGaWxlVmFsaWRhdGlvbi5NYXhGaWxlTGltaXQgfSk7XG4gICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpbGUgPSBmaWxlc1swXTtcblxuICAgICAgaWYgKCFmaWxlLnR5cGUuaW5jbHVkZXMoXCJpbWFnZVwiKSkge1xuICAgICAgICAgdGhpcy5pbnZhbGlkRmlsZS5lbWl0KHsgZmlsZSwgdmFsaWRhdGlvbjogRmlsZVZhbGlkYXRpb24uVHlwZUludmFsaWQgfSk7XG4gICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5fdmFsaWRhdGVGaWxlRXh0ZW5zaW9uKGZpbGUpKSB7XG4gICAgICAgICB0aGlzLmludmFsaWRGaWxlLmVtaXQoeyBmaWxlLCB2YWxpZGF0aW9uOiBGaWxlVmFsaWRhdGlvbi5VbnN1cHBvcnRlZEV4dGVuc2lvbiB9KTtcbiAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLl92YWxpZGF0ZUZpbGVTaXplKGZpbGUpKSB7XG4gICAgICAgICB0aGlzLmludmFsaWRGaWxlLmVtaXQoeyBmaWxlLCB2YWxpZGF0aW9uOiBGaWxlVmFsaWRhdGlvbi5NYXhGaWxlU2l6ZSB9KTtcbiAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICB9XG5cbiAgIHByaXZhdGUgX3ZhbGlkYXRlRmlsZUV4dGVuc2lvbihmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICBpZiAodGhpcy5zdXBwb3J0ZWRFeHRlbnNpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9IGZpbGUubmFtZS5zcGxpdChcIi5cIikucG9wKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgIHJldHVybiB0aGlzLnN1cHBvcnRlZEV4dGVuc2lvbnMuaW5jbHVkZXMoZXh0ZW5zaW9uKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgfVxuXG4gICBwcml2YXRlIF92YWxpZGF0ZUZpbGVTaXplKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgIGlmICh0aGlzLm1heEZpbGVTaXplKSB7XG4gICAgICAgICByZXR1cm4gZmlsZS5zaXplIDw9IHRoaXMubWF4RmlsZVNpemU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgIH1cblxuICAgcHJpdmF0ZSBfZ2V0V2lkdGhFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnRSZWYpOiBudW1iZXIge1xuICAgICAgY29uc3QgeyBsZWZ0LCByaWdodCB9ID0gZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgcmV0dXJuIHJpZ2h0IC0gbGVmdDtcbiAgIH1cbn1cbiJdfQ==
@@ -281,7 +281,7 @@ var CountryPhonePickerComponent = /** @class */ (function () {
281
281
  useExisting: forwardRef(function () { return CountryPhonePickerComponent_1; }),
282
282
  multi: true,
283
283
  }],
284
- styles: [".country-phone-picker .phone-input{background-color:#fff;border:1px solid #d8d8d8;border-radius:4px;display:-ms-flexbox;display:flex;line-height:normal}.country-phone-picker .phone-input .drop{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox;display:flex}.country-phone-picker .phone-input .drop .drop-flag{margin-left:12px}.country-phone-picker .phone-input .drop .drop-icon{font-size:12px;margin:0 8px}.country-phone-picker .phone-input .phone-ddi{margin:8px 0}.country-phone-picker .phone-input input{border:none;-ms-flex-positive:1;flex-grow:1;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;line-height:150%;margin-left:8px}.country-phone-picker .phone-input input:focus{color:#697882;outline:0}.country-phone-picker .dropdown{background-color:#fff;border-radius:4px;box-shadow:0 4px 5px #00000033;padding:4px 0;position:absolute;margin:2px 0;z-index:999999}.country-phone-picker .dropdown .search{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;padding:8px 12px}.country-phone-picker .dropdown .search .search-field{border:1px solid #d8d8d8;border-radius:4px;-ms-flex-positive:1;flex-grow:1;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;height:36px;line-height:150%;padding:0 32px 0 8px}.country-phone-picker .dropdown .search .search-icon{color:#333;font-size:12px;position:relative;right:24px}.country-phone-picker .dropdown .search .search-clear{color:#333;cursor:pointer;font-size:1rem}.country-phone-picker .dropdown .select-list{list-style:none;max-height:234px;min-width:360px;max-width:100vw;overflow:scroll;padding:0}.country-phone-picker .dropdown .select-list .select-option{cursor:pointer;display:-ms-flexbox;display:flex;padding:12px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.country-phone-picker .dropdown .select-list .select-option .select-option__flag{margin-right:12px}.country-phone-picker .dropdown .select-list .select-option .select-option__name{margin-right:.5rem;max-width:100%;overflow:hidden;text-overflow:ellipsis}.country-phone-picker .dropdown .select-list .select-option .select-option__ddi{color:#697882;font-size:14px;font-family:\"Open Sans\",sans-serif;font-weight:400;line-height:150%}.country-phone-picker .dropdown .select-list .select-option--focused,.country-phone-picker .dropdown .select-list .select-option:hover{background-color:#e5eaea}"]
284
+ styles: [".country-phone-picker .phone-input{background-color:#fff;border:1px solid #d8d8d8;border-radius:4px;display:-ms-flexbox;display:flex;line-height:normal;overflow:hidden}.country-phone-picker .phone-input .drop{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox;display:flex}.country-phone-picker .phone-input .drop .drop-flag{margin-left:12px}.country-phone-picker .phone-input .drop .drop-icon{font-size:12px;margin:0 8px}.country-phone-picker .phone-input .phone-ddi{margin:8px 0}.country-phone-picker .phone-input input{border:none;-ms-flex-positive:1;flex-grow:1;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;line-height:150%;margin-left:8px}.country-phone-picker .phone-input input:focus{color:#697882;outline:0}.country-phone-picker .dropdown{background-color:#fff;border-radius:4px;box-shadow:0 4px 5px #00000033;padding:4px 0;position:absolute;margin:2px 0;z-index:999999}.country-phone-picker .dropdown .search{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;padding:8px 12px}.country-phone-picker .dropdown .search .search-field{border:1px solid #d8d8d8;border-radius:4px;-ms-flex-positive:1;flex-grow:1;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;height:36px;line-height:150%;padding:0 32px 0 8px}.country-phone-picker .dropdown .search .search-icon{color:#333;font-size:12px;position:relative;right:24px}.country-phone-picker .dropdown .search .search-clear{color:#333;cursor:pointer;font-size:1rem}.country-phone-picker .dropdown .select-list{list-style:none;max-height:234px;min-width:360px;max-width:100vw;overflow:scroll;padding:0}.country-phone-picker .dropdown .select-list .select-option{cursor:pointer;display:-ms-flexbox;display:flex;padding:12px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.country-phone-picker .dropdown .select-list .select-option .select-option__flag{margin-right:12px}.country-phone-picker .dropdown .select-list .select-option .select-option__name{margin-right:.5rem;max-width:100%;overflow:hidden;text-overflow:ellipsis}.country-phone-picker .dropdown .select-list .select-option .select-option__ddi{color:#697882;font-size:14px;font-family:\"Open Sans\",sans-serif;font-weight:400;line-height:150%}.country-phone-picker .dropdown .select-list .select-option--focused,.country-phone-picker .dropdown .select-list .select-option:hover{background-color:#e5eaea}"]
285
285
  })
286
286
  ], CountryPhonePickerComponent);
287
287
  return CountryPhonePickerComponent;
@@ -60,7 +60,7 @@ var PasswordFieldComponent = /** @class */ (function () {
60
60
  Component({
61
61
  template: "<div class=\"password-field\" [ngClass]=\"{ 'password-field--toggle': field.showToggle }\">\n <input\n [type]=\"passwordVisible ? 'text' : 'password'\"\n [id]=\"field.id || field.name\"\n class=\"password-input\"\n [name]=\"field.name\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n [maxLength]=\"field.maxLength\"\n pInputText\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (input)=\"onInput.next($event)\"\n [formControl]=\"formControl\"\n [ngStyle]=\"field.style\"\n [sPasswordStrength]=\"field.passwordStrength\"\n [psDescription]=\"field.passwordStrengthOptions?.description\"\n [psWeakTitle]=\"field.passwordStrengthOptions?.weakTitle\"\n [psMediumTitle]=\"field.passwordStrengthOptions?.mediumTitle\"\n [psStrongTitle]=\"field.passwordStrengthOptions?.strongTitle\"\n [psValidation]=\"field.passwordStrengthOptions?.validation\"\n />\n <span *ngIf=\"field.showToggle\" class=\"toggle-button\">\n <s-button\n [iconClass]=\"passwordVisible ? 'fas fa-eye-slash' : 'fas fa-eye'\"\n priority=\"default\"\n (onClick)=\"onChangeVisible()\">\n </s-button>\n </span>\n</div>\n",
62
62
  encapsulation: ViewEncapsulation.None,
63
- styles: ["s-text-field.ng-dirty.ng-invalid .ui-inputtext{border-color:#c13018}s-text-field.ng-dirty.ng-invalid .ui-inputtext:hover{border-color:#e44328}.password-field{display:-ms-flexbox;display:flex}.password-field--toggle .password-input{border-top-right-radius:0;border-bottom-right-radius:0}.password-field--toggle .toggle-button s-button button{border-bottom-left-radius:0;border-top-left-radius:0}"]
63
+ styles: ["s-text-field.ng-dirty.ng-invalid .ui-inputtext{border-color:#c13018}s-text-field.ng-dirty.ng-invalid .ui-inputtext:hover{border-color:#e44328}.password-field{display:-ms-flexbox;display:flex}.password-field--toggle .password-input{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.password-field--toggle .toggle-button s-button button{border-bottom-left-radius:0;border-top-left-radius:0}"]
64
64
  })
65
65
  ], PasswordFieldComponent);
66
66
  return PasswordFieldComponent;
@@ -23,4 +23,4 @@ var ProfilePictureField = /** @class */ (function (_super) {
23
23
  return ProfilePictureField;
24
24
  }(Field));
25
25
  export { ProfilePictureField };
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1waWN0dXJlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9wcm9maWxlLXBpY3R1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxLQUFLLEVBQWUsTUFBTSxTQUFTLENBQUM7QUFtQjdDO0lBQXlDLHVDQUFLO0lBZ0IxQyw2QkFBWSxNQUE0QjtRQUF4QyxZQUNJLGtCQUFNLE1BQU0sQ0FBQyxTQWVoQjtRQWRHLEtBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxLQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEMsS0FBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hDLEtBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxLQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1FBQ3RELEtBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUM7UUFDbEQsS0FBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUNsRCxLQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1FBQ2xELEtBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxLQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDNUIsS0FBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztRQUN0RCxLQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDMUMsS0FBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQzVDLEtBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQzs7SUFDOUMsQ0FBQztJQUNMLDBCQUFDO0FBQUQsQ0FBQyxBQWpDRCxDQUF5QyxLQUFLLEdBaUM3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyb3BwZXJMYWJlbHNDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vcHJvZmlsZS1waWN0dXJlLXBpY2tlclwiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uVGV4dHMsIEZpbGVWYWxpZGF0aW9uRXJyb3JzLCBQcm9maWxlUGljdHVyZVBpY2tlckRhdGEgfSBmcm9tIFwiLi4vLi4vLi4vcHJvZmlsZS1waWN0dXJlLXBpY2tlci9tb2RlbHNcIjtcbmltcG9ydCB7IEZpZWxkLCBGaWVsZENvbmZpZyB9IGZyb20gXCIuL2ZpZWxkXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZVBpY3R1cmVDb25maWcgZXh0ZW5kcyBGaWVsZENvbmZpZyB7XG4gICAgc2ltcGxlVGl0bGU/OiBzdHJpbmc7XG4gICAgYWN0aW9uVGl0bGU/OiBzdHJpbmc7XG4gICAgc3VidGl0bGU/OiBzdHJpbmc7XG4gICAgYXNwZWN0UmF0aW8/OiBudW1iZXI7XG4gICAgY3JvcHBlckxhYmVsc0NvbmZpZz86IENyb3BwZXJMYWJlbHNDb25maWc7XG4gICAgcmVtb3ZlQnV0dG9uTGFiZWw/OiBzdHJpbmc7XG4gICAgY2hhbmdlQnV0dG9uTGFiZWw/OiBzdHJpbmc7XG4gICAgY29uZmlybWF0aW9uVGV4dHM/OiBDb25maXJtYXRpb25UZXh0cztcbiAgICBtYXhGaWxlU2l6ZT86IG51bWJlcjtcbiAgICBhY2NlcHQ/OiBzdHJpbmc7XG4gICAgc3VwcG9ydGVkRXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xuICAgIG9uQ2hhbmdlSW1hZ2U/OiAoZXZlbnQ6IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSkgPT4gdm9pZDtcbiAgICBvblJlbW92ZWRJbWFnZT86ICgpID0+IHZvaWQ7XG4gICAgb25JbnZhbGlkRmlsZT86IChldmVudDogRmlsZVZhbGlkYXRpb25FcnJvcnMpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBQcm9maWxlUGljdHVyZUZpZWxkIGV4dGVuZHMgRmllbGQge1xuICAgIHB1YmxpYyBzaW1wbGVUaXRsZT86IHN0cmluZztcbiAgICBwdWJsaWMgYWN0aW9uVGl0bGU/OiBzdHJpbmc7XG4gICAgcHVibGljIHN1YnRpdGxlPzogc3RyaW5nO1xuICAgIHB1YmxpYyBhc3BlY3RSYXRpbz86IG51bWJlcjtcbiAgICBwdWJsaWMgY3JvcHBlckxhYmVsc0NvbmZpZz86IENyb3BwZXJMYWJlbHNDb25maWc7XG4gICAgcHVibGljIHJlbW92ZUJ1dHRvbkxhYmVsPzogc3RyaW5nO1xuICAgIHB1YmxpYyBjaGFuZ2VCdXR0b25MYWJlbD86IHN0cmluZztcbiAgICBwdWJsaWMgY29uZmlybWF0aW9uVGV4dHM/OiBDb25maXJtYXRpb25UZXh0cztcbiAgICBwdWJsaWMgbWF4RmlsZVNpemU/OiBudW1iZXI7XG4gICAgcHVibGljIGFjY2VwdD86IHN0cmluZztcbiAgICBwdWJsaWMgc3VwcG9ydGVkRXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xuICAgIHB1YmxpYyBvbkNoYW5nZUltYWdlPzogKGV2ZW50OiBQcm9maWxlUGljdHVyZVBpY2tlckRhdGEpID0+IHZvaWQ7XG4gICAgcHVibGljIG9uUmVtb3ZlZEltYWdlPzogKCkgPT4gdm9pZDtcbiAgICBwdWJsaWMgb25JbnZhbGlkRmlsZT86IChldmVudDogRmlsZVZhbGlkYXRpb25FcnJvcnMpID0+IHZvaWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihjb25maWc6IFByb2ZpbGVQaWN0dXJlQ29uZmlnKSB7XG4gICAgICAgIHN1cGVyKGNvbmZpZyk7XG4gICAgICAgIHRoaXMuc2ltcGxlVGl0bGUgPSBjb25maWcuc2ltcGxlVGl0bGU7XG4gICAgICAgIHRoaXMuYWN0aW9uVGl0bGUgPSBjb25maWcuYWN0aW9uVGl0bGU7XG4gICAgICAgIHRoaXMuc3VidGl0bGUgPSBjb25maWcuc3VidGl0bGU7XG4gICAgICAgIHRoaXMuYXNwZWN0UmF0aW8gPSBjb25maWcuYXNwZWN0UmF0aW87XG4gICAgICAgIHRoaXMuY3JvcHBlckxhYmVsc0NvbmZpZyA9IGNvbmZpZy5jcm9wcGVyTGFiZWxzQ29uZmlnO1xuICAgICAgICB0aGlzLnJlbW92ZUJ1dHRvbkxhYmVsID0gY29uZmlnLnJlbW92ZUJ1dHRvbkxhYmVsO1xuICAgICAgICB0aGlzLmNoYW5nZUJ1dHRvbkxhYmVsID0gY29uZmlnLmNoYW5nZUJ1dHRvbkxhYmVsO1xuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblRleHRzID0gY29uZmlnLmNvbmZpcm1hdGlvblRleHRzO1xuICAgICAgICB0aGlzLm1heEZpbGVTaXplID0gY29uZmlnLm1heEZpbGVTaXplO1xuICAgICAgICB0aGlzLmFjY2VwdCA9IGNvbmZpZy5hY2NlcHQ7XG4gICAgICAgIHRoaXMuc3VwcG9ydGVkRXh0ZW5zaW9ucyA9IGNvbmZpZy5zdXBwb3J0ZWRFeHRlbnNpb25zO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlSW1hZ2UgPSBjb25maWcub25DaGFuZ2VJbWFnZTtcbiAgICAgICAgdGhpcy5vblJlbW92ZWRJbWFnZSA9IGNvbmZpZy5vblJlbW92ZWRJbWFnZTtcbiAgICAgICAgdGhpcy5vbkludmFsaWRGaWxlID0gY29uZmlnLm9uSW52YWxpZEZpbGU7XG4gICAgfVxufSJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1waWN0dXJlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9wcm9maWxlLXBpY3R1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxLQUFLLEVBQWUsTUFBTSxTQUFTLENBQUM7QUFtQjdDO0lBQXlDLHVDQUFLO0lBZ0IxQyw2QkFBWSxNQUE0QjtRQUF4QyxZQUNJLGtCQUFNLE1BQU0sQ0FBQyxTQWVoQjtRQWRHLEtBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxLQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEMsS0FBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hDLEtBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxLQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1FBQ3RELEtBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUM7UUFDbEQsS0FBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUNsRCxLQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1FBQ2xELEtBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxLQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDNUIsS0FBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztRQUN0RCxLQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDMUMsS0FBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQzVDLEtBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQzs7SUFDOUMsQ0FBQztJQUNMLDBCQUFDO0FBQUQsQ0FBQyxBQWpDRCxDQUF5QyxLQUFLLEdBaUM3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyb3BwZXJMYWJlbHNDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vcHJvZmlsZS1waWN0dXJlLXBpY2tlclwiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uVGV4dHMsIEZpbGVWYWxpZGF0aW9uRXJyb3JzLCBQcm9maWxlUGljdHVyZVBpY2tlckRhdGEgfSBmcm9tIFwiLi4vLi4vLi4vcHJvZmlsZS1waWN0dXJlLXBpY2tlci9tb2RlbHNcIjtcbmltcG9ydCB7IEZpZWxkLCBGaWVsZENvbmZpZyB9IGZyb20gXCIuL2ZpZWxkXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZVBpY3R1cmVDb25maWcgZXh0ZW5kcyBGaWVsZENvbmZpZyB7XG4gICAgc2ltcGxlVGl0bGU/OiBzdHJpbmc7XG4gICAgYWN0aW9uVGl0bGU/OiBzdHJpbmc7XG4gICAgc3VidGl0bGU/OiBzdHJpbmc7XG4gICAgYXNwZWN0UmF0aW8/OiBudW1iZXI7XG4gICAgY3JvcHBlckxhYmVsc0NvbmZpZz86IENyb3BwZXJMYWJlbHNDb25maWc7XG4gICAgcmVtb3ZlQnV0dG9uTGFiZWw/OiBzdHJpbmc7XG4gICAgY2hhbmdlQnV0dG9uTGFiZWw/OiBzdHJpbmc7XG4gICAgY29uZmlybWF0aW9uVGV4dHM/OiBDb25maXJtYXRpb25UZXh0cztcbiAgICBtYXhGaWxlU2l6ZT86IG51bWJlcjtcbiAgICBhY2NlcHQ/OiBzdHJpbmc7XG4gICAgc3VwcG9ydGVkRXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xuICAgIG9uQ2hhbmdlSW1hZ2U/OiAoZXZlbnQ6IHN0cmluZyB8IFByb2ZpbGVQaWN0dXJlUGlja2VyRGF0YSkgPT4gdm9pZDtcbiAgICBvblJlbW92ZWRJbWFnZT86ICgpID0+IHZvaWQ7XG4gICAgb25JbnZhbGlkRmlsZT86IChldmVudDogRmlsZVZhbGlkYXRpb25FcnJvcnMpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBQcm9maWxlUGljdHVyZUZpZWxkIGV4dGVuZHMgRmllbGQge1xuICAgIHB1YmxpYyBzaW1wbGVUaXRsZT86IHN0cmluZztcbiAgICBwdWJsaWMgYWN0aW9uVGl0bGU/OiBzdHJpbmc7XG4gICAgcHVibGljIHN1YnRpdGxlPzogc3RyaW5nO1xuICAgIHB1YmxpYyBhc3BlY3RSYXRpbz86IG51bWJlcjtcbiAgICBwdWJsaWMgY3JvcHBlckxhYmVsc0NvbmZpZz86IENyb3BwZXJMYWJlbHNDb25maWc7XG4gICAgcHVibGljIHJlbW92ZUJ1dHRvbkxhYmVsPzogc3RyaW5nO1xuICAgIHB1YmxpYyBjaGFuZ2VCdXR0b25MYWJlbD86IHN0cmluZztcbiAgICBwdWJsaWMgY29uZmlybWF0aW9uVGV4dHM/OiBDb25maXJtYXRpb25UZXh0cztcbiAgICBwdWJsaWMgbWF4RmlsZVNpemU/OiBudW1iZXI7XG4gICAgcHVibGljIGFjY2VwdD86IHN0cmluZztcbiAgICBwdWJsaWMgc3VwcG9ydGVkRXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xuICAgIHB1YmxpYyBvbkNoYW5nZUltYWdlPzogKGV2ZW50OiBzdHJpbmcgfCBQcm9maWxlUGljdHVyZVBpY2tlckRhdGEpID0+IHZvaWQ7XG4gICAgcHVibGljIG9uUmVtb3ZlZEltYWdlPzogKCkgPT4gdm9pZDtcbiAgICBwdWJsaWMgb25JbnZhbGlkRmlsZT86IChldmVudDogRmlsZVZhbGlkYXRpb25FcnJvcnMpID0+IHZvaWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihjb25maWc6IFByb2ZpbGVQaWN0dXJlQ29uZmlnKSB7XG4gICAgICAgIHN1cGVyKGNvbmZpZyk7XG4gICAgICAgIHRoaXMuc2ltcGxlVGl0bGUgPSBjb25maWcuc2ltcGxlVGl0bGU7XG4gICAgICAgIHRoaXMuYWN0aW9uVGl0bGUgPSBjb25maWcuYWN0aW9uVGl0bGU7XG4gICAgICAgIHRoaXMuc3VidGl0bGUgPSBjb25maWcuc3VidGl0bGU7XG4gICAgICAgIHRoaXMuYXNwZWN0UmF0aW8gPSBjb25maWcuYXNwZWN0UmF0aW87XG4gICAgICAgIHRoaXMuY3JvcHBlckxhYmVsc0NvbmZpZyA9IGNvbmZpZy5jcm9wcGVyTGFiZWxzQ29uZmlnO1xuICAgICAgICB0aGlzLnJlbW92ZUJ1dHRvbkxhYmVsID0gY29uZmlnLnJlbW92ZUJ1dHRvbkxhYmVsO1xuICAgICAgICB0aGlzLmNoYW5nZUJ1dHRvbkxhYmVsID0gY29uZmlnLmNoYW5nZUJ1dHRvbkxhYmVsO1xuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblRleHRzID0gY29uZmlnLmNvbmZpcm1hdGlvblRleHRzO1xuICAgICAgICB0aGlzLm1heEZpbGVTaXplID0gY29uZmlnLm1heEZpbGVTaXplO1xuICAgICAgICB0aGlzLmFjY2VwdCA9IGNvbmZpZy5hY2NlcHQ7XG4gICAgICAgIHRoaXMuc3VwcG9ydGVkRXh0ZW5zaW9ucyA9IGNvbmZpZy5zdXBwb3J0ZWRFeHRlbnNpb25zO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlSW1hZ2UgPSBjb25maWcub25DaGFuZ2VJbWFnZTtcbiAgICAgICAgdGhpcy5vblJlbW92ZWRJbWFnZSA9IGNvbmZpZy5vblJlbW92ZWRJbWFnZTtcbiAgICAgICAgdGhpcy5vbkludmFsaWRGaWxlID0gY29uZmlnLm9uSW52YWxpZEZpbGU7XG4gICAgfVxufSJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { ComponentFactoryResolver, ComponentRef, Directive, Input, OnChanges, OnInit, ViewContainerRef } from "@angular/core";
2
+ import { ComponentFactoryResolver, ComponentRef, Directive, Input, OnChanges, OnDestroy, OnInit, ViewContainerRef } from "@angular/core";
3
3
  import { FieldType } from "./configurations/field-type";
4
4
  import { GridType } from "./configurations/grid-type";
5
5
  import { StructureType } from "./configurations/structure-type";
@@ -57,6 +57,9 @@ var DynamicFormDirective = /** @class */ (function () {
57
57
  this.component.instance.errorMessages = this.errorMessages;
58
58
  }
59
59
  };
60
+ DynamicFormDirective.prototype.ngOnDestroy = function () {
61
+ this.component.destroy();
62
+ };
60
63
  DynamicFormDirective.prototype.isField = function () {
61
64
  return FieldType[this.config.type];
62
65
  };
@@ -82,4 +85,4 @@ var DynamicFormDirective = /** @class */ (function () {
82
85
  return DynamicFormDirective;
83
86
  }());
84
87
  export { DynamicFormDirective };
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVoRSxPQUFPLEVBQUUsWUFBWSxFQUFlLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFGO0lBcUJJLDhCQUFvQixRQUFrQyxFQUFVLFNBQTJCO1FBQXZFLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBYi9GLHNCQUFJLDhDQUFZO2FBQWhCLFVBQWlCLE9BQXNHO1lBQzNHLElBQUEsZUFBRSxFQUFFLHVCQUFNLEVBQUUscUJBQUssRUFBRSxxQ0FBYSxDQUFhO1lBQ3JELElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDdkMsQ0FBQzs7O09BQUE7SUFTTSx1Q0FBUSxHQUFmO1FBQ0ksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDaEIsSUFBSSxDQUFDLENBQUUsSUFBSSxDQUFDLE1BQW9CLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLE1BQW9CLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFJLElBQUksQ0FBQyxNQUFvQixDQUFDLElBQUksQ0FBQzthQUNuRjtZQUVELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxZQUFZLENBQUM7Z0JBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFtQjtnQkFDL0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO2FBQ3BDLENBQUMsQ0FBQztTQUNOO2FBQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGdCQUFnQixDQUFDO2dCQUN4QyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBbUI7Z0JBQ2hDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTthQUNwQyxDQUFDLENBQUM7U0FDTjthQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxXQUFXLENBQUM7Z0JBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFjO2dCQUMzQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7YUFDcEMsQ0FBQyxDQUFDO1NBQ047O1lBQU0sTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBc0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQUksQ0FBQyxDQUFDO1FBRW5GLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDL0QsQ0FBQztJQUVNLDBDQUFXLEdBQWxCO1FBQ0ksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUM5RDtJQUNMLENBQUM7SUFFTSxzQ0FBTyxHQUFkO1FBQ0ksT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sMENBQVcsR0FBbEI7UUFDSSxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxxQ0FBTSxHQUFiO1FBQ0ksT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOztnQkFqRDZCLHdCQUF3QjtnQkFBcUIsZ0JBQWdCOztJQWIzRjtRQURDLEtBQUssRUFBRTs0REFPUDtJQUdEO1FBREMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDO3FFQUNOO0lBakIxQixvQkFBb0I7UUFEaEMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLENBQUM7T0FDN0Isb0JBQW9CLENBdUVoQztJQUFELDJCQUFDO0NBQUEsQUF2RUQsSUF1RUM7U0F2RVksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnMvZmllbGQtdHlwZVwiO1xuaW1wb3J0IHsgRm9ybUZpZWxkIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnMvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgR3JpZFR5cGUgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9ucy9ncmlkLXR5cGVcIjtcbmltcG9ydCB7IEdyaWQgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9ucy9ncmlkL2dyaWRcIjtcbmltcG9ydCB7IFN0cnVjdHVyZVR5cGUgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9ucy9zdHJ1Y3R1cmUtdHlwZVwiO1xuaW1wb3J0IHsgU3RydWN0dXJlIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnMvc3RydWN0dXJlL3N0cnVjdHVyZVwiO1xuaW1wb3J0IHsgRHluYW1pY0ZpZWxkLCBEeW5hbWljRm9ybSwgRHluYW1pY0dyaWQsIER5bmFtaWNTdHJ1Y3R1cmUgfSBmcm9tIFwiLi9keW5hbWljLWZvcm1cIjtcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiBcIltzRHluYW1pY0Zvcm1dXCIgfSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBwcml2YXRlIGlkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBjb25maWc6IFN0cnVjdHVyZSB8IEZvcm1GaWVsZCB8IEdyaWQ7XG4gICAgcHJpdmF0ZSBncm91cDogRm9ybUdyb3VwO1xuICAgIHByaXZhdGUgZXJyb3JNZXNzYWdlczogRm9ybUdyb3VwO1xuICAgIHByaXZhdGUgZGlyZWN0aXZlQ29uZmlnOiBEeW5hbWljRm9ybTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNEeW5hbWljRm9ybShjb250ZXh0OiB7IGlkOiBzdHJpbmc7IGNvbmZpZzogRm9ybUZpZWxkOyBzdHJ1Y3R1cmU6IFN0cnVjdHVyZTsgZ3JvdXA6IEZvcm1Hcm91cDsgZXJyb3JNZXNzYWdlczogYW55IH0pIHtcbiAgICAgICAgY29uc3QgeyBpZCwgY29uZmlnLCBncm91cCwgZXJyb3JNZXNzYWdlcyB9ID0gY29udGV4dDtcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdGhpcy5ncm91cCA9IGdyb3VwO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBlcnJvck1lc3NhZ2VzO1xuICAgIH1cblxuICAgIEBJbnB1dChcInNEeW5hbWljRm9ybURpc3BsYXlUaW1lSW5mb1NpZ25cIilcbiAgICBwdWJsaWMgZGlzcGxheVRpbWVJbmZvU2lnbjogbnVtYmVyO1xuXG4gICAgcHVibGljIGNvbXBvbmVudDogQ29tcG9uZW50UmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIHByaXZhdGUgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5pc0ZpZWxkKCkpIHtcbiAgICAgICAgICAgIGlmICghKCh0aGlzLmNvbmZpZyBhcyBGb3JtRmllbGQpLmlkKSAmJiB0aGlzLmlkKSB7XG4gICAgICAgICAgICAgICAgKHRoaXMuY29uZmlnIGFzIEZvcm1GaWVsZCkuaWQgPSB0aGlzLmlkICsgXCItXCIgKyAodGhpcy5jb25maWcgYXMgRm9ybUZpZWxkKS5uYW1lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmRpcmVjdGl2ZUNvbmZpZyA9IG5ldyBEeW5hbWljRmllbGQoe1xuICAgICAgICAgICAgICAgIGdyb3VwOiB0aGlzLmdyb3VwLFxuICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLmNvbmZpZyBhcyBGb3JtRmllbGQsXG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1N0cnVjdHVyZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGl2ZUNvbmZpZyA9IG5ldyBEeW5hbWljU3RydWN0dXJlKHtcbiAgICAgICAgICAgICAgICBncm91cDogdGhpcy5ncm91cCxcbiAgICAgICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnIGFzIFN0cnVjdHVyZSxcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2VzOiB0aGlzLmVycm9yTWVzc2FnZXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzR3JpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGl2ZUNvbmZpZyA9IG5ldyBEeW5hbWljR3JpZCh7XG4gICAgICAgICAgICAgICAgZ3JvdXA6IHRoaXMuZ3JvdXAsXG4gICAgICAgICAgICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZyBhcyBHcmlkLFxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgdGhyb3cgbmV3IEVycm9yKGBUcnlpbmcgdG8gdXNlIGFuIHVuc3VwcG9ydGVkIHR5cGUgKCR7dGhpcy5jb25maWcudHlwZX0pLmApO1xuXG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gdGhpcy5kaXJlY3RpdmVDb25maWcuY3JlYXRlQ29tcG9uZW50KHRoaXMucmVzb2x2ZXIsIHRoaXMuY29udGFpbmVyKTtcbiAgICAgICAgdGhpcy5jb21wb25lbnQuaW5zdGFuY2UuaWQgPSB0aGlzLmlkO1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5lcnJvck1lc3NhZ2VzID0gdGhpcy5lcnJvck1lc3NhZ2VzO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGl2ZUNvbmZpZy51cGRhdGVWYXJpYWJsZXModGhpcy5jb21wb25lbnQpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnQuaW5zdGFuY2UuZXJyb3JNZXNzYWdlcyA9IHRoaXMuZXJyb3JNZXNzYWdlcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc0ZpZWxkKCkge1xuICAgICAgICByZXR1cm4gRmllbGRUeXBlW3RoaXMuY29uZmlnLnR5cGVdO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1N0cnVjdHVyZSgpIHtcbiAgICAgICAgcmV0dXJuIFN0cnVjdHVyZVR5cGVbdGhpcy5jb25maWcudHlwZV07XG4gICAgfVxuXG4gICAgcHVibGljIGlzR3JpZCgpIHtcbiAgICAgICAgcmV0dXJuIEdyaWRUeXBlW3RoaXMuY29uZmlnLnR5cGVdO1xuICAgIH1cbn1cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXhELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFaEUsT0FBTyxFQUFFLFlBQVksRUFBZSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxRjtJQXFCSSw4QkFBb0IsUUFBa0MsRUFBVSxTQUEyQjtRQUF2RSxhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQUcsQ0FBQztJQWIvRixzQkFBSSw4Q0FBWTthQUFoQixVQUFpQixPQUFzRztZQUMzRyxJQUFBLGVBQUUsRUFBRSx1QkFBTSxFQUFFLHFCQUFLLEVBQUUscUNBQWEsQ0FBYTtZQUNyRCxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ3ZDLENBQUM7OztPQUFBO0lBU00sdUNBQVEsR0FBZjtRQUNJLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFF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Q29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9ucy9maWVsZC10eXBlXCI7XG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9ucy9mb3JtLWZpZWxkXCI7XG5pbXBvcnQgeyBHcmlkVHlwZSB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2dyaWQtdHlwZVwiO1xuaW1wb3J0IHsgR3JpZCB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2dyaWQvZ3JpZFwiO1xuaW1wb3J0IHsgU3RydWN0dXJlVHlwZSB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL3N0cnVjdHVyZS10eXBlXCI7XG5pbXBvcnQgeyBTdHJ1Y3R1cmUgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9ucy9zdHJ1Y3R1cmUvc3RydWN0dXJlXCI7XG5pbXBvcnQgeyBEeW5hbWljRmllbGQsIER5bmFtaWNGb3JtLCBEeW5hbWljR3JpZCwgRHluYW1pY1N0cnVjdHVyZSB9IGZyb20gXCIuL2R5bmFtaWMtZm9ybVwiO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6IFwiW3NEeW5hbWljRm9ybV1cIiB9KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBpZDogc3RyaW5nO1xuICAgIHByaXZhdGUgY29uZmlnOiBTdHJ1Y3R1cmUgfCBGb3JtRmllbGQgfCBHcmlkO1xuICAgIHByaXZhdGUgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgICBwcml2YXRlIGVycm9yTWVzc2FnZXM6IEZvcm1Hcm91cDtcbiAgICBwcml2YXRlIGRpcmVjdGl2ZUNvbmZpZzogRHluYW1pY0Zvcm07XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBzRHluYW1pY0Zvcm0oY29udGV4dDogeyBpZDogc3RyaW5nOyBjb25maWc6IEZvcm1GaWVsZDsgc3RydWN0dXJlOiBTdHJ1Y3R1cmU7IGdyb3VwOiBGb3JtR3JvdXA7IGVycm9yTWVzc2FnZXM6IGFueSB9KSB7XG4gICAgICAgIGNvbnN0IHsgaWQsIGNvbmZpZywgZ3JvdXAsIGVycm9yTWVzc2FnZXMgfSA9IGNvbnRleHQ7XG4gICAgICAgIHRoaXMuaWQgPSBpZDtcbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBncm91cDtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gZXJyb3JNZXNzYWdlcztcbiAgICB9XG5cbiAgICBASW5wdXQoXCJzRHluYW1pY0Zvcm1EaXNwbGF5VGltZUluZm9TaWduXCIpXG4gICAgcHVibGljIGRpc3BsYXlUaW1lSW5mb1NpZ246IG51bWJlcjtcblxuICAgIHB1YmxpYyBjb21wb25lbnQ6IENvbXBvbmVudFJlZjxhbnk+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBwcml2YXRlIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNGaWVsZCgpKSB7XG4gICAgICAgICAgICBpZiAoISgodGhpcy5jb25maWcgYXMgRm9ybUZpZWxkKS5pZCkgJiYgdGhpcy5pZCkge1xuICAgICAgICAgICAgICAgICh0aGlzLmNvbmZpZyBhcyBGb3JtRmllbGQpLmlkID0gdGhpcy5pZCArIFwiLVwiICsgKHRoaXMuY29uZmlnIGFzIEZvcm1GaWVsZCkubmFtZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5kaXJlY3RpdmVDb25maWcgPSBuZXcgRHluYW1pY0ZpZWxkKHtcbiAgICAgICAgICAgICAgICBncm91cDogdGhpcy5ncm91cCxcbiAgICAgICAgICAgICAgICBmaWVsZDogdGhpcy5jb25maWcgYXMgRm9ybUZpZWxkLFxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTdHJ1Y3R1cmUoKSkge1xuICAgICAgICAgICAgdGhpcy5kaXJlY3RpdmVDb25maWcgPSBuZXcgRHluYW1pY1N0cnVjdHVyZSh7XG4gICAgICAgICAgICAgICAgZ3JvdXA6IHRoaXMuZ3JvdXAsXG4gICAgICAgICAgICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZyBhcyBTdHJ1Y3R1cmUsXG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0dyaWQoKSkge1xuICAgICAgICAgICAgdGhpcy5kaXJlY3RpdmVDb25maWcgPSBuZXcgRHluYW1pY0dyaWQoe1xuICAgICAgICAgICAgICAgIGdyb3VwOiB0aGlzLmdyb3VwLFxuICAgICAgICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcgYXMgR3JpZCxcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2VzOiB0aGlzLmVycm9yTWVzc2FnZXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHRocm93IG5ldyBFcnJvcihgVHJ5aW5nIHRvIHVzZSBhbiB1bnN1cHBvcnRlZCB0eXBlICgke3RoaXMuY29uZmlnLnR5cGV9KS5gKTtcblxuICAgICAgICB0aGlzLmNvbXBvbmVudCA9IHRoaXMuZGlyZWN0aXZlQ29uZmlnLmNyZWF0ZUNvbXBvbmVudCh0aGlzLnJlc29sdmVyLCB0aGlzLmNvbnRhaW5lcik7XG4gICAgICAgIHRoaXMuY29tcG9uZW50Lmluc3RhbmNlLmlkID0gdGhpcy5pZDtcbiAgICAgICAgdGhpcy5jb21wb25lbnQuaW5zdGFuY2UuZXJyb3JNZXNzYWdlcyA9IHRoaXMuZXJyb3JNZXNzYWdlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5kaXJlY3RpdmVDb25maWcudXBkYXRlVmFyaWFibGVzKHRoaXMuY29tcG9uZW50KTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50Lmluc3RhbmNlLmVycm9yTWVzc2FnZXMgPSB0aGlzLmVycm9yTWVzc2FnZXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNGaWVsZCgpIHtcbiAgICAgICAgcmV0dXJuIEZpZWxkVHlwZVt0aGlzLmNvbmZpZy50eXBlXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNTdHJ1Y3R1cmUoKSB7XG4gICAgICAgIHJldHVybiBTdHJ1Y3R1cmVUeXBlW3RoaXMuY29uZmlnLnR5cGVdO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0dyaWQoKSB7XG4gICAgICAgIHJldHVybiBHcmlkVHlwZVt0aGlzLmNvbmZpZy50eXBlXTtcbiAgICB9XG59XG4iXX0=
@@ -1,8 +1,8 @@
1
1
  import { __extends } from "tslib";
2
- import { FieldsetComponent } from "./components/structure/fieldset/fieldset.component";
3
2
  import { FileUploadComponent } from "./components/fields/file-upload/file-upload.component";
4
3
  import { RadioButtonComponent } from "./components/fields/radio-button/radio-button-field.component";
5
4
  import { RowComponent } from "./components/grid/row/row.component";
5
+ import { FieldsetComponent } from "./components/structure/fieldset/fieldset.component";
6
6
  import { SectionComponent } from "./components/structure/section/section.component";
7
7
  // fields
8
8
  import { AutocompleteFieldComponent } from "./components/fields/autocomplete/autocomplete-field.component";
@@ -17,13 +17,13 @@ import { LookupFieldComponent } from "./components/fields/lookup/lookup-field.co
17
17
  import { PasswordFieldComponent } from "./components/fields/password/password-field.component";
18
18
  import { SelectFieldComponent } from "./components/fields/select/select-field.component";
19
19
  import { SliderFieldComponent } from "./components/fields/slider/slider-field.component";
20
- import { TextAreaFieldComponent } from "./components/fields/text-area/text-area-field.component";
21
20
  import { TextAreaIAFieldComponent } from "./components/fields/text-area-ia/text-area-ia-field.component";
21
+ import { TextAreaFieldComponent } from "./components/fields/text-area/text-area-field.component";
22
22
  import { TextFieldComponent } from "./components/fields/text/text-field.component";
23
+ import { ProfilePictureFieldComponent } from "./components/fields/profile-picture/profile-picture-field.component";
23
24
  import { FieldType } from "./configurations/field-type";
24
25
  import { GridType } from "./configurations/grid-type";
25
26
  import { StructureType } from "./configurations/structure-type";
26
- import { ProfilePictureFieldComponent } from "./components/fields/profile-picture/profile-picture-field.component";
27
27
  var DynamicForm = /** @class */ (function () {
28
28
  function DynamicForm(_a) {
29
29
  var group = _a.group, errorMessages = _a.errorMessages;
@@ -50,10 +50,29 @@ var DynamicField = /** @class */ (function (_super) {
50
50
  component.instance.field = this.field;
51
51
  // Must be this way because some teams use name like "e070emp.codemp"
52
52
  component.instance.formControl = this.group["controls"][this.field.name];
53
+ this._switchEmptyStringToNull(component);
53
54
  component.instance.errorMessages = this.errorMessages;
54
55
  this.setVariablesByType(component);
55
56
  return component;
56
57
  };
58
+ DynamicField.prototype._switchEmptyStringToNull = function (component) {
59
+ switch (component.instance.field.type) {
60
+ case FieldType.Password:
61
+ case FieldType.String:
62
+ case FieldType.Text:
63
+ case FieldType.TextIA:
64
+ var valueChanges$_1 = component.instance.formControl.valueChanges
65
+ .subscribe(function (value) {
66
+ if (value === "") {
67
+ component.instance.formControl.setValue(null, { emitEvent: false });
68
+ }
69
+ });
70
+ component.onDestroy(function () {
71
+ valueChanges$_1.unsubscribe();
72
+ });
73
+ return;
74
+ }
75
+ };
57
76
  DynamicField.prototype.setVariablesByType = function (component) {
58
77
  if (this.field.type == FieldType.Time) {
59
78
  component.instance.timeOnly = true;
@@ -184,4 +203,4 @@ var DynamicGrid = /** @class */ (function (_super) {
184
203
  return DynamicGrid;
185
204
  }(DynamicForm));
186
205
  export { DynamicGrid };
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBR0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRXBGLFNBQVM7QUFDVCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUMzRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUNqSSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztB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QUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RDLFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdEQsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVNLHFDQUFlLEdBQXRCLFVBQXVCLFNBQTRCO1FBQy9DLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDeEMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUMxQyxDQUFDO0lBRU0sa0NBQVksR0FBbkI7UUFDSSxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ3RCLEtBQUssUUFBUSxDQUFDLEdBQUc7Z0JBQ2IsT0FBTyxZQUFZLENBQUM7WUFDeEI7Z0JBQ0ksTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBc0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQUksQ0FBQyxDQUFDO1NBQ25GO0lBQ0wsQ0FBQztJQUNMLGtCQUFDO0FBQUQsQ0FBQyxBQS9CRCxDQUFpQyxXQUFXLEdBK0IzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5pbXBvcnQgeyBGaWVsZHNldENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvc3RydWN0dXJlL2ZpZWxkc2V0L2ZpZWxkc2V0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUm93Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9ncmlkL3Jvdy9yb3cuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zdHJ1Y3R1cmUvc2VjdGlvbi9zZWN0aW9uLmNvbXBvbmVudFwiO1xuXG4vLyBmaWVsZHNcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEJpZ251bWJlckZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvYmlnbnVtYmVyL2JpZ251bWJlci1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEJvb2xlYW5GaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2Jvb2xlYW4vYm9vbGVhbi1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEJvb2xlYW5Td2l0Y2hGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2Jvb2xlYW4vYm9vbGVhbi1zd2l0Y2gtZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDYWxlbmRhckZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvY2FsZW5kYXIvY2FsZW5kYXItZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDaGlwc0ZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvY2hpcHMvY2hpcHMtZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDb3VudHJ5UGhvbmVQaWNrZXJGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2NvdW50cnktcGhvbmUtcGlja2VyL2NvdW50cnktcGhvbmUtcGlja2VyLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ3VycmVuY3lGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2N1cnJlbmN5L2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTG9va3VwRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9sb29rdXAvbG9va3VwLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUGFzc3dvcmRGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL3Bhc3N3b3JkL3Bhc3N3b3JkLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VsZWN0RmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9zZWxlY3Qvc2VsZWN0LWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2xpZGVyRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9zbGlkZXIvc2xpZGVyLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgVGV4dEFyZWFGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL3RleHQtYXJlYS90ZXh0LWFyZWEtZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBUZXh0QXJlYUlBRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWFyZWEtaWEvdGV4dC1hcmVhLWlhLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgVGV4dEZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvdGV4dC90ZXh0LWZpZWxkLmNvbXBvbmVudFwiO1xuXG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9ucy9maWVsZC10eXBlXCI7XG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9ucy9mb3JtLWZpZWxkXCI7XG5pbXBvcnQgeyBHcmlkVHlwZSB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2dyaWQtdHlwZVwiO1xuaW1wb3J0IHsgR3JpZCB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2dyaWQvZ3JpZFwiO1xuaW1wb3J0IHsgU3RydWN0dXJlVHlwZSB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL3N0cnVjdHVyZS10eXBlXCI7XG5pbXBvcnQgeyBTdHJ1Y3R1cmUgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9ucy9zdHJ1Y3R1cmUvc3RydWN0dXJlXCI7XG5pbXBvcnQgeyBQcm9maWxlUGljdHVyZUZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvcHJvZmlsZS1waWN0dXJlL3Byb2ZpbGUtcGljdHVyZS1maWVsZC5jb21wb25lbnRcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIER5bmFtaWNGb3JtIHtcbiAgICBncm91cDogRm9ybUdyb3VwO1xuICAgIGVycm9yTWVzc2FnZXM6IGFueTtcbiAgICBhYnN0cmFjdCBjcmVhdGVDb21wb25lbnQocmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKTogYW55O1xuICAgIGFic3RyYWN0IHVwZGF0ZVZhcmlhYmxlcyhjb21wb25lbnQ6IENvbXBvbmVudFJlZjxhbnk+KTogdm9pZDtcbiAgICBhYnN0cmFjdCBnZXRDb21wb25lbnQoKTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoeyBncm91cCwgZXJyb3JNZXNzYWdlcyB9OiB7IGdyb3VwOiBGb3JtR3JvdXA7IGVycm9yTWVzc2FnZXM6IGFueSB9KSB7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBncm91cDtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gZXJyb3JNZXNzYWdlcztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEeW5hbWljRmllbGQgZXh0ZW5kcyBEeW5hbWljRm9ybSB7XG4gICAgZmllbGQ6IEZvcm1GaWVsZDtcbiAgICBlcnJvck1lc3NhZ2VzOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcih7IGdyb3VwLCBmaWVsZCwgZXJyb3JNZXNzYWdlcyB9OiB7IGdyb3VwOiBGb3JtR3JvdXA7IGZpZWxkOiBGb3JtRmllbGQ7IGVycm9yTWVzc2FnZXM6IGFueSB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGdyb3VwLFxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlcyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5maWVsZCA9IGZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVDb21wb25lbnQocmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSByZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmdldENvbXBvbmVudCgpKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KSBhcyBDb21wb25lbnRSZWY8YW55PjtcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmZpZWxkID0gdGhpcy5maWVsZDtcbiAgICAgICAgLy8gTXVzdCBiZSB0aGlzIHdheSBiZWNhdXNlIHNvbWUgdGVhbXMgdXNlIG5hbWUgbGlrZSBcImUwNzBlbXAuY29kZW1wXCJcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmZvcm1Db250cm9sID0gdGhpcy5ncm91cFtcImNvbnRyb2xzXCJdW3RoaXMuZmllbGQubmFtZV07XG4gICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5lcnJvck1lc3NhZ2VzID0gdGhpcy5lcnJvck1lc3NhZ2VzO1xuICAgICAgICB0aGlzLnNldFZhcmlhYmxlc0J5VHlwZShjb21wb25lbnQpO1xuICAgICAgICByZXR1cm4gY29tcG9uZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRWYXJpYWJsZXNCeVR5cGUoY29tcG9uZW50OiBDb21wb25lbnRSZWY8YW55Pikge1xuICAgICAgICBpZiAodGhpcy5maWVsZC50eXBlID09IEZpZWxkVHlwZS5UaW1lKSB7XG4gICAgICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UudGltZU9ubHkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChbRmllbGRUeXBlLkxvY2FsRGF0ZVRpbWUsIEZpZWxkVHlwZS5EYXRlVGltZSwgRmllbGRUeXBlLlRpbWVdLmluY2x1ZGVzKHRoaXMuZmllbGQudHlwZSkpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5zaG93VGltZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlVmFyaWFibGVzKGNvbXBvbmVudDogQ29tcG9uZW50UmVmPGFueT4pIHtcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmZpZWxkID0gdGhpcy5maWVsZDtcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmZvcm1Db250cm9sID0gdGhpcy5ncm91cFtcImNvbnRyb2xzXCJdW3RoaXMuZmllbGQubmFtZV07XG4gICAgICAgIHRoaXMuc2V0VmFyaWFibGVzQnlUeXBlKGNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbXBvbmVudCgpOiBhbnkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuZmllbGQudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuQXV0b2NvbXBsZXRlOlxuICAgICAgICAgICAgICAgIHJldHVybiBBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkJpbmFyeTpcbiAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLlN0cmluZzpcbiAgICAgICAgICAgICAgICByZXR1cm4gVGV4dEZpZWxkQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuQm9vbGVhbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5maWVsZC5yZXByZXNlbnRlZEJ5ID09PSBcInN3aXRjaFwiID8gQm9vbGVhblN3aXRjaEZpZWxkQ29tcG9uZW50IDogQm9vbGVhbkZpZWxkQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuQ2hpcHM6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENoaXBzRmllbGRDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5Db3VudHJ5UGhvbmVQaWNrZXI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvdW50cnlQaG9uZVBpY2tlckZpZWxkQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuRGF0ZTpcbiAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGVUaW1lOlxuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuTG9jYWxEYXRlVGltZTpcbiAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLlRpbWU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIENhbGVuZGFyRmllbGRDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5OdW1iZXI6XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5JbnRlZ2VyOlxuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuRG91YmxlOlxuICAgICAgICAgICAgICAgIHJldHVybiBCaWdudW1iZXJGaWVsZENvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkVudW06XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNlbGVjdEZpZWxkQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuTG9va3VwOlxuICAgICAgICAgICAgICAgIHJldHVybiBMb29rdXBGaWVsZENvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLk1vbmV5OlxuICAgICAgICAgICAgICAgIHJldHVybiBDdXJyZW5jeUZpZWxkQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuUmFkaW86XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJhZGlvQnV0dG9uQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuVGV4dDpcbiAgICAgICAgICAgICAgICByZXR1cm4gVGV4dEFyZWFGaWVsZENvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLlRleHRJQTpcbiAgICAgICAgICAgICAgICByZXR1cm4gVGV4dEFyZWFJQUZpZWxkQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuUGFzc3dvcmQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBhc3N3b3JkRmllbGRDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5CbG9iOlxuICAgICAgICAgICAgICAgIHJldHVybiBGaWxlVXBsb2FkQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuU2xpZGVyOlxuICAgICAgICAgICAgICAgIHJldHVybiBTbGlkZXJGaWVsZENvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLlByb2ZpbGVQaWN0dXJlOlxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9maWxlUGljdHVyZUZpZWxkQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuQ3VzdG9tOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZpZWxkLkN1c3RvbUZpZWxkQ29tcG9uZW50Q2xhc3M7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVHJ5aW5nIHRvIHVzZSBhbiB1bnN1cHBvcnRlZCB0eXBlICgke3RoaXMuZmllbGQudHlwZX0pLmApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHluYW1pY1N0cnVjdHVyZSBleHRlbmRzIER5bmFtaWNGb3JtIHtcbiAgICBncm91cDogRm9ybUdyb3VwO1xuICAgIGNvbmZpZzogU3RydWN0dXJlO1xuICAgIGVycm9yTWVzc2FnZXM6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHsgZ3JvdXAsIGNvbmZpZywgZXJyb3JNZXNzYWdlcyB9OiB7IGdyb3VwOiBGb3JtR3JvdXA7IGNvbmZpZzogU3RydWN0dXJlOyBlcnJvck1lc3NhZ2VzOiBhbnkgfSkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBncm91cCxcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZXMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlQ29tcG9uZW50KHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge1xuICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gcmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5nZXRDb21wb25lbnQoKSk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSkgYXMgQ29tcG9uZW50UmVmPGFueT47XG4gICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5jb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmdyb3VwID0gdGhpcy5ncm91cDtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlVmFyaWFibGVzKGNvbXBvbmVudDogQ29tcG9uZW50UmVmPGFueT4pIHtcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLnN0cnVjdHVyZSA9IHRoaXMuY29uZmlnO1xuICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuZ3JvdXAgPSB0aGlzLmdyb3VwO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb21wb25lbnQoKTogYW55IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmNvbmZpZy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFN0cnVjdHVyZVR5cGUuRmllbGRzZXQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpZWxkc2V0Q29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBTdHJ1Y3R1cmVUeXBlLlNlY3Rpb246XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNlY3Rpb25Db21wb25lbnQ7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVHJ5aW5nIHRvIHVzZSBhbiB1bnN1cHBvcnRlZCB0eXBlICgke3RoaXMuY29uZmlnLnR5cGV9KS5gKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIER5bmFtaWNHcmlkIGV4dGVuZHMgRHluYW1pY0Zvcm0ge1xuICAgIGdyb3VwOiBGb3JtR3JvdXA7XG4gICAgY29uZmlnOiBHcmlkO1xuXG4gICAgY29uc3RydWN0b3IoeyBncm91cCwgY29uZmlnLCBlcnJvck1lc3NhZ2VzIH06IHsgZ3JvdXA6IEZvcm1Hcm91cDsgY29uZmlnOiBHcmlkOyBlcnJvck1lc3NhZ2VzOiBhbnkgfSkge1xuICAgICAgICBzdXBlcih7IGdyb3VwLCBlcnJvck1lc3NhZ2VzIH0pO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlQ29tcG9uZW50KHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge1xuICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gcmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5nZXRDb21wb25lbnQoKSk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSkgYXMgQ29tcG9uZW50UmVmPGFueT47XG4gICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5jb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmdyb3VwID0gdGhpcy5ncm91cDtcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmVycm9yTWVzc2FnZXMgPSB0aGlzLmVycm9yTWVzc2FnZXM7XG4gICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVZhcmlhYmxlcyhjb21wb25lbnQ6IENvbXBvbmVudFJlZjxhbnk+KSB7XG4gICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5jb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmdyb3VwID0gdGhpcy5ncm91cDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29tcG9uZW50KCk6IGFueSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5jb25maWcudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBHcmlkVHlwZS5Sb3c6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJvd0NvbXBvbmVudDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUcnlpbmcgdG8gdXNlIGFuIHVuc3VwcG9ydGVkIHR5cGUgKCR7dGhpcy5jb25maWcudHlwZX0pLmApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBS0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRXBGLFNBQVM7QUFDVCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUMzRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUNqSSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN6RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUVuRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdoRTtJQU9JLHFCQUFZLEVBQWtFO1lBQWhFLGdCQUFLLEVBQUUsZ0NBQWE7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDdkMsQ0FBQztJQUNMLGtCQUFDO0FBQUQsQ0FBQyxBQVhELElBV0M7O0FBRUQ7SUFBa0MsZ0NBQVc7SUFJekMsc0JBQVksRUFBMkY7WUFBekYsZ0JBQUssRUFBRSxnQkFBSyxFQUFFLGdDQUFhO1FBQXpDLFlBQ0ksa0JBQU07WUFDRixLQUFLLE9BQUE7WUFDTCxhQUFhLGVBQUE7U0FDaEIsQ0FBQyxTQUdMO1FBREcsS0FBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7O0lBQ3ZCLENBQUM7SUFFTSxzQ0FBZSxHQUF0QixVQUF1QixRQUFrQyxFQUFFLFNBQTJCO1FBQ2xGLElBQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLElBQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQXNCLENBQUM7UUFDbkYsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN0QyxxRUFBcUU7UUFDckUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV6QyxTQUFTLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRXRELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQyxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRU8sK0NBQXdCLEdBQWhDLFVBQWlDLFNBQTRCO1FBQ3pELFFBQVEsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ25DLEtBQUssU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUN4QixLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUM7WUFDdEIsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ3BCLEtBQUssU0FBUyxDQUFDLE1BQU07Z0JBQ2pCLElBQU0sZUFBYSxHQUFpQixTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZO3FCQUMxRSxTQUFTLENBQUMsVUFBQyxLQUFjO29CQUN0QixJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7d0JBQ2QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO3FCQUMzRTtnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFFSCxTQUFTLENBQUMsU0FBUyxDQUFDO29CQUNoQixlQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxDQUFDO2dCQUVILE9BQU87U0FDZDtJQUNMLENBQUM7SUFFTSx5Q0FBa0IsR0FBekIsVUFBMEIsU0FBNEI7UUFDbEQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFO1lBQ25DLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pGLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QztJQUNMLENBQUM7SUFFTSxzQ0FBZSxHQUF0QixVQUF1QixTQUE0QjtRQUMvQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLG1DQUFZLEdBQW5CO1FBQ0ksUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtZQUNyQixLQUFLLFNBQVMsQ0FBQyxZQUFZO2dCQUN2QixPQUFPLDBCQUEwQixDQUFDO1lBQ3RDLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN0QixLQUFLLFNBQVMsQ0FBQyxNQUFNO2dCQUNqQixPQUFPLGtCQUFrQixDQUFDO1lBQzlCLEtBQUssU0FBUyxDQUFDLE9BQU87Z0JBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7WUFDdkcsS0FBSyxTQUFTLENBQUMsS0FBSztnQkFDaEIsT0FBTyxtQkFBbUIsQ0FBQztZQUMvQixLQUFLLFNBQVMsQ0FBQyxrQkFBa0I7Z0JBQzdCLE9BQU8sZ0NBQWdDLENBQUM7WUFDNUMsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ3BCLEtBQUssU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUN4QixLQUFLLFNBQVMsQ0FBQyxhQUFhLENBQUM7WUFDN0IsS0FBSyxTQUFTLENBQUMsSUFBSTtnQkFDZixPQUFPLHNCQUFzQixDQUFDO1lBQ2xDLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN0QixLQUFLLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDdkIsS0FBSyxTQUFTLENBQUMsTUFBTTtnQkFDakIsT0FBTyx1QkFBdUIsQ0FBQztZQUNuQyxLQUFLLFNBQVMsQ0FBQyxJQUFJO2dCQUNmLE9BQU8sb0JBQW9CLENBQUM7WUFDaEMsS0FBSyxTQUFTLENBQUMsTUFBTTtnQkFDakIsT0FBTyxvQkFBb0IsQ0FBQztZQUNoQyxLQUFLLFNBQVMsQ0FBQyxLQUFLO2dCQUNoQixPQUFPLHNCQUFzQixDQUFDO1lBQ2xDLEtBQUssU0FBUyxDQUFDLEtBQUs7Z0JBQ2hCLE9BQU8sb0JBQW9CLENBQUM7WUFDaEMsS0FBSyxTQUFTLENBQUMsSUFBSTtnQkFDZixPQUFPLHNCQUFzQixDQUFDO1lBQ2xDLEtBQUssU0FBUyxDQUFDLE1BQU07Z0JBQ2pCLE9BQU8sd0JBQXdCLENBQUM7WUFDcEMsS0FBSyxTQUFTLENBQUMsUUFBUTtnQkFDbkIsT0FBTyxzQkFBc0IsQ0FBQztZQUNsQyxLQUFLLFNBQVMsQ0FBQyxJQUFJO2dCQUNmLE9BQU8sbUJBQW1CLENBQUM7WUFDL0IsS0FBSyxTQUFTLENBQUMsTUFBTTtnQkFDakIsT0FBTyxvQkFBb0IsQ0FBQztZQUNoQyxLQUFLLFNBQVMsQ0FBQyxjQUFjO2dCQUN6QixPQUFPLDRCQUE0QixDQUFDO1lBQ3hDLEtBQUssU0FBUyxDQUFDLE1BQU07Z0JBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQztZQUNoRDtnQkFDSSxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUFzQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksT0FBSSxDQUFDLENBQUM7U0FDbEY7SUFDTCxDQUFDO0lBQ0wsbUJBQUM7QUFBRCxDQUFDLEFBaEhELENBQWtDLFdBQVcsR0FnSDVDOztBQUVEO0lBQXNDLG9DQUFXO0lBSzdDLDBCQUFZLEVBQTZGO1lBQTNGLGdCQUFLLEVBQUUsa0JBQU0sRUFBRSxnQ0FBYTtRQUExQyxZQUNJLGtCQUFNO1lBQ0YsS0FBSyxPQUFBO1lBQ0wsYUFBYSxlQUFBO1NBQ2hCLENBQUMsU0FFTDtRQURHLEtBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztJQUN6QixDQUFDO0lBRU0sMENBQWUsR0FBdEIsVUFBdUIsUUFBa0MsRUFBRSxTQUEyQjtRQUNsRixJQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUMvRSxJQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFzQixDQUFDO1FBQ25GLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDeEMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN0QyxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRU0sMENBQWUsR0FBdEIsVUFBdUIsU0FBNEI7UUFDL0MsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFFTSx1Q0FBWSxHQUFuQjtRQUNJLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDdEIsS0FBSyxhQUFhLENBQUMsUUFBUTtnQkFDdkIsT0FBTyxpQkFBaUIsQ0FBQztZQUM3QixLQUFLLGFBQWEsQ0FBQyxPQUFPO2dCQUN0QixPQUFPLGdCQUFnQixDQUFDO1lBQzVCO2dCQUNJLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXNDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFJLENBQUMsQ0FBQztTQUNuRjtJQUNMLENBQUM7SUFDTCx1QkFBQztBQUFELENBQUMsQUFwQ0QsQ0FBc0MsV0FBVyxHQW9DaEQ7O0FBRUQ7SUFBaUMsK0JBQVc7SUFJeEMscUJBQVksRUFBd0Y7WUFBdEYsZ0JBQUssRUFBRSxrQkFBTSxFQUFFLGdDQUFhO1FBQTFDLFlBQ0ksa0JBQU0sRUFBRSxLQUFLLE9BQUEsRUFBRSxhQUFhLGVBQUEsRUFBRSxDQUFDLFNBRWxDO1FBREcsS0FBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7O0lBQ3pCLENBQUM7SUFFTSxxQ0FBZSxHQUF0QixVQUF1QixRQUFrQyxFQUFFLFNBQTJCO1FBQ2xGLElBQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLElBQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQXNCLENBQUM7UUFDbkYsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN4QyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RDLFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdEQsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVNLHFDQUFlLEdBQXRCLFVBQXVCLFNBQTRCO1FBQy9DLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDeEMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUMxQyxDQUFDO0lBRU0sa0NBQVksR0FBbkI7UUFDSSxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ3RCLEtBQUssUUFBUSxDQUFDLEdBQUc7Z0JBQ2IsT0FBTyxZQUFZLENBQUM7WUFDeEI7Z0JBQ0ksTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBc0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQUksQ0FBQyxDQUFDO1NBQ25GO0lBQ0wsQ0FBQztJQUNMLGtCQUFDO0FBQUQsQ0FBQyxBQS9CRCxDQUFpQyxXQUFXLEdBK0IzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24tZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBSb3dDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2dyaWQvcm93L3Jvdy5jb21wb25lbnRcIjtcbmltcG9ydCB7IEZpZWxkc2V0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zdHJ1Y3R1cmUvZmllbGRzZXQvZmllbGRzZXQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zdHJ1Y3R1cmUvc2VjdGlvbi9zZWN0aW9uLmNvbXBvbmVudFwiO1xuXG4vLyBmaWVsZHNcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEJpZ251bWJlckZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvYmlnbnVtYmVyL2JpZ251bWJlci1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEJvb2xlYW5GaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2Jvb2xlYW4vYm9vbGVhbi1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEJvb2xlYW5Td2l0Y2hGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2Jvb2xlYW4vYm9vbGVhbi1zd2l0Y2gtZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDYWxlbmRhckZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvY2FsZW5kYXIvY2FsZW5kYXItZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDaGlwc0ZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvY2hpcHMvY2hpcHMtZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDb3VudHJ5UGhvbmVQaWNrZXJGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2NvdW50cnktcGhvbmUtcGlja2VyL2NvdW50cnktcGhvbmUtcGlja2VyLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ3VycmVuY3lGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL2N1cnJlbmN5L2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTG9va3VwRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9sb29rdXAvbG9va3VwLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUGFzc3dvcmRGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmllbGRzL3Bhc3N3b3JkL3Bhc3N3b3JkLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VsZWN0RmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9zZWxlY3Qvc2VsZWN0LWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2xpZGVyRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy9zbGlkZXIvc2xpZGVyLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgVGV4dEFyZWFJQUZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvdGV4dC1hcmVhLWlhL3RleHQtYXJlYS1pYS1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFRleHRBcmVhRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWFyZWEvdGV4dC1hcmVhLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgVGV4dEZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvdGV4dC90ZXh0LWZpZWxkLmNvbXBvbmVudFwiO1xuXG5pbXBvcnQgeyBQcm9maWxlUGljdHVyZUZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWVsZHMvcHJvZmlsZS1waWN0dXJlL3Byb2ZpbGUtcGljdHVyZS1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2ZpZWxkLXR5cGVcIjtcbmltcG9ydCB7IEZvcm1GaWVsZCB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7IEdyaWRUeXBlIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnMvZ3JpZC10eXBlXCI7XG5pbXBvcnQgeyBHcmlkIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnMvZ3JpZC9ncmlkXCI7XG5pbXBvcnQgeyBTdHJ1Y3R1cmVUeXBlIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnMvc3RydWN0dXJlLXR5cGVcIjtcbmltcG9ydCB7IFN0cnVjdHVyZSB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zL3N0cnVjdHVyZS9zdHJ1Y3R1cmVcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIER5bmFtaWNGb3JtIHtcbiAgICBncm91cDogRm9ybUdyb3VwO1xuICAgIGVycm9yTWVzc2FnZXM6IGFueTtcbiAgICBhYnN0cmFjdCBjcmVhdGVDb21wb25lbnQocmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKTogYW55O1xuICAgIGFic3RyYWN0IHVwZGF0ZVZhcmlhYmxlcyhjb21wb25lbnQ6IENvbXBvbmVudFJlZjxhbnk+KTogdm9pZDtcbiAgICBhYnN0cmFjdCBnZXRDb21wb25lbnQoKTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoeyBncm91cCwgZXJyb3JNZXNzYWdlcyB9OiB7IGdyb3VwOiBGb3JtR3JvdXA7IGVycm9yTWVzc2FnZXM6IGFueSB9KSB7XG4gICAgICAgIHRoaXMuZ3JvdXAgPSBncm91cDtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gZXJyb3JNZXNzYWdlcztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEeW5hbWljRmllbGQgZXh0ZW5kcyBEeW5hbWljRm9ybSB7XG4gICAgZmllbGQ6IEZvcm1GaWVsZDtcbiAgICBlcnJvck1lc3NhZ2VzOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcih7IGdyb3VwLCBmaWVsZCwgZXJyb3JNZXNzYWdlcyB9OiB7IGdyb3VwOiBGb3JtR3JvdXA7IGZpZWxkOiBGb3JtRmllbGQ7IGVycm9yTWVzc2FnZXM6IGFueSB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGdyb3VwLFxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlcyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5maWVsZCA9IGZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVDb21wb25lbnQocmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSByZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmdldENvbXBvbmVudCgpKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KSBhcyBDb21wb25lbnRSZWY8YW55PjtcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmZpZWxkID0gdGhpcy5maWVsZDtcbiAgICAgICAgLy8gTXVzdCBiZSB0aGlzIHdheSBiZWNhdXNlIHNvbWUgdGVhbXMgdXNlIG5hbWUgbGlrZSBcImUwNzBlbXAuY29kZW1wXCJcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmZvcm1Db250cm9sID0gdGhpcy5ncm91cFtcImNvbnRyb2xzXCJdW3RoaXMuZmllbGQubmFtZV07XG5cbiAgICAgICAgdGhpcy5fc3dpdGNoRW1wdHlTdHJpbmdUb051bGwoY29tcG9uZW50KTtcblxuICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuZXJyb3JNZXNzYWdlcyA9IHRoaXMuZXJyb3JNZXNzYWdlcztcblxuICAgICAgICB0aGlzLnNldFZhcmlhYmxlc0J5VHlwZShjb21wb25lbnQpO1xuICAgICAgICByZXR1cm4gY29tcG9uZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgX3N3aXRjaEVtcHR5U3RyaW5nVG9OdWxsKGNvbXBvbmVudDogQ29tcG9uZW50UmVmPGFueT4pIHtcbiAgICAgICAgc3dpdGNoIChjb21wb25lbnQuaW5zdGFuY2UuZmllbGQudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuUGFzc3dvcmQ6XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5TdHJpbmc6XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5UZXh0OlxuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuVGV4dElBOlxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlQ2hhbmdlcyQ6IFN1YnNjcmlwdGlvbiA9IGNvbXBvbmVudC5pbnN0YW5jZS5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWU6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5mb3JtQ29udHJvbC5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZXMkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldFZhcmlhYmxlc0J5VHlwZShjb21wb25lbnQ6IENvbXBvbmVudFJlZjxhbnk+KSB7XG4gICAgICAgIGlmICh0aGlzLmZpZWxkLnR5cGUgPT0gRmllbGRUeXBlLlRpbWUpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS50aW1lT25seSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFtGaWVsZFR5cGUuTG9jYWxEYXRlVGltZSwgRmllbGRUeXBlLkRhdGVUaW1lLCBGaWVsZFR5cGUuVGltZV0uaW5jbHVkZXModGhpcy5maWVsZC50eXBlKSkge1xuICAgICAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLnNob3dUaW1lID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVWYXJpYWJsZXMoY29tcG9uZW50OiBDb21wb25lbnRSZWY8YW55Pikge1xuICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuZmllbGQgPSB0aGlzLmZpZWxkO1xuICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuZm9ybUNvbnRyb2wgPSB0aGlzLmdyb3VwW1wiY29udHJvbHNcIl1bdGhpcy5maWVsZC5uYW1lXTtcbiAgICAgICAgdGhpcy5zZXRWYXJpYWJsZXNCeVR5cGUoY29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29tcG9uZW50KCk6IGFueSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5maWVsZC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5BdXRvY29tcGxldGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuQmluYXJ5OlxuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuU3RyaW5nOlxuICAgICAgICAgICAgICAgIHJldHVybiBUZXh0RmllbGRDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZpZWxkLnJlcHJlc2VudGVkQnkgPT09IFwic3dpdGNoXCIgPyBCb29sZWFuU3dpdGNoRmllbGRDb21wb25lbnQgOiBCb29sZWFuRmllbGRDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5DaGlwczpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ2hpcHNGaWVsZENvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkNvdW50cnlQaG9uZVBpY2tlcjpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ291bnRyeVBob25lUGlja2VyRmllbGRDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlOlxuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuRGF0ZVRpbWU6XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5Mb2NhbERhdGVUaW1lOlxuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuVGltZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gQ2FsZW5kYXJGaWVsZENvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLk51bWJlcjpcbiAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkludGVnZXI6XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5Eb3VibGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEJpZ251bWJlckZpZWxkQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuRW51bTpcbiAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0RmllbGRDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5Mb29rdXA6XG4gICAgICAgICAgICAgICAgcmV0dXJuIExvb2t1cEZpZWxkQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuTW9uZXk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEN1cnJlbmN5RmllbGRDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5SYWRpbzpcbiAgICAgICAgICAgICAgICByZXR1cm4gUmFkaW9CdXR0b25Db21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5UZXh0OlxuICAgICAgICAgICAgICAgIHJldHVybiBUZXh0QXJlYUZpZWxkQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuVGV4dElBOlxuICAgICAgICAgICAgICAgIHJldHVybiBUZXh0QXJlYUlBRmllbGRDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5QYXNzd29yZDpcbiAgICAgICAgICAgICAgICByZXR1cm4gUGFzc3dvcmRGaWVsZENvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkJsb2I6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZpbGVVcGxvYWRDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5TbGlkZXI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNsaWRlckZpZWxkQ29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuUHJvZmlsZVBpY3R1cmU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb2ZpbGVQaWN0dXJlRmllbGRDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5DdXN0b206XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQuQ3VzdG9tRmllbGRDb21wb25lbnRDbGFzcztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUcnlpbmcgdG8gdXNlIGFuIHVuc3VwcG9ydGVkIHR5cGUgKCR7dGhpcy5maWVsZC50eXBlfSkuYCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEeW5hbWljU3RydWN0dXJlIGV4dGVuZHMgRHluYW1pY0Zvcm0ge1xuICAgIGdyb3VwOiBGb3JtR3JvdXA7XG4gICAgY29uZmlnOiBTdHJ1Y3R1cmU7XG4gICAgZXJyb3JNZXNzYWdlczogYW55O1xuXG4gICAgY29uc3RydWN0b3IoeyBncm91cCwgY29uZmlnLCBlcnJvck1lc3NhZ2VzIH06IHsgZ3JvdXA6IEZvcm1Hcm91cDsgY29uZmlnOiBTdHJ1Y3R1cmU7IGVycm9yTWVzc2FnZXM6IGFueSB9KSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGdyb3VwLFxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlcyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVDb21wb25lbnQocmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSByZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmdldENvbXBvbmVudCgpKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KSBhcyBDb21wb25lbnRSZWY8YW55PjtcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuZ3JvdXAgPSB0aGlzLmdyb3VwO1xuICAgICAgICByZXR1cm4gY29tcG9uZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVWYXJpYWJsZXMoY29tcG9uZW50OiBDb21wb25lbnRSZWY8YW55Pikge1xuICAgICAgICBjb21wb25lbnQuaW5zdGFuY2Uuc3RydWN0dXJlID0gdGhpcy5jb25maWc7XG4gICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5ncm91cCA9IHRoaXMuZ3JvdXA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbXBvbmVudCgpOiBhbnkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuY29uZmlnLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU3RydWN0dXJlVHlwZS5GaWVsZHNldDpcbiAgICAgICAgICAgICAgICByZXR1cm4gRmllbGRzZXRDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlIFN0cnVjdHVyZVR5cGUuU2VjdGlvbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gU2VjdGlvbkNvbXBvbmVudDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUcnlpbmcgdG8gdXNlIGFuIHVuc3VwcG9ydGVkIHR5cGUgKCR7dGhpcy5jb25maWcudHlwZX0pLmApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRHluYW1pY0dyaWQgZXh0ZW5kcyBEeW5hbWljRm9ybSB7XG4gICAgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgICBjb25maWc6IEdyaWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcih7IGdyb3VwLCBjb25maWcsIGVycm9yTWVzc2FnZXMgfTogeyBncm91cDogRm9ybUdyb3VwOyBjb25maWc6IEdyaWQ7IGVycm9yTWVzc2FnZXM6IGFueSB9KSB7XG4gICAgICAgIHN1cGVyKHsgZ3JvdXAsIGVycm9yTWVzc2FnZXMgfSk7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVDb21wb25lbnQocmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSByZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmdldENvbXBvbmVudCgpKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KSBhcyBDb21wb25lbnRSZWY8YW55PjtcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuZ3JvdXAgPSB0aGlzLmdyb3VwO1xuICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuZXJyb3JNZXNzYWdlcyA9IHRoaXMuZXJyb3JNZXNzYWdlcztcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlVmFyaWFibGVzKGNvbXBvbmVudDogQ29tcG9uZW50UmVmPGFueT4pIHtcbiAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuZ3JvdXAgPSB0aGlzLmdyb3VwO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb21wb25lbnQoKTogYW55IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmNvbmZpZy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEdyaWRUeXBlLlJvdzpcbiAgICAgICAgICAgICAgICByZXR1cm4gUm93Q29tcG9uZW50O1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRyeWluZyB0byB1c2UgYW4gdW5zdXBwb3J0ZWQgdHlwZSAoJHt0aGlzLmNvbmZpZy50eXBlfSkuYCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=