@eqproject/eqp-dynamic-module 0.0.1 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/eqproject-eqp-dynamic-module.umd.js +305 -75
- package/bundles/eqproject-eqp-dynamic-module.umd.js.map +1 -1
- package/bundles/eqproject-eqp-dynamic-module.umd.min.js +2 -2
- package/bundles/eqproject-eqp-dynamic-module.umd.min.js.map +1 -1
- package/eqproject-eqp-dynamic-module.metadata.json +1 -1
- package/esm2015/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +33 -12
- package/esm2015/lib/components/private/add-form-field/add-form-field.component.js +45 -6
- package/esm2015/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +10 -21
- package/esm2015/lib/components/private/field-templates/image-field-template/image-field-template.component.js +149 -7
- package/esm2015/lib/components/private/form-records/add-form-record/add-form-record.component.js +7 -3
- package/esm2015/lib/components/private/form-records/list-form-record/list-form-record.component.js +40 -18
- package/esm2015/lib/eqp-dynamic-module.module.js +4 -2
- package/esm2015/lib/models/fields/imageField.model.js +5 -1
- package/esm5/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +33 -12
- package/esm5/lib/components/private/add-form-field/add-form-field.component.js +45 -6
- package/esm5/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +10 -21
- package/esm5/lib/components/private/field-templates/image-field-template/image-field-template.component.js +158 -7
- package/esm5/lib/components/private/form-records/add-form-record/add-form-record.component.js +7 -3
- package/esm5/lib/components/private/form-records/list-form-record/list-form-record.component.js +40 -20
- package/esm5/lib/eqp-dynamic-module.module.js +4 -2
- package/esm5/lib/models/fields/imageField.model.js +9 -1
- package/fesm2015/eqproject-eqp-dynamic-module.js +291 -74
- package/fesm2015/eqproject-eqp-dynamic-module.js.map +1 -1
- package/fesm5/eqproject-eqp-dynamic-module.js +304 -76
- package/fesm5/eqproject-eqp-dynamic-module.js.map +1 -1
- package/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.d.ts +7 -1
- package/lib/components/private/add-form-field/add-form-field.component.d.ts +14 -0
- package/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.d.ts +1 -17
- package/lib/components/private/field-templates/image-field-template/image-field-template.component.d.ts +51 -2
- package/lib/components/private/form-records/add-form-record/add-form-record.component.d.ts +3 -1
- package/lib/components/private/form-records/list-form-record/list-form-record.component.d.ts +8 -3
- package/lib/models/fields/imageField.model.d.ts +10 -4
- package/package.json +3 -1
|
@@ -4,31 +4,13 @@ import { AvailableFileExtensions, AvailableImageExtensions } from '../../../../m
|
|
|
4
4
|
import { UtilityHelperService } from '../../../../services/utilityHelper.services';
|
|
5
5
|
import { TypeColumn } from '@eqproject/eqp-table';
|
|
6
6
|
var AttachmentFieldTemplateComponent = /** @class */ (function () {
|
|
7
|
-
//#endregion
|
|
8
7
|
function AttachmentFieldTemplateComponent(utilityService, cdr) {
|
|
9
8
|
this.utilityService = utilityService;
|
|
10
9
|
this.cdr = cdr;
|
|
11
10
|
this.onlyImages = false;
|
|
12
11
|
this.recordChange = new EventEmitter();
|
|
12
|
+
this.onAttachmentsChange = new EventEmitter();
|
|
13
13
|
this.metadataFormGroups = new Array();
|
|
14
|
-
//#region Etichette per eqp-attachments
|
|
15
|
-
this.previewLabel = "Anteprima";
|
|
16
|
-
this.emptyTableMessage = "No record found";
|
|
17
|
-
this.downloadTooltipPosition = "below";
|
|
18
|
-
this.openLinkLabel = "Apri link";
|
|
19
|
-
this.addButtonLabel = "Aggiungi";
|
|
20
|
-
this.downloadLabel = "Download";
|
|
21
|
-
this.deleteLabel = "Elimina";
|
|
22
|
-
this.fileNameLabel = "Nome file";
|
|
23
|
-
this.uploadFileLabel = "Carica file";
|
|
24
|
-
this.confirmLabel = "Conferma";
|
|
25
|
-
this.abortLabel = "Annulla";
|
|
26
|
-
this.saveLabel = "Salva";
|
|
27
|
-
this.exitLabel = "Esci";
|
|
28
|
-
this.eqpTableSearchText = "Cerca...";
|
|
29
|
-
this.deleteDialogTitle = "Attenzione:";
|
|
30
|
-
this.deleteDialogMessage = "Sicuro di voler eliminare questo allegato?";
|
|
31
|
-
this.noImageSelectedErrorMessage = "Nessuna immagine selezionata!";
|
|
32
14
|
}
|
|
33
15
|
AttachmentFieldTemplateComponent.prototype.ngOnInit = function () {
|
|
34
16
|
// Nel caso in cui sono in modifica di un Record aggiorno il valore
|
|
@@ -79,6 +61,10 @@ var AttachmentFieldTemplateComponent = /** @class */ (function () {
|
|
|
79
61
|
this.createMetadataFormGroups();
|
|
80
62
|
this.setFormControlValue();
|
|
81
63
|
this.onRecordValueChange();
|
|
64
|
+
// Scateno un evento di output necessario al componente ImageFieldTemplate al
|
|
65
|
+
// variare degli allegati caricati. Viene usato per aprire il dialog per disegnare
|
|
66
|
+
// sull'immagine caricata in base alla configurazione del Field.
|
|
67
|
+
this.onAttachmentsChange.emit();
|
|
82
68
|
this.cdr.detectChanges();
|
|
83
69
|
};
|
|
84
70
|
/**
|
|
@@ -165,6 +151,9 @@ var AttachmentFieldTemplateComponent = /** @class */ (function () {
|
|
|
165
151
|
__decorate([
|
|
166
152
|
Output()
|
|
167
153
|
], AttachmentFieldTemplateComponent.prototype, "recordChange", void 0);
|
|
154
|
+
__decorate([
|
|
155
|
+
Output()
|
|
156
|
+
], AttachmentFieldTemplateComponent.prototype, "onAttachmentsChange", void 0);
|
|
168
157
|
__decorate([
|
|
169
158
|
ViewChild("eqpAttachments", { static: true })
|
|
170
159
|
], AttachmentFieldTemplateComponent.prototype, "eqpAttachments", void 0);
|
|
@@ -174,11 +163,11 @@ var AttachmentFieldTemplateComponent = /** @class */ (function () {
|
|
|
174
163
|
AttachmentFieldTemplateComponent = __decorate([
|
|
175
164
|
Component({
|
|
176
165
|
selector: 'attachment-field-template',
|
|
177
|
-
template: "<p *ngIf=\"!field.IsMultiAttach\" class=\"mb-2\">\n {{field.Label + (field.Required ? \" *\" : \"\")}}\n</p>\n<div class=\"row\" *ngIf=\"!field.IsMultiAttach && record[field.Name] && record[field.Name][0]\">\n <div class=\"mt-2\" *ngFor=\"let metadata of field.MetadataFields\"
|
|
166
|
+
template: "<p *ngIf=\"!field.IsMultiAttach\" class=\"mb-2\">\n {{field.Label + (field.Required ? \" *\" : \"\")}}\n</p>\n<div class=\"row\" *ngIf=\"!field.IsMultiAttach && record[field.Name] && record[field.Name][0]\">\n <div class=\"mt-2\" *ngFor=\"let metadata of field.MetadataFields\"\n [ngClass]=\"utilityService.getFieldSyleClass(metadata)\">\n <dynamic-module-field [field]=\"metadata\" [record]=\"record[field.Name][0]\"\n (recordChange)=\"updateMetadataValidity()\">\n </dynamic-module-field>\n </div>\n</div>\n\n<eqp-attachments [attachmentsList]=\"record[field.Name]\" [showMatCard]=\"true\" [allowOnlyImages]=\"onlyImages\"\n [isDisabled]=\"field.FormFormGroup.disabled\" [showInlinePreview]=\"true\" [multipleAttachment]=\"field.IsMultiAttach\"\n [disableAction]=\"field.FormFormGroup.disabled\" [acceptedFileTypes]=\"field.AllowedExtensions\" [showHeader]=\"true\"\n [headerTitle]=\"field.Label + (field.Required ? ' *' : '')\" (localEditedAttachments)=\"catchAttachmentList($event)\"\n #eqpAttachments>\n</eqp-attachments>\n\n<!-- TEMPLATE PER VISUALIZZARE LA COLONNA DELLA SEZIONE NELLA TABELLA DEI FIELDS -->\n<ng-template #metadataColumnTemplate let-row=\"row\" let-col=\"col\">\n <dynamic-module-field [field]=\"getFieldFromMetadata(col, row)\" [record]=\"row\"\n (recordChange)=\"updateMetadataValidity()\">\n </dynamic-module-field>\n</ng-template>",
|
|
178
167
|
styles: [""]
|
|
179
168
|
})
|
|
180
169
|
], AttachmentFieldTemplateComponent);
|
|
181
170
|
return AttachmentFieldTemplateComponent;
|
|
182
171
|
}());
|
|
183
172
|
export { AttachmentFieldTemplateComponent };
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZXFwcm9qZWN0L2VxcC1keW5hbWljLW1vZHVsZS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUvYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkssT0FBTyxFQUFtQix1QkFBdUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRXJJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBR25GLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFPaEU7SUE4QkUsWUFBWTtJQUVaLDBDQUNTLGNBQW9DLEVBQ25DLEdBQXNCO1FBRHZCLG1CQUFjLEdBQWQsY0FBYyxDQUFzQjtRQUNuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWhDdkIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUczQixpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBSzFFLHVCQUFrQixHQUFxQixJQUFJLEtBQUssRUFBYSxDQUFDO1FBRTlELHVDQUF1QztRQUN2QyxpQkFBWSxHQUFHLFdBQVcsQ0FBQztRQUMzQixzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUN0Qyw0QkFBdUIsR0FBRyxPQUFPLENBQUM7UUFDbEMsa0JBQWEsR0FBRyxXQUFXLENBQUM7UUFDNUIsbUJBQWMsR0FBRyxVQUFVLENBQUM7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OzBFQUFpRTtJQUUzQjtRQUE5QyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7NEVBQXlDO0lBQ2hDO1FBQXRELFNBQVMsQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztvRkFBMEM7SUFSckYsZ0NBQWdDO1FBTDVDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSwyQkFBMkI7WUFDckMscWpFQUF5RDs7U0FFMUQsQ0FBQztPQUNXLGdDQUFnQyxDQTRLNUM7SUFBRCx1Q0FBQztDQUFBLEFBNUtELElBNEtDO1NBNUtZLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3JlY29yZC5tb2RlbCc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWVsZCwgQXZhaWxhYmxlRmlsZUV4dGVuc2lvbnMsIEF2YWlsYWJsZUltYWdlRXh0ZW5zaW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWVsZHMvYXR0YWNobWVudEZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgSUJhc2VGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvaUJhc2VGaWVsZENvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5pbXBvcnQgeyBFcXBBdHRhY2htZW50c0NvbXBvbmVudCB9IGZyb20gJ0BlcXByb2plY3QvZXFwLWF0dGFjaG1lbnRzJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb25maWdDb2x1bW4sIFR5cGVDb2x1bW4gfSBmcm9tICdAZXFwcm9qZWN0L2VxcC10YWJsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdHRhY2htZW50LWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hdHRhY2htZW50LWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEF0dGFjaG1lbnRGaWVsZFRlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIElCYXNlRmllbGRDb21wb25lbnQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBASW5wdXQoKSBvbmx5SW1hZ2VzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZmllbGQ6IEF0dGFjaG1lbnRGaWVsZDtcclxuICBASW5wdXQoKSByZWNvcmQ6IFJlY29yZDtcclxuICBAT3V0cHV0KCkgcmVjb3JkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVjb3JkPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPigpO1xyXG5cclxuICBAVmlld0NoaWxkKFwiZXFwQXR0YWNobWVudHNcIiwgeyBzdGF0aWM6IHRydWUgfSkgZXFwQXR0YWNobWVudHM6IEVxcEF0dGFjaG1lbnRzQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ21ldGFkYXRhQ29sdW1uVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBtZXRhZGF0YUNvbHVtblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBtZXRhZGF0YUZvcm1Hcm91cHM6IEFycmF5PEZvcm1Hcm91cD4gPSBuZXcgQXJyYXk8Rm9ybUdyb3VwPigpO1xyXG5cclxuICAvLyNyZWdpb24gRXRpY2hldHRlIHBlciBlcXAtYXR0YWNobWVudHNcclxuICBwcmV2aWV3TGFiZWwgPSBcIkFudGVwcmltYVwiO1xyXG4gIGVtcHR5VGFibGVNZXNzYWdlID0gXCJObyByZWNvcmQgZm91bmRcIjtcclxuICBkb3dubG9hZFRvb2x0aXBQb3NpdGlvbiA9IFwiYmVsb3dcIjtcclxuICBvcGVuTGlua0xhYmVsID0gXCJBcHJpIGxpbmtcIjtcclxuICBhZGRCdXR0b25MYWJlbCA9IFwiQWdnaXVuZ2lcIjtcclxuICBkb3dubG9hZExhYmVsID0gXCJEb3dubG9hZFwiO1xyXG4gIGRlbGV0ZUxhYmVsID0gXCJFbGltaW5hXCI7XHJcbiAgZmlsZU5hbWVMYWJlbCA9IFwiTm9tZSBmaWxlXCI7XHJcbiAgdXBsb2FkRmlsZUxhYmVsID0gXCJDYXJpY2EgZmlsZVwiO1xyXG4gIGNvbmZpcm1MYWJlbCA9IFwiQ29uZmVybWFcIjtcclxuICBhYm9ydExhYmVsID0gXCJBbm51bGxhXCI7XHJcbiAgc2F2ZUxhYmVsID0gXCJTYWx2YVwiO1xyXG4gIGV4aXRMYWJlbCA9IFwiRXNjaVwiO1xyXG4gIGVxcFRhYmxlU2VhcmNoVGV4dCA9IFwiQ2VyY2EuLi5cIjtcclxuICBkZWxldGVEaWFsb2dUaXRsZSA9IFwiQXR0ZW56aW9uZTpcIjtcclxuICBkZWxldGVEaWFsb2dNZXNzYWdlID0gXCJTaWN1cm8gZGkgdm9sZXIgZWxpbWluYXJlIHF1ZXN0byBhbGxlZ2F0bz9cIjtcclxuICBub0ltYWdlU2VsZWN0ZWRFcnJvck1lc3NhZ2UgPSBcIk5lc3N1bmEgaW1tYWdpbmUgc2VsZXppb25hdGEhXCI7XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5SGVscGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gTmVsIGNhc28gaW4gY3VpIHNvbm8gaW4gbW9kaWZpY2EgZGkgdW4gUmVjb3JkIGFnZ2lvcm5vIGlsIHZhbG9yZVxyXG4gICAgLy8gZSBpbCB2YWxpZGF0b3IgZGVsIEZvcm1Db250cm9sLiBTZSBub24gdmllbmUgZXNlZ3VpdGEgcXVlc3RhIHJpZ2FcclxuICAgIC8vIGwndXRlbnRlIGRldmUgbW9kaWZpY2FyZSBsYSBzZWxlemlvbmUgZmF0dGEgcGVyIGFnZ2lvcm5hcmUgbGEgZm9ybS5cclxuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSgpO1xyXG5cclxuICAgIC8vIFNlbXByZSBuZWwgY2FzbyBpbiBjdWkgc29ubyBpbiBtb2RpZmljYSBjcmVvIGkgRm9ybUdyb3VwIGNoZSByYXBwcmVzZW50YW5vXHJcbiAgICAvLyBnbGkgZXZlbnR1YWxpIG1ldGFkYXRhIGRlZ2xpIGFsbGVnYXRpIHJlY3VwZXJhdGkuXHJcbiAgICB0aGlzLmNyZWF0ZU1ldGFkYXRhRm9ybUdyb3VwcygpO1xyXG4gICAgaWYgKHRoaXMuZmllbGQuTWV0YWRhdGFGaWVsZHMpIHtcclxuICAgICAgdGhpcy5maWVsZC5NZXRhZGF0YUZpZWxkcy5zb3J0KChhLCBiKSA9PiAoYS5PcmRpbmFsUG9zaXRpb24gPiBiLk9yZGluYWxQb3NpdGlvbikgPyAxIDogKChiLk9yZGluYWxQb3NpdGlvbiA+IGEuT3JkaW5hbFBvc2l0aW9uKSA/IC0xIDogMCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5maWVsZC5BbGxvd2VkRXh0ZW5zaW9ucykge1xyXG4gICAgICB0aGlzLmZpZWxkLkFsbG93ZWRFeHRlbnNpb25zID0gQXZhaWxhYmxlRmlsZUV4dGVuc2lvbnMuY29uY2F0KEF2YWlsYWJsZUltYWdlRXh0ZW5zaW9ucykubWFwKGV4dCA9PiBleHQua2V5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIERvcG8gYXZlciByZW5kZXJpenphdG8gaWwgRE9NLCBzZSBpbCBjYW1wbyBhbW1ldHRlIG1vbHRlcGxpY2kgYWxsZWdhdGlcclxuICAgIC8vIGNvbmZpZ3VybyBsZSBjb2xvbm5lIGRlbGxhIGVxcC10YWJsZSBpbiBlcXAtYXR0YWNobWVudHMuXHJcbiAgICBpZiAodGhpcy5maWVsZC5Jc011bHRpQXR0YWNoKSB7XHJcbiAgICAgIHRoaXMuY29uZmlndXJlTXVsdGlBdHRhY2htZW50Q29sdW1ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgLy8gU2UgdmllbmUgbW9kaWZpY2F0byBpbCB2YWxvcmUgZGkgXCJuZ01vZGVsSW5wdXRcIiBhbGxvcmEgYWdnaW9ybmEgbCdpbnB1dFxyXG4gICAgaWYgKGNoYW5nZXNbJ3JlY29yZCddICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VzWydyZWNvcmQnXS5maXJzdENoYW5nZSA9PSBmYWxzZSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydyZWNvcmQnXS5jdXJyZW50VmFsdWUpICE9IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3JlY29yZCddLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkID0gY2hhbmdlc1sncmVjb3JkJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGFnZ2lvcm5hcmUgaWwgdmFsb3JlIGRlbCBjYW1wbyBxdWFuZG8gcXVlc3RvIMOoIHJhcHByZXNlbnRhdG8gZGEgdW5hIGZvcm11bGEuXHJcbiAgICovXHJcbiAgdXBkYXRlRmllbGQoKSB7XHJcbiAgICBpZiAodGhpcy5maWVsZC5Gb3JtdWxhKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBVdGlsaXR5SGVscGVyU2VydmljZS5FdmFsdWF0ZUZpZWxkRm9ybXVsYSh0aGlzLmZpZWxkLkZvcm11bGEsIHRoaXMucmVjb3JkLCBudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgaW50ZXJjZXR0YXJlIGxlIG1vZGlmaWNoZSBhZ2xpIGFsbGVnYXRpIGNhcmljYXRpLlxyXG4gICAqIFNlIGlsIGNhbXBvIHByZXZlZGUgZGVpIG1ldGFkYXRhIGFsbG9yYSBwZXIgb2duaSBhbGxlZ2F0byBjYXJpY2F0byBjcmVhIHVuIEZvcm1Hcm91cFxyXG4gICAqIHBlciBnZXN0aXJlIGxhIHZhbGlkYXppb25lIGRlZ2xpIGlucHV0IGNoZSBsJ3V0ZW50ZSBwdcOyL2RldmUgcmllbXBpcmUuIEkgRm9ybUdyb3VwIFxyXG4gICAqIHNlZ3Vvbm8gbG8gc3Rlc3NvIG9yZGluZSBkZWdsaSBhbGxlZ2F0aSBjYXJpY2F0aS5cclxuICAgKiBAcGFyYW0gZXZlbnQgQ29udGllbmUgbGEgbGlzdGEgYWdnaW9ybmF0YSBkZWdsaSBBdHRhY2htZW50IGNhcmljYXRpIGRhbGwndXRlbnRlLlxyXG4gICAqL1xyXG4gIGNhdGNoQXR0YWNobWVudExpc3QoZXZlbnQpIHtcclxuICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBldmVudDtcclxuXHJcbiAgICB0aGlzLmNyZWF0ZU1ldGFkYXRhRm9ybUdyb3VwcygpO1xyXG5cclxuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSgpO1xyXG4gICAgdGhpcy5vblJlY29yZFZhbHVlQ2hhbmdlKCk7XHJcbiAgICBcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgYWdnaW9ybmFyZSBsbyBzdGF0byBkaSB2YWxpZGF6aW9uZSBkZWwgRm9ybUNvbnRyb2wgY2hlIHJhcHByZXNlbnRhIFxyXG4gICAqIGlsIGNhbXBvIEFsbGVnYXRvIChub24gaSBtZXRhZGF0YSBhbCBzdW8gaW50ZXJubykuIFNlIHRyYSBsZSBmb3JtIGRlaSBtZXRhZGF0YVxyXG4gICAqIG5lIHRyb3ZhIHVuYSBpbnZhbGlkYSBhbGxvcmEgbWFyY2EgaWwgY29udHJvbGxvIGNvbWUgaW52YWxpZG8uXHJcbiAgICovXHJcbiAgdXBkYXRlTWV0YWRhdGFWYWxpZGl0eSgpIHtcclxuICAgIGlmICh0aGlzLm1ldGFkYXRhRm9ybUdyb3Vwcy5maW5kKGZvcm0gPT4gZm9ybS5pbnZhbGlkKSkge1xyXG4gICAgICB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXAuY29udHJvbHNbdGhpcy5maWVsZC5OYW1lXS5zZXRFcnJvcnMoeyAnaW5jb3JyZWN0JzogdHJ1ZSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmllbGQuRm9ybUZvcm1Hcm91cC5jb250cm9sc1t0aGlzLmZpZWxkLk5hbWVdLnNldEVycm9ycyhudWxsKTtcclxuICAgIH1cclxuICAgIHRoaXMub25SZWNvcmRWYWx1ZUNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciByZWN1cGVyYXJlIGlsIEJhc2VGaWVsZCBjaGUgcmFwcHJlc2VudGEgaWwgbWV0YWRhdGEgbmVsbGEgcmlnYSBkZWxsYSBlcXAtdGFibGVcclxuICAgKiBpbiBiYXNlIGFsbGEgY29sb25uYSBlIGFsbGEgcmlnYS4gVW5hIHZvbHRhIHRyb3ZhdG8gaWwgQmFzZUZpZWxkIGdsaSB2aWVuZSBhc3NvY2lhdG8gaWwgXHJcbiAgICogRm9ybUdyb3VwIGRpIGN1aSBmYSBwYXJ0ZS5cclxuICAgKiBAcGFyYW0gY29sIENvbG9ubmEgZGVsbGEgZXFwLXRhYmxlLlxyXG4gICAqIEBwYXJhbSByb3cgUmlnYSBkZWxsYSBlcXAtdGFibGUgKGluIHF1ZXN0byBjYXNvIGVyZWRpdGEgZGEgSUF0dGFjaG1lbnQpLlxyXG4gICAqIEByZXR1cm5zIFJlc3RpdHVpc2NlIHVuIEJhc2VGaWVsZCBwZXIgcmVuZGVyaXp6YXJlIGlsIGNhbXBvIG5lbGxhIGVxcC10YWJsZSBkZWdsaSBhbGxlZ2F0aSBtdWx0aXBsaS5cclxuICAgKi9cclxuICBnZXRGaWVsZEZyb21NZXRhZGF0YShjb2w6IENvbmZpZ0NvbHVtbiwgcm93OiBhbnkpIHtcclxuICAgIHZhciBiYXNlRmllbGQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmllbGQuTWV0YWRhdGFGaWVsZHMuZmluZChtZXRhZGF0YSA9PiBtZXRhZGF0YS5OYW1lID09PSBjb2wua2V5KSkpO1xyXG4gICAgYmFzZUZpZWxkLkZvcm1Gb3JtR3JvdXAgPSB0aGlzLm1ldGFkYXRhRm9ybUdyb3Vwc1t0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdLmluZGV4T2Yocm93KV07XHJcbiAgICByZXR1cm4gYmFzZUZpZWxkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBhZ2dpb3JuYXJlIGlsIHZhbG9yZSBlIGlsIHZhbGlkYXRvciBkZWwgRm9ybUNvbnRyb2wgYXNzb2NpYXRvIGFsIGNhbXBvLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0Rm9ybUNvbnRyb2xWYWx1ZSgpIHtcclxuICAgIHRoaXMuZmllbGQuRm9ybUZvcm1Hcm91cC5jb250cm9sc1t0aGlzLmZpZWxkLk5hbWVdLnNldFZhbHVlKHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBlbWV0dGVyZSBsJ2V2ZW50byBjaGUgaWwgdmFsb3JlIGRlbCByZWNvcmQgw6ggY2FtYmlhdG8uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvblJlY29yZFZhbHVlQ2hhbmdlKCkge1xyXG4gICAgaWYgKCF0aGlzLmZpZWxkLkZvcm11bGEpIHtcclxuICAgICAgdGhpcy5yZWNvcmRDaGFuZ2UuZW1pdCh0aGlzLnJlY29yZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGFnZ2l1bmdlcmUgYWxsZSBjb2xvbm5lIGRpIGVxcC1hdHRhY2htZW50cyBsZSBjb2xvbm5lIHBlciBtb2RpZmljYXJlIGkgbWV0YWRhdGFcclxuICAgKiBjb25maWd1cmF0aSBwZXIgaWwgY2FtcG8gQWxsZWdhdG8gbyBJbW1hZ2luZS5cclxuICAgKi9cclxuICBwcml2YXRlIGNvbmZpZ3VyZU11bHRpQXR0YWNobWVudENvbHVtbnMoKSB7XHJcbiAgICBpZiAodGhpcy5lcXBBdHRhY2htZW50cyAmJiB0aGlzLmVxcEF0dGFjaG1lbnRzLmF0dGFjaG1lbnRzQ29sdW1ucyAmJiB0aGlzLmZpZWxkLk1ldGFkYXRhRmllbGRzICYmIHRoaXMuZmllbGQuTWV0YWRhdGFGaWVsZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmZpZWxkLk1ldGFkYXRhRmllbGRzLmZvckVhY2gobWV0YWRhdGEgPT4ge1xyXG4gICAgICAgIHRoaXMuZXFwQXR0YWNobWVudHMuYXR0YWNobWVudHNDb2x1bW5zLnNwbGljZShcclxuICAgICAgICAgIHRoaXMuZXFwQXR0YWNobWVudHMuYXR0YWNobWVudHNDb2x1bW5zLmxlbmd0aCAtIDEsIDAsXHJcbiAgICAgICAgICB7IGtleTogbWV0YWRhdGEuTmFtZSwgZGlzcGxheTogbWV0YWRhdGEuTGFiZWwsIHR5cGU6IFR5cGVDb2x1bW4uRXh0ZXJuYWxUZW1wbGF0ZSwgZXh0ZXJuYWxUZW1wbGF0ZTogdGhpcy5tZXRhZGF0YUNvbHVtblRlbXBsYXRlIH1cclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgY3JlYXJlIGkgRm9ybUdyb3VwIGNoZSByYXBwcmVzZW50YW5vIGkgbWV0YWRhdGEgZGVnbGkgYWxsZWdhdGkgY2FyaWNhdGkuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVNZXRhZGF0YUZvcm1Hcm91cHMoKSB7XHJcbiAgICBpZiAodGhpcy5maWVsZC5NZXRhZGF0YUZpZWxkcyAmJiB0aGlzLmZpZWxkLk1ldGFkYXRhRmllbGRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5tZXRhZGF0YUZvcm1Hcm91cHMgPSBbXTtcclxuICAgICAgaWYgKHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gJiYgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXS5mb3JFYWNoKGF0dGFjaG1lbnQgPT4ge1xyXG4gICAgICAgICAgdGhpcy5tZXRhZGF0YUZvcm1Hcm91cHMucHVzaCh0aGlzLnV0aWxpdHlTZXJ2aWNlLkNyZWF0ZUZvcm1Gb3JtR3JvdXAodGhpcy5maWVsZC5NZXRhZGF0YUZpZWxkcywgYXR0YWNobWVudCwgdGhpcy5maWVsZC5Gb3JtRm9ybUdyb3VwLmRpc2FibGVkLCAhdGhpcy5maWVsZC5Jc011bHRpQXR0YWNoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudXBkYXRlTWV0YWRhdGFWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZXFwcm9qZWN0L2VxcC1keW5hbWljLW1vZHVsZS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUvYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkssT0FBTyxFQUFtQix1QkFBdUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRXJJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBR25GLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFPaEU7SUFhRSwwQ0FDUyxjQUFvQyxFQUNuQyxHQUFzQjtRQUR2QixtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFDbkMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFidkIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUczQixpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2hFLHdCQUFtQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBSzdFLHVCQUFrQixHQUFxQixJQUFJLEtBQUssRUFBYSxDQUFDO0lBSzFELENBQUM7SUFFTCxtREFBUSxHQUFSO1FBQ0UsbUVBQW1FO1FBQ25FLG9FQUFvRTtRQUNwRSxzRUFBc0U7UUFDdEUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0IsNkVBQTZFO1FBQzdFLG9EQUFvRDtR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UmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3JlY29yZC5tb2RlbCc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWVsZCwgQXZhaWxhYmxlRmlsZUV4dGVuc2lvbnMsIEF2YWlsYWJsZUltYWdlRXh0ZW5zaW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWVsZHMvYXR0YWNobWVudEZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgSUJhc2VGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvaUJhc2VGaWVsZENvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5pbXBvcnQgeyBFcXBBdHRhY2htZW50c0NvbXBvbmVudCB9IGZyb20gJ0BlcXByb2plY3QvZXFwLWF0dGFjaG1lbnRzJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb25maWdDb2x1bW4sIFR5cGVDb2x1bW4gfSBmcm9tICdAZXFwcm9qZWN0L2VxcC10YWJsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdHRhY2htZW50LWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hdHRhY2htZW50LWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEF0dGFjaG1lbnRGaWVsZFRlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIElCYXNlRmllbGRDb21wb25lbnQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBASW5wdXQoKSBvbmx5SW1hZ2VzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZmllbGQ6IEF0dGFjaG1lbnRGaWVsZDtcclxuICBASW5wdXQoKSByZWNvcmQ6IFJlY29yZDtcclxuICBAT3V0cHV0KCkgcmVjb3JkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVjb3JkPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPigpO1xyXG4gIEBPdXRwdXQoKSBvbkF0dGFjaG1lbnRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJlcXBBdHRhY2htZW50c1wiLCB7IHN0YXRpYzogdHJ1ZSB9KSBlcXBBdHRhY2htZW50czogRXFwQXR0YWNobWVudHNDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnbWV0YWRhdGFDb2x1bW5UZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pIG1ldGFkYXRhQ29sdW1uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIG1ldGFkYXRhRm9ybUdyb3VwczogQXJyYXk8Rm9ybUdyb3VwPiA9IG5ldyBBcnJheTxGb3JtR3JvdXA+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5SGVscGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gTmVsIGNhc28gaW4gY3VpIHNvbm8gaW4gbW9kaWZpY2EgZGkgdW4gUmVjb3JkIGFnZ2lvcm5vIGlsIHZhbG9yZVxyXG4gICAgLy8gZSBpbCB2YWxpZGF0b3IgZGVsIEZvcm1Db250cm9sLiBTZSBub24gdmllbmUgZXNlZ3VpdGEgcXVlc3RhIHJpZ2FcclxuICAgIC8vIGwndXRlbnRlIGRldmUgbW9kaWZpY2FyZSBsYSBzZWxlemlvbmUgZmF0dGEgcGVyIGFnZ2lvcm5hcmUgbGEgZm9ybS5cclxuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSgpO1xyXG5cclxuICAgIC8vIFNlbXByZSBuZWwgY2FzbyBpbiBjdWkgc29ubyBpbiBtb2RpZmljYSBjcmVvIGkgRm9ybUdyb3VwIGNoZSByYXBwcmVzZW50YW5vXHJcbiAgICAvLyBnbGkgZXZlbnR1YWxpIG1ldGFkYXRhIGRlZ2xpIGFsbGVnYXRpIHJlY3VwZXJhdGkuXHJcbiAgICB0aGlzLmNyZWF0ZU1ldGFkYXRhRm9ybUdyb3VwcygpO1xyXG4gICAgaWYgKHRoaXMuZmllbGQuTWV0YWRhdGFGaWVsZHMpIHtcclxuICAgICAgdGhpcy5maWVsZC5NZXRhZGF0YUZpZWxkcy5zb3J0KChhLCBiKSA9PiAoYS5PcmRpbmFsUG9zaXRpb24gPiBiLk9yZGluYWxQb3NpdGlvbikgPyAxIDogKChiLk9yZGluYWxQb3NpdGlvbiA+IGEuT3JkaW5hbFBvc2l0aW9uKSA/IC0xIDogMCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5maWVsZC5BbGxvd2VkRXh0ZW5zaW9ucykge1xyXG4gICAgICB0aGlzLmZpZWxkLkFsbG93ZWRFeHRlbnNpb25zID0gQXZhaWxhYmxlRmlsZUV4dGVuc2lvbnMuY29uY2F0KEF2YWlsYWJsZUltYWdlRXh0ZW5zaW9ucykubWFwKGV4dCA9PiBleHQua2V5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIERvcG8gYXZlciByZW5kZXJpenphdG8gaWwgRE9NLCBzZSBpbCBjYW1wbyBhbW1ldHRlIG1vbHRlcGxpY2kgYWxsZWdhdGlcclxuICAgIC8vIGNvbmZpZ3VybyBsZSBjb2xvbm5lIGRlbGxhIGVxcC10YWJsZSBpbiBlcXAtYXR0YWNobWVudHMuXHJcbiAgICBpZiAodGhpcy5maWVsZC5Jc011bHRpQXR0YWNoKSB7XHJcbiAgICAgIHRoaXMuY29uZmlndXJlTXVsdGlBdHRhY2htZW50Q29sdW1ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgLy8gU2UgdmllbmUgbW9kaWZpY2F0byBpbCB2YWxvcmUgZGkgXCJuZ01vZGVsSW5wdXRcIiBhbGxvcmEgYWdnaW9ybmEgbCdpbnB1dFxyXG4gICAgaWYgKGNoYW5nZXNbJ3JlY29yZCddICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VzWydyZWNvcmQnXS5maXJzdENoYW5nZSA9PSBmYWxzZSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydyZWNvcmQnXS5jdXJyZW50VmFsdWUpICE9IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3JlY29yZCddLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkID0gY2hhbmdlc1sncmVjb3JkJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGFnZ2lvcm5hcmUgaWwgdmFsb3JlIGRlbCBjYW1wbyBxdWFuZG8gcXVlc3RvIMOoIHJhcHByZXNlbnRhdG8gZGEgdW5hIGZvcm11bGEuXHJcbiAgICovXHJcbiAgdXBkYXRlRmllbGQoKSB7XHJcbiAgICBpZiAodGhpcy5maWVsZC5Gb3JtdWxhKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBVdGlsaXR5SGVscGVyU2VydmljZS5FdmFsdWF0ZUZpZWxkRm9ybXVsYSh0aGlzLmZpZWxkLkZvcm11bGEsIHRoaXMucmVjb3JkLCBudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgaW50ZXJjZXR0YXJlIGxlIG1vZGlmaWNoZSBhZ2xpIGFsbGVnYXRpIGNhcmljYXRpLlxyXG4gICAqIFNlIGlsIGNhbXBvIHByZXZlZGUgZGVpIG1ldGFkYXRhIGFsbG9yYSBwZXIgb2duaSBhbGxlZ2F0byBjYXJpY2F0byBjcmVhIHVuIEZvcm1Hcm91cFxyXG4gICAqIHBlciBnZXN0aXJlIGxhIHZhbGlkYXppb25lIGRlZ2xpIGlucHV0IGNoZSBsJ3V0ZW50ZSBwdcOyL2RldmUgcmllbXBpcmUuIEkgRm9ybUdyb3VwIFxyXG4gICAqIHNlZ3Vvbm8gbG8gc3Rlc3NvIG9yZGluZSBkZWdsaSBhbGxlZ2F0aSBjYXJpY2F0aS5cclxuICAgKiBAcGFyYW0gZXZlbnQgQ29udGllbmUgbGEgbGlzdGEgYWdnaW9ybmF0YSBkZWdsaSBBdHRhY2htZW50IGNhcmljYXRpIGRhbGwndXRlbnRlLlxyXG4gICAqL1xyXG4gIGNhdGNoQXR0YWNobWVudExpc3QoZXZlbnQpIHtcclxuICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBldmVudDtcclxuXHJcbiAgICB0aGlzLmNyZWF0ZU1ldGFkYXRhRm9ybUdyb3VwcygpO1xyXG5cclxuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSgpO1xyXG4gICAgdGhpcy5vblJlY29yZFZhbHVlQ2hhbmdlKCk7XHJcbiAgICBcclxuICAgIC8vIFNjYXRlbm8gdW4gZXZlbnRvIGRpIG91dHB1dCBuZWNlc3NhcmlvIGFsIGNvbXBvbmVudGUgSW1hZ2VGaWVsZFRlbXBsYXRlIGFsXHJcbiAgICAvLyB2YXJpYXJlIGRlZ2xpIGFsbGVnYXRpIGNhcmljYXRpLiBWaWVuZSB1c2F0byBwZXIgYXByaXJlIGlsIGRpYWxvZyBwZXIgZGlzZWduYXJlXHJcbiAgICAvLyBzdWxsJ2ltbWFnaW5lIGNhcmljYXRhIGluIGJhc2UgYWxsYSBjb25maWd1cmF6aW9uZSBkZWwgRmllbGQuXHJcbiAgICB0aGlzLm9uQXR0YWNobWVudHNDaGFuZ2UuZW1pdCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBhZ2dpb3JuYXJlIGxvIHN0YXRvIGRpIHZhbGlkYXppb25lIGRlbCBGb3JtQ29udHJvbCBjaGUgcmFwcHJlc2VudGEgXHJcbiAgICogaWwgY2FtcG8gQWxsZWdhdG8gKG5vbiBpIG1ldGFkYXRhIGFsIHN1byBpbnRlcm5vKS4gU2UgdHJhIGxlIGZvcm0gZGVpIG1ldGFkYXRhXHJcbiAgICogbmUgdHJvdmEgdW5hIGludmFsaWRhIGFsbG9yYSBtYXJjYSBpbCBjb250cm9sbG8gY29tZSBpbnZhbGlkby5cclxuICAgKi9cclxuICB1cGRhdGVNZXRhZGF0YVZhbGlkaXR5KCkge1xyXG4gICAgaWYgKHRoaXMubWV0YWRhdGFGb3JtR3JvdXBzLmZpbmQoZm9ybSA9PiBmb3JtLmludmFsaWQpKSB7XHJcbiAgICAgIHRoaXMuZmllbGQuRm9ybUZvcm1Hcm91cC5jb250cm9sc1t0aGlzLmZpZWxkLk5hbWVdLnNldEVycm9ycyh7ICdpbmNvcnJlY3QnOiB0cnVlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5maWVsZC5Gb3JtRm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGQuTmFtZV0uc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblJlY29yZFZhbHVlQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIHJlY3VwZXJhcmUgaWwgQmFzZUZpZWxkIGNoZSByYXBwcmVzZW50YSBpbCBtZXRhZGF0YSBuZWxsYSByaWdhIGRlbGxhIGVxcC10YWJsZVxyXG4gICAqIGluIGJhc2UgYWxsYSBjb2xvbm5hIGUgYWxsYSByaWdhLiBVbmEgdm9sdGEgdHJvdmF0byBpbCBCYXNlRmllbGQgZ2xpIHZpZW5lIGFzc29jaWF0byBpbCBcclxuICAgKiBGb3JtR3JvdXAgZGkgY3VpIGZhIHBhcnRlLlxyXG4gICAqIEBwYXJhbSBjb2wgQ29sb25uYSBkZWxsYSBlcXAtdGFibGUuXHJcbiAgICogQHBhcmFtIHJvdyBSaWdhIGRlbGxhIGVxcC10YWJsZSAoaW4gcXVlc3RvIGNhc28gZXJlZGl0YSBkYSBJQXR0YWNobWVudCkuXHJcbiAgICogQHJldHVybnMgUmVzdGl0dWlzY2UgdW4gQmFzZUZpZWxkIHBlciByZW5kZXJpenphcmUgaWwgY2FtcG8gbmVsbGEgZXFwLXRhYmxlIGRlZ2xpIGFsbGVnYXRpIG11bHRpcGxpLlxyXG4gICAqL1xyXG4gIGdldEZpZWxkRnJvbU1ldGFkYXRhKGNvbDogQ29uZmlnQ29sdW1uLCByb3c6IGFueSkge1xyXG4gICAgdmFyIGJhc2VGaWVsZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5maWVsZC5NZXRhZGF0YUZpZWxkcy5maW5kKG1ldGFkYXRhID0+IG1ldGFkYXRhLk5hbWUgPT09IGNvbC5rZXkpKSk7XHJcbiAgICBiYXNlRmllbGQuRm9ybUZvcm1Hcm91cCA9IHRoaXMubWV0YWRhdGFGb3JtR3JvdXBzW3RoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0uaW5kZXhPZihyb3cpXTtcclxuICAgIHJldHVybiBiYXNlRmllbGQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGFnZ2lvcm5hcmUgaWwgdmFsb3JlIGUgaWwgdmFsaWRhdG9yIGRlbCBGb3JtQ29udHJvbCBhc3NvY2lhdG8gYWwgY2FtcG8uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXRGb3JtQ29udHJvbFZhbHVlKCkge1xyXG4gICAgdGhpcy5maWVsZC5Gb3JtRm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGQuTmFtZV0uc2V0VmFsdWUodGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGVtZXR0ZXJlIGwnZXZlbnRvIGNoZSBpbCB2YWxvcmUgZGVsIHJlY29yZCDDqCBjYW1iaWF0by5cclxuICAgKi9cclxuICBwcml2YXRlIG9uUmVjb3JkVmFsdWVDaGFuZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuZmllbGQuRm9ybXVsYSkge1xyXG4gICAgICB0aGlzLnJlY29yZENoYW5nZS5lbWl0KHRoaXMucmVjb3JkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgYWdnaXVuZ2VyZSBhbGxlIGNvbG9ubmUgZGkgZXFwLWF0dGFjaG1lbnRzIGxlIGNvbG9ubmUgcGVyIG1vZGlmaWNhcmUgaSBtZXRhZGF0YVxyXG4gICAqIGNvbmZpZ3VyYXRpIHBlciBpbCBjYW1wbyBBbGxlZ2F0byBvIEltbWFnaW5lLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgY29uZmlndXJlTXVsdGlBdHRhY2htZW50Q29sdW1ucygpIHtcclxuICAgIGlmICh0aGlzLmVxcEF0dGFjaG1lbnRzICYmIHRoaXMuZXFwQXR0YWNobWVudHMuYXR0YWNobWVudHNDb2x1bW5zICYmIHRoaXMuZmllbGQuTWV0YWRhdGFGaWVsZHMgJiYgdGhpcy5maWVsZC5NZXRhZGF0YUZpZWxkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuZmllbGQuTWV0YWRhdGFGaWVsZHMuZm9yRWFjaChtZXRhZGF0YSA9PiB7XHJcbiAgICAgICAgdGhpcy5lcXBBdHRhY2htZW50cy5hdHRhY2htZW50c0NvbHVtbnMuc3BsaWNlKFxyXG4gICAgICAgICAgdGhpcy5lcXBBdHRhY2htZW50cy5hdHRhY2htZW50c0NvbHVtbnMubGVuZ3RoIC0gMSwgMCxcclxuICAgICAgICAgIHsga2V5OiBtZXRhZGF0YS5OYW1lLCBkaXNwbGF5OiBtZXRhZGF0YS5MYWJlbCwgdHlwZTogVHlwZUNvbHVtbi5FeHRlcm5hbFRlbXBsYXRlLCBleHRlcm5hbFRlbXBsYXRlOiB0aGlzLm1ldGFkYXRhQ29sdW1uVGVtcGxhdGUgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBjcmVhcmUgaSBGb3JtR3JvdXAgY2hlIHJhcHByZXNlbnRhbm8gaSBtZXRhZGF0YSBkZWdsaSBhbGxlZ2F0aSBjYXJpY2F0aS5cclxuICAgKi9cclxuICBwcml2YXRlIGNyZWF0ZU1ldGFkYXRhRm9ybUdyb3VwcygpIHtcclxuICAgIGlmICh0aGlzLmZpZWxkLk1ldGFkYXRhRmllbGRzICYmIHRoaXMuZmllbGQuTWV0YWRhdGFGaWVsZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLm1ldGFkYXRhRm9ybUdyb3VwcyA9IFtdO1xyXG4gICAgICBpZiAodGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSAmJiB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdLmZvckVhY2goYXR0YWNobWVudCA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1ldGFkYXRhRm9ybUdyb3Vwcy5wdXNoKHRoaXMudXRpbGl0eVNlcnZpY2UuQ3JlYXRlRm9ybUZvcm1Hcm91cCh0aGlzLmZpZWxkLk1ldGFkYXRhRmllbGRzLCBhdHRhY2htZW50LCB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXAuZGlzYWJsZWQsICF0aGlzLmZpZWxkLklzTXVsdGlBdHRhY2gpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy51cGRhdGVNZXRhZGF0YVZhbGlkaXR5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59Il19
|
|
@@ -1,10 +1,33 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
1
|
+
import { __awaiter, __decorate, __generator } from "tslib";
|
|
2
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
3
3
|
import { AvailableImageExtensions } from '../../../../models/fields/attachmentField.model';
|
|
4
|
-
import { UtilityHelperService } from '
|
|
4
|
+
import { UtilityHelperService } from '../../../../services/utilityHelper.services';
|
|
5
|
+
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
|
|
6
|
+
/**
|
|
7
|
+
* Metodo per recuperare, a partire da un Blob, la stringa contenente il base64 del file.
|
|
8
|
+
* Usato per prendere il base64 dell'immagine dopo che l'utente ci ha disegnato sopra.
|
|
9
|
+
* @param file Blob che rappresenta l'immagine.
|
|
10
|
+
*/
|
|
11
|
+
var toBase64 = function (file) { return new Promise(function (resolve, reject) {
|
|
12
|
+
var reader = new FileReader();
|
|
13
|
+
reader.readAsDataURL(file);
|
|
14
|
+
reader.onload = function () { return resolve(reader.result.toString()); };
|
|
15
|
+
reader.onerror = function (error) { return reject(error); };
|
|
16
|
+
}); };
|
|
17
|
+
var ɵ0 = toBase64;
|
|
5
18
|
var ImageFieldTemplateComponent = /** @class */ (function () {
|
|
6
|
-
|
|
19
|
+
//#endregion
|
|
20
|
+
function ImageFieldTemplateComponent(dialog, utilityService) {
|
|
21
|
+
this.dialog = dialog;
|
|
22
|
+
this.utilityService = utilityService;
|
|
7
23
|
this.recordChange = new EventEmitter();
|
|
24
|
+
//#region Proprietà per configurare il componente ngx-image-drawing e aprire il relativo dialog.
|
|
25
|
+
this.width = null;
|
|
26
|
+
this.height = null;
|
|
27
|
+
this.i18n = {
|
|
28
|
+
saveBtn: 'Salva modifiche',
|
|
29
|
+
cancelBtn: 'Ricarica originale'
|
|
30
|
+
};
|
|
8
31
|
}
|
|
9
32
|
ImageFieldTemplateComponent.prototype.ngOnInit = function () {
|
|
10
33
|
this.field.AttachDefinition.FormFormGroup = this.field.FormFormGroup;
|
|
@@ -17,6 +40,19 @@ var ImageFieldTemplateComponent = /** @class */ (function () {
|
|
|
17
40
|
this.field.AttachDefinition.Required = this.field.Required;
|
|
18
41
|
this.field.AttachDefinition.Formula = this.field.Formula;
|
|
19
42
|
this.field.AttachDefinition.FieldValue = this.field.FieldValue;
|
|
43
|
+
// Se il campo prevede un'immagine pre-caricata (ImageIsContextualAttachment == true) sulla quale
|
|
44
|
+
// l'utente può disegnare (EnableDrawing == true) e non sono in modifica di un record (ovvero nel record
|
|
45
|
+
// non ho un'immagine già salvata) allora imposta l'immagine pre caricata come valore iniziale
|
|
46
|
+
// nel record corrente e ne recupera le dimensioni per visualizzare correttamente l'area in cui
|
|
47
|
+
// l'utente può disegnare. Se non effettua modifiche o non salva i disegni fatti viene salvata
|
|
48
|
+
// l'immagine originale.
|
|
49
|
+
if (this.field.ImageIsContextualAttachment && this.field.ContextualAttachment) {
|
|
50
|
+
if (!this.record[this.field.Name] || !Array.isArray(this.record[this.field.Name]) || !(this.record[this.field.Name].length > 0)) {
|
|
51
|
+
this.record[this.field.Name] = [JSON.parse(JSON.stringify(this.field.ContextualAttachment))];
|
|
52
|
+
}
|
|
53
|
+
this.preLoadedImageMetadataFormGroup = this.utilityService.CreateFormFormGroup(this.field.AttachDefinition.MetadataFields, this.record[this.field.Name][0]);
|
|
54
|
+
this.getImageDimensions();
|
|
55
|
+
}
|
|
20
56
|
};
|
|
21
57
|
ImageFieldTemplateComponent.prototype.ngOnChanges = function (changes) {
|
|
22
58
|
// Se viene modificato il valore di "ngModelInput" allora aggiorna l'input
|
|
@@ -25,6 +61,15 @@ var ImageFieldTemplateComponent = /** @class */ (function () {
|
|
|
25
61
|
this.updateField();
|
|
26
62
|
}
|
|
27
63
|
};
|
|
64
|
+
ImageFieldTemplateComponent.prototype.updateMetadataValidity = function () {
|
|
65
|
+
if (this.preLoadedImageMetadataFormGroup.invalid) {
|
|
66
|
+
this.field.FormFormGroup.controls[this.field.Name].setErrors({ 'incorrect': true });
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
this.field.FormFormGroup.controls[this.field.Name].setErrors(null);
|
|
70
|
+
}
|
|
71
|
+
this.onRecordValueChange();
|
|
72
|
+
};
|
|
28
73
|
/**
|
|
29
74
|
* Metodo per aggiornare il valore del campo quando questo è rappresentato da una formula.
|
|
30
75
|
*/
|
|
@@ -33,6 +78,108 @@ var ImageFieldTemplateComponent = /** @class */ (function () {
|
|
|
33
78
|
this.record[this.field.Name] = UtilityHelperService.EvaluateFieldFormula(this.field.Formula, this.record, null);
|
|
34
79
|
}
|
|
35
80
|
};
|
|
81
|
+
ImageFieldTemplateComponent.prototype.resetPreLoadedImage = function () {
|
|
82
|
+
this.width = null;
|
|
83
|
+
this.height = null;
|
|
84
|
+
this.record[this.field.Name] = [JSON.parse(JSON.stringify(this.field.ContextualAttachment))];
|
|
85
|
+
this.getImageDimensions();
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Metodo invocato quando vengono aggiunti o eliminati gli allegati nel componente AttachmentFieldTemplate.
|
|
89
|
+
* Se l'ImageField è abilitato al disegno (EnableDrawing == true), non permette allegati multipli (IsMulitAttach == false)
|
|
90
|
+
* e nel Record corrente è presente l'immagine caricata dall'utente allora recupera le dimensioni dell'immagine e
|
|
91
|
+
* apre il dialog con il componente image-drawing per permettere il disegno sull'immagine appena caricata.
|
|
92
|
+
*/
|
|
93
|
+
ImageFieldTemplateComponent.prototype.onAttachmentsChange = function () {
|
|
94
|
+
if (!this.field.AttachDefinition.IsMultiAttach && this.field.EnableDrawing && this.record[this.field.Name] && this.record[this.field.Name][0]) {
|
|
95
|
+
this.getImageDimensions();
|
|
96
|
+
this.dialogImageDrowingRef = this.dialog.open(this.dialogImageDrowing, {
|
|
97
|
+
disableClose: true,
|
|
98
|
+
hasBackdrop: true,
|
|
99
|
+
width: '75%'
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Metodo invocato al salvataggio dell'immagine dal componente image-drawing.
|
|
105
|
+
* Trasforma il Blob ricevuto in un base64, aggiorna il FileContetType e il FileDataBase64
|
|
106
|
+
* dell'allegato caricato e chiude il dialog in cui disegnare.
|
|
107
|
+
* @param drawnPicture Blob dell'immagine disegnata.
|
|
108
|
+
*/
|
|
109
|
+
ImageFieldTemplateComponent.prototype.saveDrowning = function (drawnPicture) {
|
|
110
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
111
|
+
var base64File;
|
|
112
|
+
return __generator(this, function (_a) {
|
|
113
|
+
switch (_a.label) {
|
|
114
|
+
case 0: return [4 /*yield*/, toBase64(drawnPicture)];
|
|
115
|
+
case 1:
|
|
116
|
+
base64File = _a.sent();
|
|
117
|
+
if (base64File) {
|
|
118
|
+
this.record[this.field.Name][0].FileContentType = base64File.split(",")[0].split(":")[1].split(";")[0];
|
|
119
|
+
this.record[this.field.Name][0].FileDataBase64 = base64File.split(",")[1];
|
|
120
|
+
}
|
|
121
|
+
if (this.dialogImageDrowingRef) {
|
|
122
|
+
this.closeImageDrowingDialog();
|
|
123
|
+
}
|
|
124
|
+
return [2 /*return*/];
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Metodo per chiudere il dialog in cui disegnare sull'immagine cariata e svuotare le dimensioni.
|
|
131
|
+
*/
|
|
132
|
+
ImageFieldTemplateComponent.prototype.closeImageDrowingDialog = function () {
|
|
133
|
+
this.dialogImageDrowingRef.close();
|
|
134
|
+
this.width = null;
|
|
135
|
+
this.height = null;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Metodo per recuperare le dimensioni dell'immagine caricata per mostrare correttamente
|
|
139
|
+
* il componente image-drawing. Se non viene eseguito questo passaggio l'area in cui disegnare
|
|
140
|
+
* è più grande dell'immagine stessa e al salvataggio i tratti disegnati vengono spostati.
|
|
141
|
+
*/
|
|
142
|
+
ImageFieldTemplateComponent.prototype.getImageDimensions = function () {
|
|
143
|
+
var _this = this;
|
|
144
|
+
var blob = this.getBlobFromBase64();
|
|
145
|
+
var reader = new FileReader();
|
|
146
|
+
reader.onload = function (e) {
|
|
147
|
+
var image = new Image();
|
|
148
|
+
image.src = e.target.result;
|
|
149
|
+
image.onload = function (rs) {
|
|
150
|
+
_this.height = rs.currentTarget['height'];
|
|
151
|
+
_this.width = rs.currentTarget['width'];
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
reader.readAsDataURL(blob);
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* Metodo per convertire il base64 di un'immagine in un Blob.
|
|
158
|
+
* Necessario per il recupero delle dimensioni dell'immagine caricata a partire dal suo base64.
|
|
159
|
+
* Viene eseguito solo nel caso in cui l'ImageField non ammette allegati multipli.
|
|
160
|
+
* @returns Restituisce il Blob dell'immagine caricata.
|
|
161
|
+
*/
|
|
162
|
+
ImageFieldTemplateComponent.prototype.getBlobFromBase64 = function () {
|
|
163
|
+
var byteCharacters = atob(this.record[this.field.Name][0].FileDataBase64);
|
|
164
|
+
var byteNumbers = new Array(byteCharacters.length);
|
|
165
|
+
for (var i = 0; i < byteCharacters.length; i++) {
|
|
166
|
+
byteNumbers[i] = byteCharacters.charCodeAt(i);
|
|
167
|
+
}
|
|
168
|
+
var byteArray = new Uint8Array(byteNumbers);
|
|
169
|
+
return new Blob([byteArray], { type: this.record[this.field.Name][0].FileContentType });
|
|
170
|
+
};
|
|
171
|
+
/**
|
|
172
|
+
* Metodo per emettere l'evento che il valore del record è cambiato.
|
|
173
|
+
*/
|
|
174
|
+
ImageFieldTemplateComponent.prototype.onRecordValueChange = function () {
|
|
175
|
+
if (!this.field.Formula) {
|
|
176
|
+
this.recordChange.emit(this.record);
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
ImageFieldTemplateComponent.ctorParameters = function () { return [
|
|
180
|
+
{ type: MatDialog },
|
|
181
|
+
{ type: UtilityHelperService }
|
|
182
|
+
]; };
|
|
36
183
|
__decorate([
|
|
37
184
|
Input()
|
|
38
185
|
], ImageFieldTemplateComponent.prototype, "record", void 0);
|
|
@@ -42,14 +189,18 @@ var ImageFieldTemplateComponent = /** @class */ (function () {
|
|
|
42
189
|
__decorate([
|
|
43
190
|
Output()
|
|
44
191
|
], ImageFieldTemplateComponent.prototype, "recordChange", void 0);
|
|
192
|
+
__decorate([
|
|
193
|
+
ViewChild("dialogImageDrowing", { static: true })
|
|
194
|
+
], ImageFieldTemplateComponent.prototype, "dialogImageDrowing", void 0);
|
|
45
195
|
ImageFieldTemplateComponent = __decorate([
|
|
46
196
|
Component({
|
|
47
197
|
selector: 'image-field-template',
|
|
48
|
-
template: "<attachment-field-template [(record)]=\"record\" [field]=\"field.AttachDefinition\"
|
|
49
|
-
styles: [""]
|
|
198
|
+
template: "<!-- VISUALIZZAZIONE ALLEGATO PRE CARICATO CON POSSIBILITA' DI DISEGNO -->\n<div class=\"row\" *ngIf=\"field.ImageIsContextualAttachment && field.ContextualAttachment\">\n <div class=\"col-sm-12 col-md-6 col-lg-4\">\n <p class=\"mb-2\">\n {{ field.Label + (field.Required ? \" *\" : \"\")}}\n <br>\n Nome immagine: {{ field.ImgName}}\n </p>\n <eqp-img-drawing\n *ngIf=\"field.EnableDrawing && record[field.Name] && record[field.Name][0] && width != null && height != null\"\n [src]=\"'data:'+ record[field.Name][0].FileContentType + ';base64,'+ record[field.Name][0].FileDataBase64\"\n [showCancelButton]=\"false\" [enableLoadAnotherImage]=\"false\" [enableRemoveImage]=\"false\" [width]=\"width\"\n [height]=\"height\" [i18n]=\"i18n\" [showCancelButton]=\"true\" (save)=\"saveDrowning($event)\"\n (cancel)=\"resetPreLoadedImage()\">\n </eqp-img-drawing>\n\n <img *ngIf=\"!field.EnableDrawing\"\n [src]=\"'data:'+ record[field.Name][0].FileContentType+ ';base64,'+ record[field.Name][0].FileDataBase64\">\n </div>\n\n <div class=\"col-sm-12 col-md-6 col-lg-8\">\n <div class=\"row\"\n *ngIf=\"field.AttachDefinition && field.AttachDefinition.MetadataFields && preLoadedImageMetadataFormGroup\">\n <div class=\"mt-2\" *ngFor=\"let metadata of field.AttachDefinition.MetadataFields\"\n [ngClass]=\"utilityService.getFieldSyleClass(metadata)\">\n <dynamic-module-field #fieldTemplate [field]=\"metadata\" [form]=\"preLoadedImageMetadataFormGroup\"\n [record]=\"record[field.Name][0]\" (recordChange)=\"updateMetadataValidity()\">\n </dynamic-module-field>\n </div>\n </div>\n </div>\n</div>\n\n<!-- COMPONENTE IN CUI CARICARE NUOVI ALLEGATI -->\n<attachment-field-template [(record)]=\"record\" [field]=\"field.AttachDefinition\" [onlyImages]=\"true\"\n (onAttachmentsChange)=\"onAttachmentsChange()\" *ngIf=\"!field.ImageIsContextualAttachment\">\n</attachment-field-template>\n\n<!-- DIALOG PER DISEGNARE SUL NUOVO ALLEGATO CARICATO -->\n<ng-template #dialogImageDrowing>\n <div *ngIf=\"field.EnableDrawing && record[field.Name] && record[field.Name][0] && width != null && height != null\"\n class=\"row\">\n <div class=\"col-sm-12 col-md-12\">\n <eqp-img-drawing [showCancelButton]=\"false\" [enableLoadAnotherImage]=\"false\" [enableRemoveImage]=\"false\"\n [src]=\"'data:'+ record[field.Name][0].FileContentType + ';base64,'+ record[field.Name][0].FileDataBase64\"\n [i18n]=\"i18n\" [showCancelButton]=\"false\" (save)=\"saveDrowning($event)\">\n </eqp-img-drawing>\n </div>\n </div>\n <div class=\"row mt-2 mb-1\">\n <div class=\"col-sm-12 text-right\">\n <button class=\"btn mat-raised-button\" (click)=\"closeImageDrowingDialog()\" type=\"button\">\n Annulla disegno\n </button>\n </div>\n </div>\n</ng-template>",
|
|
199
|
+
styles: ["::ng-deep image-drawing>button{background-color:var(--primary)!important;color:#fff!important}"]
|
|
50
200
|
})
|
|
51
201
|
], ImageFieldTemplateComponent);
|
|
52
202
|
return ImageFieldTemplateComponent;
|
|
53
203
|
}());
|
|
54
204
|
export { ImageFieldTemplateComponent };
|
|
55
|
-
|
|
205
|
+
export { ɵ0 };
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGVxcHJvamVjdC9lcXAtZHluYW1pYy1tb2R1bGUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9pbWFnZS1maWVsZC10ZW1wbGF0ZS9pbWFnZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUE4QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakksT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFHM0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUluRTs7OztHQUlHO0FBQ0gsSUFBTSxRQUFRLEdBQUcsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLE9BQU8sQ0FBUyxVQUFDLE9BQU8sRUFBRSxNQUFNO0lBQzNELElBQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7SUFDaEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixNQUFNLENBQUMsTUFBTSxHQUFHLGNBQU0sT0FBQSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFqQyxDQUFpQyxDQUFDO0lBQ3hELE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBQSxLQUFLLElBQUksT0FBQSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQWIsQ0FBYSxDQUFDO0FBQzFDLENBQUMsQ0FBQyxFQUx1QixDQUt2QixDQUFDOztBQU9IO0lBaUJFLFlBQVk7SUFFWixxQ0FDVSxNQUFpQixFQUNsQixjQUFvQztRQURuQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUFzQjtRQWpCbkMsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUkxRSxnR0FBZ0c7UUFDekYsVUFBSyxHQUFHLElBQUksQ0FBQztRQUNiLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxTQUFJLEdBQWtCO1lBQzNCLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsU0FBUyxFQUFFLG9CQUFvQjtTQUNoQyxDQUFDO0lBUUUsQ0FBQztJQUVMLDhDQUFRLEdBQVI7UUFDRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUVyRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRTtZQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixHQUFHLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxVQUFBLEdBQUcsSUFBSSxPQUFBLEdBQUcsQ0FBQyxHQUFHLEVBQVAsQ0FBTyxDQUFDLENBQUM7U0FDOUY7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUNuRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUNqRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMzRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUN6RCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUUvRCxrR0FBa0c7UUFDbEcsd0dBQXdHO1FBQ3hHLDhGQUE4RjtRQUM5RixpR0FBaUc7UUFDakcsOEZBQThGO1FBQzlGLHdCQUF3QjtRQUN4QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsMkJBQTJCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRTtZQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDL0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDOUY7WUFDRCxJQUFJLENBQUMsK0JBQStCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1SixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxpREFBVyxHQUFYLFVBQVksT0FBc0I7UUFDaEMsMEVBQTBFO1FBQzFFLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNqTCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFDN0MsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUdELDREQUFzQixHQUF0QjtRQUNFLElBQUksSUFBSSxDQUFDLCtCQUErQixDQUFDLE9BQU8sRUFBRTtZQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNyRjthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUdEOztPQUVHO0lBQ0gsaURBQVcsR0FBWDtRQUNFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDakg7SUFDSCxDQUFDO0lBR0QseURBQW1CLEdBQW5CO1FBQ0UsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gseURBQW1CLEdBQW5CO1FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0ksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDckUsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixLQUFLLEVBQUUsS0FBSzthQUNiLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0csa0RBQVksR0FBbEIsVUFBbUIsWUFBa0I7Ozs7OzRCQUNsQixxQkFBTSxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUE7O3dCQUF6QyxVQUFVLEdBQUcsU0FBNEI7d0JBQzdDLElBQUksVUFBVSxFQUFFOzRCQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUN2RyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQzNFO3dCQUNELElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFOzRCQUM5QixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQzt5QkFDaEM7Ozs7O0tBQ0Y7SUFFRDs7T0FFRztJQUNILDZEQUF1QixHQUF2QjtRQUNFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHdEQUFrQixHQUExQjtRQUFBLGlCQVlDO1FBWEMsSUFBSSxJQUFJLEdBQVMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDMUMsSUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsTUFBTSxHQUFHLFVBQUMsQ0FBTTtZQUNyQixJQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQzFCLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDNUIsS0FBSyxDQUFDLE1BQU0sR0FBRyxVQUFBLEVBQUU7Z0JBQ2YsS0FBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN6QyxLQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBQ0YsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyx1REFBaUIsR0FBekI7UUFDRSxJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVFLElBQU0sV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5QyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvQztRQUNELElBQU0sU0FBUyxHQUFHLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQ7O09BRUc7SUFDSyx5REFBbUIsR0FBM0I7UUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQzs7Z0JBMUppQixTQUFTO2dCQUNGLG9CQUFvQjs7SUFuQnBDO1FBQVIsS0FBSyxFQUFFOytEQUFnQjtJQUNmO1FBQVIsS0FBSyxFQUFFOzhEQUFtQjtJQUNqQjtRQUFULE1BQU0sRUFBRTtxRUFBaUU7SUFZdkI7UUFBbEQsU0FBUyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDOzJFQUFzQztJQWhCN0UsMkJBQTJCO1FBTHZDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsb3FHQUFvRDs7U0FFckQsQ0FBQztPQUNXLDJCQUEyQixDQStLdkM7SUFBRCxrQ0FBQztDQUFBLEFBL0tELElBK0tDO1NBL0tZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbWFnZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpZWxkcy9pbWFnZUZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgQXZhaWxhYmxlSW1hZ2VFeHRlbnNpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpZWxkcy9hdHRhY2htZW50RmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuaW1wb3J0IHsgSUJhc2VGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvaUJhc2VGaWVsZENvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSTE4bkludGVyZmFjZSB9IGZyb20gJ0BlcXByb2plY3QvZXFwLWltZy1kcmF3aW5nJztcclxuXHJcbi8qKlxyXG4gKiBNZXRvZG8gcGVyIHJlY3VwZXJhcmUsIGEgcGFydGlyZSBkYSB1biBCbG9iLCBsYSBzdHJpbmdhIGNvbnRlbmVudGUgaWwgYmFzZTY0IGRlbCBmaWxlLlxyXG4gKiBVc2F0byBwZXIgcHJlbmRlcmUgaWwgYmFzZTY0IGRlbGwnaW1tYWdpbmUgZG9wbyBjaGUgbCd1dGVudGUgY2kgaGEgZGlzZWduYXRvIHNvcHJhLlxyXG4gKiBAcGFyYW0gZmlsZSBCbG9iIGNoZSByYXBwcmVzZW50YSBsJ2ltbWFnaW5lLlxyXG4gKi9cclxuY29uc3QgdG9CYXNlNjQgPSBmaWxlID0+IG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHJlc29sdmUocmVhZGVyLnJlc3VsdC50b1N0cmluZygpKTtcclxuICByZWFkZXIub25lcnJvciA9IGVycm9yID0+IHJlamVjdChlcnJvcik7XHJcbn0pO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpbWFnZS1maWVsZC10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWFnZUZpZWxkVGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgSUJhc2VGaWVsZENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIHJlY29yZDogUmVjb3JkO1xyXG4gIEBJbnB1dCgpIGZpZWxkOiBJbWFnZUZpZWxkO1xyXG4gIEBPdXRwdXQoKSByZWNvcmRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxSZWNvcmQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ+KCk7XHJcblxyXG4gIHByZUxvYWRlZEltYWdlTWV0YWRhdGFGb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuXHJcbiAgLy8jcmVnaW9uIFByb3ByaWV0w6AgcGVyIGNvbmZpZ3VyYXJlIGlsIGNvbXBvbmVudGUgbmd4LWltYWdlLWRyYXdpbmcgZSBhcHJpcmUgaWwgcmVsYXRpdm8gZGlhbG9nLlxyXG4gIHB1YmxpYyB3aWR0aCA9IG51bGw7XHJcbiAgcHVibGljIGhlaWdodCA9IG51bGw7XHJcbiAgcHVibGljIGkxOG46IEkxOG5JbnRlcmZhY2UgPSB7XHJcbiAgICBzYXZlQnRuOiAnU2FsdmEgbW9kaWZpY2hlJyxcclxuICAgIGNhbmNlbEJ0bjogJ1JpY2FyaWNhIG9yaWdpbmFsZSdcclxuICB9O1xyXG4gIGRpYWxvZ0ltYWdlRHJvd2luZ1JlZjogTWF0RGlhbG9nUmVmPFRlbXBsYXRlUmVmPGFueT4+O1xyXG4gIEBWaWV3Q2hpbGQoXCJkaWFsb2dJbWFnZURyb3dpbmdcIiwgeyBzdGF0aWM6IHRydWUgfSkgZGlhbG9nSW1hZ2VEcm93aW5nOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlIZWxwZXJTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uRm9ybUZvcm1Hcm91cCA9IHRoaXMuZmllbGQuRm9ybUZvcm1Hcm91cDtcclxuXHJcbiAgICBpZiAoIXRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5BbGxvd2VkRXh0ZW5zaW9ucykge1xyXG4gICAgICB0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uQWxsb3dlZEV4dGVuc2lvbnMgPSBBdmFpbGFibGVJbWFnZUV4dGVuc2lvbnMubWFwKGV4dCA9PiBleHQua2V5KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uTmFtZSA9IHRoaXMuZmllbGQuTmFtZTtcclxuICAgIHRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5MYWJlbCA9IHRoaXMuZmllbGQuTGFiZWw7XHJcbiAgICB0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uRGVzY3JpcHRpb24gPSB0aGlzLmZpZWxkLkRlc2NyaXB0aW9uO1xyXG4gICAgdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLlJlcXVpcmVkID0gdGhpcy5maWVsZC5SZXF1aXJlZDtcclxuICAgIHRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5Gb3JtdWxhID0gdGhpcy5maWVsZC5Gb3JtdWxhO1xyXG4gICAgdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLkZpZWxkVmFsdWUgPSB0aGlzLmZpZWxkLkZpZWxkVmFsdWU7XHJcblxyXG4gICAgLy8gU2UgaWwgY2FtcG8gcHJldmVkZSB1bidpbW1hZ2luZSBwcmUtY2FyaWNhdGEgKEltYWdlSXNDb250ZXh0dWFsQXR0YWNobWVudCA9PSB0cnVlKSBzdWxsYSBxdWFsZSBcclxuICAgIC8vIGwndXRlbnRlIHB1w7IgZGlzZWduYXJlIChFbmFibGVEcmF3aW5nID09IHRydWUpIGUgbm9uIHNvbm8gaW4gbW9kaWZpY2EgZGkgdW4gcmVjb3JkIChvdnZlcm8gbmVsIHJlY29yZFxyXG4gICAgLy8gbm9uIGhvIHVuJ2ltbWFnaW5lIGdpw6Agc2FsdmF0YSkgYWxsb3JhIGltcG9zdGEgbCdpbW1hZ2luZSBwcmUgY2FyaWNhdGEgY29tZSB2YWxvcmUgaW5pemlhbGVcclxuICAgIC8vIG5lbCByZWNvcmQgY29ycmVudGUgZSBuZSByZWN1cGVyYSBsZSBkaW1lbnNpb25pIHBlciB2aXN1YWxpenphcmUgY29ycmV0dGFtZW50ZSBsJ2FyZWEgaW4gY3VpICBcclxuICAgIC8vIGwndXRlbnRlIHB1w7IgZGlzZWduYXJlLiBTZSBub24gZWZmZXR0dWEgbW9kaWZpY2hlIG8gbm9uIHNhbHZhIGkgZGlzZWduaSBmYXR0aSB2aWVuZSBzYWx2YXRhXHJcbiAgICAvLyBsJ2ltbWFnaW5lIG9yaWdpbmFsZS5cclxuICAgIGlmICh0aGlzLmZpZWxkLkltYWdlSXNDb250ZXh0dWFsQXR0YWNobWVudCAmJiB0aGlzLmZpZWxkLkNvbnRleHR1YWxBdHRhY2htZW50KSB7XHJcbiAgICAgIGlmICghdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSB8fCAhQXJyYXkuaXNBcnJheSh0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdKSB8fCAhKHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0ubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gW0pTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5maWVsZC5Db250ZXh0dWFsQXR0YWNobWVudCkpXTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnByZUxvYWRlZEltYWdlTWV0YWRhdGFGb3JtR3JvdXAgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLkNyZWF0ZUZvcm1Gb3JtR3JvdXAodGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLk1ldGFkYXRhRmllbGRzLCB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdWzBdKTtcclxuICAgICAgdGhpcy5nZXRJbWFnZURpbWVuc2lvbnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIC8vIFNlIHZpZW5lIG1vZGlmaWNhdG8gaWwgdmFsb3JlIGRpIFwibmdNb2RlbElucHV0XCIgYWxsb3JhIGFnZ2lvcm5hIGwnaW5wdXRcclxuICAgIGlmIChjaGFuZ2VzWydyZWNvcmQnXSAhPSB1bmRlZmluZWQgJiYgY2hhbmdlc1sncmVjb3JkJ10uZmlyc3RDaGFuZ2UgPT0gZmFsc2UgJiYgSlNPTi5zdHJpbmdpZnkoY2hhbmdlc1sncmVjb3JkJ10uY3VycmVudFZhbHVlKSAhPSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydyZWNvcmQnXS5wcmV2aW91c1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLnJlY29yZCA9IGNoYW5nZXNbJ3JlY29yZCddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgdGhpcy51cGRhdGVGaWVsZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHVwZGF0ZU1ldGFkYXRhVmFsaWRpdHkoKSB7XHJcbiAgICBpZiAodGhpcy5wcmVMb2FkZWRJbWFnZU1ldGFkYXRhRm9ybUdyb3VwLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5maWVsZC5Gb3JtRm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGQuTmFtZV0uc2V0RXJyb3JzKHsgJ2luY29ycmVjdCc6IHRydWUgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXAuY29udHJvbHNbdGhpcy5maWVsZC5OYW1lXS5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uUmVjb3JkVmFsdWVDaGFuZ2UoKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGFnZ2lvcm5hcmUgaWwgdmFsb3JlIGRlbCBjYW1wbyBxdWFuZG8gcXVlc3RvIMOoIHJhcHByZXNlbnRhdG8gZGEgdW5hIGZvcm11bGEuXHJcbiAgICovXHJcbiAgdXBkYXRlRmllbGQoKSB7XHJcbiAgICBpZiAodGhpcy5maWVsZC5Gb3JtdWxhKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBVdGlsaXR5SGVscGVyU2VydmljZS5FdmFsdWF0ZUZpZWxkRm9ybXVsYSh0aGlzLmZpZWxkLkZvcm11bGEsIHRoaXMucmVjb3JkLCBudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICByZXNldFByZUxvYWRlZEltYWdlKCkge1xyXG4gICAgdGhpcy53aWR0aCA9IG51bGw7XHJcbiAgICB0aGlzLmhlaWdodCA9IG51bGw7XHJcbiAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gW0pTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5maWVsZC5Db250ZXh0dWFsQXR0YWNobWVudCkpXTtcclxuICAgIHRoaXMuZ2V0SW1hZ2VEaW1lbnNpb25zKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gaW52b2NhdG8gcXVhbmRvIHZlbmdvbm8gYWdnaXVudGkgbyBlbGltaW5hdGkgZ2xpIGFsbGVnYXRpIG5lbCBjb21wb25lbnRlIEF0dGFjaG1lbnRGaWVsZFRlbXBsYXRlLlxyXG4gICAqIFNlIGwnSW1hZ2VGaWVsZCDDqCBhYmlsaXRhdG8gYWwgZGlzZWdubyAoRW5hYmxlRHJhd2luZyA9PSB0cnVlKSwgbm9uIHBlcm1ldHRlIGFsbGVnYXRpIG11bHRpcGxpIChJc011bGl0QXR0YWNoID09IGZhbHNlKVxyXG4gICAqIGUgbmVsIFJlY29yZCBjb3JyZW50ZSDDqCBwcmVzZW50ZSBsJ2ltbWFnaW5lIGNhcmljYXRhIGRhbGwndXRlbnRlIGFsbG9yYSByZWN1cGVyYSBsZSBkaW1lbnNpb25pIGRlbGwnaW1tYWdpbmUgZVxyXG4gICAqIGFwcmUgaWwgZGlhbG9nIGNvbiBpbCBjb21wb25lbnRlIGltYWdlLWRyYXdpbmcgcGVyIHBlcm1ldHRlcmUgaWwgZGlzZWdubyBzdWxsJ2ltbWFnaW5lIGFwcGVuYSBjYXJpY2F0YS5cclxuICAgKi9cclxuICBvbkF0dGFjaG1lbnRzQ2hhbmdlKCkge1xyXG4gICAgaWYgKCF0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uSXNNdWx0aUF0dGFjaCAmJiB0aGlzLmZpZWxkLkVuYWJsZURyYXdpbmcgJiYgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSAmJiB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdWzBdKSB7XHJcbiAgICAgIHRoaXMuZ2V0SW1hZ2VEaW1lbnNpb25zKCk7XHJcbiAgICAgIHRoaXMuZGlhbG9nSW1hZ2VEcm93aW5nUmVmID0gdGhpcy5kaWFsb2cub3Blbih0aGlzLmRpYWxvZ0ltYWdlRHJvd2luZywge1xyXG4gICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgICB3aWR0aDogJzc1JSdcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gaW52b2NhdG8gYWwgc2FsdmF0YWdnaW8gZGVsbCdpbW1hZ2luZSBkYWwgY29tcG9uZW50ZSBpbWFnZS1kcmF3aW5nLlxyXG4gICAqIFRyYXNmb3JtYSBpbCBCbG9iIHJpY2V2dXRvIGluIHVuIGJhc2U2NCwgYWdnaW9ybmEgaWwgRmlsZUNvbnRldFR5cGUgZSBpbCBGaWxlRGF0YUJhc2U2NFxyXG4gICAqIGRlbGwnYWxsZWdhdG8gY2FyaWNhdG8gZSBjaGl1ZGUgaWwgZGlhbG9nIGluIGN1aSBkaXNlZ25hcmUuXHJcbiAgICogQHBhcmFtIGRyYXduUGljdHVyZSBCbG9iIGRlbGwnaW1tYWdpbmUgZGlzZWduYXRhLlxyXG4gICAqL1xyXG4gIGFzeW5jIHNhdmVEcm93bmluZyhkcmF3blBpY3R1cmU6IEJsb2IpIHtcclxuICAgIGxldCBiYXNlNjRGaWxlID0gYXdhaXQgdG9CYXNlNjQoZHJhd25QaWN0dXJlKTtcclxuICAgIGlmIChiYXNlNjRGaWxlKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV1bMF0uRmlsZUNvbnRlbnRUeXBlID0gYmFzZTY0RmlsZS5zcGxpdChcIixcIilbMF0uc3BsaXQoXCI6XCIpWzFdLnNwbGl0KFwiO1wiKVswXTtcclxuICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXVswXS5GaWxlRGF0YUJhc2U2NCA9IGJhc2U2NEZpbGUuc3BsaXQoXCIsXCIpWzFdO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGlhbG9nSW1hZ2VEcm93aW5nUmVmKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VJbWFnZURyb3dpbmdEaWFsb2coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgY2hpdWRlcmUgaWwgZGlhbG9nIGluIGN1aSBkaXNlZ25hcmUgc3VsbCdpbW1hZ2luZSBjYXJpYXRhIGUgc3Z1b3RhcmUgbGUgZGltZW5zaW9uaS5cclxuICAgKi9cclxuICBjbG9zZUltYWdlRHJvd2luZ0RpYWxvZygpIHtcclxuICAgIHRoaXMuZGlhbG9nSW1hZ2VEcm93aW5nUmVmLmNsb3NlKCk7XHJcbiAgICB0aGlzLndpZHRoID0gbnVsbDtcclxuICAgIHRoaXMuaGVpZ2h0ID0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgcmVjdXBlcmFyZSBsZSBkaW1lbnNpb25pIGRlbGwnaW1tYWdpbmUgY2FyaWNhdGEgcGVyIG1vc3RyYXJlIGNvcnJldHRhbWVudGVcclxuICAgKiBpbCBjb21wb25lbnRlIGltYWdlLWRyYXdpbmcuIFNlIG5vbiB2aWVuZSBlc2VndWl0byBxdWVzdG8gcGFzc2FnZ2lvIGwnYXJlYSBpbiBjdWkgZGlzZWduYXJlIFxyXG4gICAqIMOoIHBpw7kgZ3JhbmRlIGRlbGwnaW1tYWdpbmUgc3Rlc3NhIGUgYWwgc2FsdmF0YWdnaW8gaSB0cmF0dGkgZGlzZWduYXRpIHZlbmdvbm8gc3Bvc3RhdGkuIFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0SW1hZ2VEaW1lbnNpb25zKCkge1xyXG4gICAgdmFyIGJsb2I6IEJsb2IgPSB0aGlzLmdldEJsb2JGcm9tQmFzZTY0KCk7XHJcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgaW1hZ2Uuc3JjID0gZS50YXJnZXQucmVzdWx0O1xyXG4gICAgICBpbWFnZS5vbmxvYWQgPSBycyA9PiB7XHJcbiAgICAgICAgdGhpcy5oZWlnaHQgPSBycy5jdXJyZW50VGFyZ2V0WydoZWlnaHQnXTtcclxuICAgICAgICB0aGlzLndpZHRoID0gcnMuY3VycmVudFRhcmdldFsnd2lkdGgnXTtcclxuICAgICAgfTtcclxuICAgIH07XHJcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgY29udmVydGlyZSBpbCBiYXNlNjQgZGkgdW4naW1tYWdpbmUgaW4gdW4gQmxvYi5cclxuICAgKiBOZWNlc3NhcmlvIHBlciBpbCByZWN1cGVybyBkZWxsZSBkaW1lbnNpb25pIGRlbGwnaW1tYWdpbmUgY2FyaWNhdGEgYSBwYXJ0aXJlIGRhbCBzdW8gYmFzZTY0LlxyXG4gICAqIFZpZW5lIGVzZWd1aXRvIHNvbG8gbmVsIGNhc28gaW4gY3VpIGwnSW1hZ2VGaWVsZCBub24gYW1tZXR0ZSBhbGxlZ2F0aSBtdWx0aXBsaS5cclxuICAgKiBAcmV0dXJucyBSZXN0aXR1aXNjZSBpbCBCbG9iIGRlbGwnaW1tYWdpbmUgY2FyaWNhdGEuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRCbG9iRnJvbUJhc2U2NCgpIHtcclxuICAgIGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYih0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdWzBdLkZpbGVEYXRhQmFzZTY0KTtcclxuICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGJ5dGVOdW1iZXJzW2ldID0gYnl0ZUNoYXJhY3RlcnMuY2hhckNvZGVBdChpKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGJ5dGVOdW1iZXJzKTtcclxuICAgIHJldHVybiBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdWzBdLkZpbGVDb250ZW50VHlwZSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgZW1ldHRlcmUgbCdldmVudG8gY2hlIGlsIHZhbG9yZSBkZWwgcmVjb3JkIMOoIGNhbWJpYXRvLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25SZWNvcmRWYWx1ZUNoYW5nZSgpIHtcclxuICAgIGlmICghdGhpcy5maWVsZC5Gb3JtdWxhKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkQ2hhbmdlLmVtaXQodGhpcy5yZWNvcmQpO1xyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==
|
package/esm5/lib/components/private/form-records/add-form-record/add-form-record.component.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core';
|
|
3
|
-
import { DynamicModuleFieldComponent, UtilityHelperService } from 'projects/eqp-dynamic-module/src/public-api';
|
|
4
3
|
import { FieldTypeEnum } from '../../../../models/baseField.model';
|
|
5
4
|
import { Form, FormScalarTypeEnum } from '../../../../models/form.model';
|
|
6
5
|
import { Record } from '../../../../models/record.model';
|
|
6
|
+
import { UtilityHelperService } from '../../../../services/utilityHelper.services';
|
|
7
7
|
var AddFormRecordComponent = /** @class */ (function () {
|
|
8
8
|
function AddFormRecordComponent(cdr, utilityService) {
|
|
9
9
|
this.cdr = cdr;
|
|
10
10
|
this.utilityService = utilityService;
|
|
11
|
+
this.showTitle = true;
|
|
11
12
|
this.showButtons = true;
|
|
12
13
|
this.form = new Form();
|
|
13
14
|
this.fieldGroups = {};
|
|
@@ -98,6 +99,9 @@ var AddFormRecordComponent = /** @class */ (function () {
|
|
|
98
99
|
{ type: ChangeDetectorRef },
|
|
99
100
|
{ type: UtilityHelperService }
|
|
100
101
|
]; };
|
|
102
|
+
__decorate([
|
|
103
|
+
Input()
|
|
104
|
+
], AddFormRecordComponent.prototype, "showTitle", void 0);
|
|
101
105
|
__decorate([
|
|
102
106
|
Input()
|
|
103
107
|
], AddFormRecordComponent.prototype, "showButtons", void 0);
|
|
@@ -119,11 +123,11 @@ var AddFormRecordComponent = /** @class */ (function () {
|
|
|
119
123
|
AddFormRecordComponent = __decorate([
|
|
120
124
|
Component({
|
|
121
125
|
selector: 'add-form-record',
|
|
122
|
-
template: "<div class=\"row eqp-dynamic-module-title\">\n <div class=\"col-md-12
|
|
126
|
+
template: "<div class=\"row eqp-dynamic-module-title\" *ngIf=\"showTitle\">\n <div class=\"col-md-12\">\n <h4><b>{{form.Name}}</b></h4>\n </div>\n</div>\n\n<form [formGroup]=\"formForm\">\n\n <!-- VISUALIZZAZIONE SEMPLICE -->\n <ng-container *ngIf=\"form.FormScalarType == FormScalarTypeEnum.Semplice\" [ngTemplateOutlet]=\"fieldTemplates\"\n [ngTemplateOutletContext]=\"{ fields: form.Fields }\">\n </ng-container>\n\n <!-- VISUALIZZAZIONE A STEPPER -->\n <mat-horizontal-stepper linear *ngIf=\"form.FormScalarType == FormScalarTypeEnum['A step']\">\n <mat-step *ngFor=\"let group of form.FormFieldsGroups\">\n <ng-template matStepLabel>\n {{group.Name}}\n </ng-template>\n\n <ng-container [ngTemplateOutlet]=\"fieldTemplates\"\n [ngTemplateOutletContext]=\"{ fields: fieldGroups[group.Name] }\">\n </ng-container>\n </mat-step>\n </mat-horizontal-stepper>\n\n <!-- VISUALIZZAZIONE A TAB -->\n <mat-tab-group *ngIf=\"form.FormScalarType == FormScalarTypeEnum['In tab']\">\n <mat-tab *ngFor=\"let group of form.FormFieldsGroups\" [label]=\"group.Name\">\n <div class=\"mt-3\">\n <ng-container [ngTemplateOutlet]=\"fieldTemplates\"\n [ngTemplateOutletContext]=\"{ fields: fieldGroups[group.Name] }\">\n </ng-container>\n </div>\n </mat-tab>\n </mat-tab-group>\n\n <!-- VISUALIZZAZIONE AD ACCORDION -->\n <mat-accordion multi *ngIf=\"form.FormScalarType == FormScalarTypeEnum['In accordion']\">\n <mat-expansion-panel *ngFor=\"let group of form.FormFieldsGroups\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n {{group.Name}}\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <ng-container [ngTemplateOutlet]=\"fieldTemplates\"\n [ngTemplateOutletContext]=\"{ fields: fieldGroups[group.Name] }\">\n </ng-container>\n </mat-expansion-panel>\n </mat-accordion>\n</form>\n\n<div class=\"row mt-2\" *ngIf=\"showButtons\">\n <div class=\"col-sm-12 text-right\">\n <button class=\"mr-2\" mat-raised-button (click)=\"saveOrExitForm(true)\" type=\"button\">\n Annulla\n </button>\n <button class=\"mr-2\" mat-raised-button color=\"primary\" (click)=\"saveOrExitForm(false)\"\n [disabled]=\"formForm.invalid || formForm.disabled\" type=\"button\">\n Salva\n </button>\n </div>\n</div>\n\n<!-- TEMPLATE PER LA VISUALIZZAZIONE DEI CAMPI DELLA FORM -->\n<ng-template #fieldTemplates let-fields='fields'>\n <div class=\"row\">\n <div class=\"mt-2\" *ngFor=\"let field of fields\" [ngClass]=\"utilityService.getFieldSyleClass(field)\">\n <dynamic-module-field #fieldTemplate [field]=\"field\" [form]=\"form\" [record]=\"record\"\n (recordChange)=\"onRecordChange()\"></dynamic-module-field>\n </div>\n </div>\n</ng-template>",
|
|
123
127
|
styles: [""]
|
|
124
128
|
})
|
|
125
129
|
], AddFormRecordComponent);
|
|
126
130
|
return AddFormRecordComponent;
|
|
127
131
|
}());
|
|
128
132
|
export { AddFormRecordComponent };
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWZvcm0tcmVjb3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BlcXByb2plY3QvZXFwLWR5bmFtaWMtbW9kdWxlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXJlY29yZHMvYWRkLWZvcm0tcmVjb3JkL2FkZC1mb3JtLXJlY29yZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0gsT0FBTyxFQUFFLDJCQUEyQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0csT0FBTyxFQUFhLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFPekQ7SUFlRSxnQ0FDVSxHQUFzQixFQUN2QixjQUFvQztRQURuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN2QixtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFmcEMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsU0FBSSxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFJakMsZ0JBQVcsR0FBd0MsRUFBRSxDQUFDO1FBQ3RELHVCQUFrQixHQUFHLGtCQUFrQixDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBRXBCLG9CQUFlLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFPekUsQ0FBQztJQUVMLHlDQUFRLEdBQVI7UUFDRSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcs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UixLQUFLLEVBQUU7d0RBQXlCO0lBQ3hCO1FBQVIsS0FBSyxFQUFFOzBEQUFnQjtJQUNmO1FBQVIsS0FBSyxFQUFFOzREQUFtQjtJQU1qQjtRQUFULE1BQU0sRUFBRTttRUFBb0U7SUFFOUM7UUFBOUIsWUFBWSxDQUFDLGVBQWUsQ0FBQztpRUFBdUQ7SUFiMUUsc0JBQXNCO1FBTGxDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxpQkFBaUI7WUFDM0Iscy9GQUErQzs7U0FFaEQsQ0FBQztPQUNXLHNCQUFzQixDQXNHbEM7SUFBRCw2QkFBQztDQUFBLEFBdEdELElBc0dDO1NBdEdZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVGaWVsZENvbXBvbmVudCwgVXRpbGl0eUhlbHBlclNlcnZpY2UgfSBmcm9tICdwcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL3B1YmxpYy1hcGknO1xyXG5pbXBvcnQgeyBCYXNlRmllbGQsIEZpZWxkVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYmFzZUZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybSwgRm9ybVNjYWxhclR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWRkLWZvcm0tcmVjb3JkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLWZvcm0tcmVjb3JkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hZGQtZm9ybS1yZWNvcmQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkRm9ybVJlY29yZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHNob3dCdXR0b25zID0gdHJ1ZTtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtID0gbmV3IEZvcm0oKTtcclxuICBASW5wdXQoKSByZWNvcmQ6IFJlY29yZDtcclxuICBASW5wdXQoKSBvbmx5VmlldzogYm9vbGVhbjtcclxuICBmb3JtRm9ybTogRm9ybUdyb3VwO1xyXG4gIGZpZWxkR3JvdXBzOiB7IFtrZXk6IHN0cmluZ106IEFycmF5PEJhc2VGaWVsZD4gfSA9IHt9O1xyXG4gIEZvcm1TY2FsYXJUeXBlRW51bSA9IEZvcm1TY2FsYXJUeXBlRW51bTtcclxuICBGaWVsZFR5cGVFbnVtID0gRmllbGRUeXBlRW51bTtcclxuXHJcbiAgQE91dHB1dCgpIHNhdmVSZWNvcmRFdmVudDogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihcImZpZWxkVGVtcGxhdGVcIikgZmllbGRUZW1wbGF0ZTogUXVlcnlMaXN0PER5bmFtaWNNb2R1bGVGaWVsZENvbXBvbmVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5SGVscGVyU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmVjb3JkID09IG51bGwpIHtcclxuICAgICAgdGhpcy5yZWNvcmQgPSBuZXcgUmVjb3JkKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNyZWF0ZVJlY29yZFByb3BlcnRpZXMoKTtcclxuICAgIHRoaXMucmVvcmRlckZvcm1GaWVsZHMoKTtcclxuICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwKCk7XHJcbiAgICBpZiAodGhpcy5mb3JtLkZvcm1TY2FsYXJUeXBlICE9IEZvcm1TY2FsYXJUeXBlRW51bS5TZW1wbGljZSkge1xyXG4gICAgICB0aGlzLmNyZWF0ZUZpZWxkR3JvdXBzKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gaW52b2NhdG8gYWwgY2FtYmlvIGRlbCB2YWxvcmUgZGkgb2duaSBwcm9wcmlldMOgIGRlbGwnb2dnZXR0byByZWNvcmQuXHJcbiAgICogU2VydmUgYWQgYWdnaW9ybmFyZSBpbCB2YWxvcmUgZGkgdHV0dGkgaSBjYW1waSBjaGUgaGFubm8gdW5hIGZvcm11bGEuXHJcbiAgICovXHJcbiAgb25SZWNvcmRDaGFuZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5maWVsZFRlbXBsYXRlICYmIHRoaXMuZmllbGRUZW1wbGF0ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuZmllbGRUZW1wbGF0ZS5mb3JFYWNoKGYgPT4gZi51cGRhdGVGaWVsZCgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgc2FsdmFyZSBpIGRhdGkgaW5zZXJpdGkgZGFsbCd1dGVudGUgdW5hIHZvbHRhIGNvbmNsdXNhIGxhIGNvbXBpbGF6aW9uZSBkZWxsYSBmb3JtLlxyXG4gICAqL1xyXG4gIHNhdmVPckV4aXRGb3JtKGV4aXQ6IGJvb2xlYW4pIHtcclxuICAgIGlmIChleGl0KSB7XHJcbiAgICAgIHRoaXMuc2F2ZVJlY29yZEV2ZW50LmVtaXQobnVsbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNhdmVSZWNvcmRFdmVudC5lbWl0KHRoaXMucmVjb3JkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgY3JlYXJlIG5lbGwnb2dnZXR0byBSZWNvcmQgbGUgcHJvcHJpZXTDoCBtYW5jYW50aSByaXNwZXR0byBhaSBjYW1waSBjaGUgY29tcG9uZ29ubyBsYSBmb3JtLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlUmVjb3JkUHJvcGVydGllcygpIHtcclxuICAgIGNvbnN0IHJlY29yZFByb3BlcnRpZXM6IEFycmF5PHN0cmluZz4gPSBPYmplY3Qua2V5cyh0aGlzLnJlY29yZCk7XHJcbiAgICB0aGlzLmZvcm0uRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICBpZiAoIXJlY29yZFByb3BlcnRpZXMuZmluZChwID0+IHAgPT09IGZpZWxkLk5hbWUpKSB7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRbZmllbGQuTmFtZV0gPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLmZvcm0uSW5uZXJGb3JtcyAmJiB0aGlzLmZvcm0uSW5uZXJGb3Jtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5Jbm5lckZvcm1zLmZvckVhY2goZm9ybSA9PiB7XHJcbiAgICAgICAgY29uc3QgYXJyYXlOYW1lOiBzdHJpbmcgPSBmb3JtLk5hbWUuc3BsaXQoXCIgXCIpLmpvaW4oXCJfXCIpO1xyXG4gICAgICAgIGlmICghcmVjb3JkUHJvcGVydGllcy5maW5kKHAgPT4gcCA9PT0gYXJyYXlOYW1lKSkge1xyXG4gICAgICAgICAgdGhpcy5yZWNvcmRbYXJyYXlOYW1lXSA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIHJpb3JkaW5hcmUgaSBjYW1waSBjaGUgY29tcG9uZ29ubyBsYSBmb3JtLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVvcmRlckZvcm1GaWVsZHMoKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtLkZpZWxkcyAmJiB0aGlzLmZvcm0uRmllbGRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5mb3JtLkZpZWxkcy5zb3J0KChhLCBiKSA9PiAoYS5PcmRpbmFsUG9zaXRpb24gPiBiLk9yZGluYWxQb3NpdGlvbikgPyAxIDogKChiLk9yZGluYWxQb3NpdGlvbiA+IGEuT3JkaW5hbFBvc2l0aW9uKSA/IC0xIDogMCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBjcmVhcmUgaWwgRm9ybUdyb3VwIGNoZSByYXBwcmVzZW50YSBsYSBmb3JtLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlRm9ybUdyb3VwKCkge1xyXG4gICAgdGhpcy5mb3JtRm9ybSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuQ3JlYXRlRm9ybUZvcm1Hcm91cCh0aGlzLmZvcm0uRmllbGRzLCB0aGlzLnJlY29yZCwgdGhpcy5vbmx5Vmlldyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGNyZWFyZSBpIGdydXBwaSBpbiBjdWkgcmFnZ3J1cHBhcmUgaSBjYW1waSBkZWxsYSBmb3JtIGluIGJhc2UgXHJcbiAgICogYSBjb21lIMOoIHN0YXRhIGNvbmZpZ3VyYXRhIGRhbGwndXRlbnRlLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlRmllbGRHcm91cHMoKSB7XHJcbiAgICB0aGlzLmZvcm0uRm9ybUZpZWxkc0dyb3Vwc1xyXG4gICAgICAuc29ydCgoYSwgYikgPT4gKGEuT3JkaW5hbFBvc2l0aW9uID4gYi5PcmRpbmFsUG9zaXRpb24pID8gMSA6ICgoYi5PcmRpbmFsUG9zaXRpb24gPiBhLk9yZGluYWxQb3NpdGlvbikgPyAtMSA6IDApKVxyXG4gICAgICAubWFwKGcgPT4gZy5OYW1lKVxyXG4gICAgICAuZm9yRWFjaChncm91cE5hbWUgPT4ge1xyXG4gICAgICAgIHRoaXMuZmllbGRHcm91cHNbZ3JvdXBOYW1lXSA9IHRoaXMuZm9ybS5GaWVsZHMuZmlsdGVyKGYgPT4gZi5GaWVsZEdyb3VwID09IGdyb3VwTmFtZSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWZvcm0tcmVjb3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BlcXByb2plY3QvZXFwLWR5bmFtaWMtbW9kdWxlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXJlY29yZHMvYWRkLWZvcm0tcmVjb3JkL2FkZC1mb3JtLXJlY29yZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0gsT0FBTyxFQUFhLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFRbkY7SUFnQkUsZ0NBQ1UsR0FBc0IsRUFDdkIsY0FBb0M7UUFEbkMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdkIsbUJBQWMsR0FBZCxjQUFjLENBQXNCO1FBaEJwQyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLFNBQUksR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBSWpDLGdCQUFXLEdBQXdDLEVBQUUsQ0FBQztRQUN0RCx1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUVwQixvQkFBZSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBT3pFLENBQUM7SUFFTCx5Q0FBUSxHQUFSO1FBQ0UsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtZQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7WUFDM0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSCwrQ0FBYyxHQUFkO1FBQ0UsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBZixDQUFlLENBQUMsQ0FBQztTQUNsRDtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILCtDQUFjLEdBQWQsVUFBZSxJQUFhO1FBQzFCLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakM7YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLHVEQUFzQixHQUE5QjtRQUFBLGlCQWVDO1FBZEMsSUFBTSxnQkFBZ0IsR0FBa0IsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQUEsS0FBSztZQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQWhCLENBQWdCLENBQUMsRUFBRTtnQkFDakQsS0FBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQ2hDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQUEsSUFBSTtnQkFDL0IsSUFBTSxTQUFTLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxLQUFLLFNBQVMsRUFBZixDQUFlLENBQUMsRUFBRTtvQkFDaEQsS0FBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7aUJBQzdCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGtEQUFpQixHQUF6QjtRQUNFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBaEcsQ0FBZ0csQ0FBQyxDQUFDO1NBQ25JO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZ0RBQWUsR0FBdkI7UUFDRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGtEQUFpQixHQUF6QjtRQUFBLGlCQU9DO1FBTkMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0I7YUFDdkIsSUFBSSxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQWhHLENBQWdHLENBQUM7YUFDaEgsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLElBQUksRUFBTixDQUFNLENBQUM7YUFDaEIsT0FBTyxDQUFDLFVBQUEsU0FBUztZQUNoQixLQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxVQUFVLElBQUksU0FBUyxFQUF6QixDQUF5QixDQUFDLENBQUM7UUFDeEYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztnQkFyRmMsaUJBQWlCO2dCQUNQLG9CQUFvQjs7SUFoQnBDO1FBQVIsS0FBSyxFQUFFOzZEQUFrQjtJQUNqQjtRQUFSLEtBQUssRUFBRTsrREFBb0I7SUFDbkI7UUFBUixLQUFLLEVBQUU7d0RBQXlCO0lBQ3hCO1FBQVIsS0FBSyxFQUFFOzBEQUFnQjtJQUNmO1FBQVIsS0FBSyxFQUFFOzREQUFtQjtJQU1qQjtRQUFULE1BQU0sRUFBRTttRUFBb0U7SUFFOUM7UUFBOUIsWUFBWSxDQUFDLGVBQWUsQ0FBQztpRUFBdUQ7SUFkMUUsc0JBQXNCO1FBTGxDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsK2dHQUErQzs7U0FFaEQsQ0FBQztPQUNXLHNCQUFzQixDQXVHbEM7SUFBRCw2QkFBQztDQUFBLEFBdkdELElBdUdDO1NBdkdZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJhc2VGaWVsZCwgRmllbGRUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9iYXNlRmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtLCBGb3JtU2NhbGFyVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IFJlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9yZWNvcmQubW9kZWwnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9keW5hbWljLW1vZHVsZS1maWVsZC9keW5hbWljLW1vZHVsZS1maWVsZC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhZGQtZm9ybS1yZWNvcmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtZm9ybS1yZWNvcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FkZC1mb3JtLXJlY29yZC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRGb3JtUmVjb3JkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgc2hvd1RpdGxlID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93QnV0dG9ucyA9IHRydWU7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybSA9IG5ldyBGb3JtKCk7XHJcbiAgQElucHV0KCkgcmVjb3JkOiBSZWNvcmQ7XHJcbiAgQElucHV0KCkgb25seVZpZXc6IGJvb2xlYW47XHJcbiAgZm9ybUZvcm06IEZvcm1Hcm91cDtcclxuICBmaWVsZEdyb3VwczogeyBba2V5OiBzdHJpbmddOiBBcnJheTxCYXNlRmllbGQ+IH0gPSB7fTtcclxuICBGb3JtU2NhbGFyVHlwZUVudW0gPSBGb3JtU2NhbGFyVHlwZUVudW07XHJcbiAgRmllbGRUeXBlRW51bSA9IEZpZWxkVHlwZUVudW07XHJcblxyXG4gIEBPdXRwdXQoKSBzYXZlUmVjb3JkRXZlbnQ6IEV2ZW50RW1pdHRlcjxSZWNvcmQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oXCJmaWVsZFRlbXBsYXRlXCIpIGZpZWxkVGVtcGxhdGU6IFF1ZXJ5TGlzdDxEeW5hbWljTW9kdWxlRmllbGRDb21wb25lbnQ+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eUhlbHBlclNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJlY29yZCA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkID0gbmV3IFJlY29yZCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jcmVhdGVSZWNvcmRQcm9wZXJ0aWVzKCk7XHJcbiAgICB0aGlzLnJlb3JkZXJGb3JtRmllbGRzKCk7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cCgpO1xyXG4gICAgaWYgKHRoaXMuZm9ybS5Gb3JtU2NhbGFyVHlwZSAhPSBGb3JtU2NhbGFyVHlwZUVudW0uU2VtcGxpY2UpIHtcclxuICAgICAgdGhpcy5jcmVhdGVGaWVsZEdyb3VwcygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIGludm9jYXRvIGFsIGNhbWJpbyBkZWwgdmFsb3JlIGRpIG9nbmkgcHJvcHJpZXTDoCBkZWxsJ29nZ2V0dG8gcmVjb3JkLlxyXG4gICAqIFNlcnZlIGFkIGFnZ2lvcm5hcmUgaWwgdmFsb3JlIGRpIHR1dHRpIGkgY2FtcGkgY2hlIGhhbm5vIHVuYSBmb3JtdWxhLlxyXG4gICAqL1xyXG4gIG9uUmVjb3JkQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuZmllbGRUZW1wbGF0ZSAmJiB0aGlzLmZpZWxkVGVtcGxhdGUubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmZpZWxkVGVtcGxhdGUuZm9yRWFjaChmID0+IGYudXBkYXRlRmllbGQoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIHNhbHZhcmUgaSBkYXRpIGluc2VyaXRpIGRhbGwndXRlbnRlIHVuYSB2b2x0YSBjb25jbHVzYSBsYSBjb21waWxhemlvbmUgZGVsbGEgZm9ybS5cclxuICAgKi9cclxuICBzYXZlT3JFeGl0Rm9ybShleGl0OiBib29sZWFuKSB7XHJcbiAgICBpZiAoZXhpdCkge1xyXG4gICAgICB0aGlzLnNhdmVSZWNvcmRFdmVudC5lbWl0KG51bGwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zYXZlUmVjb3JkRXZlbnQuZW1pdCh0aGlzLnJlY29yZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGNyZWFyZSBuZWxsJ29nZ2V0dG8gUmVjb3JkIGxlIHByb3ByaWV0w6AgbWFuY2FudGkgcmlzcGV0dG8gYWkgY2FtcGkgY2hlIGNvbXBvbmdvbm8gbGEgZm9ybS5cclxuICAgKi9cclxuICBwcml2YXRlIGNyZWF0ZVJlY29yZFByb3BlcnRpZXMoKSB7XHJcbiAgICBjb25zdCByZWNvcmRQcm9wZXJ0aWVzOiBBcnJheTxzdHJpbmc+ID0gT2JqZWN0LmtleXModGhpcy5yZWNvcmQpO1xyXG4gICAgdGhpcy5mb3JtLkZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgaWYgKCFyZWNvcmRQcm9wZXJ0aWVzLmZpbmQocCA9PiBwID09PSBmaWVsZC5OYW1lKSkge1xyXG4gICAgICAgIHRoaXMucmVjb3JkW2ZpZWxkLk5hbWVdID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5mb3JtLklubmVyRm9ybXMgJiYgdGhpcy5mb3JtLklubmVyRm9ybXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmZvcm0uSW5uZXJGb3Jtcy5mb3JFYWNoKGZvcm0gPT4ge1xyXG4gICAgICAgIGNvbnN0IGFycmF5TmFtZTogc3RyaW5nID0gZm9ybS5OYW1lLnNwbGl0KFwiIFwiKS5qb2luKFwiX1wiKTtcclxuICAgICAgICBpZiAoIXJlY29yZFByb3BlcnRpZXMuZmluZChwID0+IHAgPT09IGFycmF5TmFtZSkpIHtcclxuICAgICAgICAgIHRoaXMucmVjb3JkW2FycmF5TmFtZV0gPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciByaW9yZGluYXJlIGkgY2FtcGkgY2hlIGNvbXBvbmdvbm8gbGEgZm9ybS5cclxuICAgKi9cclxuICBwcml2YXRlIHJlb3JkZXJGb3JtRmllbGRzKCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5GaWVsZHMgJiYgdGhpcy5mb3JtLkZpZWxkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5GaWVsZHMuc29ydCgoYSwgYikgPT4gKGEuT3JkaW5hbFBvc2l0aW9uID4gYi5PcmRpbmFsUG9zaXRpb24pID8gMSA6ICgoYi5PcmRpbmFsUG9zaXRpb24gPiBhLk9yZGluYWxQb3NpdGlvbikgPyAtMSA6IDApKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgY3JlYXJlIGlsIEZvcm1Hcm91cCBjaGUgcmFwcHJlc2VudGEgbGEgZm9ybS5cclxuICAgKi9cclxuICBwcml2YXRlIGNyZWF0ZUZvcm1Hcm91cCgpIHtcclxuICAgIHRoaXMuZm9ybUZvcm0gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLkNyZWF0ZUZvcm1Gb3JtR3JvdXAodGhpcy5mb3JtLkZpZWxkcywgdGhpcy5yZWNvcmQsIHRoaXMub25seVZpZXcpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBjcmVhcmUgaSBncnVwcGkgaW4gY3VpIHJhZ2dydXBwYXJlIGkgY2FtcGkgZGVsbGEgZm9ybSBpbiBiYXNlIFxyXG4gICAqIGEgY29tZSDDqCBzdGF0YSBjb25maWd1cmF0YSBkYWxsJ3V0ZW50ZS5cclxuICAgKi9cclxuICBwcml2YXRlIGNyZWF0ZUZpZWxkR3JvdXBzKCkge1xyXG4gICAgdGhpcy5mb3JtLkZvcm1GaWVsZHNHcm91cHNcclxuICAgICAgLnNvcnQoKGEsIGIpID0+IChhLk9yZGluYWxQb3NpdGlvbiA+IGIuT3JkaW5hbFBvc2l0aW9uKSA/IDEgOiAoKGIuT3JkaW5hbFBvc2l0aW9uID4gYS5PcmRpbmFsUG9zaXRpb24pID8gLTEgOiAwKSlcclxuICAgICAgLm1hcChnID0+IGcuTmFtZSlcclxuICAgICAgLmZvckVhY2goZ3JvdXBOYW1lID0+IHtcclxuICAgICAgICB0aGlzLmZpZWxkR3JvdXBzW2dyb3VwTmFtZV0gPSB0aGlzLmZvcm0uRmllbGRzLmZpbHRlcihmID0+IGYuRmllbGRHcm91cCA9PSBncm91cE5hbWUpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|