ng-ipa-library 4.0.21 → 5.0.0

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 (40) hide show
  1. package/esm2022/lib/core/components/loading/loading.component.mjs +4 -4
  2. package/esm2022/lib/core/interceptors/error.interceptor.mjs +4 -4
  3. package/esm2022/lib/core/interceptors/loading.interceptor.mjs +4 -4
  4. package/esm2022/lib/core/interceptors/myIPAToken.interceptor.mjs +4 -4
  5. package/esm2022/lib/core/interceptors/token.interceptor.mjs +4 -4
  6. package/esm2022/lib/core/services/auth.service.mjs +4 -4
  7. package/esm2022/lib/core/services/error.service.mjs +4 -4
  8. package/esm2022/lib/core/services/loader.service.mjs +4 -4
  9. package/esm2022/lib/core/services/token.service.mjs +4 -4
  10. package/esm2022/lib/generate-form/generate-form.component.mjs +4 -4
  11. package/esm2022/lib/ipa-form/datepicker/datepicker.component.mjs +35 -14
  12. package/esm2022/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.mjs +6 -6
  13. package/esm2022/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.mjs +5 -5
  14. package/esm2022/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.mjs +5 -5
  15. package/esm2022/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.mjs +6 -6
  16. package/esm2022/lib/ipa-form/dropdown-input/dropdown-input.component.mjs +4 -4
  17. package/esm2022/lib/ipa-form/file-upload/file-upload.component.mjs +4 -4
  18. package/esm2022/lib/ipa-form/ipa-form.service.mjs +4 -4
  19. package/esm2022/lib/ipa-form/recaptcha/recaptcha.component.mjs +4 -4
  20. package/esm2022/lib/ipa-form/text-input/text-input.component.mjs +41 -18
  21. package/esm2022/lib/ipa-form/textarea-input/textarea-input.component.mjs +4 -4
  22. package/esm2022/lib/ng-ipa-library.module.mjs +7 -12
  23. package/esm2022/lib/pipes/hijri-date.pipe.mjs +4 -4
  24. package/esm2022/lib/pipes/pipes.module.mjs +5 -5
  25. package/esm2022/lib/services/breadcrumbs.service.mjs +4 -4
  26. package/esm2022/lib/services/common.service.mjs +4 -4
  27. package/esm2022/lib/share-button/share-button.component.mjs +4 -4
  28. package/esm2022/lib/share-button/share-button.module.mjs +5 -5
  29. package/esm2022/public-api.mjs +1 -3
  30. package/fesm2022/ng-ipa-library.mjs +164 -181
  31. package/fesm2022/ng-ipa-library.mjs.map +1 -1
  32. package/lib/ipa-form/datepicker/datepicker.component.d.ts +11 -6
  33. package/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.d.ts +1 -2
  34. package/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.d.ts +1 -2
  35. package/lib/ipa-form/text-input/text-input.component.d.ts +13 -7
  36. package/lib/ng-ipa-library.module.d.ts +1 -2
  37. package/package.json +3 -3
  38. package/public-api.d.ts +0 -1
  39. package/esm2022/lib/directives/host-control-directive.directive.mjs +0 -61
  40. package/lib/directives/host-control-directive.directive.d.ts +0 -15
@@ -103,10 +103,10 @@ export class FileUploadComponent {
103
103
  dictRemoveFile: '',
104
104
  };
105
105
  }
106
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FileUploadComponent, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Component }); }
107
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: FileUploadComponent, selector: "ipa-file-upload", inputs: { isArabicForm: "isArabicForm", label: "label", required: "required", acceptedFiles: "acceptedFiles", multiple: "multiple", maxFileSize: "maxFileSize", method: "method", autoUpload: "autoUpload", apiUrl: "apiUrl", authorization: "authorization" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, viewQueries: [{ propertyName: "dropzoneDir", first: true, predicate: DropzoneDirective, descendants: true }], ngImport: i0, template: "<div class=\"file-upload\">\r\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\"\r\n (queueComplete)=\"operationCompleted($event)\" (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\"\r\n (dragLeave)=\"dragEnter = false\" (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\"\r\n [class.active-border]=\"dragEnter\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\">\r\n </div>\r\n <div class=\"upload-btn-wrapper\">\r\n <div>\r\n <div class=\"subtitle mb-2\">\r\n {{label}}\r\n <span *ngIf=\"required\" class=\"required\">*</span>\r\n </div>\r\n <hr>\r\n <span style=\"font-size: 12px;\">{{isArabicForm? '\u0642\u0645 \u0628\u0633\u062D\u0628 \u0627\u0644\u0645\u0644\u0641 \u0623\u0648 \u0627\u0636\u063A\u0637 \u0647\u0646\u0627' : 'drag or click here'}}</span>\r\n <i class=\"fas fa-upload upload-icon mr-2\"></i>\r\n </div>\r\n <div *ngIf=\"acceptedFiles.length > 0\" class=\"allowed-extensions\">\r\n {{isArabicForm? '\u0627\u0644\u0635\u064A\u063A\u0629 \u0627\u0644\u0645\u0633\u0645\u0648\u062D \u0628\u0647\u0627:' : 'Allowed format:'}} \r\n <span class=\"extensions\">{{ acceptedFiles }}</span>\r\n </div>\r\n <div class=\"allowed-extensions\">\r\n {{isArabicForm? '\u0627\u0642\u0635\u0649 \u062D\u062C\u0645 \u0644\u0644\u0645\u0631\u0641\u0642:' : 'Attachment Size:'}}\r\n <span class=\"extensions\">{{ maxFileSize }} MB</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"attachment-status\" style=\"text-align: center; margin-top:10px;\">\r\n <span style=\"font-size: 14px; margin: auto; font-weight:bold;\" *ngFor=\"let file of currentFiles\">\r\n {{ file.name }} <i (click)=\"deleteFile(file)\" class=\"fas fa-trash\"\r\n style=\"color:firebrick; cursor: pointer;\"></i>\r\n <br>\r\n </span>\r\n <ul class=\"list-unstyled\">\r\n <li class=\"text-danger\" style=\"font-size: 12px;\" *ngFor=\"let error of errors\">{{error}}</li>\r\n </ul>\r\n</div>", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:dashed 1px #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}.allowed-extensions{color:#4d7297}.required{color:#dc3545;font-size:20px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DropzoneDirective, selector: "[dropzone]", inputs: ["disabled", "dropzone"], outputs: ["init", "error", "success", "sending", "canceled", "complete", "processing", "drop", "dragStart", "dragEnd", "dragEnter", "dragOver", "dragLeave", "thumbnail", "addedFile", "addedFiles", "removedFile", "uploadProgress", "maxFilesReached", "maxFilesExceeded", "errorMultiple", "successMultiple", "sendingMultiple", "canceledMultiple", "completeMultiple", "processingMultiple", "reset", "queueComplete", "totalUploadProgress"], exportAs: ["ngxDropzone"] }] }); }
106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FileUploadComponent, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Component }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: FileUploadComponent, selector: "ipa-file-upload", inputs: { isArabicForm: "isArabicForm", label: "label", required: "required", acceptedFiles: "acceptedFiles", multiple: "multiple", maxFileSize: "maxFileSize", method: "method", autoUpload: "autoUpload", apiUrl: "apiUrl", authorization: "authorization" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, viewQueries: [{ propertyName: "dropzoneDir", first: true, predicate: DropzoneDirective, descendants: true }], ngImport: i0, template: "<div class=\"file-upload\">\r\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\"\r\n (queueComplete)=\"operationCompleted($event)\" (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\"\r\n (dragLeave)=\"dragEnter = false\" (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\"\r\n [class.active-border]=\"dragEnter\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\">\r\n </div>\r\n <div class=\"upload-btn-wrapper\">\r\n <div>\r\n <div class=\"subtitle mb-2\">\r\n {{label}}\r\n <span *ngIf=\"required\" class=\"required\">*</span>\r\n </div>\r\n <hr>\r\n <span style=\"font-size: 12px;\">{{isArabicForm? '\u0642\u0645 \u0628\u0633\u062D\u0628 \u0627\u0644\u0645\u0644\u0641 \u0623\u0648 \u0627\u0636\u063A\u0637 \u0647\u0646\u0627' : 'drag or click here'}}</span>\r\n <i class=\"fas fa-upload upload-icon mr-2\"></i>\r\n </div>\r\n <div *ngIf=\"acceptedFiles.length > 0\" class=\"allowed-extensions\">\r\n {{isArabicForm? '\u0627\u0644\u0635\u064A\u063A\u0629 \u0627\u0644\u0645\u0633\u0645\u0648\u062D \u0628\u0647\u0627:' : 'Allowed format:'}} \r\n <span class=\"extensions\">{{ acceptedFiles }}</span>\r\n </div>\r\n <div class=\"allowed-extensions\">\r\n {{isArabicForm? '\u0627\u0642\u0635\u0649 \u062D\u062C\u0645 \u0644\u0644\u0645\u0631\u0641\u0642:' : 'Attachment Size:'}}\r\n <span class=\"extensions\">{{ maxFileSize }} MB</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"attachment-status\" style=\"text-align: center; margin-top:10px;\">\r\n <span style=\"font-size: 14px; margin: auto; font-weight:bold;\" *ngFor=\"let file of currentFiles\">\r\n {{ file.name }} <i (click)=\"deleteFile(file)\" class=\"fas fa-trash\"\r\n style=\"color:firebrick; cursor: pointer;\"></i>\r\n <br>\r\n </span>\r\n <ul class=\"list-unstyled\">\r\n <li class=\"text-danger\" style=\"font-size: 12px;\" *ngFor=\"let error of errors\">{{error}}</li>\r\n </ul>\r\n</div>", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:dashed 1px #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}.allowed-extensions{color:#4d7297}.required{color:#dc3545;font-size:20px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DropzoneDirective, selector: "[dropzone]", inputs: ["disabled", "dropzone"], outputs: ["init", "error", "success", "sending", "canceled", "complete", "processing", "drop", "dragStart", "dragEnd", "dragEnter", "dragOver", "dragLeave", "thumbnail", "addedFile", "addedFiles", "removedFile", "uploadProgress", "maxFilesReached", "maxFilesExceeded", "errorMultiple", "successMultiple", "sendingMultiple", "canceledMultiple", "completeMultiple", "processingMultiple", "reset", "queueComplete", "totalUploadProgress"], exportAs: ["ngxDropzone"] }] }); }
108
108
  }
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FileUploadComponent, decorators: [{
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FileUploadComponent, decorators: [{
110
110
  type: Component,
111
111
  args: [{ selector: 'ipa-file-upload', template: "<div class=\"file-upload\">\r\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\"\r\n (queueComplete)=\"operationCompleted($event)\" (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\"\r\n (dragLeave)=\"dragEnter = false\" (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\"\r\n [class.active-border]=\"dragEnter\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\">\r\n </div>\r\n <div class=\"upload-btn-wrapper\">\r\n <div>\r\n <div class=\"subtitle mb-2\">\r\n {{label}}\r\n <span *ngIf=\"required\" class=\"required\">*</span>\r\n </div>\r\n <hr>\r\n <span style=\"font-size: 12px;\">{{isArabicForm? '\u0642\u0645 \u0628\u0633\u062D\u0628 \u0627\u0644\u0645\u0644\u0641 \u0623\u0648 \u0627\u0636\u063A\u0637 \u0647\u0646\u0627' : 'drag or click here'}}</span>\r\n <i class=\"fas fa-upload upload-icon mr-2\"></i>\r\n </div>\r\n <div *ngIf=\"acceptedFiles.length > 0\" class=\"allowed-extensions\">\r\n {{isArabicForm? '\u0627\u0644\u0635\u064A\u063A\u0629 \u0627\u0644\u0645\u0633\u0645\u0648\u062D \u0628\u0647\u0627:' : 'Allowed format:'}} \r\n <span class=\"extensions\">{{ acceptedFiles }}</span>\r\n </div>\r\n <div class=\"allowed-extensions\">\r\n {{isArabicForm? '\u0627\u0642\u0635\u0649 \u062D\u062C\u0645 \u0644\u0644\u0645\u0631\u0641\u0642:' : 'Attachment Size:'}}\r\n <span class=\"extensions\">{{ maxFileSize }} MB</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"attachment-status\" style=\"text-align: center; margin-top:10px;\">\r\n <span style=\"font-size: 14px; margin: auto; font-weight:bold;\" *ngFor=\"let file of currentFiles\">\r\n {{ file.name }} <i (click)=\"deleteFile(file)\" class=\"fas fa-trash\"\r\n style=\"color:firebrick; cursor: pointer;\"></i>\r\n <br>\r\n </span>\r\n <ul class=\"list-unstyled\">\r\n <li class=\"text-danger\" style=\"font-size: 12px;\" *ngFor=\"let error of errors\">{{error}}</li>\r\n </ul>\r\n</div>", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:dashed 1px #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}.allowed-extensions{color:#4d7297}.required{color:#dc3545;font-size:20px}\n"] }]
112
112
  }], ctorParameters: () => [{ type: i1.ToastrService }], propDecorators: { dropzoneDir: [{
@@ -139,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
139
139
  }], fileDeleted: [{
140
140
  type: Output
141
141
  }] } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFFTCxpQkFBaUIsR0FDbEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFPcEQsTUFBTSxPQUFPLG1CQUFtQjtJQXVCOUI7SUFDRSxvQ0FBb0M7SUFDNUIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUF0QjdCLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyx5REFBeUQ7UUFDdkUsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFdBQU0sR0FBRyxRQUFRLENBQUM7UUFFakIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQUcsSUFBSSxZQUFZ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QkFBaUIsZ0RDckI5Qix1ckVBb0NNOzs0RkRoQk8sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjtrRkFNM0IsV0FBVztzQkFEVixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFdEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQge1xyXG4gIERyb3B6b25lQ29uZmlnSW50ZXJmYWNlLFxyXG4gIERyb3B6b25lRGlyZWN0aXZlLFxyXG59IGZyb20gJ25neC1kcm9wem9uZS13cmFwcGVyJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpcGEtZmlsZS11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoRHJvcHpvbmVEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGRyb3B6b25lRGlyITogRHJvcHpvbmVEaXJlY3RpdmU7XHJcbiAgQElucHV0KCkgaXNBcmFiaWNGb3JtID0gdHJ1ZTtcclxuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWNjZXB0ZWRGaWxlcyA9ICcnO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlID0gMTsgLy8gc2V0IG1heEZpbGVzIChOT1QgdXBsb2FkTXVsdGlwbGUpaW4gdGhlIGNvbmZpZyBvYmplY3QsXHJcbiAgQElucHV0KCkgbWF4RmlsZVNpemUgPSAyO1xyXG4gIEBJbnB1dCgpIG1ldGhvZCA9ICdQT1NUJztcclxuICBASW5wdXQoKSBhdXRvVXBsb2FkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYXBpVXJsID0gJ2FwaVVybCc7XHJcbiAgQElucHV0KCkgYXV0aG9yaXphdGlvbiE6IHN0cmluZztcclxuICBAT3V0cHV0KCkgc3VjY2Vzc1VwbG9hZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZmlsZUFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmaWxlRGVsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBkcmFnRW50ZXIgPSBmYWxzZTtcclxuICBlcnJvcnM6IHN0cmluZ1tdID0gW107XHJcbiAgY29uZmlnITogRHJvcHpvbmVDb25maWdJbnRlcmZhY2U7XHJcbiAgZmlsZXNBZGRlZDogRmlsZVtdID0gW107XHJcbiAgY3VycmVudEZpbGVzOiBGaWxlW10gPSBbXTtcclxuICBmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJyk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0clNlcnZpY2U6IFRvYXN0clNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRDb25maWd1cmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvcGVyYXRpb25Db21wbGV0ZWQoZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5maWxlc0FkZGVkLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zdWNjZXNzVXBsb2FkLmVtaXQodGhpcy5maWxlc0FkZGVkKTtcclxuICAgICAgdGhpcy5maWxlc0FkZGVkID0gW107XHJcbiAgICB9XHJcbiAgICB0aGlzLmRyb3B6b25lRGlyLnJlc2V0KCk7XHJcbiAgfVxyXG5cclxuICBvblVwbG9hZFN1Y2Nlc3MoZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBmaWxlID0gZVswXTtcclxuICAgIGlmIChmaWxlLnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgIHRoaXMuZmlsZXNBZGRlZC5wdXNoKGZpbGUpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICAgID8gJ9iq2YUg2KrYrdmF2YrZhCDYp9mE2YXYsdmB2YLYp9iqINio2YbYrNin2K0nXHJcbiAgICAgIDogJ0F0dGFjaG1lbnRzIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseSc7XHJcbiAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc3VjY2VzcyhtZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIG9uVXBsb2FkRXJyb3IoZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoZVsxXSkge1xyXG4gICAgICB0aGlzLmVycm9ycyA9IFtdO1xyXG4gICAgICB0aGlzLmVycm9ycy5wdXNoKGAke2VbMV19ICgke2VbMF0ubmFtZX0pYCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWxlV2FzQWRkZWQoZTogRmlsZSk6IHZvaWQge1xyXG4gICAgY29uc3QgbXlEcm9wem9uZSA9IHRoaXMuZHJvcHpvbmVEaXIuZHJvcHpvbmUoKTtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlID09PSAxKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudEZpbGVzID0gW107XHJcbiAgICAgIHRoaXMuZmlsZXNBZGRlZCA9IFtdO1xyXG4gICAgICB0aGlzLmVycm9ycyA9IFtdO1xyXG4gICAgICBjb25zdCBmaWxlcyA9IG15RHJvcHpvbmUuZmlsZXM7XHJcbiAgICAgIGlmIChmaWxlcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgbXlEcm9wem9uZS5yZW1vdmVGaWxlKGZpbGVzWzBdKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jdXJyZW50RmlsZXMucHVzaChlKTtcclxuICAgIHRoaXMuZmlsZUFkZGVkLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBzZW5kaW5nKGU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5lcnJvcnMgPSBbXTtcclxuICB9XHJcblxyXG4gIHJlc2V0KGU6IGFueSk6IHZvaWQge31cclxuXHJcbiAgZGVsZXRlRmlsZShmaWxlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudEZpbGVzID0gdGhpcy5jdXJyZW50RmlsZXMuZmlsdGVyKFxyXG4gICAgICAoeCkgPT4geC5uYW1lICE9PSBmaWxlLm5hbWUgJiYgeC5zaXplICE9PSBmaWxlLnNpemVcclxuICAgICk7XHJcbiAgICB0aGlzLmVycm9ycyA9IFtdO1xyXG4gICAgdGhpcy5maWxlRGVsZXRlZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvbmZpZ3VyYXRpb24oKSB7XHJcbiAgICB0aGlzLmxhYmVsID0gKHRoaXMuaXNBcmFiaWNGb3JtID8gJ9ix2YHYuSAnIDogJ1VwbG9hZCAnKSArIHRoaXMubGFiZWw7XHJcbiAgICB0aGlzLmNvbmZpZyA9IHtcclxuICAgICAgdXJsOiB0aGlzLmFwaVVybCxcclxuICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcclxuICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgIEF1dGhvcml6YXRpb246ICdCZWFyZXIgJyArIHRoaXMuYXV0aG9yaXphdGlvbixcclxuICAgICAgfSxcclxuICAgICAgbWF4RmlsZXNpemU6IHRoaXMubWF4RmlsZVNpemUsXHJcbiAgICAgIG1heEZpbGVzOiB0aGlzLm11bHRpcGxlLFxyXG4gICAgICB1cGxvYWRNdWx0aXBsZTogdGhpcy5tdWx0aXBsZSA+IDEsXHJcbiAgICAgIGRpY3RJbnZhbGlkRmlsZVR5cGU6IHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICAgICAgPyAn2LXZiti62Kkg2KfZhNmF2YTZgSDYutmK2LEg2YXYs9mF2YjYrSDYqNmH2KcnXHJcbiAgICAgICAgOiAndGhlIGZpbGUgZm9ybWF0IGlzIG5vdCBhbGxvd2VkJyxcclxuICAgICAgZGljdEZpbGVUb29CaWc6IHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICAgICAgPyAn2KfZhNit2KzZhSDYqtis2KfZiNiyINin2YTYrdivINin2YTZhdiz2YXZiNitJ1xyXG4gICAgICAgIDogYHRoZSBmaWxlIHNpemUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgKCR7dGhpcy5tYXhGaWxlU2l6ZX0pIE1CYCxcclxuICAgICAgZGljdE1heEZpbGVzRXhjZWVkZWQ6IHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICAgICAgPyAn2KfZhNix2KzYp9ihINit2LDZgSDYp9mE2YXZhNmB2KfYqiDYp9mE2YXZiNis2YjYr9ipINit2KfZhNmK2Kcg2YTYqtiq2YXZg9mGINmF2YYg2LHZgdi5INmH2LDYpyDYp9mE2YXZhNmBJ1xyXG4gICAgICAgIDogJ1BsZWFzZSBkZWxldGUgZXhpc3RpbmcgZmlsZXMgdG8gYmUgYWJsZSB0byB1cGxvYWQgdGhpcyBmaWxlJyxcclxuICAgICAgYWNjZXB0ZWRGaWxlczogdGhpcy5hY2NlcHRlZEZpbGVzLFxyXG4gICAgICBhdXRvUHJvY2Vzc1F1ZXVlOiB0aGlzLmF1dG9VcGxvYWQsXHJcbiAgICAgIHByZXZpZXdUZW1wbGF0ZTogJzxzcGFuPjwvc3Bhbj4nLFxyXG4gICAgICBkaWN0UmVtb3ZlRmlsZTogJycsXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmlsZS11cGxvYWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtb3ZlcmxheVwiIFtkcm9wem9uZV09XCJjb25maWdcIiAoZXJyb3IpPVwib25VcGxvYWRFcnJvcigkZXZlbnQpXCJcclxuICAgICAgICAocXVldWVDb21wbGV0ZSk9XCJvcGVyYXRpb25Db21wbGV0ZWQoJGV2ZW50KVwiIChzdWNjZXNzKT1cIm9uVXBsb2FkU3VjY2VzcygkZXZlbnQpXCIgKGRyYWdlbnRlcik9XCJkcmFnRW50ZXIgPSB0cnVlXCJcclxuICAgICAgICAoZHJhZ0xlYXZlKT1cImRyYWdFbnRlciA9IGZhbHNlXCIgKGRyb3ApPVwiZHJhZ0VudGVyID0gZmFsc2VcIiAoZHJhZ0VuZCk9XCJkcmFnRW50ZXIgPSBmYWxzZVwiXHJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZS1ib3JkZXJdPVwiZHJhZ0VudGVyXCIgKHNlbmRpbmcpPVwic2VuZGluZygkZXZlbnQpXCIgKHJlc2V0KT1cInJlc2V0KCRldmVudClcIlxyXG4gICAgICAgIChhZGRlZEZpbGUpPVwiZmlsZVdhc0FkZGVkKCRldmVudClcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1idG4td3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJ0aXRsZSBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICB7e2xhYmVsfX1cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicmVxdWlyZWRcIiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxocj5cclxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCI+e3tpc0FyYWJpY0Zvcm0/ICfZgtmFINio2LPYrdioINin2YTZhdmE2YEg2KPZiCDYp9i22LrYtyDZh9mG2KcnIDogJ2RyYWcgb3IgY2xpY2sgaGVyZSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdXBsb2FkIHVwbG9hZC1pY29uIG1yLTJcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImFjY2VwdGVkRmlsZXMubGVuZ3RoID4gMFwiIGNsYXNzPVwiYWxsb3dlZC1leHRlbnNpb25zXCI+XHJcbiAgICAgICAgICAge3tpc0FyYWJpY0Zvcm0/ICfYp9mE2LXZiti62Kkg2KfZhNmF2LPZhdmI2K0g2KjZh9inOicgOiAnQWxsb3dlZCBmb3JtYXQ6J319IFxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4dGVuc2lvbnNcIj57eyBhY2NlcHRlZEZpbGVzIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGxvd2VkLWV4dGVuc2lvbnNcIj5cclxuICAgICAgICAgICAge3tpc0FyYWJpY0Zvcm0/ICfYp9mC2LXZiSDYrdis2YUg2YTZhNmF2LHZgdmCOicgOiAnQXR0YWNobWVudCBTaXplOid9fVxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4dGVuc2lvbnNcIj57eyBtYXhGaWxlU2l6ZSB9fSBNQjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBpZD1cImF0dGFjaG1lbnQtc3RhdHVzXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6MTBweDtcIj5cclxuICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4OyBtYXJnaW46IGF1dG87IGZvbnQtd2VpZ2h0OmJvbGQ7XCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgY3VycmVudEZpbGVzXCI+XHJcbiAgICAgICAge3sgZmlsZS5uYW1lIH19IDxpIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUpXCIgY2xhc3M9XCJmYXMgZmEtdHJhc2hcIlxyXG4gICAgICAgICAgICBzdHlsZT1cImNvbG9yOmZpcmVicmljazsgY3Vyc29yOiBwb2ludGVyO1wiPjwvaT5cclxuICAgICAgICA8YnI+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkXCI+XHJcbiAgICAgICAgPGxpIGNsYXNzPVwidGV4dC1kYW5nZXJcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIiAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXJyb3JzXCI+e3tlcnJvcn19PC9saT5cclxuICAgIDwvdWw+XHJcbjwvZGl2PiJdfQ==
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFFTCxpQkFBaUIsR0FDbEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFPcEQsTUFBTSxPQUFPLG1CQUFtQjtJQXVCOUI7SUFDRSxvQ0FBb0M7SUFDNUIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUF0QjdCLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyx5REFBeUQ7UUFDdkUsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFdBQU0sR0FBRyxRQUFRLENBQUM7UUFFakIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQUcsSUFBSSxZQUFZ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QkFBaUIsZ0RDckI5Qix1ckVBb0NNOzsyRkRoQk8sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjtrRkFNM0IsV0FBVztzQkFEVixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFdEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQge1xyXG4gIERyb3B6b25lQ29uZmlnSW50ZXJmYWNlLFxyXG4gIERyb3B6b25lRGlyZWN0aXZlLFxyXG59IGZyb20gJ25neC1kcm9wem9uZS13cmFwcGVyJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpcGEtZmlsZS11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoRHJvcHpvbmVEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGRyb3B6b25lRGlyITogRHJvcHpvbmVEaXJlY3RpdmU7XHJcbiAgQElucHV0KCkgaXNBcmFiaWNGb3JtID0gdHJ1ZTtcclxuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWNjZXB0ZWRGaWxlcyA9ICcnO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlID0gMTsgLy8gc2V0IG1heEZpbGVzIChOT1QgdXBsb2FkTXVsdGlwbGUpaW4gdGhlIGNvbmZpZyBvYmplY3QsXHJcbiAgQElucHV0KCkgbWF4RmlsZVNpemUgPSAyO1xyXG4gIEBJbnB1dCgpIG1ldGhvZCA9ICdQT1NUJztcclxuICBASW5wdXQoKSBhdXRvVXBsb2FkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYXBpVXJsID0gJ2FwaVVybCc7XHJcbiAgQElucHV0KCkgYXV0aG9yaXphdGlvbiE6IHN0cmluZztcclxuICBAT3V0cHV0KCkgc3VjY2Vzc1VwbG9hZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZmlsZUFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmaWxlRGVsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBkcmFnRW50ZXIgPSBmYWxzZTtcclxuICBlcnJvcnM6IHN0cmluZ1tdID0gW107XHJcbiAgY29uZmlnITogRHJvcHpvbmVDb25maWdJbnRlcmZhY2U7XHJcbiAgZmlsZXNBZGRlZDogRmlsZVtdID0gW107XHJcbiAgY3VycmVudEZpbGVzOiBGaWxlW10gPSBbXTtcclxuICBmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJyk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0clNlcnZpY2U6IFRvYXN0clNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRDb25maWd1cmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvcGVyYXRpb25Db21wbGV0ZWQoZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5maWxlc0FkZGVkLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zdWNjZXNzVXBsb2FkLmVtaXQodGhpcy5maWxlc0FkZGVkKTtcclxuICAgICAgdGhpcy5maWxlc0FkZGVkID0gW107XHJcbiAgICB9XHJcbiAgICB0aGlzLmRyb3B6b25lRGlyLnJlc2V0KCk7XHJcbiAgfVxyXG5cclxuICBvblVwbG9hZFN1Y2Nlc3MoZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBmaWxlID0gZVswXTtcclxuICAgIGlmIChmaWxlLnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgIHRoaXMuZmlsZXNBZGRlZC5wdXNoKGZpbGUpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICAgID8gJ9iq2YUg2KrYrdmF2YrZhCDYp9mE2YXYsdmB2YLYp9iqINio2YbYrNin2K0nXHJcbiAgICAgIDogJ0F0dGFjaG1lbnRzIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseSc7XHJcbiAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc3VjY2VzcyhtZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIG9uVXBsb2FkRXJyb3IoZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoZVsxXSkge1xyXG4gICAgICB0aGlzLmVycm9ycyA9IFtdO1xyXG4gICAgICB0aGlzLmVycm9ycy5wdXNoKGAke2VbMV19ICgke2VbMF0ubmFtZX0pYCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWxlV2FzQWRkZWQoZTogRmlsZSk6IHZvaWQge1xyXG4gICAgY29uc3QgbXlEcm9wem9uZSA9IHRoaXMuZHJvcHpvbmVEaXIuZHJvcHpvbmUoKTtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlID09PSAxKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudEZpbGVzID0gW107XHJcbiAgICAgIHRoaXMuZmlsZXNBZGRlZCA9IFtdO1xyXG4gICAgICB0aGlzLmVycm9ycyA9IFtdO1xyXG4gICAgICBjb25zdCBmaWxlcyA9IG15RHJvcHpvbmUuZmlsZXM7XHJcbiAgICAgIGlmIChmaWxlcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgbXlEcm9wem9uZS5yZW1vdmVGaWxlKGZpbGVzWzBdKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jdXJyZW50RmlsZXMucHVzaChlKTtcclxuICAgIHRoaXMuZmlsZUFkZGVkLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBzZW5kaW5nKGU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5lcnJvcnMgPSBbXTtcclxuICB9XHJcblxyXG4gIHJlc2V0KGU6IGFueSk6IHZvaWQge31cclxuXHJcbiAgZGVsZXRlRmlsZShmaWxlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudEZpbGVzID0gdGhpcy5jdXJyZW50RmlsZXMuZmlsdGVyKFxyXG4gICAgICAoeCkgPT4geC5uYW1lICE9PSBmaWxlLm5hbWUgJiYgeC5zaXplICE9PSBmaWxlLnNpemVcclxuICAgICk7XHJcbiAgICB0aGlzLmVycm9ycyA9IFtdO1xyXG4gICAgdGhpcy5maWxlRGVsZXRlZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvbmZpZ3VyYXRpb24oKSB7XHJcbiAgICB0aGlzLmxhYmVsID0gKHRoaXMuaXNBcmFiaWNGb3JtID8gJ9ix2YHYuSAnIDogJ1VwbG9hZCAnKSArIHRoaXMubGFiZWw7XHJcbiAgICB0aGlzLmNvbmZpZyA9IHtcclxuICAgICAgdXJsOiB0aGlzLmFwaVVybCxcclxuICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcclxuICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgIEF1dGhvcml6YXRpb246ICdCZWFyZXIgJyArIHRoaXMuYXV0aG9yaXphdGlvbixcclxuICAgICAgfSxcclxuICAgICAgbWF4RmlsZXNpemU6IHRoaXMubWF4RmlsZVNpemUsXHJcbiAgICAgIG1heEZpbGVzOiB0aGlzLm11bHRpcGxlLFxyXG4gICAgICB1cGxvYWRNdWx0aXBsZTogdGhpcy5tdWx0aXBsZSA+IDEsXHJcbiAgICAgIGRpY3RJbnZhbGlkRmlsZVR5cGU6IHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICAgICAgPyAn2LXZiti62Kkg2KfZhNmF2YTZgSDYutmK2LEg2YXYs9mF2YjYrSDYqNmH2KcnXHJcbiAgICAgICAgOiAndGhlIGZpbGUgZm9ybWF0IGlzIG5vdCBhbGxvd2VkJyxcclxuICAgICAgZGljdEZpbGVUb29CaWc6IHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICAgICAgPyAn2KfZhNit2KzZhSDYqtis2KfZiNiyINin2YTYrdivINin2YTZhdiz2YXZiNitJ1xyXG4gICAgICAgIDogYHRoZSBmaWxlIHNpemUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgKCR7dGhpcy5tYXhGaWxlU2l6ZX0pIE1CYCxcclxuICAgICAgZGljdE1heEZpbGVzRXhjZWVkZWQ6IHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICAgICAgPyAn2KfZhNix2KzYp9ihINit2LDZgSDYp9mE2YXZhNmB2KfYqiDYp9mE2YXZiNis2YjYr9ipINit2KfZhNmK2Kcg2YTYqtiq2YXZg9mGINmF2YYg2LHZgdi5INmH2LDYpyDYp9mE2YXZhNmBJ1xyXG4gICAgICAgIDogJ1BsZWFzZSBkZWxldGUgZXhpc3RpbmcgZmlsZXMgdG8gYmUgYWJsZSB0byB1cGxvYWQgdGhpcyBmaWxlJyxcclxuICAgICAgYWNjZXB0ZWRGaWxlczogdGhpcy5hY2NlcHRlZEZpbGVzLFxyXG4gICAgICBhdXRvUHJvY2Vzc1F1ZXVlOiB0aGlzLmF1dG9VcGxvYWQsXHJcbiAgICAgIHByZXZpZXdUZW1wbGF0ZTogJzxzcGFuPjwvc3Bhbj4nLFxyXG4gICAgICBkaWN0UmVtb3ZlRmlsZTogJycsXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmlsZS11cGxvYWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtb3ZlcmxheVwiIFtkcm9wem9uZV09XCJjb25maWdcIiAoZXJyb3IpPVwib25VcGxvYWRFcnJvcigkZXZlbnQpXCJcclxuICAgICAgICAocXVldWVDb21wbGV0ZSk9XCJvcGVyYXRpb25Db21wbGV0ZWQoJGV2ZW50KVwiIChzdWNjZXNzKT1cIm9uVXBsb2FkU3VjY2VzcygkZXZlbnQpXCIgKGRyYWdlbnRlcik9XCJkcmFnRW50ZXIgPSB0cnVlXCJcclxuICAgICAgICAoZHJhZ0xlYXZlKT1cImRyYWdFbnRlciA9IGZhbHNlXCIgKGRyb3ApPVwiZHJhZ0VudGVyID0gZmFsc2VcIiAoZHJhZ0VuZCk9XCJkcmFnRW50ZXIgPSBmYWxzZVwiXHJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZS1ib3JkZXJdPVwiZHJhZ0VudGVyXCIgKHNlbmRpbmcpPVwic2VuZGluZygkZXZlbnQpXCIgKHJlc2V0KT1cInJlc2V0KCRldmVudClcIlxyXG4gICAgICAgIChhZGRlZEZpbGUpPVwiZmlsZVdhc0FkZGVkKCRldmVudClcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1idG4td3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJ0aXRsZSBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICB7e2xhYmVsfX1cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicmVxdWlyZWRcIiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxocj5cclxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCI+e3tpc0FyYWJpY0Zvcm0/ICfZgtmFINio2LPYrdioINin2YTZhdmE2YEg2KPZiCDYp9i22LrYtyDZh9mG2KcnIDogJ2RyYWcgb3IgY2xpY2sgaGVyZSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdXBsb2FkIHVwbG9hZC1pY29uIG1yLTJcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImFjY2VwdGVkRmlsZXMubGVuZ3RoID4gMFwiIGNsYXNzPVwiYWxsb3dlZC1leHRlbnNpb25zXCI+XHJcbiAgICAgICAgICAge3tpc0FyYWJpY0Zvcm0/ICfYp9mE2LXZiti62Kkg2KfZhNmF2LPZhdmI2K0g2KjZh9inOicgOiAnQWxsb3dlZCBmb3JtYXQ6J319IFxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4dGVuc2lvbnNcIj57eyBhY2NlcHRlZEZpbGVzIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGxvd2VkLWV4dGVuc2lvbnNcIj5cclxuICAgICAgICAgICAge3tpc0FyYWJpY0Zvcm0/ICfYp9mC2LXZiSDYrdis2YUg2YTZhNmF2LHZgdmCOicgOiAnQXR0YWNobWVudCBTaXplOid9fVxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4dGVuc2lvbnNcIj57eyBtYXhGaWxlU2l6ZSB9fSBNQjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBpZD1cImF0dGFjaG1lbnQtc3RhdHVzXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6MTBweDtcIj5cclxuICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4OyBtYXJnaW46IGF1dG87IGZvbnQtd2VpZ2h0OmJvbGQ7XCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgY3VycmVudEZpbGVzXCI+XHJcbiAgICAgICAge3sgZmlsZS5uYW1lIH19IDxpIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUpXCIgY2xhc3M9XCJmYXMgZmEtdHJhc2hcIlxyXG4gICAgICAgICAgICBzdHlsZT1cImNvbG9yOmZpcmVicmljazsgY3Vyc29yOiBwb2ludGVyO1wiPjwvaT5cclxuICAgICAgICA8YnI+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkXCI+XHJcbiAgICAgICAgPGxpIGNsYXNzPVwidGV4dC1kYW5nZXJcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIiAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXJyb3JzXCI+e3tlcnJvcn19PC9saT5cclxuICAgIDwvdWw+XHJcbjwvZGl2PiJdfQ==
@@ -278,13 +278,13 @@ export class IPAFormService {
278
278
  return false;
279
279
  }
280
280
  }
281
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: IPAFormService, deps: [{ token: i1.NgbDateParserFormatter }], target: i0.ɵɵFactoryTarget.Injectable }); }
282
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: IPAFormService, providedIn: 'root' }); }
281
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: IPAFormService, deps: [{ token: i1.NgbDateParserFormatter }], target: i0.ɵɵFactoryTarget.Injectable }); }
282
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: IPAFormService, providedIn: 'root' }); }
283
283
  }
284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: IPAFormService, decorators: [{
284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: IPAFormService, decorators: [{
285
285
  type: Injectable,
286
286
  args: [{
287
287
  providedIn: 'root',
288
288
  }]
289
289
  }], ctorParameters: () => [{ type: i1.NgbDateParserFormatter }] });
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhLWZvcm0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vaXBhLWZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sV0FBVyxNQUFNLGNBQWMsQ0FBQzs7O0FBT3ZDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQW9CLGVBQXVDO1FBQXZDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtJQUFHLENBQUM7SUFFL0Q7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQXdCO1FBQzVDLE1BQU0sV0FBVyxHQUNmLHVEQUF1RCxDQUFDLElBQUksQ0FDMUQsT0FBTyxDQUFDLEtBQUssQ0FDZCxDQUFDO1FBQ0osT0FBTyxXQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUF3QjtRQUMvQyxNQUFNLFdBQVcsR0FDZixrRkFBa0YsQ0FBQyxJQUFJLENBQ3JGLE9BQU8sQ0FBQyxLQUFLLENBQ2QsQ0FBQztRQUNKLE9BQU8sV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQXdCO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELE9BQU8sV0FB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TUFBTSxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUMxRCxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUU7Z0JBQ2xCLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFDNUIsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7K0dBOVVVLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IG1vbWVudEhpanJpIGZyb20gJ21vbWVudC1oaWpyaSc7XHJcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IE5nYkRhdGUsIE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSVBBRm9ybVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFyc2VyRm9ybWF0dGVyOiBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBjaGVjayBsaW5rIGlzIHZhbGlkLlxyXG4gICAqL1xyXG4gIHN0YXRpYyBsaW5rVmFsaWRhdGlvbihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBpc1ZhbGlkTGluayA9XHJcbiAgICAgIC9eKChodHRwcz86XFwvXFwvKVtcXHctXSsoXFwuW2Etei1dKykrXFwuPyg6XFxkKyk/KFxcL1xcUyopPykkLy50ZXN0KFxyXG4gICAgICAgIGNvbnRyb2wudmFsdWVcclxuICAgICAgKTtcclxuICAgIHJldHVybiBpc1ZhbGlkTGluayB8fCAhY29udHJvbC52YWx1ZSA/IG51bGwgOiB7IGxpbms6IHRydWUgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNoZWNrIG1wNCBsaW5rIGlzIHZhbGlkLlxyXG4gICAqL1xyXG4gIHN0YXRpYyBtcDRMaW5rVmFsaWRhdGlvbihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBpc1ZhbGlkTGluayA9XHJcbiAgICAgIC9eKChodHRwcz86XFwvXFwvKVtcXHctXSsoXFwuW2Etei1dKykrXFwuPyg6XFxkKyk/KFxcL1xcUyopPyhcXC9bXFx3XFx1MDYwMC1cXHUwNkZGXStcXC5tcDQpKSQvLnRlc3QoXHJcbiAgICAgICAgY29udHJvbC52YWx1ZVxyXG4gICAgICApO1xyXG4gICAgcmV0dXJuIGlzVmFsaWRMaW5rIHx8ICFjb250cm9sLnZhbHVlID8gbnVsbCA6IHsgbGlua01QNDogdHJ1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY2hlY2sgbW9iaWxlIG51bWJlciBpcyB2YWxpZC5cclxuICAgKi9cclxuICBzdGF0aWMgbW9iaWxlTm8oY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgY29uc3QgaXNWYWxpZExpbmsgPSAvXjA1XFxkezh9JC8udGVzdChjb250cm9sLnZhbHVlKTtcclxuICAgIHJldHVybiBpc1ZhbGlkTGluayB8fCAhY29udHJvbC52YWx1ZSA/IG51bGwgOiB7IG1vYmlsZU5vOiB0cnVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjaGVjayBlbWFpbCBpcyB2YWxpZC5cclxuICAgKi9cclxuICBzdGF0aWMgZW1haWwoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgY29uc3QgaXNWYWxpZExpbmsgPVxyXG4gICAgICAvXigoW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXSsoXFwuW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXSspKil8KFxcXCIuK1xcXCIpKUAoKFtePD4oKVtcXF1cXC4sOzpcXHNAXFxcIl0rXFwuKStbXjw+KClbXFxdXFwuLDs6XFxzQFxcXCJdezIsfSkkLy50ZXN0KFxyXG4gICAgICAgIGNvbnRyb2wudmFsdWVcclxuICAgICAgKTtcclxuICAgIHJldHVybiBpc1ZhbGlkTGluayB8fCAhY29udHJvbC52YWx1ZSA/IG51bGwgOiB7IEVtYWlsOiB0cnVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjaGVjayBuYXRpb25hbCBJRCBvciBpcWFtYSBJRCBpcyB2YWxpZC5cclxuICAgKi9cclxuICBzdGF0aWMgY2hlY2tJRChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBsZXQgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xyXG4gICAgaWYgKFxyXG4gICAgICBJUEFGb3JtU2VydmljZS5uYXRpb25hbElkVmFsaWRhdGUodmFsdWUpIHx8XHJcbiAgICAgIElQQUZvcm1TZXJ2aWNlLmlxYW1hSWRWYWxpZGF0ZSh2YWx1ZSlcclxuICAgICkge1xyXG4gICAgICBpc1ZhbGlkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlzVmFsaWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBpc1ZhbGlkIHx8ICF2YWx1ZSA/IG51bGwgOiB7IGNoZWNrSWQ6IHRydWUgfTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyB2YWxpZEhpanJpRGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBkYXRlOiBOZ2JEYXRlID0gY29udHJvbC52YWx1ZTtcclxuICAgIGNvbnN0IGlzVmFsaWQgPSBJUEFGb3JtU2VydmljZS5jaGVja0hpanJpRGF0ZVZhbGlkKGRhdGUpO1xyXG4gICAgcmV0dXJuIGlzVmFsaWQgfHwgIWRhdGVcclxuICAgICAgPyBudWxsXHJcbiAgICAgIDoge1xyXG4gICAgICAgICAgbmdiRGF0ZToge1xyXG4gICAgICAgICAgICBpbnZhbGlkOlxyXG4gICAgICAgICAgICAgIGRhdGU/LnllYXIgK1xyXG4gICAgICAgICAgICAgICctJyArXHJcbiAgICAgICAgICAgICAgKGRhdGU/Lm1vbnRoID4gMTAgPyBkYXRlPy5tb250aCA6ICcwJyArIGRhdGU/Lm1vbnRoKSArXHJcbiAgICAgICAgICAgICAgJy0nICtcclxuICAgICAgICAgICAgICAoZGF0ZT8uZGF5ID4gMTAgPyBkYXRlPy5kYXkgOiAnMCcgKyBkYXRlPy5kYXkpLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JNZXNzYWdlKFxyXG4gICAgY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sLFxyXG4gICAgcGF0dGVybkVycm9yTXNnID0gJycsXHJcbiAgICBpc0FyYWJpYzogYm9vbGVhblxyXG4gICk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgaW4gY29udHJvbD8uZXJyb3JzKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBjb250cm9sPy5lcnJvcnMuaGFzT3duUHJvcGVydHkocHJvcGVydHlOYW1lKSAmJlxyXG4gICAgICAgIChjb250cm9sLnRvdWNoZWQgfHwgY29udHJvbC5kaXJ0eSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9yRXJyb3JNZXNzYWdlKFxyXG4gICAgICAgICAgcHJvcGVydHlOYW1lLFxyXG4gICAgICAgICAgY29udHJvbC5lcnJvcnNbcHJvcGVydHlOYW1lXSxcclxuICAgICAgICAgIHBhdHRlcm5FcnJvck1zZyxcclxuICAgICAgICAgIGlzQXJhYmljXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjb252ZXJ0IGdyZWdvcmlhbiBkYXRlIHRvIGhpanJpIGRhdGUgKEJhc2VkIG9uIFVtbSBhbC1RdXJhIGNhbGN1bGF0aW9ucykuXHJcbiAgICogQHBhcmFtIGRhdGU6IGdyZWdvcmlhbiBkYXRlXHJcbiAgICogQHBhcmFtIGZvcm1hdDogaUREID0+IGRheTog2aHZpSwgaU1NID0+IG1vbnRoOiDZoNmkLCBpTU1NID0+IG1vbnRoOiDYsdio2YrYuSDZoixcclxuICAgKiAgICAgICAgICAgICAgIGlNTU1NID0+INix2KjZiti5INin2YTYq9in2YbZiiwgIGlZWSA9PiB5ZWFyOiDZpNmiLCBpWVlZWSA9PiB5ZWFyOiDZodmk2aTZoixcclxuICAgKiAgICAgICAgICAgICAgIGRkID0+INmGLCBkZGQgPT4g2KXYq9mG2YrZhiwgZGRkZCA9PiDYp9mE2KXYq9mG2YrZhlxyXG4gICAqIEBleGFtcGxlICdpWVlZWS9pTS9pRNmH2YAg2KfZhNmF2YjYp9mB2YIgWVlZWS9NL0TZhSdcclxuICAgKiAgICAgICAgICAgJ9mh2aTZpNmiL9mg2aQv2aHZpdmH2YAg2KfZhNmF2YjYp9mB2YIg2aLZoNmi2aAv2aHZoS/Zo9mgJ1xyXG4gICAqL1xyXG4gIGNvbnZlcnRUb0hpanJpRGF0ZShcclxuICAgIGRhdGU6IHN0cmluZyxcclxuICAgIGZvcm1hdCA9ICdpWVlZWS1pTU0taUREJyxcclxuICAgIGxhbmcgPSAnYXItU0EnXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIG1vbWVudEhpanJpLmxvY2FsZShsYW5nKTtcclxuICAgIHJldHVybiBtb21lbnRIaWpyaShkYXRlKS5mb3JtYXQoZm9ybWF0KTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRUb0dyZWdvcmlhbkRhdGUoXHJcbiAgICBkYXRlOiBNb21lbnQsXHJcbiAgICBmb3JtYXQgPSAnWVlZWS1NTS1ERCcsXHJcbiAgICBsYW5nID0gJ2VuJ1xyXG4gICk6IHN0cmluZyB7XHJcbiAgICBtb21lbnRIaWpyaS5sb2NhbGUobGFuZyk7XHJcbiAgICBjb25zdCBtID0gbW9tZW50SGlqcmkuaUNvbnZlcnQudG9HcmVnb3JpYW4oXHJcbiAgICAgIGRhdGUueWVhcigpLFxyXG4gICAgICBkYXRlLm1vbnRoKCksXHJcbiAgICAgIGRhdGUuZGF0ZSgpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIG1vbWVudEhpanJpKG5ldyBEYXRlKG0uZ3ksIG0uZ20sIG0uZ2QpKS5mb3JtYXQoZm9ybWF0KTtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnRIaWpyaURhdGUoKSB7XHJcbiAgICBtb21lbnRIaWpyaS5sb2NhbGUoJ2VuJyk7XHJcbiAgICByZXR1cm4gbW9tZW50SGlqcmkoKS5mb3JtYXQoJ2lZWVlZL2lNTS9pREQnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VmFsaWRhdG9yRXJyb3JNZXNzYWdlKFxyXG4gICAgdmFsaWRhdG9yTmFtZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdG9yVmFsdWU6IGFueSxcclxuICAgIHBhdHRlcm5FcnJvck1zZzogc3RyaW5nLFxyXG4gICAgaXNBcmFiaWM6IGJvb2xlYW5cclxuICApOiBzdHJpbmcge1xyXG4gICAgaWYgKHZhbGlkYXRvck5hbWUgPT09ICdwYXR0ZXJuJykge1xyXG4gICAgICB2YWxpZGF0b3JWYWx1ZSA9IHRoaXMuYWRkUGF0dGVybk1zZyh2YWxpZGF0b3JWYWx1ZSwgcGF0dGVybkVycm9yTXNnKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbmZpZzogYW55ID0ge1xyXG4gICAgICByZXF1aXJlZDogaXNBcmFiaWMgPyAn2YfYsNinINin2YTYrdmC2YQg2YXYt9mE2YjYqCcgOiAndGhpcyBmaWVsZCByZXF1aXJlZCcsXHJcbiAgICAgIHBhdHRlcm46IGAke3ZhbGlkYXRvclZhbHVlLm1lc3NhZ2V9YCxcclxuICAgICAgRW1haWw6XHJcbiAgICAgICAgKGlzQXJhYmljID8gJ9iu2LfYoyDZgdmKINin2YTYqNix2YrYryDYp9mE2KfZhNmD2KrYsdmI2YbZiiAnIDogJ0ludmFsaWQgZW1haWwgJykgK1xyXG4gICAgICAgICcoZXhhbXBsZUBleGFtcGxlLmNvbSknLFxyXG4gICAgICBtYXhsZW5ndGg6IGlzQXJhYmljXHJcbiAgICAgICAgPyBg2KrYrNin2YjYsiDYudiv2K8g2KfZhNit2YLZhCDYp9mE2YXYs9mF2YjYrSDYqNmH2KcgKCR7dmFsaWRhdG9yVmFsdWUucmVxdWlyZWRMZW5ndGh9KSDYrdix2YFgXHJcbiAgICAgICAgOiBgdGhpcyBmaWVsZCBpcyBtb3JlIHRoYW4gKCR7dmFsaWRhdG9yVmFsdWUucmVxdWlyZWRMZW5ndGh9KSBsZXR0ZXJgLFxyXG4gICAgICBtaW5sZW5ndGg6IGlzQXJhYmljXHJcbiAgICAgICAgPyBg2LnZhNmJINin2YTYo9mC2YQg2LnYr9ivICR7dmFsaWRhdG9yVmFsdWUucmVxdWlyZWRMZW5ndGh9INit2LHZgWBcclxuICAgICAgICA6IGB0aGlzIGZpZWxkIGlzIGxlc3MgdGhhbiAoJHt2YWxpZGF0b3JWYWx1ZS5yZXF1aXJlZExlbmd0aH0pIGxldHRlcmAsXHJcbiAgICAgIG1pbjogaXNBcmFiaWNcclxuICAgICAgICA/IGDYsdmC2YUg2KfZg9io2LEg2YXZhiDYo9mIINmK2LPYp9mI2YogJHt2YWxpZGF0b3JWYWx1ZS5taW59YFxyXG4gICAgICAgIDogYG51bWJlciBtb3JlIHRoYW4gb3IgZXF1YWwgKCR7dmFsaWRhdG9yVmFsdWUubWlufSlgLFxyXG4gICAgICBtYXg6IGlzQXJhYmljXHJcbiAgICAgICAgPyBg2LHZgtmFINin2LXYutixINmF2YYg2KPZiCDZitiz2KfZiNmKICR7dmFsaWRhdG9yVmFsdWUubWF4fWBcclxuICAgICAgICA6IGBudW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsICgke3ZhbGlkYXRvclZhbHVlLm1pbn0pYCxcclxuICAgICAgbmdiRGF0ZTogdGhpcy5nZXROZ2JEYXRlcGlja2VyRXJyb3JNc2codmFsaWRhdG9yVmFsdWUpLFxyXG4gICAgICBjaGVja0lkOiBpc0FyYWJpY1xyXG4gICAgICAgID8gJ9ix2YLZhSDYp9mE2YfZiNmK2Kkg2KPZiCDYp9mE2KfZgtin2YXYqSDYutmK2LEg2LXYrdmK2K0nXHJcbiAgICAgICAgOiAnV3JvbmcgSUQgb3IgSXFhbWEgbnVtYmVyJyxcclxuICAgICAgbGluazpcclxuICAgICAgICAoaXNBcmFiaWMgPyAn2KfZhNix2KfYqNi3INi62YrYsSDYtdit2YrYrSAnIDogJ1dyb25nIGxpbmsgJykgK1xyXG4gICAgICAgICcoaHR0cDovL2V4YW1wbGUuY29tKScsXHJcbiAgICAgIGxpbmtNUDQ6XHJcbiAgICAgICAgKGlzQXJhYmljID8gJ9ix2KfYqNi3IE1QNCDYutmK2LEg2LXYrdmK2K0gJyA6ICdXcm9uZyBNUDQgbGluayAnKSArXHJcbiAgICAgICAgJyhodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5tcDQpJyxcclxuICAgICAgbW9iaWxlTm86XHJcbiAgICAgICAgKGlzQXJhYmljID8gJ9iu2LfYoyDZgdmKINix2YLZhSDYp9mE2KzZiNin2YQgJyA6ICdXcm9uZyBtb2JpbGUgbnVtYmVyICcpICtcclxuICAgICAgICAnKDA1eHh4eHh4eHgpJyxcclxuICAgIH07XHJcbiAgICByZXR1cm4gY29uZmlnW3ZhbGlkYXRvck5hbWVdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRQYXR0ZXJuTXNnKHZhbGlkYXRvclZhbHVlOiBhbnksIHBhdHRlcm5FcnJvck1zZzogc3RyaW5nKSB7XHJcbiAgICBsZXQgcGF0dGVybiA9IHtcclxuICAgICAgLi4udmFsaWRhdG9yVmFsdWUsXHJcbiAgICAgIG1lc3NhZ2U6IHBhdHRlcm5FcnJvck1zZyxcclxuICAgIH07XHJcbiAgICByZXR1cm4gcGF0dGVybjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TmdiRGF0ZXBpY2tlckVycm9yTXNnKHZhbGlkYXRvclZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgbGV0IG1zZyA9ICcnO1xyXG4gICAgaWYgKHZhbGlkYXRvclZhbHVlLm1heERhdGUpIHtcclxuICAgICAgbXNnID0gYNin2YTYqtin2LHZitiuINin2YTZhdiv2K7ZhCBcIiR7dGhpcy5wYXJzZXJGb3JtYXR0ZXIuZm9ybWF0KFxyXG4gICAgICAgIHZhbGlkYXRvclZhbHVlLm1heERhdGUuYWN0dWFsXHJcbiAgICAgICl9XCIg2KfZg9io2LEg2YXZhiDYqtin2LHZitiuINin2YTZitmI2YUgXCIke3RoaXMucGFyc2VyRm9ybWF0dGVyLmZvcm1hdChcclxuICAgICAgICB2YWxpZGF0b3JWYWx1ZS5tYXhEYXRlLm1heERhdGVcclxuICAgICAgKX1cImA7XHJcbiAgICB9IGVsc2UgaWYgKHZhbGlkYXRvclZhbHVlLm1pbkRhdGUpIHtcclxuICAgICAgbXNnID0gYNin2YTYqtin2LHZitiuINin2YTZhdiv2K7ZhCBcIiR7dGhpcy5wYXJzZXJGb3JtYXR0ZXIuZm9ybWF0KFxyXG4gICAgICAgIHZhbGlkYXRvclZhbHVlLm1pbkRhdGUuYWN0dWFsXHJcbiAgICAgICl9XCIg2YrYrNioINin2YYg2YrZg9mI2YYg2KfZg9io2LEg2YXZhiDYo9mIINmK2LPYp9mI2Yog2KrYp9ix2YrYriDYp9mE2KjYr9in2YrYqSBcIiR7dGhpcy5wYXJzZXJGb3JtYXR0ZXIuZm9ybWF0KFxyXG4gICAgICAgIHZhbGlkYXRvclZhbHVlLm1pbkRhdGUubWluRGF0ZVxyXG4gICAgICApfVwiYDtcclxuICAgIH0gZWxzZSBpZiAodmFsaWRhdG9yVmFsdWUuaW52YWxpZCkge1xyXG4gICAgICBtc2cgPSBg2KfZhNiq2KfYsdmK2K4g2KfZhNmF2K/YrtmEINi62YrYsSDYtdit2YrYrSAke3ZhbGlkYXRvclZhbHVlLmludmFsaWR9LmA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbXNnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgY2hlY2tIaWpyaURhdGVWYWxpZChkYXRlOiBOZ2JEYXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIShcclxuICAgICAgbW9tZW50SGlqcmkuaURheXNJbk1vbnRoKGRhdGU/LnllYXIsIGRhdGU/Lm1vbnRoIC0gMSkgPCBkYXRlPy5kYXkgfHxcclxuICAgICAgZGF0ZT8uZGF5IDw9IDAgfHxcclxuICAgICAgZGF0ZT8ubW9udGggPD0gMCB8fFxyXG4gICAgICBkYXRlPy5tb250aCA+IDEyIHx8XHJcbiAgICAgIGRhdGU/LnllYXI/LnRvU3RyaW5nKCkubGVuZ3RoICE9PSA0XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgY29udmVydFRvRW4odmFsdWU6IHN0cmluZykge1xyXG4gICAgbGV0IG5ld1ZhbHVlID0gJyc7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBjaCA9IHZhbHVlLmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgIGlmIChjaCA+PSAxNTg0ICYmIGNoIDw9IDE2NTApIHtcclxuICAgICAgICBsZXQgbmV3Q2hhciA9IGNoIC0gMTU4NDtcclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlICsgU3RyaW5nLmZyb21DaGFyQ29kZShuZXdDaGFyKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlICsgU3RyaW5nLmZyb21DaGFyQ29kZShjaCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBuZXdWYWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIG5hdGlvbmFsSWRWYWxpZGF0ZShjaXZpbElkOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmIChjaXZpbElkKSB7XHJcbiAgICAgIGxldCBzdHJJRCA9IHRoaXMuY29udmVydFRvRW4oY2l2aWxJZCk7XHJcbiAgICAgIGxldCBkaWdpdHMgPSAnJztcclxuICAgICAgbGV0IGNvdW50ZXIgPSAwO1xyXG4gICAgICB3aGlsZSAoY291bnRlciA8IDkpIHtcclxuICAgICAgICBpZiAoKGNvdW50ZXIgKyAxKSAlIDIgPT0gMCkge1xyXG4gICAgICAgICAgZGlnaXRzID0gZGlnaXRzICsgc3RySUQuc3Vic3RyaW5nKGNvdW50ZXIsIGNvdW50ZXIgKyAxKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZGlnaXRzID1cclxuICAgICAgICAgICAgZGlnaXRzICsgKCtzdHJJRC5zdWJzdHJpbmcoY291bnRlciwgY291bnRlciArIDEpICogMikudG9TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY291bnRlcisrO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBpbnRTdW0gPSAwO1xyXG4gICAgICBsZXQgaW50U3VtVGVtcCA9IDA7XHJcbiAgICAgIGxldCBzdHJTdW07XHJcbiAgICAgIGxldCBpbnRPZGRTdW1EaWdpdDtcclxuICAgICAgbGV0IENoZWNrRGlnaXQ7XHJcbiAgICAgIGNvdW50ZXIgPSAwO1xyXG4gICAgICB3aGlsZSAoY291bnRlciA8IGRpZ2l0cy5sZW5ndGgpIHtcclxuICAgICAgICBpbnRTdW1UZW1wID0gK2RpZ2l0cy5jaGFyQXQoY291bnRlcikgKiAxO1xyXG4gICAgICAgIGludFN1bSArPSBpbnRTdW1UZW1wO1xyXG4gICAgICAgIGNvdW50ZXIrKztcclxuICAgICAgfVxyXG4gICAgICBzdHJTdW0gPSBpbnRTdW0udG9TdHJpbmcoKTtcclxuICAgICAgaWYgKHN0clN1bS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGludE9kZFN1bURpZ2l0ID0gaW50U3VtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGludE9kZFN1bURpZ2l0ID0gc3RyU3VtLnN1YnN0cmluZyhzdHJTdW0ubGVuZ3RoLCBzdHJTdW0ubGVuZ3RoIC0gMSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGludE9kZFN1bURpZ2l0ID09IDApIHtcclxuICAgICAgICBDaGVja0RpZ2l0ID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBDaGVja0RpZ2l0ID0gKDEwIC0gK2ludE9kZFN1bURpZ2l0KS50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBQdWJsaWNJRCA9IHRoaXMuY29udmVydFRvRW4oY2l2aWxJZCk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBDaGVja0RpZ2l0ID09XHJcbiAgICAgICAgICBQdWJsaWNJRC5zdWJzdHJpbmcoUHVibGljSUQubGVuZ3RoIC0gMSwgUHVibGljSUQubGVuZ3RoKSAmJlxyXG4gICAgICAgIHN0cklELmxlbmd0aCA9PSAxMCAmJlxyXG4gICAgICAgIHN0cklELnN1YnN0cmluZygwLCAxKSA9PSAnMSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBpcWFtYUlkVmFsaWRhdGUoY2l2aWxJZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoY2l2aWxJZCkge1xyXG4gICAgICBsZXQgc3RySUQgPSB0aGlzLmNvbnZlcnRUb0VuKGNpdmlsSWQpO1xyXG4gICAgICBsZXQgZGlnaXRzID0gJyc7XHJcbiAgICAgIGxldCBjb3VudGVyID0gMDtcclxuICAgICAgd2hpbGUgKGNvdW50ZXIgPCA5KSB7XHJcbiAgICAgICAgaWYgKChjb3VudGVyICsgMSkgJSAyID09IDApIHtcclxuICAgICAgICAgIGRpZ2l0cyA9IGRpZ2l0cyArIHN0cklELnN1YnN0cmluZyhjb3VudGVyLCBjb3VudGVyICsgMSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGRpZ2l0cyA9XHJcbiAgICAgICAgICAgIGRpZ2l0cyArICgrc3RySUQuc3Vic3RyaW5nKGNvdW50ZXIsIGNvdW50ZXIgKyAxKSAqIDIpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvdW50ZXIrKztcclxuICAgICAgfVxyXG4gICAgICBsZXQgaW50U3VtID0gMDtcclxuICAgICAgbGV0IGludFN1bVRlbXAgPSAwO1xyXG4gICAgICBsZXQgc3RyU3VtO1xyXG4gICAgICBsZXQgaW50T2RkU3VtRGlnaXQ7XHJcbiAgICAgIGxldCBDaGVja0RpZ2l0O1xyXG4gICAgICBjb3VudGVyID0gMDtcclxuICAgICAgd2hpbGUgKGNvdW50ZXIgPCBkaWdpdHMubGVuZ3RoKSB7XHJcbiAgICAgICAgaW50U3VtVGVtcCA9ICtkaWdpdHMuY2hhckF0KGNvdW50ZXIpICogMTtcclxuICAgICAgICBpbnRTdW0gKz0gaW50U3VtVGVtcDtcclxuICAgICAgICBjb3VudGVyKys7XHJcbiAgICAgIH1cclxuICAgICAgc3RyU3VtID0gaW50U3VtLnRvU3RyaW5nKCk7XHJcbiAgICAgIGlmIChzdHJTdW0ubGVuZ3RoID09IDEpIHtcclxuICAgICAgICBpbnRPZGRTdW1EaWdpdCA9IGludFN1bTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnRPZGRTdW1EaWdpdCA9IHN0clN1bS5zdWJzdHJpbmcoc3RyU3VtLmxlbmd0aCwgc3RyU3VtLmxlbmd0aCAtIDEpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbnRPZGRTdW1EaWdpdCA9PSAwKSB7XHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9IDA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9ICgxMCAtICtpbnRPZGRTdW1EaWdpdCkudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgUHVibGljSUQgPSB0aGlzLmNvbnZlcnRUb0VuKGNpdmlsSWQpO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9PVxyXG4gICAgICAgICAgUHVibGljSUQuc3Vic3RyaW5nKFB1YmxpY0lELmxlbmd0aCAtIDEsIFB1YmxpY0lELmxlbmd0aCkgJiZcclxuICAgICAgICBzdHJJRC5sZW5ndGggPT0gMTAgJiZcclxuICAgICAgICBzdHJJRC5zdWJzdHJpbmcoMCwgMSkgPT0gJzInXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhLWZvcm0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vaXBhLWZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sV0FBVyxNQUFNLGNBQWMsQ0FBQzs7O0FBT3ZDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQW9CLGVBQXVDO1FBQXZDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtJQUFHLENBQUM7SUFFL0Q7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQXdCO1FBQzVDLE1BQU0sV0FBVyxHQUNmLHVEQUF1RCxDQUFDLElBQUksQ0FDMUQsT0FBTyxDQUFDLEtBQUssQ0FDZCxDQUFDO1FBQ0osT0FBTyxXQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUF3QjtRQUMvQyxNQUFNLFdBQVcsR0FDZixrRkFBa0YsQ0FBQyxJQUFJLENBQ3JGLE9BQU8sQ0FBQyxLQUFLLENBQ2QsQ0FBQztRQUNKLE9BQU8sV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQXdCO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELE9BQU8sV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQXdCO1FBQ25DLE1BQU0sV0FBVyxHQUNmLHFIQUFxSCxDQUFDLElBQUksQ0FDeEgsT0FBTyxDQUFDLEtBQUssQ0FDZCxDQUFDO1FBQ0osT0FBTyxXQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBd0I7UUFDckMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDNUIsSUFDRSxjQUFjLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1lBQ3hDLGNBQWMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQ3JDLENBQUM7WUFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNsQixDQUFDO1FBQ0QsT0FBTyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBd0I7UUFDNUMsTUFBTSxJQUFJLEdBQVksT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNwQyxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsT0FBTyxPQUFPLElBQUksQ0FBQyxJQUFJO1lBQ3JCLENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDO2dCQUNFLE9BQU8sRUFBRTtvQkFDUCxPQUFPLEVBQ0wsSUFBSSxFQUFFLElBQUk7d0JBQ1YsR0FBRzt3QkFDSCxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQzt3QkFDcEQsR0FBRzt3QkFDSCxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQztpQkFDakQ7YUFDRixDQUFDO0lBQ1IsQ0FBQztJQUVELGVBQWUsQ0FDYixPQUEyQixFQUMzQixlQUFlLEdBQUcsRUFBRSxFQUNwQixRQUFpQjtRQUVqQixLQUFLLE1BQU0sWUFBWSxJQUFJLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUMzQyxJQUNFLE9BQU8sRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztnQkFDNUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFDbEMsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FDbEMsWUFBWSxFQUNaLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQzVCLGVBQWUsRUFDZixRQUFRLENBQ1QsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxrQkFBa0IsQ0FDaEIsSUFBWSxFQUNaLE1BQU0sR0FBRyxlQUFlLEVBQ3hCLElBQUksR0FBRyxPQUFPO1FBRWQsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELHNCQUFzQixDQUNwQixJQUFZLEVBQ1osTUFBTSxHQUFHLFlBQVksRUFDckIsSUFBSSxHQUFHLElBQUk7UUFFWCxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUN4QyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQ1gsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUNaLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FDWixDQUFDO1FBQ0YsT0FBTyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsT0FBTyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVPLHdCQUF3QixDQUM5QixhQUFxQixFQUNyQixjQUFtQixFQUNuQixlQUF1QixFQUN2QixRQUFpQjtRQUVqQixJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFRO1lBQ2xCLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxxQkFBcUI7WUFDOUQsT0FBTyxFQUFFLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRTtZQUNwQyxLQUFLLEVBQ0gsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDM0QsdUJBQXVCO1lBQ3pCLFNBQVMsRUFBRSxRQUFRO2dCQUNqQixDQUFDLENBQUMsZ0NBQWdDLGNBQWMsQ0FBQyxjQUFjLE9BQU87Z0JBQ3RFLENBQUMsQ0FBQyw0QkFBNEIsY0FBYyxDQUFDLGNBQWMsVUFBVTtZQUN2RSxTQUFTLEVBQUUsUUFBUTtnQkFDakIsQ0FBQyxDQUFDLGlCQUFpQixjQUFjLENBQUMsY0FBYyxNQUFNO2dCQUN0RCxDQUFDLENBQUMsNEJBQTRCLGNBQWMsQ0FBQyxjQUFjLFVBQVU7WUFDdkUsR0FBRyxFQUFFLFFBQVE7Z0JBQ1gsQ0FBQyxDQUFDLHdCQUF3QixjQUFjLENBQUMsR0FBRyxFQUFFO2dCQUM5QyxDQUFDLENBQUMsOEJBQThCLGNBQWMsQ0FBQyxHQUFHLEdBQUc7WUFDdkQsR0FBRyxFQUFFLFFBQVE7Z0JBQ1gsQ0FBQyxDQUFDLHdCQUF3QixjQUFjLENBQUMsR0FBRyxFQUFFO2dCQUM5QyxDQUFDLENBQUMsOEJBQThCLGNBQWMsQ0FBQyxHQUFHLEdBQUc7WUFDdkQsT0FBTyxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjLENBQUM7WUFDdEQsT0FBTyxFQUFFLFFBQVE7Z0JBQ2YsQ0FBQyxDQUFDLGdDQUFnQztnQkFDbEMsQ0FBQyxDQUFDLDBCQUEwQjtZQUM5QixJQUFJLEVBQ0YsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7Z0JBQy9DLHNCQUFzQjtZQUN4QixPQUFPLEVBQ0wsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDckQsa0NBQWtDO1lBQ3BDLFFBQVEsRUFDTixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO2dCQUMxRCxjQUFjO1NBQ2pCLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8sYUFBYSxDQUFDLGNBQW1CLEVBQUUsZUFBdUI7UUFDaEUsSUFBSSxPQUFPLEdBQUc7WUFDWixHQUFHLGNBQWM7WUFDakIsT0FBTyxFQUFFLGVBQWU7U0FDekIsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxjQUFtQjtRQUNsRCxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMzQixHQUFHLEdBQUcsbUJBQW1CLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUNsRCxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDOUIsMEJBQTBCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUNwRCxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDL0IsR0FBRyxDQUFDO1FBQ1AsQ0FBQzthQUFNLElBQUksY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xDLEdBQUcsR0FBRyxtQkFBbUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQ2xELGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUM5QixpREFBaUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQzNFLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUMvQixHQUFHLENBQUM7UUFDUCxDQUFDO2FBQU0sSUFBSSxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEMsR0FBRyxHQUFHLDJCQUEyQixjQUFjLENBQUMsT0FBTyxHQUFHLENBQUM7UUFDN0QsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFhO1FBQzlDLE9BQU8sQ0FBQyxDQUNOLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHO1lBQ2pFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztZQUNkLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQztZQUNoQixJQUFJLEVBQUUsS0FBSyxHQUFHLEVBQUU7WUFDaEIsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVPLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUN0QyxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN0QyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQzdCLElBQUksT0FBTyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLFFBQVEsR0FBRyxRQUFRLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sUUFBUSxHQUFHLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFlO1FBQy9DLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNoQixJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDaEIsT0FBTyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUMzQixNQUFNLEdBQUcsTUFBTSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDMUQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU07d0JBQ0osTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3JFLENBQUM7Z0JBQ0QsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksTUFBTSxDQUFDO1lBQ1gsSUFBSSxjQUFjLENBQUM7WUFDbkIsSUFBSSxVQUFVLENBQUM7WUFDZixPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ1osT0FBTyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMvQixVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekMsTUFBTSxJQUFJLFVBQVUsQ0FBQztnQkFDckIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMzQixJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLGNBQWMsR0FBRyxNQUFNLENBQUM7WUFDMUIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLGNBQWMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0RSxDQUFDO1lBQ0QsSUFBSSxjQUFjLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLFVBQVUsR0FBRyxDQUFDLENBQUM7WUFDakIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFVBQVUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pELENBQUM7WUFDRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLElBQ0UsVUFBVTtnQkFDUixRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQzFELEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRTtnQkFDbEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUM1QixDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBZTtRQUM1QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDM0IsTUFBTSxHQUFHLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzFELENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNO3dCQUNKLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNyRSxDQUFDO2dCQUNELE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNmLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFJLE1BQU0sQ0FBQztZQUNYLElBQUksY0FBYyxDQUFDO1lBQ25CLElBQUksVUFBVSxDQUFDO1lBQ2YsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUNaLE9BQU8sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDL0IsVUFBVSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sSUFBSSxVQUFVLENBQUM7Z0JBQ3JCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN2QixjQUFjLEdBQUcsTUFBTSxDQUFDO1lBQzFCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixjQUFjLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdEUsQ0FBQztZQUNELElBQUksY0FBYyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN4QixVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixVQUFVLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqRCxDQUFDO1lBQ0QsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QyxJQUNFLFVBQVU7Z0JBQ1IsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUMxRCxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUU7Z0JBQ2xCLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFDNUIsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7OEdBOVVVLGNBQWM7a0hBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IG1vbWVudEhpanJpIGZyb20gJ21vbWVudC1oaWpyaSc7XHJcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IE5nYkRhdGUsIE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSVBBRm9ybVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFyc2VyRm9ybWF0dGVyOiBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBjaGVjayBsaW5rIGlzIHZhbGlkLlxyXG4gICAqL1xyXG4gIHN0YXRpYyBsaW5rVmFsaWRhdGlvbihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBpc1ZhbGlkTGluayA9XHJcbiAgICAgIC9eKChodHRwcz86XFwvXFwvKVtcXHctXSsoXFwuW2Etei1dKykrXFwuPyg6XFxkKyk/KFxcL1xcUyopPykkLy50ZXN0KFxyXG4gICAgICAgIGNvbnRyb2wudmFsdWVcclxuICAgICAgKTtcclxuICAgIHJldHVybiBpc1ZhbGlkTGluayB8fCAhY29udHJvbC52YWx1ZSA/IG51bGwgOiB7IGxpbms6IHRydWUgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNoZWNrIG1wNCBsaW5rIGlzIHZhbGlkLlxyXG4gICAqL1xyXG4gIHN0YXRpYyBtcDRMaW5rVmFsaWRhdGlvbihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBpc1ZhbGlkTGluayA9XHJcbiAgICAgIC9eKChodHRwcz86XFwvXFwvKVtcXHctXSsoXFwuW2Etei1dKykrXFwuPyg6XFxkKyk/KFxcL1xcUyopPyhcXC9bXFx3XFx1MDYwMC1cXHUwNkZGXStcXC5tcDQpKSQvLnRlc3QoXHJcbiAgICAgICAgY29udHJvbC52YWx1ZVxyXG4gICAgICApO1xyXG4gICAgcmV0dXJuIGlzVmFsaWRMaW5rIHx8ICFjb250cm9sLnZhbHVlID8gbnVsbCA6IHsgbGlua01QNDogdHJ1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY2hlY2sgbW9iaWxlIG51bWJlciBpcyB2YWxpZC5cclxuICAgKi9cclxuICBzdGF0aWMgbW9iaWxlTm8oY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgY29uc3QgaXNWYWxpZExpbmsgPSAvXjA1XFxkezh9JC8udGVzdChjb250cm9sLnZhbHVlKTtcclxuICAgIHJldHVybiBpc1ZhbGlkTGluayB8fCAhY29udHJvbC52YWx1ZSA/IG51bGwgOiB7IG1vYmlsZU5vOiB0cnVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjaGVjayBlbWFpbCBpcyB2YWxpZC5cclxuICAgKi9cclxuICBzdGF0aWMgZW1haWwoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgY29uc3QgaXNWYWxpZExpbmsgPVxyXG4gICAgICAvXigoW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXSsoXFwuW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXSspKil8KFxcXCIuK1xcXCIpKUAoKFtePD4oKVtcXF1cXC4sOzpcXHNAXFxcIl0rXFwuKStbXjw+KClbXFxdXFwuLDs6XFxzQFxcXCJdezIsfSkkLy50ZXN0KFxyXG4gICAgICAgIGNvbnRyb2wudmFsdWVcclxuICAgICAgKTtcclxuICAgIHJldHVybiBpc1ZhbGlkTGluayB8fCAhY29udHJvbC52YWx1ZSA/IG51bGwgOiB7IEVtYWlsOiB0cnVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjaGVjayBuYXRpb25hbCBJRCBvciBpcWFtYSBJRCBpcyB2YWxpZC5cclxuICAgKi9cclxuICBzdGF0aWMgY2hlY2tJRChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBsZXQgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xyXG4gICAgaWYgKFxyXG4gICAgICBJUEFGb3JtU2VydmljZS5uYXRpb25hbElkVmFsaWRhdGUodmFsdWUpIHx8XHJcbiAgICAgIElQQUZvcm1TZXJ2aWNlLmlxYW1hSWRWYWxpZGF0ZSh2YWx1ZSlcclxuICAgICkge1xyXG4gICAgICBpc1ZhbGlkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlzVmFsaWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBpc1ZhbGlkIHx8ICF2YWx1ZSA/IG51bGwgOiB7IGNoZWNrSWQ6IHRydWUgfTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyB2YWxpZEhpanJpRGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBkYXRlOiBOZ2JEYXRlID0gY29udHJvbC52YWx1ZTtcclxuICAgIGNvbnN0IGlzVmFsaWQgPSBJUEFGb3JtU2VydmljZS5jaGVja0hpanJpRGF0ZVZhbGlkKGRhdGUpO1xyXG4gICAgcmV0dXJuIGlzVmFsaWQgfHwgIWRhdGVcclxuICAgICAgPyBudWxsXHJcbiAgICAgIDoge1xyXG4gICAgICAgICAgbmdiRGF0ZToge1xyXG4gICAgICAgICAgICBpbnZhbGlkOlxyXG4gICAgICAgICAgICAgIGRhdGU/LnllYXIgK1xyXG4gICAgICAgICAgICAgICctJyArXHJcbiAgICAgICAgICAgICAgKGRhdGU/Lm1vbnRoID4gMTAgPyBkYXRlPy5tb250aCA6ICcwJyArIGRhdGU/Lm1vbnRoKSArXHJcbiAgICAgICAgICAgICAgJy0nICtcclxuICAgICAgICAgICAgICAoZGF0ZT8uZGF5ID4gMTAgPyBkYXRlPy5kYXkgOiAnMCcgKyBkYXRlPy5kYXkpLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JNZXNzYWdlKFxyXG4gICAgY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sLFxyXG4gICAgcGF0dGVybkVycm9yTXNnID0gJycsXHJcbiAgICBpc0FyYWJpYzogYm9vbGVhblxyXG4gICk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgaW4gY29udHJvbD8uZXJyb3JzKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBjb250cm9sPy5lcnJvcnMuaGFzT3duUHJvcGVydHkocHJvcGVydHlOYW1lKSAmJlxyXG4gICAgICAgIChjb250cm9sLnRvdWNoZWQgfHwgY29udHJvbC5kaXJ0eSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9yRXJyb3JNZXNzYWdlKFxyXG4gICAgICAgICAgcHJvcGVydHlOYW1lLFxyXG4gICAgICAgICAgY29udHJvbC5lcnJvcnNbcHJvcGVydHlOYW1lXSxcclxuICAgICAgICAgIHBhdHRlcm5FcnJvck1zZyxcclxuICAgICAgICAgIGlzQXJhYmljXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjb252ZXJ0IGdyZWdvcmlhbiBkYXRlIHRvIGhpanJpIGRhdGUgKEJhc2VkIG9uIFVtbSBhbC1RdXJhIGNhbGN1bGF0aW9ucykuXHJcbiAgICogQHBhcmFtIGRhdGU6IGdyZWdvcmlhbiBkYXRlXHJcbiAgICogQHBhcmFtIGZvcm1hdDogaUREID0+IGRheTog2aHZpSwgaU1NID0+IG1vbnRoOiDZoNmkLCBpTU1NID0+IG1vbnRoOiDYsdio2YrYuSDZoixcclxuICAgKiAgICAgICAgICAgICAgIGlNTU1NID0+INix2KjZiti5INin2YTYq9in2YbZiiwgIGlZWSA9PiB5ZWFyOiDZpNmiLCBpWVlZWSA9PiB5ZWFyOiDZodmk2aTZoixcclxuICAgKiAgICAgICAgICAgICAgIGRkID0+INmGLCBkZGQgPT4g2KXYq9mG2YrZhiwgZGRkZCA9PiDYp9mE2KXYq9mG2YrZhlxyXG4gICAqIEBleGFtcGxlICdpWVlZWS9pTS9pRNmH2YAg2KfZhNmF2YjYp9mB2YIgWVlZWS9NL0TZhSdcclxuICAgKiAgICAgICAgICAgJ9mh2aTZpNmiL9mg2aQv2aHZpdmH2YAg2KfZhNmF2YjYp9mB2YIg2aLZoNmi2aAv2aHZoS/Zo9mgJ1xyXG4gICAqL1xyXG4gIGNvbnZlcnRUb0hpanJpRGF0ZShcclxuICAgIGRhdGU6IHN0cmluZyxcclxuICAgIGZvcm1hdCA9ICdpWVlZWS1pTU0taUREJyxcclxuICAgIGxhbmcgPSAnYXItU0EnXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIG1vbWVudEhpanJpLmxvY2FsZShsYW5nKTtcclxuICAgIHJldHVybiBtb21lbnRIaWpyaShkYXRlKS5mb3JtYXQoZm9ybWF0KTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRUb0dyZWdvcmlhbkRhdGUoXHJcbiAgICBkYXRlOiBNb21lbnQsXHJcbiAgICBmb3JtYXQgPSAnWVlZWS1NTS1ERCcsXHJcbiAgICBsYW5nID0gJ2VuJ1xyXG4gICk6IHN0cmluZyB7XHJcbiAgICBtb21lbnRIaWpyaS5sb2NhbGUobGFuZyk7XHJcbiAgICBjb25zdCBtID0gbW9tZW50SGlqcmkuaUNvbnZlcnQudG9HcmVnb3JpYW4oXHJcbiAgICAgIGRhdGUueWVhcigpLFxyXG4gICAgICBkYXRlLm1vbnRoKCksXHJcbiAgICAgIGRhdGUuZGF0ZSgpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIG1vbWVudEhpanJpKG5ldyBEYXRlKG0uZ3ksIG0uZ20sIG0uZ2QpKS5mb3JtYXQoZm9ybWF0KTtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnRIaWpyaURhdGUoKSB7XHJcbiAgICBtb21lbnRIaWpyaS5sb2NhbGUoJ2VuJyk7XHJcbiAgICByZXR1cm4gbW9tZW50SGlqcmkoKS5mb3JtYXQoJ2lZWVlZL2lNTS9pREQnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VmFsaWRhdG9yRXJyb3JNZXNzYWdlKFxyXG4gICAgdmFsaWRhdG9yTmFtZTogc3RyaW5nLFxyXG4gICAgdmFsaWRhdG9yVmFsdWU6IGFueSxcclxuICAgIHBhdHRlcm5FcnJvck1zZzogc3RyaW5nLFxyXG4gICAgaXNBcmFiaWM6IGJvb2xlYW5cclxuICApOiBzdHJpbmcge1xyXG4gICAgaWYgKHZhbGlkYXRvck5hbWUgPT09ICdwYXR0ZXJuJykge1xyXG4gICAgICB2YWxpZGF0b3JWYWx1ZSA9IHRoaXMuYWRkUGF0dGVybk1zZyh2YWxpZGF0b3JWYWx1ZSwgcGF0dGVybkVycm9yTXNnKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbmZpZzogYW55ID0ge1xyXG4gICAgICByZXF1aXJlZDogaXNBcmFiaWMgPyAn2YfYsNinINin2YTYrdmC2YQg2YXYt9mE2YjYqCcgOiAndGhpcyBmaWVsZCByZXF1aXJlZCcsXHJcbiAgICAgIHBhdHRlcm46IGAke3ZhbGlkYXRvclZhbHVlLm1lc3NhZ2V9YCxcclxuICAgICAgRW1haWw6XHJcbiAgICAgICAgKGlzQXJhYmljID8gJ9iu2LfYoyDZgdmKINin2YTYqNix2YrYryDYp9mE2KfZhNmD2KrYsdmI2YbZiiAnIDogJ0ludmFsaWQgZW1haWwgJykgK1xyXG4gICAgICAgICcoZXhhbXBsZUBleGFtcGxlLmNvbSknLFxyXG4gICAgICBtYXhsZW5ndGg6IGlzQXJhYmljXHJcbiAgICAgICAgPyBg2KrYrNin2YjYsiDYudiv2K8g2KfZhNit2YLZhCDYp9mE2YXYs9mF2YjYrSDYqNmH2KcgKCR7dmFsaWRhdG9yVmFsdWUucmVxdWlyZWRMZW5ndGh9KSDYrdix2YFgXHJcbiAgICAgICAgOiBgdGhpcyBmaWVsZCBpcyBtb3JlIHRoYW4gKCR7dmFsaWRhdG9yVmFsdWUucmVxdWlyZWRMZW5ndGh9KSBsZXR0ZXJgLFxyXG4gICAgICBtaW5sZW5ndGg6IGlzQXJhYmljXHJcbiAgICAgICAgPyBg2LnZhNmJINin2YTYo9mC2YQg2LnYr9ivICR7dmFsaWRhdG9yVmFsdWUucmVxdWlyZWRMZW5ndGh9INit2LHZgWBcclxuICAgICAgICA6IGB0aGlzIGZpZWxkIGlzIGxlc3MgdGhhbiAoJHt2YWxpZGF0b3JWYWx1ZS5yZXF1aXJlZExlbmd0aH0pIGxldHRlcmAsXHJcbiAgICAgIG1pbjogaXNBcmFiaWNcclxuICAgICAgICA/IGDYsdmC2YUg2KfZg9io2LEg2YXZhiDYo9mIINmK2LPYp9mI2YogJHt2YWxpZGF0b3JWYWx1ZS5taW59YFxyXG4gICAgICAgIDogYG51bWJlciBtb3JlIHRoYW4gb3IgZXF1YWwgKCR7dmFsaWRhdG9yVmFsdWUubWlufSlgLFxyXG4gICAgICBtYXg6IGlzQXJhYmljXHJcbiAgICAgICAgPyBg2LHZgtmFINin2LXYutixINmF2YYg2KPZiCDZitiz2KfZiNmKICR7dmFsaWRhdG9yVmFsdWUubWF4fWBcclxuICAgICAgICA6IGBudW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsICgke3ZhbGlkYXRvclZhbHVlLm1pbn0pYCxcclxuICAgICAgbmdiRGF0ZTogdGhpcy5nZXROZ2JEYXRlcGlja2VyRXJyb3JNc2codmFsaWRhdG9yVmFsdWUpLFxyXG4gICAgICBjaGVja0lkOiBpc0FyYWJpY1xyXG4gICAgICAgID8gJ9ix2YLZhSDYp9mE2YfZiNmK2Kkg2KPZiCDYp9mE2KfZgtin2YXYqSDYutmK2LEg2LXYrdmK2K0nXHJcbiAgICAgICAgOiAnV3JvbmcgSUQgb3IgSXFhbWEgbnVtYmVyJyxcclxuICAgICAgbGluazpcclxuICAgICAgICAoaXNBcmFiaWMgPyAn2KfZhNix2KfYqNi3INi62YrYsSDYtdit2YrYrSAnIDogJ1dyb25nIGxpbmsgJykgK1xyXG4gICAgICAgICcoaHR0cDovL2V4YW1wbGUuY29tKScsXHJcbiAgICAgIGxpbmtNUDQ6XHJcbiAgICAgICAgKGlzQXJhYmljID8gJ9ix2KfYqNi3IE1QNCDYutmK2LEg2LXYrdmK2K0gJyA6ICdXcm9uZyBNUDQgbGluayAnKSArXHJcbiAgICAgICAgJyhodHRwOi8vZXhhbXBsZS5jb20vZXhhbXBsZS5tcDQpJyxcclxuICAgICAgbW9iaWxlTm86XHJcbiAgICAgICAgKGlzQXJhYmljID8gJ9iu2LfYoyDZgdmKINix2YLZhSDYp9mE2KzZiNin2YQgJyA6ICdXcm9uZyBtb2JpbGUgbnVtYmVyICcpICtcclxuICAgICAgICAnKDA1eHh4eHh4eHgpJyxcclxuICAgIH07XHJcbiAgICByZXR1cm4gY29uZmlnW3ZhbGlkYXRvck5hbWVdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRQYXR0ZXJuTXNnKHZhbGlkYXRvclZhbHVlOiBhbnksIHBhdHRlcm5FcnJvck1zZzogc3RyaW5nKSB7XHJcbiAgICBsZXQgcGF0dGVybiA9IHtcclxuICAgICAgLi4udmFsaWRhdG9yVmFsdWUsXHJcbiAgICAgIG1lc3NhZ2U6IHBhdHRlcm5FcnJvck1zZyxcclxuICAgIH07XHJcbiAgICByZXR1cm4gcGF0dGVybjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TmdiRGF0ZXBpY2tlckVycm9yTXNnKHZhbGlkYXRvclZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgbGV0IG1zZyA9ICcnO1xyXG4gICAgaWYgKHZhbGlkYXRvclZhbHVlLm1heERhdGUpIHtcclxuICAgICAgbXNnID0gYNin2YTYqtin2LHZitiuINin2YTZhdiv2K7ZhCBcIiR7dGhpcy5wYXJzZXJGb3JtYXR0ZXIuZm9ybWF0KFxyXG4gICAgICAgIHZhbGlkYXRvclZhbHVlLm1heERhdGUuYWN0dWFsXHJcbiAgICAgICl9XCIg2KfZg9io2LEg2YXZhiDYqtin2LHZitiuINin2YTZitmI2YUgXCIke3RoaXMucGFyc2VyRm9ybWF0dGVyLmZvcm1hdChcclxuICAgICAgICB2YWxpZGF0b3JWYWx1ZS5tYXhEYXRlLm1heERhdGVcclxuICAgICAgKX1cImA7XHJcbiAgICB9IGVsc2UgaWYgKHZhbGlkYXRvclZhbHVlLm1pbkRhdGUpIHtcclxuICAgICAgbXNnID0gYNin2YTYqtin2LHZitiuINin2YTZhdiv2K7ZhCBcIiR7dGhpcy5wYXJzZXJGb3JtYXR0ZXIuZm9ybWF0KFxyXG4gICAgICAgIHZhbGlkYXRvclZhbHVlLm1pbkRhdGUuYWN0dWFsXHJcbiAgICAgICl9XCIg2YrYrNioINin2YYg2YrZg9mI2YYg2KfZg9io2LEg2YXZhiDYo9mIINmK2LPYp9mI2Yog2KrYp9ix2YrYriDYp9mE2KjYr9in2YrYqSBcIiR7dGhpcy5wYXJzZXJGb3JtYXR0ZXIuZm9ybWF0KFxyXG4gICAgICAgIHZhbGlkYXRvclZhbHVlLm1pbkRhdGUubWluRGF0ZVxyXG4gICAgICApfVwiYDtcclxuICAgIH0gZWxzZSBpZiAodmFsaWRhdG9yVmFsdWUuaW52YWxpZCkge1xyXG4gICAgICBtc2cgPSBg2KfZhNiq2KfYsdmK2K4g2KfZhNmF2K/YrtmEINi62YrYsSDYtdit2YrYrSAke3ZhbGlkYXRvclZhbHVlLmludmFsaWR9LmA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbXNnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgY2hlY2tIaWpyaURhdGVWYWxpZChkYXRlOiBOZ2JEYXRlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIShcclxuICAgICAgbW9tZW50SGlqcmkuaURheXNJbk1vbnRoKGRhdGU/LnllYXIsIGRhdGU/Lm1vbnRoIC0gMSkgPCBkYXRlPy5kYXkgfHxcclxuICAgICAgZGF0ZT8uZGF5IDw9IDAgfHxcclxuICAgICAgZGF0ZT8ubW9udGggPD0gMCB8fFxyXG4gICAgICBkYXRlPy5tb250aCA+IDEyIHx8XHJcbiAgICAgIGRhdGU/LnllYXI/LnRvU3RyaW5nKCkubGVuZ3RoICE9PSA0XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgY29udmVydFRvRW4odmFsdWU6IHN0cmluZykge1xyXG4gICAgbGV0IG5ld1ZhbHVlID0gJyc7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBjaCA9IHZhbHVlLmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgIGlmIChjaCA+PSAxNTg0ICYmIGNoIDw9IDE2NTApIHtcclxuICAgICAgICBsZXQgbmV3Q2hhciA9IGNoIC0gMTU4NDtcclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlICsgU3RyaW5nLmZyb21DaGFyQ29kZShuZXdDaGFyKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlICsgU3RyaW5nLmZyb21DaGFyQ29kZShjaCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBuZXdWYWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIG5hdGlvbmFsSWRWYWxpZGF0ZShjaXZpbElkOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmIChjaXZpbElkKSB7XHJcbiAgICAgIGxldCBzdHJJRCA9IHRoaXMuY29udmVydFRvRW4oY2l2aWxJZCk7XHJcbiAgICAgIGxldCBkaWdpdHMgPSAnJztcclxuICAgICAgbGV0IGNvdW50ZXIgPSAwO1xyXG4gICAgICB3aGlsZSAoY291bnRlciA8IDkpIHtcclxuICAgICAgICBpZiAoKGNvdW50ZXIgKyAxKSAlIDIgPT0gMCkge1xyXG4gICAgICAgICAgZGlnaXRzID0gZGlnaXRzICsgc3RySUQuc3Vic3RyaW5nKGNvdW50ZXIsIGNvdW50ZXIgKyAxKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZGlnaXRzID1cclxuICAgICAgICAgICAgZGlnaXRzICsgKCtzdHJJRC5zdWJzdHJpbmcoY291bnRlciwgY291bnRlciArIDEpICogMikudG9TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY291bnRlcisrO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBpbnRTdW0gPSAwO1xyXG4gICAgICBsZXQgaW50U3VtVGVtcCA9IDA7XHJcbiAgICAgIGxldCBzdHJTdW07XHJcbiAgICAgIGxldCBpbnRPZGRTdW1EaWdpdDtcclxuICAgICAgbGV0IENoZWNrRGlnaXQ7XHJcbiAgICAgIGNvdW50ZXIgPSAwO1xyXG4gICAgICB3aGlsZSAoY291bnRlciA8IGRpZ2l0cy5sZW5ndGgpIHtcclxuICAgICAgICBpbnRTdW1UZW1wID0gK2RpZ2l0cy5jaGFyQXQoY291bnRlcikgKiAxO1xyXG4gICAgICAgIGludFN1bSArPSBpbnRTdW1UZW1wO1xyXG4gICAgICAgIGNvdW50ZXIrKztcclxuICAgICAgfVxyXG4gICAgICBzdHJTdW0gPSBpbnRTdW0udG9TdHJpbmcoKTtcclxuICAgICAgaWYgKHN0clN1bS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGludE9kZFN1bURpZ2l0ID0gaW50U3VtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGludE9kZFN1bURpZ2l0ID0gc3RyU3VtLnN1YnN0cmluZyhzdHJTdW0ubGVuZ3RoLCBzdHJTdW0ubGVuZ3RoIC0gMSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGludE9kZFN1bURpZ2l0ID09IDApIHtcclxuICAgICAgICBDaGVja0RpZ2l0ID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBDaGVja0RpZ2l0ID0gKDEwIC0gK2ludE9kZFN1bURpZ2l0KS50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBQdWJsaWNJRCA9IHRoaXMuY29udmVydFRvRW4oY2l2aWxJZCk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBDaGVja0RpZ2l0ID09XHJcbiAgICAgICAgICBQdWJsaWNJRC5zdWJzdHJpbmcoUHVibGljSUQubGVuZ3RoIC0gMSwgUHVibGljSUQubGVuZ3RoKSAmJlxyXG4gICAgICAgIHN0cklELmxlbmd0aCA9PSAxMCAmJlxyXG4gICAgICAgIHN0cklELnN1YnN0cmluZygwLCAxKSA9PSAnMSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBpcWFtYUlkVmFsaWRhdGUoY2l2aWxJZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoY2l2aWxJZCkge1xyXG4gICAgICBsZXQgc3RySUQgPSB0aGlzLmNvbnZlcnRUb0VuKGNpdmlsSWQpO1xyXG4gICAgICBsZXQgZGlnaXRzID0gJyc7XHJcbiAgICAgIGxldCBjb3VudGVyID0gMDtcclxuICAgICAgd2hpbGUgKGNvdW50ZXIgPCA5KSB7XHJcbiAgICAgICAgaWYgKChjb3VudGVyICsgMSkgJSAyID09IDApIHtcclxuICAgICAgICAgIGRpZ2l0cyA9IGRpZ2l0cyArIHN0cklELnN1YnN0cmluZyhjb3VudGVyLCBjb3VudGVyICsgMSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGRpZ2l0cyA9XHJcbiAgICAgICAgICAgIGRpZ2l0cyArICgrc3RySUQuc3Vic3RyaW5nKGNvdW50ZXIsIGNvdW50ZXIgKyAxKSAqIDIpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvdW50ZXIrKztcclxuICAgICAgfVxyXG4gICAgICBsZXQgaW50U3VtID0gMDtcclxuICAgICAgbGV0IGludFN1bVRlbXAgPSAwO1xyXG4gICAgICBsZXQgc3RyU3VtO1xyXG4gICAgICBsZXQgaW50T2RkU3VtRGlnaXQ7XHJcbiAgICAgIGxldCBDaGVja0RpZ2l0O1xyXG4gICAgICBjb3VudGVyID0gMDtcclxuICAgICAgd2hpbGUgKGNvdW50ZXIgPCBkaWdpdHMubGVuZ3RoKSB7XHJcbiAgICAgICAgaW50U3VtVGVtcCA9ICtkaWdpdHMuY2hhckF0KGNvdW50ZXIpICogMTtcclxuICAgICAgICBpbnRTdW0gKz0gaW50U3VtVGVtcDtcclxuICAgICAgICBjb3VudGVyKys7XHJcbiAgICAgIH1cclxuICAgICAgc3RyU3VtID0gaW50U3VtLnRvU3RyaW5nKCk7XHJcbiAgICAgIGlmIChzdHJTdW0ubGVuZ3RoID09IDEpIHtcclxuICAgICAgICBpbnRPZGRTdW1EaWdpdCA9IGludFN1bTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnRPZGRTdW1EaWdpdCA9IHN0clN1bS5zdWJzdHJpbmcoc3RyU3VtLmxlbmd0aCwgc3RyU3VtLmxlbmd0aCAtIDEpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbnRPZGRTdW1EaWdpdCA9PSAwKSB7XHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9IDA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9ICgxMCAtICtpbnRPZGRTdW1EaWdpdCkudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgUHVibGljSUQgPSB0aGlzLmNvbnZlcnRUb0VuKGNpdmlsSWQpO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9PVxyXG4gICAgICAgICAgUHVibGljSUQuc3Vic3RyaW5nKFB1YmxpY0lELmxlbmd0aCAtIDEsIFB1YmxpY0lELmxlbmd0aCkgJiZcclxuICAgICAgICBzdHJJRC5sZW5ndGggPT0gMTAgJiZcclxuICAgICAgICBzdHJJRC5zdWJzdHJpbmcoMCwgMSkgPT0gJzInXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -31,10 +31,10 @@ export class RecaptchaComponent {
31
31
  registerOnTouched(fn) {
32
32
  this.onTouched = fn;
33
33
  }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: RecaptchaComponent, deps: [{ token: i1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: RecaptchaComponent, selector: "ipa-recaptcha", inputs: { siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, ngImport: i0, template: "<ngx-recaptcha2 [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" [formControl]=\"formControl\">\n</ngx-recaptcha2>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.ReCaptcha2Component, selector: "ngx-recaptcha2", inputs: ["theme", "size"] }] }); }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: RecaptchaComponent, deps: [{ token: i1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: RecaptchaComponent, selector: "ipa-recaptcha", inputs: { siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, ngImport: i0, template: "<ngx-recaptcha2 [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" [formControl]=\"formControl\">\n</ngx-recaptcha2>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.ReCaptcha2Component, selector: "ngx-recaptcha2", inputs: ["theme", "size"] }] }); }
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: RecaptchaComponent, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: RecaptchaComponent, decorators: [{
38
38
  type: Component,
39
39
  args: [{ selector: 'ipa-recaptcha', template: "<ngx-recaptcha2 [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" [formControl]=\"formControl\">\n</ngx-recaptcha2>" }]
40
40
  }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
@@ -52,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
52
52
  }], useGlobalDomain: [{
53
53
  type: Input
54
54
  }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vcmVjYXB0Y2hhL3JlY2FwdGNoYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL3JlY2FwdGNoYS9yZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTy9ELE1BQU0sT0FBTyxrQkFBa0I7SUFRN0IsWUFBMkIsVUFBcUI7UUFBckIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQVB2QyxZQUFPLEdBQUcsMENBQTBDLENBQUM7UUFDckQsa0JBQWEsR0FBeUIsUUFBUSxDQUFDO1FBQy9DLFNBQUksR0FBZ0IsSUFBSSxDQUFDO1FBQ3pCLGtCQUFhLEdBQXNCLE9BQU8sQ0FBQztRQUMzQyxVQUFLLEdBQXFCLE9BQU8sQ0FBQztRQUNsQyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUNoQyxnQkFBVyxHQUF1QixJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFakUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQTZCLENBQUM7SUFDbkQsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVLElBQVMsQ0FBQztJQUU3QixTQUFTLEtBQVUsQ0FBQztJQUNwQixVQUFVLENBQUMsR0FBUSxJQUFTLENBQUM7SUFFN0IsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDOytHQWhDVSxrQkFBa0I7bUdBQWxCLGtCQUFrQix1TkNSL0Isc05BRWlCOzs0RkRNSixrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZUFBZTs7MEJBWVosSUFBSTt5Q0FQUixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lwYS1yZWNhcHRjaGEnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjYXB0Y2hhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjYXB0Y2hhLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJlY2FwdGNoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHNpdGVLZXkgPSAnNkxlZkpRWWRBQUFBQUlseG1ma2pObFdpZE1rOFZ1a0laY3M2bE81ZSc7XG4gIEBJbnB1dCgpIHJlY2FwdGNoYVNpemU6ICdjb21wYWN0JyB8ICdub3JtYWwnID0gJ25vcm1hbCc7XG4gIEBJbnB1dCgpIGxhbmc6ICdhcicgfCAnZW4nID0gJ2FyJztcbiAgQElucHV0KCkgcmVjYXB0Y2hhVHlwZTogJ2ltYWdlJyB8ICdhdWRpbycgPSAnaW1hZ2UnO1xuICBASW5wdXQoKSB0aGVtZTogJ2xpZ2h0JyB8ICdkYXJrJyA9ICdsaWdodCc7XG4gIEBJbnB1dCgpIHVzZUdsb2JhbERvbWFpbiA9IHRydWU7XG4gIGZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKTtcbiAgY29uc3RydWN0b3IoQFNlbGYoKSBwdWJsaWMgY29udHJvbERpcjogTmdDb250cm9sKSB7XG4gICAgdGhpcy5jb250cm9sRGlyLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbERpci5jb250cm9sO1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBjb250cm9sPy52YWxpZGF0b3IgPyBbY29udHJvbC52YWxpZGF0b3JdIDogW107XG5cbiAgICBjb250cm9sPy5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgIGNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB0aGlzLmZvcm1Db250cm9sID0gY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIH1cblxuICBvbkNoYW5nZShldmVudDogYW55KTogdm9pZCB7fVxuXG4gIG9uVG91Y2hlZCgpOiB2b2lkIHt9XG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHt9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cbn1cbiIsIjxuZ3gtcmVjYXB0Y2hhMiBbc2l0ZUtleV09XCJzaXRlS2V5XCIgW3NpemVdPVwicmVjYXB0Y2hhU2l6ZVwiIFtobF09XCJsYW5nXCIgW3RoZW1lXT1cInRoZW1lXCIgW3R5cGVdPVwicmVjYXB0Y2hhVHlwZVwiXG4gICAgW3VzZUdsb2JhbERvbWFpbl09XCJ1c2VHbG9iYWxEb21haW5cIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIj5cbjwvbmd4LXJlY2FwdGNoYTI+Il19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vcmVjYXB0Y2hhL3JlY2FwdGNoYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL3JlY2FwdGNoYS9yZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTy9ELE1BQU0sT0FBTyxrQkFBa0I7SUFRN0IsWUFBMkIsVUFBcUI7UUFBckIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQVB2QyxZQUFPLEdBQUcsMENBQTBDLENBQUM7UUFDckQsa0JBQWEsR0FBeUIsUUFBUSxDQUFDO1FBQy9DLFNBQUksR0FBZ0IsSUFBSSxDQUFDO1FBQ3pCLGtCQUFhLEdBQXNCLE9BQU8sQ0FBQztRQUMzQyxVQUFLLEdBQXFCLE9BQU8sQ0FBQztRQUNsQyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUNoQyxnQkFBVyxHQUF1QixJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFakUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQTZCLENBQUM7SUFDbkQsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVLElBQVMsQ0FBQztJQUU3QixTQUFTLEtBQVUsQ0FBQztJQUNwQixVQUFVLENBQUMsR0FBUSxJQUFTLENBQUM7SUFFN0IsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDOzhHQWhDVSxrQkFBa0I7a0dBQWxCLGtCQUFrQix1TkNSL0Isc05BRWlCOzsyRkRNSixrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZUFBZTs7MEJBWVosSUFBSTt5Q0FQUixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXBhLXJlY2FwdGNoYScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2FwdGNoYS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVjYXB0Y2hhLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNhcHRjaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHNpdGVLZXkgPSAnNkxlZkpRWWRBQUFBQUlseG1ma2pObFdpZE1rOFZ1a0laY3M2bE81ZSc7XHJcbiAgQElucHV0KCkgcmVjYXB0Y2hhU2l6ZTogJ2NvbXBhY3QnIHwgJ25vcm1hbCcgPSAnbm9ybWFsJztcclxuICBASW5wdXQoKSBsYW5nOiAnYXInIHwgJ2VuJyA9ICdhcic7XHJcbiAgQElucHV0KCkgcmVjYXB0Y2hhVHlwZTogJ2ltYWdlJyB8ICdhdWRpbycgPSAnaW1hZ2UnO1xyXG4gIEBJbnB1dCgpIHRoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnID0gJ2xpZ2h0JztcclxuICBASW5wdXQoKSB1c2VHbG9iYWxEb21haW4gPSB0cnVlO1xyXG4gIGZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKTtcclxuICBjb25zdHJ1Y3RvcihAU2VsZigpIHB1YmxpYyBjb250cm9sRGlyOiBOZ0NvbnRyb2wpIHtcclxuICAgIHRoaXMuY29udHJvbERpci52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbERpci5jb250cm9sO1xyXG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IGNvbnRyb2w/LnZhbGlkYXRvciA/IFtjb250cm9sLnZhbGlkYXRvcl0gOiBbXTtcclxuXHJcbiAgICBjb250cm9sPy5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge31cclxuXHJcbiAgb25Ub3VjaGVkKCk6IHZvaWQge31cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7fVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG59XHJcbiIsIjxuZ3gtcmVjYXB0Y2hhMiBbc2l0ZUtleV09XCJzaXRlS2V5XCIgW3NpemVdPVwicmVjYXB0Y2hhU2l6ZVwiIFtobF09XCJsYW5nXCIgW3RoZW1lXT1cInRoZW1lXCIgW3R5cGVdPVwicmVjYXB0Y2hhVHlwZVwiXG4gICAgW3VzZUdsb2JhbERvbWFpbl09XCJ1c2VHbG9iYWxEb21haW5cIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIj5cbjwvbmd4LXJlY2FwdGNoYTI+Il19
@@ -1,13 +1,13 @@
1
- import { Component, inject, Input, } from '@angular/core';
2
- import { HostControlDirectiveDirective } from '../../directives/host-control-directive.directive';
1
+ import { Component, Input, Self, ViewChild, } from '@angular/core';
2
+ import { UntypedFormControl } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../ipa-form.service";
5
- import * as i2 from "../../directives/host-control-directive.directive";
5
+ import * as i2 from "@angular/forms";
6
6
  import * as i3 from "@angular/common";
7
- import * as i4 from "@angular/forms";
8
7
  export class TextInputComponent {
9
- constructor(validationService, cd) {
8
+ constructor(validationService, controlDir, cd) {
10
9
  this.validationService = validationService;
10
+ this.controlDir = controlDir;
11
11
  this.cd = cd;
12
12
  this.type = 'text';
13
13
  this.placeholder = 'please enter text';
@@ -17,34 +17,57 @@ export class TextInputComponent {
17
17
  this.onlyNumber = false;
18
18
  this.pattern = '';
19
19
  this.isArabicForm = true;
20
- this.formControl = inject(HostControlDirectiveDirective);
20
+ this.formControl = new UntypedFormControl('');
21
+ this.controlDir.valueAccessor = this;
21
22
  }
22
23
  ngAfterContentChecked() {
23
24
  this.cd.detectChanges();
24
25
  }
25
- ngOnInit() { }
26
+ ngOnInit() {
27
+ const control = this.controlDir.control;
28
+ const validators = control?.validator ? [control.validator] : [];
29
+ control?.setValidators(validators);
30
+ control?.updateValueAndValidity();
31
+ this.formControl = control;
32
+ }
33
+ onChange(event) { }
34
+ onTouched() { }
35
+ writeValue(obj) {
36
+ this.input.nativeElement.value = obj || '';
37
+ }
38
+ registerOnChange(fn) {
39
+ this.onChange = fn;
40
+ }
41
+ registerOnTouched(fn) {
42
+ this.onTouched = fn;
43
+ }
26
44
  checkIsNumber(event) {
27
45
  if (this.onlyNumber) {
28
- const initialValue = this.formControl.control.value;
46
+ const initialValue = this.formControl.value;
29
47
  const newValue = initialValue.replace(/[^0-9]*/g, '');
30
- this.formControl.control.patchValue(newValue);
31
- this.formControl.control.markAsPristine();
32
- if (initialValue !== this.formControl.control.value) {
48
+ this.formControl.patchValue(newValue);
49
+ this.formControl.markAsPristine();
50
+ if (initialValue !== this.formControl.value) {
33
51
  event.stopPropagation();
34
52
  }
35
53
  }
36
54
  }
37
55
  get errorMessage() {
38
- this.errorMsg = this.validationService.getErrorMessage(this.formControl.control, this.patternErrorMsg, this.isArabicForm);
56
+ this.errorMsg = this.validationService.getErrorMessage(this.formControl, this.patternErrorMsg, this.isArabicForm);
39
57
  return this.errorMsg;
40
58
  }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TextInputComponent, deps: [{ token: i1.IPAFormService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: TextInputComponent, selector: "ipa-text-input", inputs: { id: "id", type: "type", placeholder: "placeholder", label: "label", required: "required", patternErrorMsg: "patternErrorMsg", onlyNumber: "onlyNumber", pattern: "pattern", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm" }, hostDirectives: [{ directive: i2.HostControlDirectiveDirective }], ngImport: i0, template: "<div class=\"form-floating {{ containerClasses }}\">\r\n <input\r\n id=\"{{ id }}\"\r\n class=\"form-control {{ classes }}\"\r\n [type]=\"type\"\r\n [required]=\"required\"\r\n pattern=\"{{ pattern }}\"\r\n placeholder=\"{{ placeholder }}\"\r\n [formControl]=\"formControl.control\"\r\n (input)=\"checkIsNumber($event)\"\r\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus':\r\n formControl.control.invalid &&\r\n (formControl.control.dirty || formControl.control.touched) &&\r\n errorMsg,\r\n 'is-valid is-valid:focus':\r\n formControl.control?.valid &&\r\n (formControl.control?.dirty || formControl.control.touched) &&\r\n (errorMsg || formControl.control.value)\r\n }\"\r\n />\r\n <label for=\"{{ id }}\">{{ label }}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{ errorMsg }}\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TextInputComponent, deps: [{ token: i1.IPAFormService }, { token: i2.NgControl, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: TextInputComponent, selector: "ipa-text-input", inputs: { id: "id", type: "type", placeholder: "placeholder", label: "label", required: "required", patternErrorMsg: "patternErrorMsg", onlyNumber: "onlyNumber", pattern: "pattern", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"form-floating {{containerClasses}}\">\r\n <input #input id=\"{{id}}\" class=\"form-control {{classes}}\" [type]=\"type\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" (input)=\"checkIsNumber($event)\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
43
61
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TextInputComponent, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TextInputComponent, decorators: [{
45
63
  type: Component,
46
- args: [{ selector: 'ipa-text-input', hostDirectives: [HostControlDirectiveDirective], template: "<div class=\"form-floating {{ containerClasses }}\">\r\n <input\r\n id=\"{{ id }}\"\r\n class=\"form-control {{ classes }}\"\r\n [type]=\"type\"\r\n [required]=\"required\"\r\n pattern=\"{{ pattern }}\"\r\n placeholder=\"{{ placeholder }}\"\r\n [formControl]=\"formControl.control\"\r\n (input)=\"checkIsNumber($event)\"\r\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus':\r\n formControl.control.invalid &&\r\n (formControl.control.dirty || formControl.control.touched) &&\r\n errorMsg,\r\n 'is-valid is-valid:focus':\r\n formControl.control?.valid &&\r\n (formControl.control?.dirty || formControl.control.touched) &&\r\n (errorMsg || formControl.control.value)\r\n }\"\r\n />\r\n <label for=\"{{ id }}\">{{ label }}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{ errorMsg }}\r\n </div>\r\n</div>\r\n" }]
47
- }], ctorParameters: () => [{ type: i1.IPAFormService }, { type: i0.ChangeDetectorRef }], propDecorators: { id: [{
64
+ args: [{ selector: 'ipa-text-input', template: "<div class=\"form-floating {{containerClasses}}\">\r\n <input #input id=\"{{id}}\" class=\"form-control {{classes}}\" [type]=\"type\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" (input)=\"checkIsNumber($event)\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>" }]
65
+ }], ctorParameters: () => [{ type: i1.IPAFormService }, { type: i2.NgControl, decorators: [{
66
+ type: Self
67
+ }] }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
68
+ type: ViewChild,
69
+ args: ['input', { static: true }]
70
+ }], id: [{
48
71
  type: Input
49
72
  }], type: [{
50
73
  type: Input
@@ -67,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
67
90
  }], isArabicForm: [{
68
91
  type: Input
69
92
  }] } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7OztBQVFsRyxNQUFNLE9BQU8sa0JBQWtCO0lBZTdCLFlBQ1UsaUJBQWlDLEVBQ2pDLEVBQXFCO1FBRHJCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBZ0I7UUFDakMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFmdEIsU0FBSSxHQUFHLE1BQU0sQ0FBQztRQUNkLGdCQUFXLEdBQUcsbUJBQW1CLENBQUM7UUFDbEMsVUFBSyxHQUFXLFlBQVksQ0FBQztRQUM3QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLG9CQUFlLEdBQUcsaUJBQWlCLENBQUM7UUFDcEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBR2IsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDN0IsZ0JBQVcsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtJQU1oRCxDQUFDO0lBRUoscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVEsS0FBVSxDQUFDO0lBRW5CLGFBQWEsQ0FBQyxLQUFZO1FBQ3hCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUMsSUFBSSxZQUFZLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3BELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUN4QixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsWUFBWSxDQUNsQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7K0dBN0NVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHlZQ2pCL0IsbzZCQTBCQTs7NEZEVGEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGdCQUFnQixrQkFHVixDQUFDLDZCQUE2QixDQUFDO21IQUd0QyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElQQUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vaXBhLWZvcm0uc2VydmljZSc7XHJcbmltcG9ydCB7IEhvc3RDb250cm9sRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9ob3N0LWNvbnRyb2wtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lwYS10ZXh0LWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3REaXJlY3RpdmVzOiBbSG9zdENvbnRyb2xEaXJlY3RpdmVEaXJlY3RpdmVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRDaGVja2VkIHtcclxuICBASW5wdXQoKSBpZCE6IHN0cmluZztcclxuICBASW5wdXQoKSB0eXBlID0gJ3RleHQnO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ3BsZWFzZSBlbnRlciB0ZXh0JztcclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJ3RleHQgaW5wdXQnO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcGF0dGVybkVycm9yTXNnID0gJ2ludmFsaWQgcGF0dGVybic7XHJcbiAgQElucHV0KCkgb25seU51bWJlciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHBhdHRlcm4gPSAnJztcclxuICBASW5wdXQoKSBjbGFzc2VzITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbnRhaW5lckNsYXNzZXMhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNBcmFiaWNGb3JtID0gdHJ1ZTtcclxuICBmb3JtQ29udHJvbCA9IGluamVjdChIb3N0Q29udHJvbERpcmVjdGl2ZURpcmVjdGl2ZSlcclxuICBlcnJvck1zZyE6IHN0cmluZyB8IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogSVBBRm9ybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIGNoZWNrSXNOdW1iZXIoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5vbmx5TnVtYmVyKSB7XHJcbiAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2wuY29udHJvbC52YWx1ZTtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBpbml0aWFsVmFsdWUucmVwbGFjZSgvW14wLTldKi9nLCAnJyk7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuY29udHJvbC5wYXRjaFZhbHVlKG5ld1ZhbHVlKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5jb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICAgIGlmIChpbml0aWFsVmFsdWUgIT09IHRoaXMuZm9ybUNvbnRyb2wuY29udHJvbC52YWx1ZSkge1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZXJyb3JNZXNzYWdlKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgdGhpcy5lcnJvck1zZyA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKFxyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmNvbnRyb2wsXHJcbiAgICAgIHRoaXMucGF0dGVybkVycm9yTXNnLFxyXG4gICAgICB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmVycm9yTXNnO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1mbG9hdGluZyB7eyBjb250YWluZXJDbGFzc2VzIH19XCI+XHJcbiAgPGlucHV0XHJcbiAgICBpZD1cInt7IGlkIH19XCJcclxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIHt7IGNsYXNzZXMgfX1cIlxyXG4gICAgW3R5cGVdPVwidHlwZVwiXHJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgcGF0dGVybj1cInt7IHBhdHRlcm4gfX1cIlxyXG4gICAgcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlciB9fVwiXHJcbiAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2wuY29udHJvbFwiXHJcbiAgICAoaW5wdXQpPVwiY2hlY2tJc051bWJlcigkZXZlbnQpXCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgJ2lzLWludmFsaWQgaXMtaW52YWxpZDpmb2N1cyc6XHJcbiAgICAgICAgZm9ybUNvbnRyb2wuY29udHJvbC5pbnZhbGlkICYmXHJcbiAgICAgICAgKGZvcm1Db250cm9sLmNvbnRyb2wuZGlydHkgfHwgZm9ybUNvbnRyb2wuY29udHJvbC50b3VjaGVkKSAmJlxyXG4gICAgICAgIGVycm9yTXNnLFxyXG4gICAgICAnaXMtdmFsaWQgaXMtdmFsaWQ6Zm9jdXMnOlxyXG4gICAgICAgIGZvcm1Db250cm9sLmNvbnRyb2w/LnZhbGlkICYmXHJcbiAgICAgICAgKGZvcm1Db250cm9sLmNvbnRyb2w/LmRpcnR5IHx8IGZvcm1Db250cm9sLmNvbnRyb2wudG91Y2hlZCkgJiZcclxuICAgICAgICAoZXJyb3JNc2cgfHwgZm9ybUNvbnRyb2wuY29udHJvbC52YWx1ZSlcclxuICAgIH1cIlxyXG4gIC8+XHJcbiAgPGxhYmVsIGZvcj1cInt7IGlkIH19XCI+e3sgbGFiZWwgfX08L2xhYmVsPlxyXG4gIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJlcnJvck1lc3NhZ2UgIT09IG51bGxcIj5cclxuICAgIHt7IGVycm9yTXNnIH19XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUVULEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVEvRCxNQUFNLE9BQU8sa0JBQWtCO0lBZ0I3QixZQUNVLGlCQUFpQyxFQUMxQixVQUFxQixFQUM1QixFQUFxQjtRQUZyQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWdCO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDNUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFoQnRCLFNBQUksR0FBRyxNQUFNLENBQUM7UUFDZCxnQkFBVyxHQUFHLG1CQUFtQixDQUFDO1FBQ2xDLFVBQUssR0FBVyxZQUFZLENBQUM7UUFDN0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixvQkFBZSxHQUFHLGlCQUFpQixDQUFDO1FBQ3BDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUdiLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzdCLGdCQUFXLEdBQXVCLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFRM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFakUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQTZCLENBQUM7SUFDbkQsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVLElBQVMsQ0FBQztJQUU3QixTQUFTLEtBQVUsQ0FBQztJQUNwQixVQUFVLENBQUMsR0FBUTtRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVk7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDNUMsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNsQyxJQUFJLFlBQVksS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM1QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUNwRCxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsWUFBWSxDQUNsQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7OEdBdkVVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLG9iQ2xCL0IseTFCQVNNOzsyRkRTTyxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZ0JBQWdCOzswQkFzQnZCLElBQUk7eUVBakIrQixLQUFLO3NCQUExQyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQzNCLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgU2VsZixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJUEFGb3JtU2VydmljZSB9IGZyb20gJy4uL2lwYS1mb3JtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpcGEtdGV4dC1pbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RleHQtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dCE6IEVsZW1lbnRSZWY7XHJcbiAgQElucHV0KCkgaWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdHlwZSA9ICd0ZXh0JztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdwbGVhc2UgZW50ZXIgdGV4dCc7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICd0ZXh0IGlucHV0JztcclxuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHBhdHRlcm5FcnJvck1zZyA9ICdpbnZhbGlkIHBhdHRlcm4nO1xyXG4gIEBJbnB1dCgpIG9ubHlOdW1iZXIgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwYXR0ZXJuID0gJyc7XHJcbiAgQElucHV0KCkgY2xhc3NlcyE6IHN0cmluZztcclxuICBASW5wdXQoKSBjb250YWluZXJDbGFzc2VzITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlzQXJhYmljRm9ybSA9IHRydWU7XHJcbiAgZm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpO1xyXG4gIGVycm9yTXNnITogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHZhbGlkYXRpb25TZXJ2aWNlOiBJUEFGb3JtU2VydmljZSxcclxuICAgIEBTZWxmKCkgcHVibGljIGNvbnRyb2xEaXI6IE5nQ29udHJvbCxcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbnRyb2xEaXIudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbERpci5jb250cm9sO1xyXG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IGNvbnRyb2w/LnZhbGlkYXRvciA/IFtjb250cm9sLnZhbGlkYXRvcl0gOiBbXTtcclxuXHJcbiAgICBjb250cm9sPy5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge31cclxuXHJcbiAgb25Ub3VjaGVkKCk6IHZvaWQge31cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBvYmogfHwgJyc7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBjaGVja0lzTnVtYmVyKGV2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMub25seU51bWJlcikge1xyXG4gICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGluaXRpYWxWYWx1ZS5yZXBsYWNlKC9bXjAtOV0qL2csICcnKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKG5ld1ZhbHVlKTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgICBpZiAoaW5pdGlhbFZhbHVlICE9PSB0aGlzLmZvcm1Db250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBlcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICB0aGlzLmVycm9yTXNnID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wsXHJcbiAgICAgIHRoaXMucGF0dGVybkVycm9yTXNnLFxyXG4gICAgICB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmVycm9yTXNnO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1mbG9hdGluZyB7e2NvbnRhaW5lckNsYXNzZXN9fVwiPlxyXG4gICAgPGlucHV0ICNpbnB1dCBpZD1cInt7aWR9fVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHt7Y2xhc3Nlc319XCIgW3R5cGVdPVwidHlwZVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIHBhdHRlcm49XCJ7e3BhdHRlcm59fVwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlaG9sZGVyfX1cIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiAoaW5wdXQpPVwib25DaGFuZ2UoY29udHJvbERpci5jb250cm9sPy52YWx1ZSlcIlxyXG4gICAgICAgIChibHVyKT1cIm9uVG91Y2hlZCgpXCIgKGlucHV0KT1cImNoZWNrSXNOdW1iZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkIGlzLWludmFsaWQ6Zm9jdXMnOiAoY29udHJvbERpci5jb250cm9sPy5pbnZhbGlkICYmIChjb250cm9sRGlyLmNvbnRyb2w/LmRpcnR5IHx8IGNvbnRyb2xEaXIuY29udHJvbD8udG91Y2hlZCkpICYmIGVycm9yTXNnLCdpcy12YWxpZCBpcy12YWxpZDpmb2N1cyc6IChjb250cm9sRGlyLmNvbnRyb2w/LnZhbGlkICYmIChjb250cm9sRGlyLmNvbnRyb2w/LmRpcnR5IHx8IGNvbnRyb2xEaXIuY29udHJvbD8udG91Y2hlZCkgICYmIChlcnJvck1zZyB8fCBjb250cm9sRGlyLnZhbHVlKSl9XCI+XHJcbiAgICA8bGFiZWwgZm9yPVwie3tpZH19XCI+e3tsYWJlbH19PC9sYWJlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJlcnJvck1lc3NhZ2UgIT09IG51bGxcIj5cclxuICAgICAgICB7e2Vycm9yTXNnfX1cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -43,10 +43,10 @@ export class TextareaInputComponent {
43
43
  this.errorMsg = this.validationService.getErrorMessage(this.formControl, this.patternErrorMsg, this.isArabicForm);
44
44
  return this.errorMsg;
45
45
  }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TextareaInputComponent, deps: [{ token: i1.IPAFormService }, { token: i2.NgControl, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: TextareaInputComponent, selector: "ipa-textarea-input", inputs: { id: "id", placeholder: "placeholder", label: "label", required: "required", patternErrorMsg: "patternErrorMsg", pattern: "pattern", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"form-floating {{containerClasses}}\">\r\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" style=\"height: 135px;\"\r\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,\r\n 'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </textarea>\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>", styles: [".form-floating label{min-width:100%}.form-floating label:before{content:\"\";position:absolute;top:.9em;z-index:-1;width:110%;height:2em;background-color:#fff;box-shadow:0 -1px #fff}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.95;color:gray}@media (max-width: 1699px){.form-floating label:before{width:107%!important}}@media (max-width: 770px){.form-floating label:before{width:97%!important}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TextareaInputComponent, deps: [{ token: i1.IPAFormService }, { token: i2.NgControl, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: TextareaInputComponent, selector: "ipa-textarea-input", inputs: { id: "id", placeholder: "placeholder", label: "label", required: "required", patternErrorMsg: "patternErrorMsg", pattern: "pattern", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"form-floating {{containerClasses}}\">\r\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" style=\"height: 135px;\"\r\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,\r\n 'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </textarea>\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>", styles: [".form-floating label{min-width:100%}.form-floating label:before{content:\"\";position:absolute;top:.9em;z-index:-1;width:110%;height:2em;background-color:#fff;box-shadow:0 -1px #fff}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.95;color:gray}@media (max-width: 1699px){.form-floating label:before{width:107%!important}}@media (max-width: 770px){.form-floating label:before{width:97%!important}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TextareaInputComponent, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: TextareaInputComponent, decorators: [{
50
50
  type: Component,
51
51
  args: [{ selector: 'ipa-textarea-input', template: "<div class=\"form-floating {{containerClasses}}\">\r\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" style=\"height: 135px;\"\r\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,\r\n 'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </textarea>\r\n <label for=\"{{id}}\">{{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>", styles: [".form-floating label{min-width:100%}.form-floating label:before{content:\"\";position:absolute;top:.9em;z-index:-1;width:110%;height:2em;background-color:#fff;box-shadow:0 -1px #fff}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.95;color:gray}@media (max-width: 1699px){.form-floating label:before{width:107%!important}}@media (max-width: 770px){.form-floating label:before{width:97%!important}}\n"] }]
52
52
  }], ctorParameters: () => [{ type: i1.IPAFormService }, { type: i2.NgControl, decorators: [{
@@ -73,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
73
73
  }], isArabicForm: [{
74
74
  type: Input
75
75
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS90ZXh0YXJlYS1pbnB1dC90ZXh0YXJlYS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL3RleHRhcmVhLWlucHV0L3RleHRhcmVhLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVEvRCxNQUFNLE9BQU8sc0JBQXNCO0lBZWpDLFlBQ1UsaUJBQWlDLEVBQzFCLFVBQXFCLEVBQzVCLEVBQXFCO1FBRnJCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBZ0I7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUM1QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWpCTyxVQUFLLEdBQ3pDLElBQUksVUFBVSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBRW5CLGdCQUFXLEdBQUcsbUJBQW1CLENBQUM7UUFDbEMsVUFBSyxHQUFXLGdCQUFnQixDQUFDO1FBQ2pDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsb0JBQWUsR0FBRyxpQkFBaUIsQ0FBQztRQUlwQyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixnQkFBVyxHQUF1QixJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBUTNELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxNQUFNLFVBQVUsR0FBRyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRWpFLE9BQU8sRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUE2QixDQUFDO0lBQ25ELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVSxJQUFTLENBQUM7SUFFN0IsU0FBUyxLQUFVLENBQUM7SUFDcEIsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FDcEQsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLGVBQWUsRUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FDbEIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDOytHQTFEVSxzQkFBc0I7bUdBQXRCLHNCQUFzQixnWkNsQm5DLDgyQkFZTTs7NEZETU8sc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjs7MEJBcUIzQixJQUFJO3lFQWhCK0IsS0FBSztzQkFBMUMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUUzQixFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIFNlbGYsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSVBBRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9pcGEtZm9ybS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXBhLXRleHRhcmVhLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dGFyZWEtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RleHRhcmVhLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0YXJlYUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRDaGVja2VkIHtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0OiBFbGVtZW50UmVmPGFueT4gPVxyXG4gICAgbmV3IEVsZW1lbnRSZWY8YW55PihudWxsKTtcclxuICBASW5wdXQoKSBpZCE6IHN0cmluZztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdwbGVhc2UgZW50ZXIgdGV4dCc7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICd0ZXh0YXJlYSBpbnB1dCc7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwYXR0ZXJuRXJyb3JNc2cgPSAnaW52YWxpZCBwYXR0ZXJuJztcclxuICBASW5wdXQoKSBwYXR0ZXJuITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNsYXNzZXMhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29udGFpbmVyQ2xhc3NlcyE6IHN0cmluZztcclxuICBASW5wdXQoKSBpc0FyYWJpY0Zvcm0gPSB0cnVlO1xyXG4gIGZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKTtcclxuICBlcnJvck1zZyE6IHN0cmluZyB8IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogSVBBRm9ybVNlcnZpY2UsXHJcbiAgICBAU2VsZigpIHB1YmxpYyBjb250cm9sRGlyOiBOZ0NvbnRyb2wsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5jb250cm9sRGlyLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbnRyb2xEaXIuY29udHJvbDtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBjb250cm9sPy52YWxpZGF0b3IgPyBbY29udHJvbC52YWxpZGF0b3JdIDogW107XHJcblxyXG4gICAgY29udHJvbD8uc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIGNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBjb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHt9XHJcblxyXG4gIG9uVG91Y2hlZCgpOiB2b2lkIHt9XHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gb2JqIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVycm9yTWVzc2FnZSgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHRoaXMuZXJyb3JNc2cgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldEVycm9yTWVzc2FnZShcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbCxcclxuICAgICAgdGhpcy5wYXR0ZXJuRXJyb3JNc2csXHJcbiAgICAgIHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuZXJyb3JNc2c7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWZsb2F0aW5nIHt7Y29udGFpbmVyQ2xhc3Nlc319XCI+XHJcbiAgICA8dGV4dGFyZWEgI2lucHV0IGlkPVwie3tpZH19XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wge3tjbGFzc2VzfX1cIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBwYXR0ZXJuPVwie3twYXR0ZXJufX1cIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3twbGFjZWhvbGRlcn19XCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgKGlucHV0KT1cIm9uQ2hhbmdlKGNvbnRyb2xEaXIuY29udHJvbD8udmFsdWUpXCJcclxuICAgICAgICAoYmx1cik9XCJvblRvdWNoZWQoKVwiIHN0eWxlPVwiaGVpZ2h0OiAxMzVweDtcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAnaXMtaW52YWxpZCBpcy1pbnZhbGlkOmZvY3VzJzogKGNvbnRyb2xEaXIuY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpKSAmJiBlcnJvck1zZyxcclxuICAgICAgICAnaXMtdmFsaWQgaXMtdmFsaWQ6Zm9jdXMnOiAoY29udHJvbERpci5jb250cm9sPy52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpICAmJiAoZXJyb3JNc2cgfHwgY29udHJvbERpci52YWx1ZSkpfVwiPlxyXG4gICAgPC90ZXh0YXJlYT5cclxuICAgIDxsYWJlbCBmb3I9XCJ7e2lkfX1cIj57e2xhYmVsfX08L2xhYmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImVycm9yTWVzc2FnZSAhPT0gbnVsbFwiPlxyXG4gICAgICAgIHt7ZXJyb3JNc2d9fVxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS90ZXh0YXJlYS1pbnB1dC90ZXh0YXJlYS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL3RleHRhcmVhLWlucHV0L3RleHRhcmVhLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVEvRCxNQUFNLE9BQU8sc0JBQXNCO0lBZWpDLFlBQ1UsaUJBQWlDLEVBQzFCLFVBQXFCLEVBQzVCLEVBQXFCO1FBRnJCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBZ0I7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUM1QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWpCTyxVQUFLLEdBQ3pDLElBQUksVUFBVSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBRW5CLGdCQUFXLEdBQUcsbUJBQW1CLENBQUM7UUFDbEMsVUFBSyxHQUFXLGdCQUFnQixDQUFDO1FBQ2pDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsb0JBQWUsR0FBRyxpQkFBaUIsQ0FBQztRQUlwQyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixnQkFBVyxHQUF1QixJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBUTNELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxNQUFNLFVBQVUsR0FBRyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRWpFLE9BQU8sRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUE2QixDQUFDO0lBQ25ELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVSxJQUFTLENBQUM7SUFFN0IsU0FBUyxLQUFVLENBQUM7SUFDcEIsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FDcEQsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLGVBQWUsRUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FDbEIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDOzhHQTFEVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixnWkNsQm5DLDgyQkFZTTs7MkZETU8sc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjs7MEJBcUIzQixJQUFJO3lFQWhCK0IsS0FBSztzQkFBMUMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUUzQixFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIFNlbGYsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSVBBRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9pcGEtZm9ybS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXBhLXRleHRhcmVhLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dGFyZWEtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RleHRhcmVhLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0YXJlYUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRDaGVja2VkIHtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0OiBFbGVtZW50UmVmPGFueT4gPVxyXG4gICAgbmV3IEVsZW1lbnRSZWY8YW55PihudWxsKTtcclxuICBASW5wdXQoKSBpZCE6IHN0cmluZztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdwbGVhc2UgZW50ZXIgdGV4dCc7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICd0ZXh0YXJlYSBpbnB1dCc7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwYXR0ZXJuRXJyb3JNc2cgPSAnaW52YWxpZCBwYXR0ZXJuJztcclxuICBASW5wdXQoKSBwYXR0ZXJuITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNsYXNzZXMhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29udGFpbmVyQ2xhc3NlcyE6IHN0cmluZztcclxuICBASW5wdXQoKSBpc0FyYWJpY0Zvcm0gPSB0cnVlO1xyXG4gIGZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKTtcclxuICBlcnJvck1zZyE6IHN0cmluZyB8IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogSVBBRm9ybVNlcnZpY2UsXHJcbiAgICBAU2VsZigpIHB1YmxpYyBjb250cm9sRGlyOiBOZ0NvbnRyb2wsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5jb250cm9sRGlyLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbnRyb2xEaXIuY29udHJvbDtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBjb250cm9sPy52YWxpZGF0b3IgPyBbY29udHJvbC52YWxpZGF0b3JdIDogW107XHJcblxyXG4gICAgY29udHJvbD8uc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIGNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBjb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHt9XHJcblxyXG4gIG9uVG91Y2hlZCgpOiB2b2lkIHt9XHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gb2JqIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVycm9yTWVzc2FnZSgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHRoaXMuZXJyb3JNc2cgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldEVycm9yTWVzc2FnZShcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbCxcclxuICAgICAgdGhpcy5wYXR0ZXJuRXJyb3JNc2csXHJcbiAgICAgIHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuZXJyb3JNc2c7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWZsb2F0aW5nIHt7Y29udGFpbmVyQ2xhc3Nlc319XCI+XHJcbiAgICA8dGV4dGFyZWEgI2lucHV0IGlkPVwie3tpZH19XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wge3tjbGFzc2VzfX1cIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBwYXR0ZXJuPVwie3twYXR0ZXJufX1cIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3twbGFjZWhvbGRlcn19XCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgKGlucHV0KT1cIm9uQ2hhbmdlKGNvbnRyb2xEaXIuY29udHJvbD8udmFsdWUpXCJcclxuICAgICAgICAoYmx1cik9XCJvblRvdWNoZWQoKVwiIHN0eWxlPVwiaGVpZ2h0OiAxMzVweDtcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAnaXMtaW52YWxpZCBpcy1pbnZhbGlkOmZvY3VzJzogKGNvbnRyb2xEaXIuY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpKSAmJiBlcnJvck1zZyxcclxuICAgICAgICAnaXMtdmFsaWQgaXMtdmFsaWQ6Zm9jdXMnOiAoY29udHJvbERpci5jb250cm9sPy52YWxpZCAmJiAoY29udHJvbERpci5jb250cm9sPy5kaXJ0eSB8fCBjb250cm9sRGlyLmNvbnRyb2w/LnRvdWNoZWQpICAmJiAoZXJyb3JNc2cgfHwgY29udHJvbERpci52YWx1ZSkpfVwiPlxyXG4gICAgPC90ZXh0YXJlYT5cclxuICAgIDxsYWJlbCBmb3I9XCJ7e2lkfX1cIj57e2xhYmVsfX08L2xhYmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImVycm9yTWVzc2FnZSAhPT0gbnVsbFwiPlxyXG4gICAgICAgIHt7ZXJyb3JNc2d9fVxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==