@tsi-developpement/tsi-shared-ui 1.7.39 → 1.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/consts/app-providers.mjs +4 -2
- package/esm2022/lib/models/common/entity-properties.mjs +1 -1
- package/esm2022/lib/services/form/form-state.service.mjs +13 -0
- package/esm2022/lib/services/validation/input-registry.service.mjs +9 -1
- package/esm2022/lib/tsi-base/components/tsi-form-base/tsi-form-base.component.mjs +44 -7
- package/esm2022/lib/tsi-base/tsi-input-base/tsi-input-base.component.mjs +16 -9
- package/esm2022/lib/tsi-components/create-or-edit-entity-informations/create-or-edit-entity-informations.component.mjs +3 -3
- package/esm2022/lib/tsi-components/create-or-edit-modele-import/create-or-edit-modele-import.component.mjs +3 -3
- package/esm2022/lib/tsi-components/input-components/editable-grid/editable-grid.component.mjs +12 -10
- package/esm2022/lib/tsi-components/input-components/tsi-checkbox/tsi-checkbox.component.mjs +2 -1
- package/esm2022/lib/tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component.mjs +6 -4
- package/esm2022/lib/tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component.mjs +6 -4
- package/esm2022/lib/tsi-components/input-components/tsi-date-picker/tsi-date-picker.component.mjs +8 -5
- package/esm2022/lib/tsi-components/input-components/tsi-decimal-input/tsi-decimal-input.component.mjs +6 -4
- package/esm2022/lib/tsi-components/input-components/tsi-file-manager/tsi-file-manager.component.mjs +5 -1
- package/esm2022/lib/tsi-components/input-components/tsi-formula-box/tsi-formula-box.component.mjs +5 -3
- package/esm2022/lib/tsi-components/input-components/tsi-integer/tsi-integer.component.mjs +6 -4
- package/esm2022/lib/tsi-components/input-components/tsi-radio-button/tsi-radio-button.component.mjs +2 -1
- package/esm2022/lib/tsi-components/input-components/tsi-rate-input/tsi-rate-input.component.mjs +6 -4
- package/esm2022/lib/tsi-components/input-components/tsi-search-combo/tsi-search-combo.component.mjs +2 -1
- package/esm2022/lib/tsi-components/input-components/tsi-text-area/tsi-text-area.component.mjs +2 -1
- package/esm2022/lib/tsi-components/input-components/tsi-text-box/tsi-text-box.component.mjs +4 -3
- package/esm2022/lib/tsi-components/input-components/tsi-time-picker/tsi-time-picker.component.mjs +10 -8
- package/esm2022/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.mjs +3 -3
- package/esm2022/lib/tsi-components/output-components/tsi-generic-grid/tsi-generic-grid.component.mjs +3 -3
- package/esm2022/lib/tsi-components/reporting/reporting.component.mjs +16 -9
- package/esm2022/lib/tsi-components/tsi-change-password/tsi-change-password.component.mjs +3 -3
- package/esm2022/lib/tsi-components/tsi-dynamic-form/create-or-edit-dynamic-form/create-or-edit-dynamic-form.component.mjs +3 -3
- package/esm2022/lib/tsi-components/tsi-form/tsi-form.component.mjs +11 -3
- package/esm2022/lib/tsi-components/tsi-generic-form/tsi-generic-form.component.mjs +3 -3
- package/esm2022/lib/tsi-components/tsi-modal-footer/tsi-modal-footer.component.mjs +20 -9
- package/esm2022/lib/tsi-components/tsi-modal-header/tsi-modal-header.component.mjs +8 -1
- package/esm2022/lib/tsi-components/tsi-notes-createoredit/tsi-notes.component.mjs +3 -3
- package/esm2022/lib/tsi-components/tsi-upload-fiche/tsi-upload-fiche.component.mjs +3 -3
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs +202 -83
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs.map +1 -1
- package/lib/consts/app-providers.d.ts +2 -1
- package/lib/models/common/entity-properties.d.ts +1 -0
- package/lib/providers/shared-ui-tsi.provider.d.ts +1 -1
- package/lib/services/form/form-state.service.d.ts +7 -0
- package/lib/services/validation/input-registry.service.d.ts +1 -0
- package/lib/tsi-base/components/tsi-form-base/tsi-form-base.component.d.ts +15 -5
- package/lib/tsi-base/tsi-input-base/tsi-input-base.component.d.ts +5 -1
- package/lib/tsi-components/input-components/editable-grid/editable-grid.component.d.ts +3 -4
- package/lib/tsi-components/input-components/tsi-currency-other-input/tsi-currency-other-input.component.d.ts +1 -1
- package/lib/tsi-components/input-components/tsi-currency-societe-input/tsi-currency-societe-input.component.d.ts +1 -1
- package/lib/tsi-components/input-components/tsi-date-picker/tsi-date-picker.component.d.ts +3 -2
- package/lib/tsi-components/input-components/tsi-decimal-input/tsi-decimal-input.component.d.ts +1 -1
- package/lib/tsi-components/input-components/tsi-integer/tsi-integer.component.d.ts +1 -1
- package/lib/tsi-components/input-components/tsi-rate-input/tsi-rate-input.component.d.ts +1 -1
- package/lib/tsi-components/input-components/tsi-time-picker/tsi-time-picker.component.d.ts +1 -1
- package/lib/tsi-components/reporting/reporting.component.d.ts +4 -1
- package/lib/tsi-components/tsi-form/tsi-form.component.d.ts +4 -1
- package/lib/tsi-components/tsi-modal-footer/tsi-modal-footer.component.d.ts +6 -2
- package/lib/tsi-components/tsi-modal-header/tsi-modal-header.component.d.ts +3 -1
- package/package.json +1 -1
|
@@ -29,15 +29,16 @@ export class TsiTextBoxComponent extends TsiInputBase {
|
|
|
29
29
|
}
|
|
30
30
|
onChangeofOptions(input) {
|
|
31
31
|
this.inputField = input;
|
|
32
|
+
this.isDirty = true;
|
|
32
33
|
this.newItemEvent.emit(this.inputField);
|
|
33
34
|
this.inputFieldChange.emit(this.inputField);
|
|
34
35
|
}
|
|
35
36
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiTextBoxComponent, deps: [{ token: i1.LocalizePipe }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: { textBoxType: "textBoxType", autocomplete: "autocomplete" }, outputs: { newItemEvent: "newItemEvent", inputFieldChange: "inputFieldChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex h-2rem flex-row gap-2 align-items-center\">\r\n <input autoSelect class=\"{{myStyleClass}} border-radius-7 {{validationStatusCssClass}}\" pInputText\r\n pTooltip=\"{{ isRequired ? requiredMessage + ' - ' : '' }}{{ maxLength ? maxLength + ' ' + maxLengthMessage : '' }}\" tooltipPosition=\"top\"\r\n [type]=\"textBoxType\" name=\"{{inputName}}\" id=\"{{inputName}}\" [
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: { textBoxType: "textBoxType", autocomplete: "autocomplete" }, outputs: { newItemEvent: "newItemEvent", inputFieldChange: "inputFieldChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex h-2rem flex-row gap-2 align-items-center\">\r\n <input autoSelect class=\"{{myStyleClass}} border-radius-7 {{validationStatusCssClass}}\" pInputText\r\n pTooltip=\"{{ isRequired ? requiredMessage + ' - ' : '' }}{{ maxLength ? maxLength + ' ' + maxLengthMessage : '' }}\" tooltipPosition=\"top\"\r\n [type]=\"textBoxType\" name=\"{{inputName}}\" id=\"{{inputName}}\" [ngModel]=\"inputField\"\r\n [required]=\"isRequired\" autocomplete=\"{{autocomplete}}\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"onChangeofOptions($event)\" placeholder=\"{{placeHolder}}\"/>\r\n\r\n <span *ngIf=\"isInputNameNotFound\" (click)=\"op.toggle($event)\"\r\n class=\"pi pi-exclamation-circle text-red-500 cursor-pointer tsi-input-alert-container\"> </span>\r\n\r\n <p-overlayPanel #op>\r\n <ng-template pTemplate>\r\n <div class=\"d-flex flex-row gap-2\">\r\n <span> Input name : </span>\r\n <span class=\"text-red-500\"> {{inputName}} </span>\r\n </div>\r\n </ng-template>\r\n </p-overlayPanel>\r\n <!--<input class=\"{{myStyleClass}} border-radius-7\" styleClass=\"border-radius-7\" pInputText type=\"text\"\r\n name=\"{{inputName}}\" id=\"{{inputName}}\" [(ngModel)]=\"inputField\" [required]=\"required\"\r\n [disabled]=\"disabled\" (ngModelChange)=\"onChangeofOptions($event)\" [formControl]=\"myFormControl\" />-->\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n</div>\r\n\r\n<div *ngIf=\"myFormControl.invalid && (myFormControl.dirty || myFormControl.touched)\">\r\n <div *ngIf=\"myFormControl.errors && myFormControl.errors['required']\" [ngClass]=\"{'error-message': true}\">\r\n This field is required.\r\n </div>\r\n <div *ngIf=\"myFormControl.errors && myFormControl.errors['maxlength']\" [ngClass]=\"{'error-message': true}\">\r\n Maximum length exceeded.\r\n </div>\r\n</div>", styles: [".ColorClass{background-color:#ff0}.error-message{color:red}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i5.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i7.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i8.TsiBubbleInfoComponent, selector: "Tsi-Bubble-Info", inputs: ["infoText"] }, { kind: "directive", type: i9.AutoSelectDirective, selector: "[autoSelect]" }] }); }
|
|
37
38
|
}
|
|
38
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiTextBoxComponent, decorators: [{
|
|
39
40
|
type: Component,
|
|
40
|
-
args: [{ selector: 'Tsi-Text-Box', template: "<div class=\"flex h-2rem flex-row gap-2 align-items-center\">\r\n <input autoSelect class=\"{{myStyleClass}} border-radius-7 {{validationStatusCssClass}}\" pInputText\r\n pTooltip=\"{{ isRequired ? requiredMessage + ' - ' : '' }}{{ maxLength ? maxLength + ' ' + maxLengthMessage : '' }}\" tooltipPosition=\"top\"\r\n [type]=\"textBoxType\" name=\"{{inputName}}\" id=\"{{inputName}}\" [
|
|
41
|
+
args: [{ selector: 'Tsi-Text-Box', template: "<div class=\"flex h-2rem flex-row gap-2 align-items-center\">\r\n <input autoSelect class=\"{{myStyleClass}} border-radius-7 {{validationStatusCssClass}}\" pInputText\r\n pTooltip=\"{{ isRequired ? requiredMessage + ' - ' : '' }}{{ maxLength ? maxLength + ' ' + maxLengthMessage : '' }}\" tooltipPosition=\"top\"\r\n [type]=\"textBoxType\" name=\"{{inputName}}\" id=\"{{inputName}}\" [ngModel]=\"inputField\"\r\n [required]=\"isRequired\" autocomplete=\"{{autocomplete}}\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"onChangeofOptions($event)\" placeholder=\"{{placeHolder}}\"/>\r\n\r\n <span *ngIf=\"isInputNameNotFound\" (click)=\"op.toggle($event)\"\r\n class=\"pi pi-exclamation-circle text-red-500 cursor-pointer tsi-input-alert-container\"> </span>\r\n\r\n <p-overlayPanel #op>\r\n <ng-template pTemplate>\r\n <div class=\"d-flex flex-row gap-2\">\r\n <span> Input name : </span>\r\n <span class=\"text-red-500\"> {{inputName}} </span>\r\n </div>\r\n </ng-template>\r\n </p-overlayPanel>\r\n <!--<input class=\"{{myStyleClass}} border-radius-7\" styleClass=\"border-radius-7\" pInputText type=\"text\"\r\n name=\"{{inputName}}\" id=\"{{inputName}}\" [(ngModel)]=\"inputField\" [required]=\"required\"\r\n [disabled]=\"disabled\" (ngModelChange)=\"onChangeofOptions($event)\" [formControl]=\"myFormControl\" />-->\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n</div>\r\n\r\n<div *ngIf=\"myFormControl.invalid && (myFormControl.dirty || myFormControl.touched)\">\r\n <div *ngIf=\"myFormControl.errors && myFormControl.errors['required']\" [ngClass]=\"{'error-message': true}\">\r\n This field is required.\r\n </div>\r\n <div *ngIf=\"myFormControl.errors && myFormControl.errors['maxlength']\" [ngClass]=\"{'error-message': true}\">\r\n Maximum length exceeded.\r\n </div>\r\n</div>", styles: [".ColorClass{background-color:#ff0}.error-message{color:red}\n"] }]
|
|
41
42
|
}], ctorParameters: () => [{ type: i1.LocalizePipe }, { type: i0.ChangeDetectorRef }], propDecorators: { textBoxType: [{
|
|
42
43
|
type: Input
|
|
43
44
|
}], autocomplete: [{
|
|
@@ -47,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
47
48
|
}], inputFieldChange: [{
|
|
48
49
|
type: Output
|
|
49
50
|
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLXRleHQtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy9pbnB1dC1jb21wb25lbnRzL3RzaS10ZXh0LWJveC90c2ktdGV4dC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL2lucHV0LWNvbXBvbmVudHMvdHNpLXRleHQtYm94L1RzaS1UZXh0LUJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJEQUEyRCxDQUFDOzs7Ozs7Ozs7OztBQVF6RixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsWUFBZ0M7SUFnQnZFLFlBQW9CLGFBQTJCLEVBQXFCLEtBQXlCO1FBQzNGLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQURNLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQXFCLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBZjdGLGdCQUFnQjtRQUNoQixnQ0FBZ0M7UUFDdkIsZ0JBQVcsR0FBVyxNQUFNLENBQUM7UUFFdEMsa0JBQWEsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUMvQyxZQUFZO1FBRVosaUJBQWlCO1FBQ1AsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFRdEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLENBQUE7UUFDOUUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsa0NBQWtDLENBQUMsQ0FBQTtJQUNyRixDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUMsQ0FBQzsrR0EzQlUsbUJBQW1CO21HQUFuQixtQkFBbUIsa09DVmhDLDBtRUErQk07OzRGRHJCTyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsY0FBYztpSEFPZixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRzaUlucHV0QmFzZSB9IGZyb20gJy4uLy4uLy4uL3RzaS1iYXNlL3RzaS1pbnB1dC1iYXNlL3RzaS1pbnB1dC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF1dG9Db21wbGV0ZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zJztcclxuaW1wb3J0IHsgTG9jYWxpemVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvbG9jYWxpemUucGlwZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnVHNpLVRleHQtQm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vVHNpLVRleHQtQm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9Uc2ktVGV4dC1Cb3guY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRzaVRleHRCb3hDb21wb25lbnQgZXh0ZW5kcyBUc2lJbnB1dEJhc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XHJcbiAgLy8jcmVnaW9uIGlucHV0c1xyXG4gIC8vIEBJbnB1dCgpIGlucHV0RmllbGQ/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGV4dEJveFR5cGU6IHN0cmluZyA9ICd0ZXh0JztcclxuICBASW5wdXQoKSBhdXRvY29tcGxldGU/OiBBdXRvQ29tcGxldGU7XHJcbiAgbXlGb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIG91dHB1dHNcclxuICBAT3V0cHV0KCkgbmV3SXRlbUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGlucHV0RmllbGRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgcmVxdWlyZWRNZXNzYWdlPzogc3RyaW5nXHJcbiAgbWF4TGVuZ3RoTWVzc2FnZT86IHN0cmluZ1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9sb2NhbGl6ZVBpcGU6IExvY2FsaXplUGlwZSwgcHJvdGVjdGVkIG92ZXJyaWRlIGNkUmVmPzogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHN1cGVyKGNkUmVmKVxyXG4gICAgdGhpcy5yZXF1aXJlZE1lc3NhZ2UgPSBfbG9jYWxpemVQaXBlLnRyYW5zZm9ybShcInRzaV9mb3JtX2Jhc2VfcmVxdWlyZWRfZmllbGRcIilcclxuICAgIHRoaXMubWF4TGVuZ3RoTWVzc2FnZSA9IF9sb2NhbGl6ZVBpcGUudHJhbnNmb3JtKFwidHNpX2Zvcm1fYmFzZV9tYXhfbGVuZ3RoX21lc3NhZ2VcIilcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlb2ZPcHRpb25zKGlucHV0OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuaW5wdXRGaWVsZCA9IGlucHV0O1xyXG4gICAgdGhpcy5pc0RpcnR5ID0gdHJ1ZVxyXG4gICAgdGhpcy5uZXdJdGVtRXZlbnQuZW1pdCh0aGlzLmlucHV0RmllbGQpO1xyXG4gICAgdGhpcy5pbnB1dEZpZWxkQ2hhbmdlLmVtaXQodGhpcy5pbnB1dEZpZWxkKTtcclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwiZmxleCBoLTJyZW0gZmxleC1yb3cgZ2FwLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGlucHV0IGF1dG9TZWxlY3QgY2xhc3M9XCJ7e215U3R5bGVDbGFzc319IGJvcmRlci1yYWRpdXMtNyB7e3ZhbGlkYXRpb25TdGF0dXNDc3NDbGFzc319XCIgcElucHV0VGV4dFxyXG4gICAgICAgICAgICAgICAgcFRvb2x0aXA9XCJ7eyBpc1JlcXVpcmVkID8gcmVxdWlyZWRNZXNzYWdlICsgJyAtICcgOiAnJyB9fXt7IG1heExlbmd0aCA/IG1heExlbmd0aCArICcgJyArIG1heExlbmd0aE1lc3NhZ2UgOiAnJyB9fVwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJ0ZXh0Qm94VHlwZVwiIG5hbWU9XCJ7e2lucHV0TmFtZX19XCIgaWQ9XCJ7e2lucHV0TmFtZX19XCIgW25nTW9kZWxdPVwiaW5wdXRGaWVsZFwiXHJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiaXNSZXF1aXJlZFwiIGF1dG9jb21wbGV0ZT1cInt7YXV0b2NvbXBsZXRlfX1cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2VvZk9wdGlvbnMoJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwie3twbGFjZUhvbGRlcn19XCIvPlxyXG5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImlzSW5wdXROYW1lTm90Rm91bmRcIiAoY2xpY2spPVwib3AudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGUgdGV4dC1yZWQtNTAwIGN1cnNvci1wb2ludGVyIHRzaS1pbnB1dC1hbGVydC1jb250YWluZXJcIj4gPC9zcGFuPlxyXG5cclxuICAgICAgICA8cC1vdmVybGF5UGFuZWwgI29wPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiBJbnB1dCBuYW1lIDogPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNTAwXCI+IHt7aW5wdXROYW1lfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9wLW92ZXJsYXlQYW5lbD5cclxuICAgICAgICA8IS0tPGlucHV0IGNsYXNzPVwie3tteVN0eWxlQ2xhc3N9fSBib3JkZXItcmFkaXVzLTdcIiBzdHlsZUNsYXNzPVwiYm9yZGVyLXJhZGl1cy03XCIgcElucHV0VGV4dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwie3tpbnB1dE5hbWV9fVwiIGlkPVwie3tpbnB1dE5hbWV9fVwiIFsobmdNb2RlbCldPVwiaW5wdXRGaWVsZFwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZW9mT3B0aW9ucygkZXZlbnQpXCIgW2Zvcm1Db250cm9sXT1cIm15Rm9ybUNvbnRyb2xcIiAvPi0tPlxyXG4gICAgICAgIDxUc2ktQnViYmxlLUluZm8gW2luZm9UZXh0XT1cImluZm9UZXh0XCI+PC9Uc2ktQnViYmxlLUluZm8+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cIm15Rm9ybUNvbnRyb2wuaW52YWxpZCAmJiAobXlGb3JtQ29udHJvbC5kaXJ0eSB8fCBteUZvcm1Db250cm9sLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIm15Rm9ybUNvbnRyb2wuZXJyb3JzICYmIG15Rm9ybUNvbnRyb2wuZXJyb3JzWydyZXF1aXJlZCddXCIgW25nQ2xhc3NdPVwieydlcnJvci1tZXNzYWdlJzogdHJ1ZX1cIj5cclxuICAgICAgICAgICAgICAgIFRoaXMgZmllbGQgaXMgcmVxdWlyZWQuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIm15Rm9ybUNvbnRyb2wuZXJyb3JzICYmIG15Rm9ybUNvbnRyb2wuZXJyb3JzWydtYXhsZW5ndGgnXVwiIFtuZ0NsYXNzXT1cInsnZXJyb3ItbWVzc2FnZSc6IHRydWV9XCI+XHJcbiAgICAgICAgICAgICAgICBNYXhpbXVtIGxlbmd0aCBleGNlZWRlZC5cclxuICAgICAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
package/esm2022/lib/tsi-components/input-components/tsi-time-picker/tsi-time-picker.component.mjs
CHANGED
|
@@ -40,29 +40,31 @@ export class TsiTimePickerComponent extends TsiInputBase {
|
|
|
40
40
|
//#endregion
|
|
41
41
|
//#region handle events
|
|
42
42
|
onFocusOut(event) {
|
|
43
|
-
this._handleDateChange();
|
|
43
|
+
this._handleDateChange(event);
|
|
44
44
|
}
|
|
45
45
|
onSelect(event) {
|
|
46
|
-
this._handleDateChange();
|
|
46
|
+
this._handleDateChange(event);
|
|
47
47
|
}
|
|
48
48
|
//#endregion
|
|
49
49
|
//#region private methods
|
|
50
|
-
_updateInputFieldFromStringDate() {
|
|
50
|
+
_updateInputFieldFromStringDate(event) {
|
|
51
|
+
this.timeOnlyString = event;
|
|
51
52
|
let timeOnly = this.timeOnlyString && this.timeOnlyString != ''
|
|
52
53
|
? this._dateHelperService.parseTimeString(this.timeOnlyString) : undefined;
|
|
54
|
+
this.isDirty = this._value != timeOnly;
|
|
53
55
|
this._value = timeOnly;
|
|
54
56
|
}
|
|
55
|
-
_handleDateChange() {
|
|
56
|
-
this._updateInputFieldFromStringDate();
|
|
57
|
+
_handleDateChange(event) {
|
|
58
|
+
this._updateInputFieldFromStringDate(event);
|
|
57
59
|
this.inputFieldChange.emit(this.inputField);
|
|
58
60
|
}
|
|
59
61
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiTimePickerComponent, deps: [{ token: i1.DateHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiTimePickerComponent, selector: "tsi-time-picker", outputs: { inputFieldChange: "inputFieldChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex\">\r\n <p-calendar [dataType]=\"'string'\"\r\n [appendTo]=\"'body'\"\r\n [disabled]=\"disabled\"\r\n [showIcon]=\"true\"\r\n [dateFormat]=\"datePickerFormat\"\r\n class=\"{{myStyleClass}} {{validationStatusCssClass}}\"\r\n styleClass=\"{{myStyleClass}}\"\r\n inputStyleClass=\"{{myStyleClass}}\"\r\n [showTime]=\"true\"\r\n [showSeconds]=\"true\"\r\n [timeOnly]=\"true\"\r\n [
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiTimePickerComponent, selector: "tsi-time-picker", outputs: { inputFieldChange: "inputFieldChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex\">\r\n <p-calendar [dataType]=\"'string'\"\r\n [appendTo]=\"'body'\"\r\n [disabled]=\"disabled\"\r\n [showIcon]=\"true\"\r\n [dateFormat]=\"datePickerFormat\"\r\n class=\"{{myStyleClass}} {{validationStatusCssClass}}\"\r\n styleClass=\"{{myStyleClass}}\"\r\n inputStyleClass=\"{{myStyleClass}}\"\r\n [showTime]=\"true\"\r\n [showSeconds]=\"true\"\r\n [timeOnly]=\"true\"\r\n [ngModel]=\"timeOnlyString\"\r\n (onBlur)=\"onFocusOut($event)\"\r\n (onSelect)=\"onSelect($event)\">\r\n </p-calendar>\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "component", type: i4.TsiBubbleInfoComponent, selector: "Tsi-Bubble-Info", inputs: ["infoText"] }] }); }
|
|
61
63
|
}
|
|
62
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiTimePickerComponent, decorators: [{
|
|
63
65
|
type: Component,
|
|
64
|
-
args: [{ selector: 'tsi-time-picker', template: "<div class=\"flex\">\r\n <p-calendar [dataType]=\"'string'\"\r\n [appendTo]=\"'body'\"\r\n [disabled]=\"disabled\"\r\n [showIcon]=\"true\"\r\n [dateFormat]=\"datePickerFormat\"\r\n class=\"{{myStyleClass}} {{validationStatusCssClass}}\"\r\n styleClass=\"{{myStyleClass}}\"\r\n inputStyleClass=\"{{myStyleClass}}\"\r\n [showTime]=\"true\"\r\n [showSeconds]=\"true\"\r\n [timeOnly]=\"true\"\r\n [
|
|
66
|
+
args: [{ selector: 'tsi-time-picker', template: "<div class=\"flex\">\r\n <p-calendar [dataType]=\"'string'\"\r\n [appendTo]=\"'body'\"\r\n [disabled]=\"disabled\"\r\n [showIcon]=\"true\"\r\n [dateFormat]=\"datePickerFormat\"\r\n class=\"{{myStyleClass}} {{validationStatusCssClass}}\"\r\n styleClass=\"{{myStyleClass}}\"\r\n inputStyleClass=\"{{myStyleClass}}\"\r\n [showTime]=\"true\"\r\n [showSeconds]=\"true\"\r\n [timeOnly]=\"true\"\r\n [ngModel]=\"timeOnlyString\"\r\n (onBlur)=\"onFocusOut($event)\"\r\n (onSelect)=\"onSelect($event)\">\r\n </p-calendar>\r\n <Tsi-Bubble-Info [infoText]=\"infoText\"></Tsi-Bubble-Info>\r\n</div>" }]
|
|
65
67
|
}], ctorParameters: () => [{ type: i1.DateHelperService }], propDecorators: { inputFieldChange: [{
|
|
66
68
|
type: Output
|
|
67
69
|
}] } });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy9pbnB1dC1jb21wb25lbnRzL3RzaS10aW1lLXBpY2tlci90c2ktdGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL2lucHV0LWNvbXBvbmVudHMvdHNpLXRpbWUtcGlja2VyL3RzaS10aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBaUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUV6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBUWxFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxZQUFrRDtJQU01RixZQUFZO0lBRVosZ0JBQWdCO0lBR2hCLDZFQUE2RTtJQUM3RSw2QkFBNkI7SUFDN0IsSUFBSTtJQUVKLElBQWEsVUFBVSxDQUFDLEtBQTJDO1FBQ2pFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMxRSxDQUFDO2FBQ0ksQ0FBQztZQUNKLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBYSxVQUFVO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBS0QsWUFBWTtJQUVaLGNBQWM7SUFDZDs7T0FFRztJQUNILFlBQW9CLGtCQUFxQztRQUN2RCxLQUFLLEVBQUUsQ0FBQztRQURVLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFqQ3pELHFCQUFnQixHQUFXLG9CQUFvQixDQUFDO1FBdUJoRCxZQUFZO1FBRVosaUJBQWlCO1FBQ1AscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQXdDLENBQUM7SUFVdEYsQ0FBQztJQUVELFlBQVk7SUFFWix1QkFBdUI7SUFDdkIsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQVk7SUFFWix5QkFBeUI7SUFDekIsK0JBQStCLENBQUMsS0FBVTtRQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQTtRQUMzQixJQUFJLFFBQVEsR0FBeUIsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLEVBQUU7WUFDbkYsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDN0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQTtRQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBVTtRQUNsQyxJQUFJLENBQUMsK0JBQStCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUMsQ0FBQzsrR0FwRVUsc0JBQXNCO21HQUF0QixzQkFBc0IsaUlDWm5DLDRuQkFpQk07OzRGRExPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxpQkFBaUI7c0ZBbUNqQixnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHNpSW5wdXRCYXNlIH0gZnJvbSAnLi4vLi4vLi4vdHNpLWJhc2UvdHNpLWlucHV0LWJhc2UvdHNpLWlucHV0LWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGltZU9ubHkgfSBmcm9tICcuLi8uLi8uLi90eXBlcy90aW1lLW9ubHknO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyRGF0ZUZvcm1hdCB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cy90c2ktY29uc3RzJztcclxuaW1wb3J0IHsgRGF0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9kYXRlLWhlbHBlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHNpLXRpbWUtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHNpLXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90c2ktdGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHNpVGltZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIFRzaUlucHV0QmFzZTxUaW1lT25seSB8IERhdGUgfCBzdHJpbmcgfCB1bmRlZmluZWQ+IHtcclxuICAvLyNyZWdpb24gbG9jYWwgcHJvcGVydGllc1xyXG4gIHByaXZhdGUgX3ZhbHVlOiBUaW1lT25seSB8IERhdGUgfCBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIHRpbWVPbmx5U3RyaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgZGF0ZVBpY2tlckZvcm1hdDogc3RyaW5nID0gRGF0ZVBpY2tlckRhdGVGb3JtYXQ7XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBpbnB1dHNcclxuXHJcblxyXG4gIC8vIEBJbnB1dCgpIG92ZXJyaWRlIGdldCBpbnB1dEZpZWxkKCk6IFRpbWVPbmx5IHwgRGF0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5faW5wdXRGaWVsZDtcclxuICAvLyB9XHJcblxyXG4gIG92ZXJyaWRlIHNldCBpbnB1dEZpZWxkKHZhbHVlOiBUaW1lT25seSB8IERhdGUgfCBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiAoRGF0ZSkpIHtcclxuICAgICAgdGhpcy50aW1lT25seVN0cmluZyA9IHRoaXMuX2RhdGVIZWxwZXJTZXJ2aWNlLmV4dHJhY3RUaW1lRnJvbURhdGUodmFsdWUpXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy50aW1lT25seVN0cmluZyA9IHZhbHVlPy50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgZ2V0IGlucHV0RmllbGQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gb3V0cHV0c1xyXG4gIEBPdXRwdXQoKSBpbnB1dEZpZWxkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaW1lT25seSB8IERhdGUgfCB1bmRlZmluZWQgfCBzdHJpbmc+KCk7XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBjdG9yXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kYXRlSGVscGVyU2VydmljZTogRGF0ZUhlbHBlclNlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBoYW5kbGUgZXZlbnRzXHJcbiAgb25Gb2N1c091dChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLl9oYW5kbGVEYXRlQ2hhbmdlKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuX2hhbmRsZURhdGVDaGFuZ2UoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIC8vI3JlZ2lvbiBwcml2YXRlIG1ldGhvZHNcclxuICBfdXBkYXRlSW5wdXRGaWVsZEZyb21TdHJpbmdEYXRlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudGltZU9ubHlTdHJpbmcgPSBldmVudFxyXG4gICAgbGV0IHRpbWVPbmx5OiBUaW1lT25seSB8IHVuZGVmaW5lZCA9IHRoaXMudGltZU9ubHlTdHJpbmcgJiYgdGhpcy50aW1lT25seVN0cmluZyAhPSAnJ1xyXG4gICAgICA/IHRoaXMuX2RhdGVIZWxwZXJTZXJ2aWNlLnBhcnNlVGltZVN0cmluZyh0aGlzLnRpbWVPbmx5U3RyaW5nKSA6IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuaXNEaXJ0eSA9IHRoaXMuX3ZhbHVlICE9IHRpbWVPbmx5XHJcbiAgICB0aGlzLl92YWx1ZSA9IHRpbWVPbmx5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGxlRGF0ZUNoYW5nZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl91cGRhdGVJbnB1dEZpZWxkRnJvbVN0cmluZ0RhdGUoZXZlbnQpO1xyXG4gICAgdGhpcy5pbnB1dEZpZWxkQ2hhbmdlLmVtaXQodGhpcy5pbnB1dEZpZWxkKTtcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXhcIj5cclxuICAgIDxwLWNhbGVuZGFyIFtkYXRhVHlwZV09XCInc3RyaW5nJ1wiXHJcbiAgICBbYXBwZW5kVG9dPVwiJ2JvZHknXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXHJcbiAgICBbZGF0ZUZvcm1hdF09XCJkYXRlUGlja2VyRm9ybWF0XCJcclxuICAgIGNsYXNzPVwie3tteVN0eWxlQ2xhc3N9fSB7e3ZhbGlkYXRpb25TdGF0dXNDc3NDbGFzc319XCJcclxuICAgIHN0eWxlQ2xhc3M9XCJ7e215U3R5bGVDbGFzc319XCJcclxuICAgIGlucHV0U3R5bGVDbGFzcz1cInt7bXlTdHlsZUNsYXNzfX1cIlxyXG4gICAgW3Nob3dUaW1lXT1cInRydWVcIlxyXG4gICAgW3Nob3dTZWNvbmRzXT1cInRydWVcIlxyXG4gICAgW3RpbWVPbmx5XT1cInRydWVcIlxyXG4gICAgW25nTW9kZWxdPVwidGltZU9ubHlTdHJpbmdcIlxyXG4gICAgKG9uQmx1cik9XCJvbkZvY3VzT3V0KCRldmVudClcIlxyXG4gICAgKG9uU2VsZWN0KT1cIm9uU2VsZWN0KCRldmVudClcIj5cclxuICAgIDwvcC1jYWxlbmRhcj5cclxuICAgIDxUc2ktQnViYmxlLUluZm8gW2luZm9UZXh0XT1cImluZm9UZXh0XCI+PC9Uc2ktQnViYmxlLUluZm8+XHJcbjwvZGl2PiJdfQ==
|
package/esm2022/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.mjs
CHANGED
|
@@ -196,10 +196,10 @@ export class AddReportPopupComponent extends TsiFormComponentBaseComponent {
|
|
|
196
196
|
});
|
|
197
197
|
}
|
|
198
198
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddReportPopupComponent, deps: [{ token: i1.DynamicDialogRef }, { token: i2.ReportingService }, { token: i1.DynamicDialogConfig }, { token: i3.TsiNotificationService }, { token: i4.DashboardModuleService }, { token: i5.TsiConfirmationService }, { token: i6.HttpClient }, { token: i7.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
199
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AddReportPopupComponent, selector: "app-add-report-popup", providers: [...appProviders], usesInheritance: true, ngImport: i0, template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\">\r\n <h4>\r\n <Tsi-Label [labelValue]=\"'Nouveau Rapport'\"></Tsi-Label>\r\n </h4>\r\n <p-panel header=\"Informations\">\r\n <div class=\"grid \">\r\n <!-- Type -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_type\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo [disabled]=\"this.mode !== modes.create\" id-field=\"key\" label-field=\"value\"\r\n [(bind)]=\"report.reportType\" [datasource]=\"dataSource\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n <!-- Nom du rapport -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_reportName\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'reportName'\" [(inputField)]=\"report.reportName\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Nom abr\u00E9g\u00E9 -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_reportNameAbrege\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-3\">\r\n <Tsi-Text-Box [inputName]=\"'reportNameAbrege'\" [(inputField)]=\"report.reportNameAbrege\"></Tsi-Text-Box>\r\n </div>\r\n <div class=\"flex col-6\">\r\n <!-- Ordre de tri -->\r\n <div class=\"flex gap-4 w-6\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_triOrdre\"></Tsi-Label>\r\n <Tsi-Integer [inputName]=\"'triOrdre'\" [(inputField)]=\"report.triOrdre\"></Tsi-Integer>\r\n </div>\r\n <!-- Afficher dashboard -->\r\n <div class=\"flex gap-4 w-6\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_display\"></Tsi-Label>\r\n <Tsi-CheckBox [inputName]=\"'display'\" [(inputField)]=\"report.display\"></Tsi-CheckBox>\r\n </div>\r\n </div>\r\n <!-- Module -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_Module\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo id-field=\"code\" label-field=\"libelle\" [multiple]=\"false\" [(bind)]=\"report.module\"\r\n [datasource]=\"modules\" [isFiltered]=\"false\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n <!-- Deuxi\u00E9me Impress -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_imppress\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-5\">\r\n <Tsi-Text-Box [disabled]=\"true\" [inputName]=\"'imppress'\" [(inputField)]=\"report.impress\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Edition unique -->\r\n <div class=\"col-4 col-form-label flx\">\r\n <Tsi-CheckBox [inputName]=\"'EditionUnique'\" [(inputField)]=\"report.editionUnique\"></Tsi-CheckBox> \r\n <Tsi-Label labelValue=\"administration_edition_personnalise_EditionUnique\"></Tsi-Label>\r\n </div>\r\n <!-- Endpoint -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_endpoint\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo *ngIf=\"!isReportForFiche && !enableMultiSelectEndpoints\" id-field=\"key\" label-field=\"value\"\r\n [disabled]=\"modes.edit === mode || isEditionPersonnalise === false\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\" [(bind)]=\"report.endPointKey\"\r\n [elementSourceUrl]=\"administrationEndpoints.getApiAsKeyValuePair()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePair()\" [isFiltered]=\"true\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Search-Combo *ngIf=\"customReportingMode && !enableMultiSelectEndpoints \" id-field=\"value\" label-field=\"value\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\" [(bind)]=\"report.endPointKey\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePairByBusinessClassName(this.reportBusinessClass)\"\r\n [isFiltered]=\"false\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Search-Combo *ngIf=\"isReportForFiche\"\r\n id-field=\"value\"\r\n label-field=\"value\"\r\n [(bind)]=\"selectedEndpoints\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePairByBusinessClassName(this.reportBusinessClass)\"\r\n [isFiltered]=\"false\"\r\n [multiple]=\"true\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\">\r\n </Tsi-Search-Combo>\r\n\r\n <p-multiSelect *ngIf=\"!isReportForFiche && enableMultiSelectEndpoints\" [options]=\"endpointsOptions\" [(ngModel)]=\"selectedEndpoints\"\r\n selectedItemsLabel=\"{0} {{ 'endpoint_selected' | localize }}\" optionLabel=\"value\"\r\n optionValue=\"value\"\r\n [style]=\"{'min-width': '180px'}\" placeholder=\"{{ 'shared_reporting_choose_endpoints' | localize }}\"\r\n (onPanelShow)=\"handleOpen()\"\r\n [filter]=\"true\"\r\n (onFilter)=\"onFilter($event)\"\r\n display=\"chip\"\r\n class=\"rounded-multiselect\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <span>{{ option.value}}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </div>\r\n\r\n\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_formName\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-6\">\r\n <Tsi-Text-Box [disabled]=\"true\" [inputName]=\"'formName'\"\r\n [(inputField)]=\"report.formName\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Param -->\r\n <div *ngIf=\"isGetByIdRequest\" class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_param\"></Tsi-Label>\r\n </div>\r\n <div *ngIf=\"isGetByIdRequest\" class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'param'\" [(inputField)]=\"report.param\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </p-panel>\r\n <br />\r\n <p-panel header=\"Configuration Pivot Grid\">\r\n <div class=\"grid \">\r\n <!-- Class or view -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label [labelValue]=\"'Class or view'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'dddd'\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Query -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label [labelValue]=\"'Query'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9 col-form-label\">\r\n <Tsi-Text-Area [rows]=\"2\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </p-panel>\r\n\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"saving\" (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>", styles: [".flx{display:flex;justify-content:center;align-items:center}::ng-deep .rounded-multiselect .p-multiselect{border-radius:12px!important}::ng-deep .rounded-multiselect .p-multiselect-label{border-radius:12px!important}\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i11.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "component", type: i12.Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "component", type: i13.TsiSearchComboComponent, selector: "Tsi-Search-Combo", inputs: ["elementSourceUrl", "listSourceUrl", "listSourceParams", "id-field", "label-field", "multiple", "sort", "showClear", "reloadDataSource", "isFiltered", "selectedLabel", "maxWidth", "businessClass", "comboType", "statusMetadata", "currentRowItem", "datasource", "bind", "maxSelectedLabels", "tooltipMaxDisplayedItems", "bindMode", "showSearchButton", "showAddButton", "showConsultButton", "showUpdateButton"], outputs: ["bindChange", "datasource-loaded", "init", "isLoaded", "selectedLabelChange", "onClick", "onSearchButtonClick", "selectionChange"] }, { kind: "component", type: i14.TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: i15.TsiIntegerComponent, selector: "Tsi-Integer", inputs: ["class", "minValue", "maxValue", "delayChangeTime"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i16.TsiTextAreaComponent, selector: "Tsi-Text-Area", inputs: ["rows", "cols"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i17.TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: ["textBoxType", "autocomplete"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i18.TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: i19.TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate", "additionalButtonLabel", "additionalButtonIcon", "additionalButtonDisabled", "showAdditionalButton"], outputs: ["onCancelClick", "onSaveClick", "onAdditionalButtonClick"] }, { kind: "component", type: i20.TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly"], outputs: ["onSave", "onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }, { kind: "pipe", type: i21.LocalizePipe, name: "localize" }] }); }
|
|
199
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AddReportPopupComponent, selector: "app-add-report-popup", providers: [...appProviders], usesInheritance: true, ngImport: i0, template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\">\r\n <h4>\r\n <Tsi-Label [labelValue]=\"'Nouveau Rapport'\"></Tsi-Label>\r\n </h4>\r\n <p-panel header=\"Informations\">\r\n <div class=\"grid \">\r\n <!-- Type -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_type\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo [disabled]=\"this.mode !== modes.create\" id-field=\"key\" label-field=\"value\"\r\n [(bind)]=\"report.reportType\" [datasource]=\"dataSource\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n <!-- Nom du rapport -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_reportName\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'reportName'\" [(inputField)]=\"report.reportName\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Nom abr\u00E9g\u00E9 -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_reportNameAbrege\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-3\">\r\n <Tsi-Text-Box [inputName]=\"'reportNameAbrege'\" [(inputField)]=\"report.reportNameAbrege\"></Tsi-Text-Box>\r\n </div>\r\n <div class=\"flex col-6\">\r\n <!-- Ordre de tri -->\r\n <div class=\"flex gap-4 w-6\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_triOrdre\"></Tsi-Label>\r\n <Tsi-Integer [inputName]=\"'triOrdre'\" [(inputField)]=\"report.triOrdre\"></Tsi-Integer>\r\n </div>\r\n <!-- Afficher dashboard -->\r\n <div class=\"flex gap-4 w-6\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_display\"></Tsi-Label>\r\n <Tsi-CheckBox [inputName]=\"'display'\" [(inputField)]=\"report.display\"></Tsi-CheckBox>\r\n </div>\r\n </div>\r\n <!-- Module -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_Module\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo id-field=\"code\" label-field=\"libelle\" [multiple]=\"false\" [(bind)]=\"report.module\"\r\n [datasource]=\"modules\" [isFiltered]=\"false\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n <!-- Deuxi\u00E9me Impress -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_imppress\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-5\">\r\n <Tsi-Text-Box [disabled]=\"true\" [inputName]=\"'imppress'\" [(inputField)]=\"report.impress\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Edition unique -->\r\n <div class=\"col-4 col-form-label flx\">\r\n <Tsi-CheckBox [inputName]=\"'EditionUnique'\" [(inputField)]=\"report.editionUnique\"></Tsi-CheckBox> \r\n <Tsi-Label labelValue=\"administration_edition_personnalise_EditionUnique\"></Tsi-Label>\r\n </div>\r\n <!-- Endpoint -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_endpoint\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo *ngIf=\"!isReportForFiche && !enableMultiSelectEndpoints\" id-field=\"key\" label-field=\"value\"\r\n [disabled]=\"modes.edit === mode || isEditionPersonnalise === false\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\" [(bind)]=\"report.endPointKey\"\r\n [elementSourceUrl]=\"administrationEndpoints.getApiAsKeyValuePair()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePair()\" [isFiltered]=\"true\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Search-Combo *ngIf=\"customReportingMode && !enableMultiSelectEndpoints \" id-field=\"value\" label-field=\"value\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\" [(bind)]=\"report.endPointKey\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePairByBusinessClassName(this.reportBusinessClass)\"\r\n [isFiltered]=\"false\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Search-Combo *ngIf=\"isReportForFiche\"\r\n id-field=\"value\"\r\n label-field=\"value\"\r\n [(bind)]=\"selectedEndpoints\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePairByBusinessClassName(this.reportBusinessClass)\"\r\n [isFiltered]=\"false\"\r\n [multiple]=\"true\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\">\r\n </Tsi-Search-Combo>\r\n\r\n <p-multiSelect *ngIf=\"!isReportForFiche && enableMultiSelectEndpoints\" [options]=\"endpointsOptions\" [(ngModel)]=\"selectedEndpoints\"\r\n selectedItemsLabel=\"{0} {{ 'endpoint_selected' | localize }}\" optionLabel=\"value\"\r\n optionValue=\"value\"\r\n [style]=\"{'min-width': '180px'}\" placeholder=\"{{ 'shared_reporting_choose_endpoints' | localize }}\"\r\n (onPanelShow)=\"handleOpen()\"\r\n [filter]=\"true\"\r\n (onFilter)=\"onFilter($event)\"\r\n display=\"chip\"\r\n class=\"rounded-multiselect\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <span>{{ option.value}}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </div>\r\n\r\n\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_formName\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-6\">\r\n <Tsi-Text-Box [disabled]=\"true\" [inputName]=\"'formName'\"\r\n [(inputField)]=\"report.formName\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Param -->\r\n <div *ngIf=\"isGetByIdRequest\" class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_param\"></Tsi-Label>\r\n </div>\r\n <div *ngIf=\"isGetByIdRequest\" class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'param'\" [(inputField)]=\"report.param\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </p-panel>\r\n <br />\r\n <p-panel header=\"Configuration Pivot Grid\">\r\n <div class=\"grid \">\r\n <!-- Class or view -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label [labelValue]=\"'Class or view'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'dddd'\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Query -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label [labelValue]=\"'Query'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9 col-form-label\">\r\n <Tsi-Text-Area [rows]=\"2\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </p-panel>\r\n\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"saving\" (onCancelClick)=\"hide()\" \r\n [showSaveAndCloseButton]=\"false\"></Tsi-Modal-Footer>\r\n</tsi-form>", styles: [".flx{display:flex;justify-content:center;align-items:center}::ng-deep .rounded-multiselect .p-multiselect{border-radius:12px!important}::ng-deep .rounded-multiselect .p-multiselect-label{border-radius:12px!important}\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i11.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "component", type: i12.Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "component", type: i13.TsiSearchComboComponent, selector: "Tsi-Search-Combo", inputs: ["elementSourceUrl", "listSourceUrl", "listSourceParams", "id-field", "label-field", "multiple", "sort", "showClear", "reloadDataSource", "isFiltered", "selectedLabel", "maxWidth", "businessClass", "comboType", "statusMetadata", "currentRowItem", "datasource", "bind", "maxSelectedLabels", "tooltipMaxDisplayedItems", "bindMode", "showSearchButton", "showAddButton", "showConsultButton", "showUpdateButton"], outputs: ["bindChange", "datasource-loaded", "init", "isLoaded", "selectedLabelChange", "onClick", "onSearchButtonClick", "selectionChange"] }, { kind: "component", type: i14.TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: i15.TsiIntegerComponent, selector: "Tsi-Integer", inputs: ["class", "minValue", "maxValue", "delayChangeTime"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i16.TsiTextAreaComponent, selector: "Tsi-Text-Area", inputs: ["rows", "cols"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i17.TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: ["textBoxType", "autocomplete"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i18.TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: i19.TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate", "additionalButtonLabel", "additionalButtonIcon", "additionalButtonDisabled", "showAdditionalButton", "showSaveAndCloseButton"], outputs: ["onCancelClick", "onSaveClick", "onAdditionalButtonClick"] }, { kind: "component", type: i20.TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly"], outputs: ["onSave", "onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }, { kind: "pipe", type: i21.LocalizePipe, name: "localize" }] }); }
|
|
200
200
|
}
|
|
201
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddReportPopupComponent, decorators: [{
|
|
202
202
|
type: Component,
|
|
203
|
-
args: [{ selector: 'app-add-report-popup', providers: [...appProviders], template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\">\r\n <h4>\r\n <Tsi-Label [labelValue]=\"'Nouveau Rapport'\"></Tsi-Label>\r\n </h4>\r\n <p-panel header=\"Informations\">\r\n <div class=\"grid \">\r\n <!-- Type -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_type\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo [disabled]=\"this.mode !== modes.create\" id-field=\"key\" label-field=\"value\"\r\n [(bind)]=\"report.reportType\" [datasource]=\"dataSource\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n <!-- Nom du rapport -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_reportName\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'reportName'\" [(inputField)]=\"report.reportName\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Nom abr\u00E9g\u00E9 -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_reportNameAbrege\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-3\">\r\n <Tsi-Text-Box [inputName]=\"'reportNameAbrege'\" [(inputField)]=\"report.reportNameAbrege\"></Tsi-Text-Box>\r\n </div>\r\n <div class=\"flex col-6\">\r\n <!-- Ordre de tri -->\r\n <div class=\"flex gap-4 w-6\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_triOrdre\"></Tsi-Label>\r\n <Tsi-Integer [inputName]=\"'triOrdre'\" [(inputField)]=\"report.triOrdre\"></Tsi-Integer>\r\n </div>\r\n <!-- Afficher dashboard -->\r\n <div class=\"flex gap-4 w-6\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_display\"></Tsi-Label>\r\n <Tsi-CheckBox [inputName]=\"'display'\" [(inputField)]=\"report.display\"></Tsi-CheckBox>\r\n </div>\r\n </div>\r\n <!-- Module -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_Module\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo id-field=\"code\" label-field=\"libelle\" [multiple]=\"false\" [(bind)]=\"report.module\"\r\n [datasource]=\"modules\" [isFiltered]=\"false\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n <!-- Deuxi\u00E9me Impress -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_imppress\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-5\">\r\n <Tsi-Text-Box [disabled]=\"true\" [inputName]=\"'imppress'\" [(inputField)]=\"report.impress\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Edition unique -->\r\n <div class=\"col-4 col-form-label flx\">\r\n <Tsi-CheckBox [inputName]=\"'EditionUnique'\" [(inputField)]=\"report.editionUnique\"></Tsi-CheckBox> \r\n <Tsi-Label labelValue=\"administration_edition_personnalise_EditionUnique\"></Tsi-Label>\r\n </div>\r\n <!-- Endpoint -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_endpoint\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo *ngIf=\"!isReportForFiche && !enableMultiSelectEndpoints\" id-field=\"key\" label-field=\"value\"\r\n [disabled]=\"modes.edit === mode || isEditionPersonnalise === false\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\" [(bind)]=\"report.endPointKey\"\r\n [elementSourceUrl]=\"administrationEndpoints.getApiAsKeyValuePair()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePair()\" [isFiltered]=\"true\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Search-Combo *ngIf=\"customReportingMode && !enableMultiSelectEndpoints \" id-field=\"value\" label-field=\"value\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\" [(bind)]=\"report.endPointKey\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePairByBusinessClassName(this.reportBusinessClass)\"\r\n [isFiltered]=\"false\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Search-Combo *ngIf=\"isReportForFiche\"\r\n id-field=\"value\"\r\n label-field=\"value\"\r\n [(bind)]=\"selectedEndpoints\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePairByBusinessClassName(this.reportBusinessClass)\"\r\n [isFiltered]=\"false\"\r\n [multiple]=\"true\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\">\r\n </Tsi-Search-Combo>\r\n\r\n <p-multiSelect *ngIf=\"!isReportForFiche && enableMultiSelectEndpoints\" [options]=\"endpointsOptions\" [(ngModel)]=\"selectedEndpoints\"\r\n selectedItemsLabel=\"{0} {{ 'endpoint_selected' | localize }}\" optionLabel=\"value\"\r\n optionValue=\"value\"\r\n [style]=\"{'min-width': '180px'}\" placeholder=\"{{ 'shared_reporting_choose_endpoints' | localize }}\"\r\n (onPanelShow)=\"handleOpen()\"\r\n [filter]=\"true\"\r\n (onFilter)=\"onFilter($event)\"\r\n display=\"chip\"\r\n class=\"rounded-multiselect\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <span>{{ option.value}}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </div>\r\n\r\n\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_formName\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-6\">\r\n <Tsi-Text-Box [disabled]=\"true\" [inputName]=\"'formName'\"\r\n [(inputField)]=\"report.formName\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Param -->\r\n <div *ngIf=\"isGetByIdRequest\" class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_param\"></Tsi-Label>\r\n </div>\r\n <div *ngIf=\"isGetByIdRequest\" class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'param'\" [(inputField)]=\"report.param\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </p-panel>\r\n <br />\r\n <p-panel header=\"Configuration Pivot Grid\">\r\n <div class=\"grid \">\r\n <!-- Class or view -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label [labelValue]=\"'Class or view'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'dddd'\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Query -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label [labelValue]=\"'Query'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9 col-form-label\">\r\n <Tsi-Text-Area [rows]=\"2\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </p-panel>\r\n\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"saving\" (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>", styles: [".flx{display:flex;justify-content:center;align-items:center}::ng-deep .rounded-multiselect .p-multiselect{border-radius:12px!important}::ng-deep .rounded-multiselect .p-multiselect-label{border-radius:12px!important}\n"] }]
|
|
203
|
+
args: [{ selector: 'app-add-report-popup', providers: [...appProviders], template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\">\r\n <h4>\r\n <Tsi-Label [labelValue]=\"'Nouveau Rapport'\"></Tsi-Label>\r\n </h4>\r\n <p-panel header=\"Informations\">\r\n <div class=\"grid \">\r\n <!-- Type -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_type\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo [disabled]=\"this.mode !== modes.create\" id-field=\"key\" label-field=\"value\"\r\n [(bind)]=\"report.reportType\" [datasource]=\"dataSource\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n <!-- Nom du rapport -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_reportName\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'reportName'\" [(inputField)]=\"report.reportName\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Nom abr\u00E9g\u00E9 -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_reportNameAbrege\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-3\">\r\n <Tsi-Text-Box [inputName]=\"'reportNameAbrege'\" [(inputField)]=\"report.reportNameAbrege\"></Tsi-Text-Box>\r\n </div>\r\n <div class=\"flex col-6\">\r\n <!-- Ordre de tri -->\r\n <div class=\"flex gap-4 w-6\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_triOrdre\"></Tsi-Label>\r\n <Tsi-Integer [inputName]=\"'triOrdre'\" [(inputField)]=\"report.triOrdre\"></Tsi-Integer>\r\n </div>\r\n <!-- Afficher dashboard -->\r\n <div class=\"flex gap-4 w-6\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_display\"></Tsi-Label>\r\n <Tsi-CheckBox [inputName]=\"'display'\" [(inputField)]=\"report.display\"></Tsi-CheckBox>\r\n </div>\r\n </div>\r\n <!-- Module -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_Module\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo id-field=\"code\" label-field=\"libelle\" [multiple]=\"false\" [(bind)]=\"report.module\"\r\n [datasource]=\"modules\" [isFiltered]=\"false\">\r\n </Tsi-Search-Combo>\r\n </div>\r\n <!-- Deuxi\u00E9me Impress -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_imppress\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-5\">\r\n <Tsi-Text-Box [disabled]=\"true\" [inputName]=\"'imppress'\" [(inputField)]=\"report.impress\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Edition unique -->\r\n <div class=\"col-4 col-form-label flx\">\r\n <Tsi-CheckBox [inputName]=\"'EditionUnique'\" [(inputField)]=\"report.editionUnique\"></Tsi-CheckBox> \r\n <Tsi-Label labelValue=\"administration_edition_personnalise_EditionUnique\"></Tsi-Label>\r\n </div>\r\n <!-- Endpoint -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_endpoint\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Search-Combo *ngIf=\"!isReportForFiche && !enableMultiSelectEndpoints\" id-field=\"key\" label-field=\"value\"\r\n [disabled]=\"modes.edit === mode || isEditionPersonnalise === false\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\" [(bind)]=\"report.endPointKey\"\r\n [elementSourceUrl]=\"administrationEndpoints.getApiAsKeyValuePair()\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePair()\" [isFiltered]=\"true\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Search-Combo *ngIf=\"customReportingMode && !enableMultiSelectEndpoints \" id-field=\"value\" label-field=\"value\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\" [(bind)]=\"report.endPointKey\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePairByBusinessClassName(this.reportBusinessClass)\"\r\n [isFiltered]=\"false\">\r\n </Tsi-Search-Combo>\r\n\r\n <Tsi-Search-Combo *ngIf=\"isReportForFiche\"\r\n id-field=\"value\"\r\n label-field=\"value\"\r\n [(bind)]=\"selectedEndpoints\"\r\n [listSourceUrl]=\"administrationEndpoints.getAllApiAsKeyValuePairByBusinessClassName(this.reportBusinessClass)\"\r\n [isFiltered]=\"false\"\r\n [multiple]=\"true\"\r\n (selectedLabelChange)=\"selectedEndpointChange($event)\">\r\n </Tsi-Search-Combo>\r\n\r\n <p-multiSelect *ngIf=\"!isReportForFiche && enableMultiSelectEndpoints\" [options]=\"endpointsOptions\" [(ngModel)]=\"selectedEndpoints\"\r\n selectedItemsLabel=\"{0} {{ 'endpoint_selected' | localize }}\" optionLabel=\"value\"\r\n optionValue=\"value\"\r\n [style]=\"{'min-width': '180px'}\" placeholder=\"{{ 'shared_reporting_choose_endpoints' | localize }}\"\r\n (onPanelShow)=\"handleOpen()\"\r\n [filter]=\"true\"\r\n (onFilter)=\"onFilter($event)\"\r\n display=\"chip\"\r\n class=\"rounded-multiselect\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2\">\r\n <span>{{ option.value}}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </div>\r\n\r\n\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_formName\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-6\">\r\n <Tsi-Text-Box [disabled]=\"true\" [inputName]=\"'formName'\"\r\n [(inputField)]=\"report.formName\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Param -->\r\n <div *ngIf=\"isGetByIdRequest\" class=\"col-3 col-form-label\">\r\n <Tsi-Label labelValue=\"administration_edition_personnalise_param\"></Tsi-Label>\r\n </div>\r\n <div *ngIf=\"isGetByIdRequest\" class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'param'\" [(inputField)]=\"report.param\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </p-panel>\r\n <br />\r\n <p-panel header=\"Configuration Pivot Grid\">\r\n <div class=\"grid \">\r\n <!-- Class or view -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label [labelValue]=\"'Class or view'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9\">\r\n <Tsi-Text-Box [inputName]=\"'dddd'\"></Tsi-Text-Box>\r\n </div>\r\n <!-- Query -->\r\n <div class=\"col-3 col-form-label\">\r\n <Tsi-Label [labelValue]=\"'Query'\"></Tsi-Label>\r\n </div>\r\n <div class=\"col-9 col-form-label\">\r\n <Tsi-Text-Area [rows]=\"2\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </p-panel>\r\n\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"saving\" (onCancelClick)=\"hide()\" \r\n [showSaveAndCloseButton]=\"false\"></Tsi-Modal-Footer>\r\n</tsi-form>", styles: [".flx{display:flex;justify-content:center;align-items:center}::ng-deep .rounded-multiselect .p-multiselect{border-radius:12px!important}::ng-deep .rounded-multiselect .p-multiselect-label{border-radius:12px!important}\n"] }]
|
|
204
204
|
}], ctorParameters: () => [{ type: i1.DynamicDialogRef }, { type: i2.ReportingService }, { type: i1.DynamicDialogConfig }, { type: i3.TsiNotificationService }, { type: i4.DashboardModuleService }, { type: i5.TsiConfirmationService }, { type: i6.HttpClient }, { type: i7.Router }] });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlcG9ydC1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvbWFuYWdlLXJlcG9ydGluZy9hZGQtcmVwb3J0LXBvcHVwL2FkZC1yZXBvcnQtcG9wdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL21hbmFnZS1yZXBvcnRpbmcvYWRkLXJlcG9ydC1wb3B1cC9hZGQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUVuSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUzlELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSw2QkFBNkI7SUFxQnhFLElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksSUFBSSxTQUFTLENBQUE7SUFDaEgsQ0FBQztJ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O0lBRUQsc0JBQXNCLENBQUMsYUFBa0I7UUFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxzQkFBc0I7YUFDeEIsYUFBYSxFQUFFO2FBQ2YsU0FBUyxDQUNSO1lBQ0UsSUFBSSxFQUFFLENBQUMsTUFBYSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FDRixDQUFBO0lBQ0wsQ0FBQzsrR0FwTlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsK0NBRnZCLENBQUMsR0FBRyxZQUFZLENBQUMsaURDbEI5QixzaFFBaUpXOzs0RkQ3SEUsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHNCQUFzQixhQUdyQixDQUFDLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IEFkbWluaXN0cmF0aW9uRW5kcG9pbnRzIH0gZnJvbSAnLi4vLi4vLi4vZW5kLXBvaW50cyc7XHJcbmltcG9ydCB7IFRzaVJlcG9ydFR5cGUsIE1vZGVzIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xyXG5pbXBvcnQgeyBUc2lGb3JtQ29tcG9uZW50QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3RzaS1iYXNlL2NvbXBvbmVudHMvdHNpLWZvcm0tYmFzZS90c2ktZm9ybS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhc2hib2FyZE1vZHVsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXBvcnRpbmcvZGFzaGJvYXJkLW1vZHVsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgYXBwUHJvdmlkZXJzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RzL2FwcC1wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBSZXBvcnRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVwb3J0aW5nL3JlcG9ydGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHNpTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi90c2ktbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUc2lDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbm90aWZpY2F0aW9uL3RzaS1jb25maXJtYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hZGQtcmVwb3J0LXBvcHVwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLXJlcG9ydC1wb3B1cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLXJlcG9ydC1wb3B1cC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogWy4uLmFwcFByb3ZpZGVyc11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZFJlcG9ydFBvcHVwQ29tcG9uZW50IGV4dGVuZHMgVHNpRm9ybUNvbXBvbmVudEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBkYXRhU291cmNlOiB7IGtleTogVHNpUmVwb3J0VHlwZSwgdmFsdWU6IHN0cmluZyB9W10gPSBbXHJcbiAgICB7IGtleTogVHNpUmVwb3J0VHlwZS5MaXN0LCB2YWx1ZTogXCJFbmQgdXNlciByZXBvcnRcIiB9LFxyXG4gICAgeyBrZXk6IFRzaVJlcG9ydFR5cGUuRGFzaGJvYXJkLCB2YWx1ZTogXCJEYXNoYm9hcmRcIiB9LFxyXG4gICAgeyBrZXk6IFRzaVJlcG9ydFR5cGUuUlRGLCB2YWx1ZTogXCJSVEZcIiB9XHJcbiAgXTtcclxuXHJcbiAgaXNHZXRCeUlkUmVxdWVzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1vZGVzID0gTW9kZXM7XHJcbiAgaXNFZGl0aW9uUGVyc29ubmFsaXNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWRtaW5pc3RyYXRpb25FbmRwb2ludHMgPSBBZG1pbmlzdHJhdGlvbkVuZHBvaW50cztcclxuICByZXBvcnRCdXNpbmVzc0NsYXNzPzogc3RyaW5nXHJcbiAgY3VzdG9tUmVwb3J0aW5nTW9kZT86IGJvb2xlYW5cclxuXHJcbiAgc2VsZWN0ZWRFbmRwb2ludHM6IGFueVtdID0gW11cclxuICBlbmRwb2ludHNPcHRpb25zOiBhbnlbXSA9IFtdXHJcbiAgZW5hYmxlTXVsdGlTZWxlY3RFbmRwb2ludHM6IGJvb2xlYW4gPSBmYWxzZVxyXG5cclxuICBwcml2YXRlIF9pc1JlcG9ydEZvckZpY2hlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGdldCBpc1JlcG9ydEZvckZpY2hlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLmNvbmZpZy5kYXRhPy5mcm9tRW5kcG9pbnQ/LmluY2x1ZGVzKFwiZ2V0YWxscGFnZWRcIikgJiYgdGhpcy5jb25maWcuZGF0YT8uZnJvbUVuZHBvaW50ICE9IHVuZGVmaW5lZFxyXG4gIH1cclxuXHJcbiAgcmVwb3J0ID0ge1xyXG4gICAgcmVwb3J0VHlwZTogJycsXHJcbiAgICByZXBvcnROYW1lOiAnJyxcclxuICAgIHJlcG9ydE5hbWVBYnJlZ2U6ICcnLFxyXG4gICAgdHJpT3JkcmU6IDAsXHJcbiAgICBtb2R1bGU6ICcnLFxyXG4gICAgaW1wcmVzczogJycsXHJcbiAgICBlZGl0aW9uVW5pcXVlOiBmYWxzZSxcclxuICAgIGVuZFBvaW50S2V5OiAnJyxcclxuICAgIGVuZFBvaW50VmFsdWU6ICcnLFxyXG4gICAgcGFyYW06ICcnLFxyXG4gICAgZm9ybU5hbWU6ICcnLFxyXG4gICAgZGlzcGxheTogZmFsc2UsXHJcbiAgfVxyXG5cclxuICBtb2R1bGVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvdmVycmlkZSByZWY6IER5bmFtaWNEaWFsb2dSZWYsXHJcbiAgICBwdWJsaWMgcmVwb3J0aW5nU2VydmljZTogUmVwb3J0aW5nU2VydmljZSxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXHJcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IFRzaU5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhc2hib2FyZE1vZHVsZVNlcnZpY2U6IERhc2hib2FyZE1vZHVsZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb25maXJtOiBUc2lDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyXHJcbiAgKSB7XHJcbiAgICBzdXBlcihyZWYsIGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmVuYWJsZU11bHRpU2VsZWN0RW5kcG9pbnRzID0gdGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcygnZWRpdGlvbi1wZXJzb25hbGlzZWUnKSB8fCB0aGlzLmlzUmVwb3J0Rm9yRmljaGU7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGEudmFsdWUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCI+Pj4gdGhpcy5jb25maWcuZGF0YTogXCIsIHRoaXMuY29uZmlnLmRhdGEpO1xyXG4gICAgICB0aGlzLnJlcG9ydC5yZXBvcnRUeXBlID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5yZXBvcnRUeXBlO1xyXG4gICAgICB0aGlzLnJlcG9ydC5yZXBvcnROYW1lID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5uYW1lO1xyXG4gICAgICB0aGlzLnJlcG9ydC5lbmRQb2ludEtleSA9IHRoaXMuY29uZmlnLmRhdGEudmFsdWU/LnJlc3RFbmRwb2ludDtcclxuICAgICAgdGhpcy5yZXBvcnQuZW5kUG9pbnRWYWx1ZSA9IHRoaXMuY29uZmlnLmRhdGEudmFsdWU/LnJlc3RFbmRwb2ludDtcclxuICAgICAgdGhpcy5yZXBvcnQubW9kdWxlID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5tb2R1bGU7XHJcbiAgICAgIHRoaXMucmVwb3J0LnRyaU9yZHJlID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5vcmRlcjtcclxuICAgICAgdGhpcy5yZXBvcnQuZm9ybU5hbWUgPSB0aGlzLmNvbmZpZy5kYXRhLnZhbHVlLmZvcm1OYW1lO1xyXG4gICAgICB0aGlzLnJlcG9ydC5yZXBvcnROYW1lQWJyZWdlID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5zaG9ydE5hbWU7XHJcbiAgICAgIHRoaXMucmVwb3J0LmRpc3BsYXkgPSB0aGlzLmNvbmZpZy5kYXRhLnZhbHVlLmRpc3BsYXk7XHJcblxyXG4gICAgICBpZiAodGhpcy5lbmFibGVNdWx0aVNlbGVjdEVuZHBvaW50cykge1xyXG4gICAgICAgIHRoaXMuZW5kcG9pbnRzT3B0aW9ucyA9IHRoaXMucmVwb3J0LmVuZFBvaW50S2V5XHJcbiAgICAgICAgICA/IHRoaXMucmVwb3J0LmVuZFBvaW50S2V5LnNwbGl0KCc7JykubWFwKHggPT4gKHsgbGFiZWw6IHgsIHZhbHVlOiB4IH0pKVxyXG4gICAgICAgICAgOiBbXTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRW5kcG9pbnRzID0gdGhpcy5yZXBvcnQuZW5kUG9pbnRLZXlcclxuICAgICAgICAgID8gdGhpcy5yZXBvcnQuZW5kUG9pbnRLZXkuc3BsaXQoJzsnKVxyXG4gICAgICAgICAgOiBbXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVwb3J0QnVzaW5lc3NDbGFzcyA9IHRoaXMuY29uZmlnLmRhdGE/LnJlcG9ydEJ1c2luZXNzQ2xhc3NcclxuICAgIHRoaXMuY3VzdG9tUmVwb3J0aW5nTW9kZSA9IHRoaXMuY29uZmlnLmRhdGE/LmN1c3RvbVJlcG9ydGluZ01vZGVcclxuXHJcbiAgICBpZiAodGhpcy5jdXN0b21SZXBvcnRpbmdNb2RlKSB7XHJcbiAgICAgIHRoaXMucmVwb3J0LmVuZFBvaW50S2V5ID0gdGhpcy5jb25maWcuZGF0YT8uZnJvbUVuZHBvaW50XHJcbiAgICAgIHRoaXMucmVwb3J0LmVuZFBvaW50VmFsdWUgPSB0aGlzLmNvbmZpZy5kYXRhPy5mcm9tRW5kcG9pbnRcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGE/LmZyb21FbmRwb2ludCAmJiAhdGhpcy5pc1JlcG9ydEZvckZpY2hlICYmICF0aGlzLmN1c3RvbVJlcG9ydGluZ01vZGUpIHtcclxuICAgICAgdGhpcy5yZXBvcnRpbmdTZXJ2aWNlLmdldEFwaUFzS2V5VmFsdWVCeVZhbHVlKGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmNvbmZpZy5kYXRhLmZyb21FbmRwb2ludCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpXHJcbiAgICAgICAgICB0aGlzLnJlcG9ydC5lbmRQb2ludEtleSA9IHJlc1swXT8ua2V5O1xyXG4gICAgICAgICAgdGhpcy5yZXBvcnQuZW5kUG9pbnRWYWx1ZSA9IHJlc1swXT8udmFsdWU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm1vZGUgPSB0aGlzLmNvbmZpZy5kYXRhLm1vZGVcclxuICAgIHRoaXMuaXNFZGl0aW9uUGVyc29ubmFsaXNlID0gdGhpcy5jb25maWcuZGF0YS5pc0VkaXRpb25QZXJzb25uYWxpc2VcclxuICAgIGNvbnNvbGUubG9nKHRoaXMubW9kZSlcclxuXHJcbiAgICB0aGlzLmdldEFsbE1vZHVsZXMoKTtcclxuICB9XHJcblxyXG4gIHJlcG9ydFR5cGVDaGFuZ2UoZXZ0OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKGV2dClcclxuICB9XHJcblxyXG4gIGFzeW5jIGhhbmRsZU9wZW4oKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXHJcbiAgICAgICAgdGhpcy5faHR0cENsaWVudC5nZXQ8YW55W10+KFxyXG4gICAgICAgICAgZW5jb2RlVVJJKHRoaXMuYWRtaW5pc3RyYXRpb25FbmRwb2ludHMuZ2V0QWxsQXBpQXNLZXlWYWx1ZVBhaXIoKSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBkYXRhIHx8IFtdO1xyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBbLi4uIHRoaXMuc2VsZWN0ZWRFbmRwb2ludHMubWFwKHggPT4gKHsgbGFiZWw6IHgsIHZhbHVlOiB4IH0pKSxcclxuICAgICAgLi4udGhpcy5lbmRwb2ludHNPcHRpb25zXVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBlbmRwb2ludHM6JywgZXJyb3IpO1xyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIG9uRmlsdGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuX2dlbmVyYXRlSHR0cFBhcmFtcyhldmVudD8uZmlsdGVyKTtcclxuXHJcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuICAgICAgICB0aGlzLl9odHRwQ2xpZW50LmdldDxhbnlbXT4oXHJcbiAgICAgICAgICBlbmNvZGVVUkkodGhpcy5hZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxBcGlBc0tleVZhbHVlUGFpcigpKSxcclxuICAgICAgICAgIHsgcGFyYW1zIH1cclxuICAgICAgICApXHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBkYXRhIHx8IFtdO1xyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBbLi4udGhpcy5zZWxlY3RlZEVuZHBvaW50cy5tYXAoeCA9PiAoeyBsYWJlbDogeCwgdmFsdWU6IHggfSkpLCAuLi50aGlzLmVuZHBvaW50c09wdGlvbnNdXHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIGVuZHBvaW50czonLCBlcnJvcik7XHJcbiAgICAgIHRoaXMuZW5kcG9pbnRzT3B0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX2dlbmVyYXRlSHR0cFBhcmFtcyhmaWx0ZXI/OiBzdHJpbmcpOiBIdHRwUGFyYW1zIHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgaWYgKGZpbHRlcikge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd2YWx1ZScsIGZpbHRlcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFyYW1zO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgc2F2ZSgpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAodGhpcy5lbmFibGVNdWx0aVNlbGVjdEVuZHBvaW50cykge1xyXG4gICAgICB0aGlzLnJlcG9ydC5lbmRQb2ludEtleSA9IHRoaXMuc2VsZWN0ZWRFbmRwb2ludHMuam9pbignOycpO1xyXG4gICAgICB0aGlzLnJlcG9ydC5lbmRQb2ludFZhbHVlID0gdGhpcy5zZWxlY3RlZEVuZHBvaW50cy5qb2luKCc7Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgc3VwZXIuc2F2ZSgpXHJcbiAgICBcclxuICAgIGlmICh0aGlzLnJlcG9ydC5yZXBvcnRUeXBlID09PSAnJykge1xyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uud2FybihcInNoYXJlZF9yZXBvcnRpbmdfcmVwb3J0X3R5cGVfcmVxdWlyZWRcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMucmVwb3J0LnJlcG9ydE5hbWUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS53YXJuKFwic2hhcmVkX3JlcG9ydGluZ19yZXBvcnRfbmFtZV9yZXF1aXJlZFwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5pc0VkaXRpb25QZXJzb25uYWxpc2UgJiYgdGhpcy5yZXBvcnQuZW5kUG9pbnRLZXkgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS53YXJuKFwic2hhcmVkX3JlcG9ydGluZ19yZXBvcnRfZW5kcG9pbnRfcmVxdWlyZWRcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9jb25maXJtXHJcbiAgICAgIC5jb25maXJtKHRoaXMubCgnc2hhcmVkX3JlcG9ydGluZ19yZXBvcnRfY29uZmlybVJlZGlyZWN0aW9uJyksIHVuZGVmaW5lZCwgKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYW5SZWRpcmVjdCcsIEpTT04uc3RyaW5naWZ5KHRydWUpKTtcclxuICAgICAgICAgIHRoaXMuaGlkZSh0aGlzLnJlcG9ydCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYW5SZWRpcmVjdCcsIEpTT04uc3RyaW5naWZ5KGZhbHNlKSk7XHJcbiAgICAgICAgICB0aGlzLmhpZGUodGhpcy5yZXBvcnQpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRFbmRwb2ludENoYW5nZShlbmRwb2ludFZhbHVlOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMucmVwb3J0KVxyXG4gICAgdGhpcy5yZXBvcnQuZW5kUG9pbnRWYWx1ZSA9IGVuZHBvaW50VmFsdWU7XHJcbiAgICB0aGlzLmlzR2V0QnlJZFJlcXVlc3QgPSBlbmRwb2ludFZhbHVlLmluY2x1ZGVzKFwie2lkfVwiKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QWxsTW9kdWxlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkTW9kdWxlU2VydmljZVxyXG4gICAgICAuZ2V0QWxsTW9kdWxlcygpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmV4dDogKHZhbHVlczogYW55W10pID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlcyAmJiBBcnJheS5pc0FycmF5KHZhbHVlcykgJiYgdmFsdWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLm1vZHVsZXMgPSB2YWx1ZXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICB9XHJcbn1cclxuIiwiPHRzaS1mb3JtIGNsYXNzPVwiZm9ybS1ob3Jpem9udGFsXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgKG9uU3VibWl0KT1cInNhdmUoKVwiPlxyXG4gICAgPGg0PlxyXG4gICAgICAgIDxUc2ktTGFiZWwgW2xhYmVsVmFsdWVdPVwiJ05vdXZlYXUgUmFwcG9ydCdcIj48L1RzaS1MYWJlbD5cclxuICAgIDwvaDQ+XHJcbiAgICA8cC1wYW5lbCBoZWFkZXI9XCJJbmZvcm1hdGlvbnNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBcIj5cclxuICAgICAgICAgICAgPCEtLSBUeXBlIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX3R5cGVcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gW2Rpc2FibGVkXT1cInRoaXMubW9kZSAhPT0gbW9kZXMuY3JlYXRlXCIgaWQtZmllbGQ9XCJrZXlcIiBsYWJlbC1maWVsZD1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbKGJpbmQpXT1cInJlcG9ydC5yZXBvcnRUeXBlXCIgW2RhdGFzb3VyY2VdPVwiZGF0YVNvdXJjZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBOb20gZHUgcmFwcG9ydCAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIGxhYmVsVmFsdWU9XCJhZG1pbmlzdHJhdGlvbl9lZGl0aW9uX3BlcnNvbm5hbGlzZV9yZXBvcnROYW1lXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTlcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggW2lucHV0TmFtZV09XCIncmVwb3J0TmFtZSdcIiBbKGlucHV0RmllbGQpXT1cInJlcG9ydC5yZXBvcnROYW1lXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIE5vbSBhYnLDqWfDqSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIGxhYmVsVmFsdWU9XCJhZG1pbmlzdHJhdGlvbl9lZGl0aW9uX3BlcnNvbm5hbGlzZV9yZXBvcnROYW1lQWJyZWdlXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggW2lucHV0TmFtZV09XCIncmVwb3J0TmFtZUFicmVnZSdcIiBbKGlucHV0RmllbGQpXT1cInJlcG9ydC5yZXBvcnROYW1lQWJyZWdlXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBjb2wtNlwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBPcmRyZSBkZSB0cmkgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtNCB3LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIGxhYmVsVmFsdWU9XCJhZG1pbmlzdHJhdGlvbl9lZGl0aW9uX3BlcnNvbm5hbGlzZV90cmlPcmRyZVwiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxUc2ktSW50ZWdlciBbaW5wdXROYW1lXT1cIid0cmlPcmRyZSdcIiBbKGlucHV0RmllbGQpXT1cInJlcG9ydC50cmlPcmRyZVwiPjwvVHNpLUludGVnZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gQWZmaWNoZXIgZGFzaGJvYXJkIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTQgdy02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBsYWJlbFZhbHVlPVwiYWRtaW5pc3RyYXRpb25fZWRpdGlvbl9wZXJzb25uYWxpc2VfZGlzcGxheVwiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxUc2ktQ2hlY2tCb3ggW2lucHV0TmFtZV09XCInZGlzcGxheSdcIiBbKGlucHV0RmllbGQpXT1cInJlcG9ydC5kaXNwbGF5XCI+PC9Uc2ktQ2hlY2tCb3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gTW9kdWxlIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX01vZHVsZVwiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyBpZC1maWVsZD1cImNvZGVcIiBsYWJlbC1maWVsZD1cImxpYmVsbGVcIiBbbXVsdGlwbGVdPVwiZmFsc2VcIiBbKGJpbmQpXT1cInJlcG9ydC5tb2R1bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhc291cmNlXT1cIm1vZHVsZXNcIiBbaXNGaWx0ZXJlZF09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBEZXV4acOpbWUgSW1wcmVzcyAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIGxhYmVsVmFsdWU9XCJhZG1pbmlzdHJhdGlvbl9lZGl0aW9uX3BlcnNvbm5hbGlzZV9pbXBwcmVzc1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC01XCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLVRleHQtQm94IFtkaXNhYmxlZF09XCJ0cnVlXCIgW2lucHV0TmFtZV09XCInaW1wcHJlc3MnXCIgWyhpbnB1dEZpZWxkKV09XCJyZXBvcnQuaW1wcmVzc1wiPjwvVHNpLVRleHQtQm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBFZGl0aW9uIHVuaXF1ZSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00IGNvbC1mb3JtLWxhYmVsIGZseFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1DaGVja0JveCBbaW5wdXROYW1lXT1cIidFZGl0aW9uVW5pcXVlJ1wiIFsoaW5wdXRGaWVsZCldPVwicmVwb3J0LmVkaXRpb25VbmlxdWVcIj48L1RzaS1DaGVja0JveD4mbmJzcDtcclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX0VkaXRpb25VbmlxdWVcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gRW5kcG9pbnQgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMyBjb2wtZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBsYWJlbFZhbHVlPVwiYWRtaW5pc3RyYXRpb25fZWRpdGlvbl9wZXJzb25uYWxpc2VfZW5kcG9pbnRcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gKm5nSWY9XCIhaXNSZXBvcnRGb3JGaWNoZSAmJiAhZW5hYmxlTXVsdGlTZWxlY3RFbmRwb2ludHNcIiBpZC1maWVsZD1cImtleVwiIGxhYmVsLWZpZWxkPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJtb2Rlcy5lZGl0ID09PSBtb2RlIHx8IGlzRWRpdGlvblBlcnNvbm5hbGlzZSA9PT0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExhYmVsQ2hhbmdlKT1cInNlbGVjdGVkRW5kcG9pbnRDaGFuZ2UoJGV2ZW50KVwiIFsoYmluZCldPVwicmVwb3J0LmVuZFBvaW50S2V5XCJcclxuICAgICAgICAgICAgICAgICAgICBbZWxlbWVudFNvdXJjZVVybF09XCJhZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBcGlBc0tleVZhbHVlUGFpcigpXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGlzdFNvdXJjZVVybF09XCJhZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxBcGlBc0tleVZhbHVlUGFpcigpXCIgW2lzRmlsdGVyZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG5cclxuICAgICAgICAgICAgICAgIDxUc2ktU2VhcmNoLUNvbWJvICpuZ0lmPVwiY3VzdG9tUmVwb3J0aW5nTW9kZSAmJiAhZW5hYmxlTXVsdGlTZWxlY3RFbmRwb2ludHMgXCIgaWQtZmllbGQ9XCJ2YWx1ZVwiIGxhYmVsLWZpZWxkPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExhYmVsQ2hhbmdlKT1cInNlbGVjdGVkRW5kcG9pbnRDaGFuZ2UoJGV2ZW50KVwiIFsoYmluZCldPVwicmVwb3J0LmVuZFBvaW50S2V5XCJcclxuICAgICAgICAgICAgICAgICAgICBbbGlzdFNvdXJjZVVybF09XCJhZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxBcGlBc0tleVZhbHVlUGFpckJ5QnVzaW5lc3NDbGFzc05hbWUodGhpcy5yZXBvcnRCdXNpbmVzc0NsYXNzKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lzRmlsdGVyZWRdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgIDwvVHNpLVNlYXJjaC1Db21ibz5cclxuXHJcbiAgICAgICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyAqbmdJZj1cImlzUmVwb3J0Rm9yRmljaGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGlkLWZpZWxkPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsLWZpZWxkPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsoYmluZCldPVwic2VsZWN0ZWRFbmRwb2ludHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsaXN0U291cmNlVXJsXT1cImFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldEFsbEFwaUFzS2V5VmFsdWVQYWlyQnlCdXNpbmVzc0NsYXNzTmFtZSh0aGlzLnJlcG9ydEJ1c2luZXNzQ2xhc3MpXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNGaWx0ZXJlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExhYmVsQ2hhbmdlKT1cInNlbGVjdGVkRW5kcG9pbnRDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG5cclxuICAgICAgICAgICAgICAgIDxwLW11bHRpU2VsZWN0ICpuZ0lmPVwiIWlzUmVwb3J0Rm9yRmljaGUgJiYgZW5hYmxlTXVsdGlTZWxlY3RFbmRwb2ludHNcIiBbb3B0aW9uc109XCJlbmRwb2ludHNPcHRpb25zXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEVuZHBvaW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtc0xhYmVsPVwiezB9IHt7ICdlbmRwb2ludF9zZWxlY3RlZCcgfCBsb2NhbGl6ZSB9fVwiIG9wdGlvbkxhYmVsPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJ7J21pbi13aWR0aCc6ICcxODBweCd9XCIgcGxhY2Vob2xkZXI9XCJ7eyAnc2hhcmVkX3JlcG9ydGluZ19jaG9vc2VfZW5kcG9pbnRzJyB8IGxvY2FsaXplIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAob25QYW5lbFNob3cpPVwiaGFuZGxlT3BlbigpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmlsdGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvbkZpbHRlcik9XCJvbkZpbHRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5PVwiY2hpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLW11bHRpc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1vcHRpb24gcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IG9wdGlvbi52YWx1ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9wLW11bHRpU2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX2Zvcm1OYW1lXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggW2Rpc2FibGVkXT1cInRydWVcIiBbaW5wdXROYW1lXT1cIidmb3JtTmFtZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsoaW5wdXRGaWVsZCldPVwicmVwb3J0LmZvcm1OYW1lXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIFBhcmFtIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNHZXRCeUlkUmVxdWVzdFwiIGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX3BhcmFtXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNHZXRCeUlkUmVxdWVzdFwiIGNsYXNzPVwiY29sLTlcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggW2lucHV0TmFtZV09XCIncGFyYW0nXCIgWyhpbnB1dEZpZWxkKV09XCJyZXBvcnQucGFyYW1cIj48L1RzaS1UZXh0LUJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3AtcGFuZWw+XHJcbiAgICA8YnIgLz5cclxuICAgIDxwLXBhbmVsIGhlYWRlcj1cIkNvbmZpZ3VyYXRpb24gUGl2b3QgR3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIFwiPlxyXG4gICAgICAgICAgICA8IS0tIENsYXNzIG9yIHZpZXcgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMyBjb2wtZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBbbGFiZWxWYWx1ZV09XCInQ2xhc3Mgb3IgdmlldydcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1UZXh0LUJveCBbaW5wdXROYW1lXT1cIidkZGRkJ1wiPjwvVHNpLVRleHQtQm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBRdWVyeSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIFtsYWJlbFZhbHVlXT1cIidRdWVyeSdcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOSBjb2wtZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1UZXh0LUFyZWEgW3Jvd3NdPVwiMlwiPjwvVHNpLVRleHQtQXJlYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3AtcGFuZWw+XHJcblxyXG4gICAgPFRzaS1Nb2RhbC1Gb290ZXIgW2NhbmNlbERpc2FibGVkXT1cInNhdmluZ1wiIFtzYXZlRGlzYWJsZWRdPVwic2F2aW5nXCIgKG9uQ2FuY2VsQ2xpY2spPVwiaGlkZSgpXCI+PC9Uc2ktTW9kYWwtRm9vdGVyPlxyXG48L3RzaS1mb3JtPiJdfQ==
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlcG9ydC1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWNvbXBvbmVudHMvbWFuYWdlLXJlcG9ydGluZy9hZGQtcmVwb3J0LXBvcHVwL2FkZC1yZXBvcnQtcG9wdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1jb21wb25lbnRzL21hbmFnZS1yZXBvcnRpbmcvYWRkLXJlcG9ydC1wb3B1cC9hZGQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUVuSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUzlELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSw2QkFBNkI7SUFxQnhFLElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksSUFBSSxTQUFTLENBQUE7SUFDaEgsQ0FBQztJQW1CRCxZQUNrQixHQUFxQixFQUM5QixnQkFBa0MsRUFDekIsTUFBMkIsRUFDbkMsbUJBQTJDLEVBQzNDLHNCQUE4QyxFQUM5QyxRQUFnQyxFQUNoQyxXQUF1QixFQUN2QixPQUFlO1FBRXZCLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFUSCxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3pCLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQ25DLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDM0MsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBaER6QixlQUFVLEdBQTRDO1lBQ3BELEVBQUUsR0FBRyxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO1lBQ3JELEVBQUUsR0FBRyxFQUFFLGFBQWEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtZQUNwRCxFQUFFLEdBQUcsRUFBRSxhQUFhLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7U0FDekMsQ0FBQztRQUVGLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBQ3ZDLDRCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBSWxELHNCQUFpQixHQUFVLEVBQUUsQ0FBQTtRQUM3QixxQkFBZ0IsR0FBVSxFQUFFLENBQUE7UUFDNUIsK0JBQTBCLEdBQVksS0FBSyxDQUFBO1FBRW5DLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQU0zQyxXQUFNLEdBQUc7WUFDUCxVQUFVLEVBQUUsRUFBRTtZQUNkLFVBQVUsRUFBRSxFQUFFO1lBQ2QsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixRQUFRLEVBQUUsQ0FBQztZQUNYLE1BQU0sRUFBRSxFQUFFO1lBQ1YsT0FBTyxFQUFFLEVBQUU7WUFDWCxhQUFhLEVBQUUsS0FBSztZQUNwQixXQUFXLEVBQUUsRUFBRTtZQUNmLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLEtBQUssRUFBRSxFQUFFO1lBQ1QsUUFBUSxFQUFFLEVBQUU7WUFDWixPQUFPLEVBQUUsS0FBSztTQUNmLENBQUE7UUFFRCxZQUFPLEdBQVUsRUFBRSxDQUFDO0lBYXBCLENBQUM7SUFFUSxRQUFRO1FBRWYsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUU3RyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztZQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBRXJELElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVc7b0JBQzdDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ3ZFLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVztvQkFDOUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0JBQ3BDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQTtRQUNoRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUE7UUFFaEUsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUE7WUFDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFBO1FBQzVELENBQUM7UUFHRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzFGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDekcsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7b0JBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7b0JBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7Z0JBQzVDLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDbEIsQ0FBQzthQUNGLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUNqQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUE7UUFDbkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFdEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFRO1FBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDbEIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxjQUFjLENBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUNsQixTQUFTLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FDbEUsQ0FDRixDQUFDO1lBRUYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsR0FBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3RGLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDM0IsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztZQUV2RCxNQUFNLElBQUksR0FBRyxNQUFNLGNBQWMsQ0FDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQ2xCLFNBQVMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxFQUNqRSxFQUFFLE1BQU0sRUFBRSxDQUNYLENBQ0YsQ0FBQztZQUVGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUNsSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLE1BQWU7UUFDakMsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM5QixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRVEsSUFBSTtRQUVYLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7UUFFWixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsdUNBQXVDLENBQUMsQ0FBQztZQUN2RSxPQUFPO1FBQ1QsQ0FBQzthQUNJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1lBQ3ZFLE9BQU87UUFDVCxDQUFDO2FBQ0ksSUFBSSxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDdEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1lBQzNFLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVE7YUFDVixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw0Q0FBNEMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLE1BQWUsRUFBRSxFQUFFO1lBQzVGLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUN4QixDQUFDO1FBQ0gsQ0FBQyxDQUNBLENBQUM7SUFFTixDQUFDO0lBRUQsc0JBQXNCLENBQUMsYUFBa0I7UUFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxzQkFBc0I7YUFDeEIsYUFBYSxFQUFFO2FBQ2YsU0FBUyxDQUNSO1lBQ0UsSUFBSSxFQUFFLENBQUMsTUFBYSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FDRixDQUFBO0lBQ0wsQ0FBQzsrR0FwTlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsK0NBRnZCLENBQUMsR0FBRyxZQUFZLENBQUMsaURDbEI5Qixpa1FBa0pXOzs0RkQ5SEUsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHNCQUFzQixhQUdyQixDQUFDLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IEFkbWluaXN0cmF0aW9uRW5kcG9pbnRzIH0gZnJvbSAnLi4vLi4vLi4vZW5kLXBvaW50cyc7XHJcbmltcG9ydCB7IFRzaVJlcG9ydFR5cGUsIE1vZGVzIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMnO1xyXG5pbXBvcnQgeyBUc2lGb3JtQ29tcG9uZW50QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3RzaS1iYXNlL2NvbXBvbmVudHMvdHNpLWZvcm0tYmFzZS90c2ktZm9ybS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhc2hib2FyZE1vZHVsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXBvcnRpbmcvZGFzaGJvYXJkLW1vZHVsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgYXBwUHJvdmlkZXJzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RzL2FwcC1wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBSZXBvcnRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVwb3J0aW5nL3JlcG9ydGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHNpTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi90c2ktbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUc2lDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbm90aWZpY2F0aW9uL3RzaS1jb25maXJtYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hZGQtcmVwb3J0LXBvcHVwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLXJlcG9ydC1wb3B1cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLXJlcG9ydC1wb3B1cC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogWy4uLmFwcFByb3ZpZGVyc11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZFJlcG9ydFBvcHVwQ29tcG9uZW50IGV4dGVuZHMgVHNpRm9ybUNvbXBvbmVudEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBkYXRhU291cmNlOiB7IGtleTogVHNpUmVwb3J0VHlwZSwgdmFsdWU6IHN0cmluZyB9W10gPSBbXHJcbiAgICB7IGtleTogVHNpUmVwb3J0VHlwZS5MaXN0LCB2YWx1ZTogXCJFbmQgdXNlciByZXBvcnRcIiB9LFxyXG4gICAgeyBrZXk6IFRzaVJlcG9ydFR5cGUuRGFzaGJvYXJkLCB2YWx1ZTogXCJEYXNoYm9hcmRcIiB9LFxyXG4gICAgeyBrZXk6IFRzaVJlcG9ydFR5cGUuUlRGLCB2YWx1ZTogXCJSVEZcIiB9XHJcbiAgXTtcclxuXHJcbiAgaXNHZXRCeUlkUmVxdWVzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1vZGVzID0gTW9kZXM7XHJcbiAgaXNFZGl0aW9uUGVyc29ubmFsaXNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWRtaW5pc3RyYXRpb25FbmRwb2ludHMgPSBBZG1pbmlzdHJhdGlvbkVuZHBvaW50cztcclxuICByZXBvcnRCdXNpbmVzc0NsYXNzPzogc3RyaW5nXHJcbiAgY3VzdG9tUmVwb3J0aW5nTW9kZT86IGJvb2xlYW5cclxuXHJcbiAgc2VsZWN0ZWRFbmRwb2ludHM6IGFueVtdID0gW11cclxuICBlbmRwb2ludHNPcHRpb25zOiBhbnlbXSA9IFtdXHJcbiAgZW5hYmxlTXVsdGlTZWxlY3RFbmRwb2ludHM6IGJvb2xlYW4gPSBmYWxzZVxyXG5cclxuICBwcml2YXRlIF9pc1JlcG9ydEZvckZpY2hlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGdldCBpc1JlcG9ydEZvckZpY2hlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLmNvbmZpZy5kYXRhPy5mcm9tRW5kcG9pbnQ/LmluY2x1ZGVzKFwiZ2V0YWxscGFnZWRcIikgJiYgdGhpcy5jb25maWcuZGF0YT8uZnJvbUVuZHBvaW50ICE9IHVuZGVmaW5lZFxyXG4gIH1cclxuXHJcbiAgcmVwb3J0ID0ge1xyXG4gICAgcmVwb3J0VHlwZTogJycsXHJcbiAgICByZXBvcnROYW1lOiAnJyxcclxuICAgIHJlcG9ydE5hbWVBYnJlZ2U6ICcnLFxyXG4gICAgdHJpT3JkcmU6IDAsXHJcbiAgICBtb2R1bGU6ICcnLFxyXG4gICAgaW1wcmVzczogJycsXHJcbiAgICBlZGl0aW9uVW5pcXVlOiBmYWxzZSxcclxuICAgIGVuZFBvaW50S2V5OiAnJyxcclxuICAgIGVuZFBvaW50VmFsdWU6ICcnLFxyXG4gICAgcGFyYW06ICcnLFxyXG4gICAgZm9ybU5hbWU6ICcnLFxyXG4gICAgZGlzcGxheTogZmFsc2UsXHJcbiAgfVxyXG5cclxuICBtb2R1bGVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvdmVycmlkZSByZWY6IER5bmFtaWNEaWFsb2dSZWYsXHJcbiAgICBwdWJsaWMgcmVwb3J0aW5nU2VydmljZTogUmVwb3J0aW5nU2VydmljZSxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXHJcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IFRzaU5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhc2hib2FyZE1vZHVsZVNlcnZpY2U6IERhc2hib2FyZE1vZHVsZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb25maXJtOiBUc2lDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyXHJcbiAgKSB7XHJcbiAgICBzdXBlcihyZWYsIGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmVuYWJsZU11bHRpU2VsZWN0RW5kcG9pbnRzID0gdGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcygnZWRpdGlvbi1wZXJzb25hbGlzZWUnKSB8fCB0aGlzLmlzUmVwb3J0Rm9yRmljaGU7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGEudmFsdWUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCI+Pj4gdGhpcy5jb25maWcuZGF0YTogXCIsIHRoaXMuY29uZmlnLmRhdGEpO1xyXG4gICAgICB0aGlzLnJlcG9ydC5yZXBvcnRUeXBlID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5yZXBvcnRUeXBlO1xyXG4gICAgICB0aGlzLnJlcG9ydC5yZXBvcnROYW1lID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5uYW1lO1xyXG4gICAgICB0aGlzLnJlcG9ydC5lbmRQb2ludEtleSA9IHRoaXMuY29uZmlnLmRhdGEudmFsdWU/LnJlc3RFbmRwb2ludDtcclxuICAgICAgdGhpcy5yZXBvcnQuZW5kUG9pbnRWYWx1ZSA9IHRoaXMuY29uZmlnLmRhdGEudmFsdWU/LnJlc3RFbmRwb2ludDtcclxuICAgICAgdGhpcy5yZXBvcnQubW9kdWxlID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5tb2R1bGU7XHJcbiAgICAgIHRoaXMucmVwb3J0LnRyaU9yZHJlID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5vcmRlcjtcclxuICAgICAgdGhpcy5yZXBvcnQuZm9ybU5hbWUgPSB0aGlzLmNvbmZpZy5kYXRhLnZhbHVlLmZvcm1OYW1lO1xyXG4gICAgICB0aGlzLnJlcG9ydC5yZXBvcnROYW1lQWJyZWdlID0gdGhpcy5jb25maWcuZGF0YS52YWx1ZS5zaG9ydE5hbWU7XHJcbiAgICAgIHRoaXMucmVwb3J0LmRpc3BsYXkgPSB0aGlzLmNvbmZpZy5kYXRhLnZhbHVlLmRpc3BsYXk7XHJcblxyXG4gICAgICBpZiAodGhpcy5lbmFibGVNdWx0aVNlbGVjdEVuZHBvaW50cykge1xyXG4gICAgICAgIHRoaXMuZW5kcG9pbnRzT3B0aW9ucyA9IHRoaXMucmVwb3J0LmVuZFBvaW50S2V5XHJcbiAgICAgICAgICA/IHRoaXMucmVwb3J0LmVuZFBvaW50S2V5LnNwbGl0KCc7JykubWFwKHggPT4gKHsgbGFiZWw6IHgsIHZhbHVlOiB4IH0pKVxyXG4gICAgICAgICAgOiBbXTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRW5kcG9pbnRzID0gdGhpcy5yZXBvcnQuZW5kUG9pbnRLZXlcclxuICAgICAgICAgID8gdGhpcy5yZXBvcnQuZW5kUG9pbnRLZXkuc3BsaXQoJzsnKVxyXG4gICAgICAgICAgOiBbXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVwb3J0QnVzaW5lc3NDbGFzcyA9IHRoaXMuY29uZmlnLmRhdGE/LnJlcG9ydEJ1c2luZXNzQ2xhc3NcclxuICAgIHRoaXMuY3VzdG9tUmVwb3J0aW5nTW9kZSA9IHRoaXMuY29uZmlnLmRhdGE/LmN1c3RvbVJlcG9ydGluZ01vZGVcclxuXHJcbiAgICBpZiAodGhpcy5jdXN0b21SZXBvcnRpbmdNb2RlKSB7XHJcbiAgICAgIHRoaXMucmVwb3J0LmVuZFBvaW50S2V5ID0gdGhpcy5jb25maWcuZGF0YT8uZnJvbUVuZHBvaW50XHJcbiAgICAgIHRoaXMucmVwb3J0LmVuZFBvaW50VmFsdWUgPSB0aGlzLmNvbmZpZy5kYXRhPy5mcm9tRW5kcG9pbnRcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGE/LmZyb21FbmRwb2ludCAmJiAhdGhpcy5pc1JlcG9ydEZvckZpY2hlICYmICF0aGlzLmN1c3RvbVJlcG9ydGluZ01vZGUpIHtcclxuICAgICAgdGhpcy5yZXBvcnRpbmdTZXJ2aWNlLmdldEFwaUFzS2V5VmFsdWVCeVZhbHVlKGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmNvbmZpZy5kYXRhLmZyb21FbmRwb2ludCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpXHJcbiAgICAgICAgICB0aGlzLnJlcG9ydC5lbmRQb2ludEtleSA9IHJlc1swXT8ua2V5O1xyXG4gICAgICAgICAgdGhpcy5yZXBvcnQuZW5kUG9pbnRWYWx1ZSA9IHJlc1swXT8udmFsdWU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm1vZGUgPSB0aGlzLmNvbmZpZy5kYXRhLm1vZGVcclxuICAgIHRoaXMuaXNFZGl0aW9uUGVyc29ubmFsaXNlID0gdGhpcy5jb25maWcuZGF0YS5pc0VkaXRpb25QZXJzb25uYWxpc2VcclxuICAgIGNvbnNvbGUubG9nKHRoaXMubW9kZSlcclxuXHJcbiAgICB0aGlzLmdldEFsbE1vZHVsZXMoKTtcclxuICB9XHJcblxyXG4gIHJlcG9ydFR5cGVDaGFuZ2UoZXZ0OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKGV2dClcclxuICB9XHJcblxyXG4gIGFzeW5jIGhhbmRsZU9wZW4oKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXHJcbiAgICAgICAgdGhpcy5faHR0cENsaWVudC5nZXQ8YW55W10+KFxyXG4gICAgICAgICAgZW5jb2RlVVJJKHRoaXMuYWRtaW5pc3RyYXRpb25FbmRwb2ludHMuZ2V0QWxsQXBpQXNLZXlWYWx1ZVBhaXIoKSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBkYXRhIHx8IFtdO1xyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBbLi4uIHRoaXMuc2VsZWN0ZWRFbmRwb2ludHMubWFwKHggPT4gKHsgbGFiZWw6IHgsIHZhbHVlOiB4IH0pKSxcclxuICAgICAgLi4udGhpcy5lbmRwb2ludHNPcHRpb25zXVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBlbmRwb2ludHM6JywgZXJyb3IpO1xyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIG9uRmlsdGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuX2dlbmVyYXRlSHR0cFBhcmFtcyhldmVudD8uZmlsdGVyKTtcclxuXHJcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuICAgICAgICB0aGlzLl9odHRwQ2xpZW50LmdldDxhbnlbXT4oXHJcbiAgICAgICAgICBlbmNvZGVVUkkodGhpcy5hZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxBcGlBc0tleVZhbHVlUGFpcigpKSxcclxuICAgICAgICAgIHsgcGFyYW1zIH1cclxuICAgICAgICApXHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBkYXRhIHx8IFtdO1xyXG4gICAgICB0aGlzLmVuZHBvaW50c09wdGlvbnMgPSBbLi4udGhpcy5zZWxlY3RlZEVuZHBvaW50cy5tYXAoeCA9PiAoeyBsYWJlbDogeCwgdmFsdWU6IHggfSkpLCAuLi50aGlzLmVuZHBvaW50c09wdGlvbnNdXHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIGVuZHBvaW50czonLCBlcnJvcik7XHJcbiAgICAgIHRoaXMuZW5kcG9pbnRzT3B0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX2dlbmVyYXRlSHR0cFBhcmFtcyhmaWx0ZXI/OiBzdHJpbmcpOiBIdHRwUGFyYW1zIHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgaWYgKGZpbHRlcikge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd2YWx1ZScsIGZpbHRlcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFyYW1zO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgc2F2ZSgpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAodGhpcy5lbmFibGVNdWx0aVNlbGVjdEVuZHBvaW50cykge1xyXG4gICAgICB0aGlzLnJlcG9ydC5lbmRQb2ludEtleSA9IHRoaXMuc2VsZWN0ZWRFbmRwb2ludHMuam9pbignOycpO1xyXG4gICAgICB0aGlzLnJlcG9ydC5lbmRQb2ludFZhbHVlID0gdGhpcy5zZWxlY3RlZEVuZHBvaW50cy5qb2luKCc7Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgc3VwZXIuc2F2ZSgpXHJcbiAgICBcclxuICAgIGlmICh0aGlzLnJlcG9ydC5yZXBvcnRUeXBlID09PSAnJykge1xyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uud2FybihcInNoYXJlZF9yZXBvcnRpbmdfcmVwb3J0X3R5cGVfcmVxdWlyZWRcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMucmVwb3J0LnJlcG9ydE5hbWUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS53YXJuKFwic2hhcmVkX3JlcG9ydGluZ19yZXBvcnRfbmFtZV9yZXF1aXJlZFwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5pc0VkaXRpb25QZXJzb25uYWxpc2UgJiYgdGhpcy5yZXBvcnQuZW5kUG9pbnRLZXkgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS53YXJuKFwic2hhcmVkX3JlcG9ydGluZ19yZXBvcnRfZW5kcG9pbnRfcmVxdWlyZWRcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9jb25maXJtXHJcbiAgICAgIC5jb25maXJtKHRoaXMubCgnc2hhcmVkX3JlcG9ydGluZ19yZXBvcnRfY29uZmlybVJlZGlyZWN0aW9uJyksIHVuZGVmaW5lZCwgKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYW5SZWRpcmVjdCcsIEpTT04uc3RyaW5naWZ5KHRydWUpKTtcclxuICAgICAgICAgIHRoaXMuaGlkZSh0aGlzLnJlcG9ydCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYW5SZWRpcmVjdCcsIEpTT04uc3RyaW5naWZ5KGZhbHNlKSk7XHJcbiAgICAgICAgICB0aGlzLmhpZGUodGhpcy5yZXBvcnQpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRFbmRwb2ludENoYW5nZShlbmRwb2ludFZhbHVlOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMucmVwb3J0KVxyXG4gICAgdGhpcy5yZXBvcnQuZW5kUG9pbnRWYWx1ZSA9IGVuZHBvaW50VmFsdWU7XHJcbiAgICB0aGlzLmlzR2V0QnlJZFJlcXVlc3QgPSBlbmRwb2ludFZhbHVlLmluY2x1ZGVzKFwie2lkfVwiKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QWxsTW9kdWxlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkTW9kdWxlU2VydmljZVxyXG4gICAgICAuZ2V0QWxsTW9kdWxlcygpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmV4dDogKHZhbHVlczogYW55W10pID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlcyAmJiBBcnJheS5pc0FycmF5KHZhbHVlcykgJiYgdmFsdWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLm1vZHVsZXMgPSB2YWx1ZXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICB9XHJcbn1cclxuIiwiPHRzaS1mb3JtIGNsYXNzPVwiZm9ybS1ob3Jpem9udGFsXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgKG9uU3VibWl0KT1cInNhdmUoKVwiPlxyXG4gICAgPGg0PlxyXG4gICAgICAgIDxUc2ktTGFiZWwgW2xhYmVsVmFsdWVdPVwiJ05vdXZlYXUgUmFwcG9ydCdcIj48L1RzaS1MYWJlbD5cclxuICAgIDwvaDQ+XHJcbiAgICA8cC1wYW5lbCBoZWFkZXI9XCJJbmZvcm1hdGlvbnNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBcIj5cclxuICAgICAgICAgICAgPCEtLSBUeXBlIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX3R5cGVcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gW2Rpc2FibGVkXT1cInRoaXMubW9kZSAhPT0gbW9kZXMuY3JlYXRlXCIgaWQtZmllbGQ9XCJrZXlcIiBsYWJlbC1maWVsZD1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbKGJpbmQpXT1cInJlcG9ydC5yZXBvcnRUeXBlXCIgW2RhdGFzb3VyY2VdPVwiZGF0YVNvdXJjZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBOb20gZHUgcmFwcG9ydCAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIGxhYmVsVmFsdWU9XCJhZG1pbmlzdHJhdGlvbl9lZGl0aW9uX3BlcnNvbm5hbGlzZV9yZXBvcnROYW1lXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTlcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggW2lucHV0TmFtZV09XCIncmVwb3J0TmFtZSdcIiBbKGlucHV0RmllbGQpXT1cInJlcG9ydC5yZXBvcnROYW1lXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIE5vbSBhYnLDqWfDqSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIGxhYmVsVmFsdWU9XCJhZG1pbmlzdHJhdGlvbl9lZGl0aW9uX3BlcnNvbm5hbGlzZV9yZXBvcnROYW1lQWJyZWdlXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggW2lucHV0TmFtZV09XCIncmVwb3J0TmFtZUFicmVnZSdcIiBbKGlucHV0RmllbGQpXT1cInJlcG9ydC5yZXBvcnROYW1lQWJyZWdlXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBjb2wtNlwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBPcmRyZSBkZSB0cmkgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtNCB3LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIGxhYmVsVmFsdWU9XCJhZG1pbmlzdHJhdGlvbl9lZGl0aW9uX3BlcnNvbm5hbGlzZV90cmlPcmRyZVwiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxUc2ktSW50ZWdlciBbaW5wdXROYW1lXT1cIid0cmlPcmRyZSdcIiBbKGlucHV0RmllbGQpXT1cInJlcG9ydC50cmlPcmRyZVwiPjwvVHNpLUludGVnZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gQWZmaWNoZXIgZGFzaGJvYXJkIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTQgdy02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBsYWJlbFZhbHVlPVwiYWRtaW5pc3RyYXRpb25fZWRpdGlvbl9wZXJzb25uYWxpc2VfZGlzcGxheVwiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxUc2ktQ2hlY2tCb3ggW2lucHV0TmFtZV09XCInZGlzcGxheSdcIiBbKGlucHV0RmllbGQpXT1cInJlcG9ydC5kaXNwbGF5XCI+PC9Uc2ktQ2hlY2tCb3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gTW9kdWxlIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX01vZHVsZVwiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyBpZC1maWVsZD1cImNvZGVcIiBsYWJlbC1maWVsZD1cImxpYmVsbGVcIiBbbXVsdGlwbGVdPVwiZmFsc2VcIiBbKGJpbmQpXT1cInJlcG9ydC5tb2R1bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhc291cmNlXT1cIm1vZHVsZXNcIiBbaXNGaWx0ZXJlZF09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBEZXV4acOpbWUgSW1wcmVzcyAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIGxhYmVsVmFsdWU9XCJhZG1pbmlzdHJhdGlvbl9lZGl0aW9uX3BlcnNvbm5hbGlzZV9pbXBwcmVzc1wiPjwvVHNpLUxhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC01XCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLVRleHQtQm94IFtkaXNhYmxlZF09XCJ0cnVlXCIgW2lucHV0TmFtZV09XCInaW1wcHJlc3MnXCIgWyhpbnB1dEZpZWxkKV09XCJyZXBvcnQuaW1wcmVzc1wiPjwvVHNpLVRleHQtQm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBFZGl0aW9uIHVuaXF1ZSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00IGNvbC1mb3JtLWxhYmVsIGZseFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1DaGVja0JveCBbaW5wdXROYW1lXT1cIidFZGl0aW9uVW5pcXVlJ1wiIFsoaW5wdXRGaWVsZCldPVwicmVwb3J0LmVkaXRpb25VbmlxdWVcIj48L1RzaS1DaGVja0JveD4mbmJzcDtcclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX0VkaXRpb25VbmlxdWVcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gRW5kcG9pbnQgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMyBjb2wtZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBsYWJlbFZhbHVlPVwiYWRtaW5pc3RyYXRpb25fZWRpdGlvbl9wZXJzb25uYWxpc2VfZW5kcG9pbnRcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1TZWFyY2gtQ29tYm8gKm5nSWY9XCIhaXNSZXBvcnRGb3JGaWNoZSAmJiAhZW5hYmxlTXVsdGlTZWxlY3RFbmRwb2ludHNcIiBpZC1maWVsZD1cImtleVwiIGxhYmVsLWZpZWxkPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJtb2Rlcy5lZGl0ID09PSBtb2RlIHx8IGlzRWRpdGlvblBlcnNvbm5hbGlzZSA9PT0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExhYmVsQ2hhbmdlKT1cInNlbGVjdGVkRW5kcG9pbnRDaGFuZ2UoJGV2ZW50KVwiIFsoYmluZCldPVwicmVwb3J0LmVuZFBvaW50S2V5XCJcclxuICAgICAgICAgICAgICAgICAgICBbZWxlbWVudFNvdXJjZVVybF09XCJhZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBcGlBc0tleVZhbHVlUGFpcigpXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGlzdFNvdXJjZVVybF09XCJhZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxBcGlBc0tleVZhbHVlUGFpcigpXCIgW2lzRmlsdGVyZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG5cclxuICAgICAgICAgICAgICAgIDxUc2ktU2VhcmNoLUNvbWJvICpuZ0lmPVwiY3VzdG9tUmVwb3J0aW5nTW9kZSAmJiAhZW5hYmxlTXVsdGlTZWxlY3RFbmRwb2ludHMgXCIgaWQtZmllbGQ9XCJ2YWx1ZVwiIGxhYmVsLWZpZWxkPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExhYmVsQ2hhbmdlKT1cInNlbGVjdGVkRW5kcG9pbnRDaGFuZ2UoJGV2ZW50KVwiIFsoYmluZCldPVwicmVwb3J0LmVuZFBvaW50S2V5XCJcclxuICAgICAgICAgICAgICAgICAgICBbbGlzdFNvdXJjZVVybF09XCJhZG1pbmlzdHJhdGlvbkVuZHBvaW50cy5nZXRBbGxBcGlBc0tleVZhbHVlUGFpckJ5QnVzaW5lc3NDbGFzc05hbWUodGhpcy5yZXBvcnRCdXNpbmVzc0NsYXNzKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lzRmlsdGVyZWRdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgIDwvVHNpLVNlYXJjaC1Db21ibz5cclxuXHJcbiAgICAgICAgICAgICAgICA8VHNpLVNlYXJjaC1Db21ibyAqbmdJZj1cImlzUmVwb3J0Rm9yRmljaGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGlkLWZpZWxkPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsLWZpZWxkPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsoYmluZCldPVwic2VsZWN0ZWRFbmRwb2ludHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsaXN0U291cmNlVXJsXT1cImFkbWluaXN0cmF0aW9uRW5kcG9pbnRzLmdldEFsbEFwaUFzS2V5VmFsdWVQYWlyQnlCdXNpbmVzc0NsYXNzTmFtZSh0aGlzLnJlcG9ydEJ1c2luZXNzQ2xhc3MpXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNGaWx0ZXJlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZExhYmVsQ2hhbmdlKT1cInNlbGVjdGVkRW5kcG9pbnRDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9Uc2ktU2VhcmNoLUNvbWJvPlxyXG5cclxuICAgICAgICAgICAgICAgIDxwLW11bHRpU2VsZWN0ICpuZ0lmPVwiIWlzUmVwb3J0Rm9yRmljaGUgJiYgZW5hYmxlTXVsdGlTZWxlY3RFbmRwb2ludHNcIiBbb3B0aW9uc109XCJlbmRwb2ludHNPcHRpb25zXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEVuZHBvaW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtc0xhYmVsPVwiezB9IHt7ICdlbmRwb2ludF9zZWxlY3RlZCcgfCBsb2NhbGl6ZSB9fVwiIG9wdGlvbkxhYmVsPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJ7J21pbi13aWR0aCc6ICcxODBweCd9XCIgcGxhY2Vob2xkZXI9XCJ7eyAnc2hhcmVkX3JlcG9ydGluZ19jaG9vc2VfZW5kcG9pbnRzJyB8IGxvY2FsaXplIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAob25QYW5lbFNob3cpPVwiaGFuZGxlT3BlbigpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmlsdGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvbkZpbHRlcik9XCJvbkZpbHRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5PVwiY2hpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZGVkLW11bHRpc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1vcHRpb24gcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IG9wdGlvbi52YWx1ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9wLW11bHRpU2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX2Zvcm1OYW1lXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggW2Rpc2FibGVkXT1cInRydWVcIiBbaW5wdXROYW1lXT1cIidmb3JtTmFtZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsoaW5wdXRGaWVsZCldPVwicmVwb3J0LmZvcm1OYW1lXCI+PC9Uc2ktVGV4dC1Cb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIFBhcmFtIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNHZXRCeUlkUmVxdWVzdFwiIGNsYXNzPVwiY29sLTMgY29sLWZvcm0tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktTGFiZWwgbGFiZWxWYWx1ZT1cImFkbWluaXN0cmF0aW9uX2VkaXRpb25fcGVyc29ubmFsaXNlX3BhcmFtXCI+PC9Uc2ktTGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNHZXRCeUlkUmVxdWVzdFwiIGNsYXNzPVwiY29sLTlcIj5cclxuICAgICAgICAgICAgICAgIDxUc2ktVGV4dC1Cb3ggW2lucHV0TmFtZV09XCIncGFyYW0nXCIgWyhpbnB1dEZpZWxkKV09XCJyZXBvcnQucGFyYW1cIj48L1RzaS1UZXh0LUJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3AtcGFuZWw+XHJcbiAgICA8YnIgLz5cclxuICAgIDxwLXBhbmVsIGhlYWRlcj1cIkNvbmZpZ3VyYXRpb24gUGl2b3QgR3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIFwiPlxyXG4gICAgICAgICAgICA8IS0tIENsYXNzIG9yIHZpZXcgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMyBjb2wtZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1MYWJlbCBbbGFiZWxWYWx1ZV09XCInQ2xhc3Mgb3IgdmlldydcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1UZXh0LUJveCBbaW5wdXROYW1lXT1cIidkZGRkJ1wiPjwvVHNpLVRleHQtQm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBRdWVyeSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zIGNvbC1mb3JtLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8VHNpLUxhYmVsIFtsYWJlbFZhbHVlXT1cIidRdWVyeSdcIj48L1RzaS1MYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOSBjb2wtZm9ybS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgPFRzaS1UZXh0LUFyZWEgW3Jvd3NdPVwiMlwiPjwvVHNpLVRleHQtQXJlYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3AtcGFuZWw+XHJcblxyXG4gICAgPFRzaS1Nb2RhbC1Gb290ZXIgW2NhbmNlbERpc2FibGVkXT1cInNhdmluZ1wiIFtzYXZlRGlzYWJsZWRdPVwic2F2aW5nXCIgKG9uQ2FuY2VsQ2xpY2spPVwiaGlkZSgpXCIgXHJcbiAgICBbc2hvd1NhdmVBbmRDbG9zZUJ1dHRvbl09XCJmYWxzZVwiPjwvVHNpLU1vZGFsLUZvb3Rlcj5cclxuPC90c2ktZm9ybT4iXX0=
|