@tsi-developpement/tsi-shared-ui 1.10.4 → 1.10.6
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/end-points/endpoints.mjs +4 -2
- package/esm2022/lib/models/workflow/workflow.mjs +3 -1
- package/esm2022/lib/services/workflow/workflow-configuration.service.mjs +33 -9
- package/esm2022/lib/tsi-base/components/tsi-form-base/tsi-form-base.component.mjs +91 -22
- package/esm2022/lib/tsi-components/create-or-edit-entity-informations/create-or-edit-entity-informations.component.mjs +1 -1
- package/esm2022/lib/tsi-components/create-or-edit-modele-import/create-or-edit-modele-import.component.mjs +1 -1
- package/esm2022/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.mjs +1 -1
- package/esm2022/lib/tsi-components/output-components/tsi-view-grid/tsi-view-grid.component.mjs +1 -1
- package/esm2022/lib/tsi-components/reporting/reporting.component.mjs +12 -3
- package/esm2022/lib/tsi-components/tsi-action-erp-create-or-edit/tsi-action-erp-create-or-edit.component.mjs +1 -1
- package/esm2022/lib/tsi-components/tsi-change-password/tsi-change-password.component.mjs +1 -1
- package/esm2022/lib/tsi-components/tsi-dynamic-form/create-or-edit-dynamic-form/create-or-edit-dynamic-form.component.mjs +1 -1
- package/esm2022/lib/tsi-components/tsi-form/tsi-form.component.mjs +9 -3
- package/esm2022/lib/tsi-components/tsi-generic-crud/tsi-generic-crud.component.mjs +8 -42
- package/esm2022/lib/tsi-components/tsi-notes-createoredit/tsi-notes.component.mjs +1 -1
- package/esm2022/lib/tsi-components/tsi-upload-fiche/tsi-upload-fiche.component.mjs +1 -1
- package/esm2022/lib/tsi-directives/presentation-designer-base.directive.mjs +7 -1
- package/esm2022/lib/tsi-directives/presentation-designer-tab-panel.directive.mjs +6 -1
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs +169 -82
- package/fesm2022/tsi-developpement-tsi-shared-ui.mjs.map +1 -1
- package/lib/consts/app-providers.d.ts +1 -1
- package/lib/end-points/endpoints.d.ts +3 -1
- package/lib/models/workflow/workflow.d.ts +4 -0
- package/lib/providers/shared-ui-tsi.provider.d.ts +1 -1
- package/lib/services/workflow/workflow-configuration.service.d.ts +10 -5
- package/lib/tsi-base/components/tsi-form-base/tsi-form-base.component.d.ts +9 -2
- package/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.d.ts +2 -1
- package/lib/tsi-components/reporting/reporting.component.d.ts +4 -1
- package/lib/tsi-components/tsi-action-erp-create-or-edit/tsi-action-erp-create-or-edit.component.d.ts +2 -1
- package/lib/tsi-components/tsi-form/tsi-form.component.d.ts +3 -1
- package/lib/tsi-components/tsi-generic-crud/tsi-generic-crud.component.d.ts +2 -4
- package/lib/tsi-components/tsi-upload-fiche/tsi-upload-fiche.component.d.ts +2 -1
- package/lib/tsi-directives/presentation-designer-base.directive.d.ts +1 -0
- package/package.json +1 -1
|
@@ -115,7 +115,7 @@ export class TsiNotesComponent extends TsiFormComponentBaseComponent {
|
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiNotesComponent, deps: [{ token: i1.NoteService }, { token: i1.ErrorResponseManagerService }, { token: i2.DynamicDialogRef }, { token: i2.DynamicDialogConfig }, { token: i1.TsiNotificationService }, { token: i1.TsiConfirmationService }, { token: i1.DialogDataService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
118
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiNotesComponent, selector: "app-tsi-notes", providers: [...appProviders], usesInheritance: true, ngImport: i0, template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"'shared_notes_add_notes' | localize \" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'shared_notes_class_name'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-6\" [inputName]=\"'ClassName'\" [(inputField)]=\"note.className\"\r\n [disabled]=\"true\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div presentationDesigner=\"Note\" class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'shared_notes_note'\"></Tsi-Label>\r\n <Tsi-Text-Area class=\"col-10\" [inputName]=\"'Note'\" [(inputField)]=\"note.note\" [rows]=\"5\"\r\n [cols]=\"5\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div presentationDesigner=\"avertir\" class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'shared_notes_avertir'\"></Tsi-Label>\r\n <Tsi-CheckBox class=\"col-2\" [inputName]=\"'avertir'\" [(inputField)]=\"note.avertir\"></Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </fieldset>\r\n <Tsi-Modal-Footer [showSaveAndCloseButton]=\"mode == modeRef.delete\" [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>", styles: [""], dependencies: [{ kind: "component", type: i3.TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: i4.TsiTextAreaComponent, selector: "Tsi-Text-Area", inputs: ["rows", "cols"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i5.TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: ["textBoxType", "autocomplete"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i6.TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: i7.TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate", "additionalButtonLabel", "additionalButtonIcon", "additionalButtonDisabled", "showAdditionalButton", "showSaveAndCloseButton", "mode"], outputs: ["onCancelClick", "onSaveClick", "onAdditionalButtonClick"] }, { kind: "component", type: i8.TsiModalHeaderComponent, selector: "Tsi-Modal-Header", inputs: ["inputTitle"], outputs: ["onCloseClick"] }, { kind: "component", type: i9.TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly", "statusInputDisabled"], outputs: ["onSave", "onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }, { kind: "directive", type: i10.PresentationDesignerDirective, selector: "[presentationDesigner]:not(tsi-tab-panel)" }, { kind: "pipe", type: i11.LocalizePipe, name: "localize" }] }); }
|
|
118
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiNotesComponent, selector: "app-tsi-notes", providers: [...appProviders], usesInheritance: true, ngImport: i0, template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"'shared_notes_add_notes' | localize \" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid\">\r\n <Tsi-Label class=\"col-3\" [labelValue]=\"'shared_notes_class_name'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-6\" [inputName]=\"'ClassName'\" [(inputField)]=\"note.className\"\r\n [disabled]=\"true\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div presentationDesigner=\"Note\" class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'shared_notes_note'\"></Tsi-Label>\r\n <Tsi-Text-Area class=\"col-10\" [inputName]=\"'Note'\" [(inputField)]=\"note.note\" [rows]=\"5\"\r\n [cols]=\"5\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div presentationDesigner=\"avertir\" class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'shared_notes_avertir'\"></Tsi-Label>\r\n <Tsi-CheckBox class=\"col-2\" [inputName]=\"'avertir'\" [(inputField)]=\"note.avertir\"></Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </fieldset>\r\n <Tsi-Modal-Footer [showSaveAndCloseButton]=\"mode == modeRef.delete\" [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>", styles: [""], dependencies: [{ kind: "component", type: i3.TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: i4.TsiTextAreaComponent, selector: "Tsi-Text-Area", inputs: ["rows", "cols"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i5.TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: ["textBoxType", "autocomplete"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i6.TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: i7.TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate", "additionalButtonLabel", "additionalButtonIcon", "additionalButtonDisabled", "showAdditionalButton", "showSaveAndCloseButton", "mode"], outputs: ["onCancelClick", "onSaveClick", "onAdditionalButtonClick"] }, { kind: "component", type: i8.TsiModalHeaderComponent, selector: "Tsi-Modal-Header", inputs: ["inputTitle"], outputs: ["onCloseClick"] }, { kind: "component", type: i9.TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "showManageWorkflowButton", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly", "statusInputDisabled"], outputs: ["onSave", "openWorkflow", "onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }, { kind: "directive", type: i10.PresentationDesignerDirective, selector: "[presentationDesigner]:not(tsi-tab-panel)" }, { kind: "pipe", type: i11.LocalizePipe, name: "localize" }] }); }
|
|
119
119
|
}
|
|
120
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiNotesComponent, decorators: [{
|
|
121
121
|
type: Component,
|
|
@@ -189,7 +189,7 @@ export class TsiUploadFicheComponent extends TsiFormComponentBaseComponent {
|
|
|
189
189
|
reader.readAsArrayBuffer(file);
|
|
190
190
|
}
|
|
191
191
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiUploadFicheComponent, deps: [{ token: i1.FichierService }, { token: i2.ErrorResponseManagerService }, { token: i3.DynamicDialogRef }, { token: i3.DynamicDialogConfig }, { token: i2.TsiNotificationService }, { token: i2.TsiConfirmationService }, { token: i2.DialogDataService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
192
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiUploadFicheComponent, selector: "app-tsi-upload-fiche", outputs: { onSave: "onSave" }, providers: [...appProviders], usesInheritance: true, ngImport: i0, template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"'upload_fichier' | localize \" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_TypeFichier'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [listSourceUrl]=\"typeFichierListUrl\" [(bind)]=\"fichier.typeFichier\"\r\n id-field=\"uid\" [isFiltered]=\"true\" label-field=\"libelle\" \r\n [elementSourceUrl]=\"administrationEndpoints.getTypeFichierMinimal\"\r\n [businessClass]=\"businessClassNames.TypeFichier\"\r\n >\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_TableLiee'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'tableLiee'\" [(inputField)]=\"fichier.tableLiee\"\r\n [disabled]=\"isDisable\"></Tsi-Text-Box>\r\n <!-- <Tsi-Search-Combo\r\n class=\"col-6\"\r\n [(bind)]=\"fichier.tableLiee\"\r\n id-field=\"id\"\r\n label-field=\"value\"\r\n (datasource-loaded)=\"onDataLoaded()\">\r\n </Tsi-Search-Combo> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_Nom'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'nom'\" [(inputField)]=\"fichier.nom\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_DateFichier'\"></Tsi-Label>\r\n <Tsi-Date-Picker class=\"col-8\" [inputName]=\"'dateFichier'\"\r\n [(inputField)]=\"fichier.dateFichier\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_Version'\"></Tsi-Label>\r\n <Tsi-Integer class=\"col-8\" [inputName]=\"'version'\" [(inputField)]=\"fichier.version\"\r\n [disabled]=\"true\"></Tsi-Integer>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'parambase_param_fichier_Objet'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-10\" [inputName]=\"'Objet'\" [(inputField)]=\"fichier.objet\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'parambase_param_fichier_Description'\"></Tsi-Label>\r\n <Tsi-Text-Area class=\"col-10\" [inputName]=\"'description'\" [(inputField)]=\"fichier.description\" [rows]=\"5\"\r\n [cols]=\"5\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n\r\n <Tsi-Label for=\"isFileStorage\" class=\"col-1\" [labelValue]=\"'parambase_param_fichier_isFileStorage'\"></Tsi-Label>\r\n <Tsi-CheckBox id=\"isFileStorage\" class=\"col-5\" [isBinary]=\"true\"\r\n [inputName]=\"'isFileStorage'\" [disabled]=\"true\" [inputField]=\"fichier.isFileStorage\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <div class=\"col-11\">\r\n <Tsi-File-Manager \r\n [showFileUpload]=\"true\" \r\n [(inputField)]=\"fichier.contenu\"\r\n [(fileName)]=\"fichier.nomFichierComplet\" \r\n name=\"fileFichier\" \r\n id=\"fileUploading\" \r\n inputName=\"contenu\" \r\n accept=\"\"\r\n [maxFileSize]=\"10485760\" \r\n [multiple]=\"false\" \r\n [disabled]=\"isEditMode()\"\r\n [showDownloadButton]=\"true\"\r\n [showCancelButton]=\"false\"\r\n [showUploadButton]=\"false\" \r\n [exploreOnDownload]=\"true\"\r\n (onSelectFileManager)=\"onFileSelected($event)\"\r\n ></Tsi-File-Manager>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n \r\n <!-- <p-fileUpload #fileUploadFichier name=\"demo[]\" (onBeforeUpload)=\"onImportFile($event)\"\r\n (onSelect)=\"onFileSelected($event)\" (onClear)=\"onClear($event)\" (onRemove)=\"onRemove($event)\" [multiple]=\"false\"\r\n [maxFileSize]=\"1000000\"\r\n [invalidFileSizeMessageSummary]=\"'shared_file_upload_invalid_file_size_message_summary' | localize\"\r\n [invalidFileSizeMessageDetail]=\"'shared_file_upload_invalid_file_size_message_detail' | localize\"\r\n [invalidFileTypeMessageSummary]=\"'shared_file_upload_invalid_file_type_message_summary' | localize\"\r\n [invalidFileLimitMessageDetail]=\"'shared_file_upload_invalid_file_limit_message_detail' | localize\"\r\n [invalidFileLimitMessageSummary]=\"'shared_file_upload_invalid_file_limit_message_summary' | localize\"\r\n [invalidFileTypeMessageDetail]=\"'shared_file_upload_invalid_file_type_message_detail' | localize\"\r\n [chooseIcon]=\"'pi pi-paperclip'\" cancelStyleClass=\"p-button-secondary\" uploadStyleClass=\"p-button-help\"\r\n removeStyleClass=\"p-button-danger\" [chooseLabel]=\"'shared_reporting_choose_report_file' | localize\"\r\n [uploadLabel]=\"'shared_reporting_import_report' | localize\"\r\n [cancelLabel]=\"'shared_reporting_cancel_choose_report_file' | localize\" [showUploadButton]=\"false\">\r\n <ng-template *ngIf=\"toUploadFileData\" pTemplate=\"fileupload-content\">\r\n </ng-template>\r\n </p-fileUpload> -->\r\n\r\n\r\n </div>\r\n </fieldset>\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>", styles: [""], dependencies: [{ kind: "component", type: i4.TsiSearchComboComponent, selector: "Tsi-Search-Combo", inputs: ["elementSourceUrl", "listSourceUrl", "listSourceParams", "id-field", "label-field", "multiple", "sort", "showClear", "reloadDataSource", "isFiltered", "selectedLabel", "maxWidth", "businessClass", "searchDebounceTime", "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: i5.TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: i6.TsiDatePickerComponent, selector: "Tsi-Date-Picker", inputs: ["required", "showTime", "showButtonBar"], outputs: ["inputFieldChange"] }, { kind: "component", type: i7.TsiIntegerComponent, selector: "Tsi-Integer", inputs: ["class", "minValue", "maxValue", "delayChangeTime"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i8.TsiTextAreaComponent, selector: "Tsi-Text-Area", inputs: ["rows", "cols"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i9.TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: ["textBoxType", "autocomplete"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i10.TsiFileManagerComponent, selector: "Tsi-File-Manager", inputs: ["fileName", "name", "id", "accept", "maxFileSize", "multiple", "exploreOnDownload", "showUploadButton", "showCancelButton", "showDownloadButton", "chooseIcon", "chooseLabel", "showSelectButton", "showFileUpload", "showPreviewButton", "contentHeight"], outputs: ["onSelectFileManager", "onClear", "onRemove", "inputFieldChange", "fileNameChange"] }, { kind: "component", type: i11.TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: i12.TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate", "additionalButtonLabel", "additionalButtonIcon", "additionalButtonDisabled", "showAdditionalButton", "showSaveAndCloseButton", "mode"], outputs: ["onCancelClick", "onSaveClick", "onAdditionalButtonClick"] }, { kind: "component", type: i13.TsiModalHeaderComponent, selector: "Tsi-Modal-Header", inputs: ["inputTitle"], outputs: ["onCloseClick"] }, { kind: "component", type: i14.TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly", "statusInputDisabled"], outputs: ["onSave", "onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }, { kind: "pipe", type: i15.LocalizePipe, name: "localize" }] }); }
|
|
192
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TsiUploadFicheComponent, selector: "app-tsi-upload-fiche", outputs: { onSave: "onSave" }, providers: [...appProviders], usesInheritance: true, ngImport: i0, template: "<tsi-form class=\"form-horizontal\" autocomplete=\"off\" (onSubmit)=\"save()\" [isLoading]=\"isloading\">\r\n <Tsi-Modal-Header [inputTitle]=\"'upload_fichier' | localize \" (onCloseClick)=\"hide()\">\r\n </Tsi-Modal-Header>\r\n <fieldset [disabled]=\"isDeleteMode() || isConsultMode() \">\r\n <div class=\"modal-body\">\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_TypeFichier'\"></Tsi-Label>\r\n <Tsi-Search-Combo class=\"col-8\" [listSourceUrl]=\"typeFichierListUrl\" [(bind)]=\"fichier.typeFichier\"\r\n id-field=\"uid\" [isFiltered]=\"true\" label-field=\"libelle\" \r\n [elementSourceUrl]=\"administrationEndpoints.getTypeFichierMinimal\"\r\n [businessClass]=\"businessClassNames.TypeFichier\"\r\n >\r\n </Tsi-Search-Combo>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_TableLiee'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'tableLiee'\" [(inputField)]=\"fichier.tableLiee\"\r\n [disabled]=\"isDisable\"></Tsi-Text-Box>\r\n <!-- <Tsi-Search-Combo\r\n class=\"col-6\"\r\n [(bind)]=\"fichier.tableLiee\"\r\n id-field=\"id\"\r\n label-field=\"value\"\r\n (datasource-loaded)=\"onDataLoaded()\">\r\n </Tsi-Search-Combo> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_Nom'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-8\" [inputName]=\"'nom'\" [(inputField)]=\"fichier.nom\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_DateFichier'\"></Tsi-Label>\r\n <Tsi-Date-Picker class=\"col-8\" [inputName]=\"'dateFichier'\"\r\n [(inputField)]=\"fichier.dateFichier\"></Tsi-Date-Picker>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-6\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-2\" [labelValue]=\"'parambase_param_fichier_Version'\"></Tsi-Label>\r\n <Tsi-Integer class=\"col-8\" [inputName]=\"'version'\" [(inputField)]=\"fichier.version\"\r\n [disabled]=\"true\"></Tsi-Integer>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'parambase_param_fichier_Objet'\"></Tsi-Label>\r\n <Tsi-Text-Box class=\"col-10\" [inputName]=\"'Objet'\" [(inputField)]=\"fichier.objet\"></Tsi-Text-Box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <Tsi-Label class=\"col-1\" [labelValue]=\"'parambase_param_fichier_Description'\"></Tsi-Label>\r\n <Tsi-Text-Area class=\"col-10\" [inputName]=\"'description'\" [(inputField)]=\"fichier.description\" [rows]=\"5\"\r\n [cols]=\"5\"></Tsi-Text-Area>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n\r\n <Tsi-Label for=\"isFileStorage\" class=\"col-1\" [labelValue]=\"'parambase_param_fichier_isFileStorage'\"></Tsi-Label>\r\n <Tsi-CheckBox id=\"isFileStorage\" class=\"col-5\" [isBinary]=\"true\"\r\n [inputName]=\"'isFileStorage'\" [disabled]=\"true\" [inputField]=\"fichier.isFileStorage\">\r\n </Tsi-CheckBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid\">\r\n <div class=\"col-12\">\r\n <div class=\"grid flex\">\r\n <div class=\"col-11\">\r\n <Tsi-File-Manager \r\n [showFileUpload]=\"true\" \r\n [(inputField)]=\"fichier.contenu\"\r\n [(fileName)]=\"fichier.nomFichierComplet\" \r\n name=\"fileFichier\" \r\n id=\"fileUploading\" \r\n inputName=\"contenu\" \r\n accept=\"\"\r\n [maxFileSize]=\"10485760\" \r\n [multiple]=\"false\" \r\n [disabled]=\"isEditMode()\"\r\n [showDownloadButton]=\"true\"\r\n [showCancelButton]=\"false\"\r\n [showUploadButton]=\"false\" \r\n [exploreOnDownload]=\"true\"\r\n (onSelectFileManager)=\"onFileSelected($event)\"\r\n ></Tsi-File-Manager>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n \r\n <!-- <p-fileUpload #fileUploadFichier name=\"demo[]\" (onBeforeUpload)=\"onImportFile($event)\"\r\n (onSelect)=\"onFileSelected($event)\" (onClear)=\"onClear($event)\" (onRemove)=\"onRemove($event)\" [multiple]=\"false\"\r\n [maxFileSize]=\"1000000\"\r\n [invalidFileSizeMessageSummary]=\"'shared_file_upload_invalid_file_size_message_summary' | localize\"\r\n [invalidFileSizeMessageDetail]=\"'shared_file_upload_invalid_file_size_message_detail' | localize\"\r\n [invalidFileTypeMessageSummary]=\"'shared_file_upload_invalid_file_type_message_summary' | localize\"\r\n [invalidFileLimitMessageDetail]=\"'shared_file_upload_invalid_file_limit_message_detail' | localize\"\r\n [invalidFileLimitMessageSummary]=\"'shared_file_upload_invalid_file_limit_message_summary' | localize\"\r\n [invalidFileTypeMessageDetail]=\"'shared_file_upload_invalid_file_type_message_detail' | localize\"\r\n [chooseIcon]=\"'pi pi-paperclip'\" cancelStyleClass=\"p-button-secondary\" uploadStyleClass=\"p-button-help\"\r\n removeStyleClass=\"p-button-danger\" [chooseLabel]=\"'shared_reporting_choose_report_file' | localize\"\r\n [uploadLabel]=\"'shared_reporting_import_report' | localize\"\r\n [cancelLabel]=\"'shared_reporting_cancel_choose_report_file' | localize\" [showUploadButton]=\"false\">\r\n <ng-template *ngIf=\"toUploadFileData\" pTemplate=\"fileupload-content\">\r\n </ng-template>\r\n </p-fileUpload> -->\r\n\r\n\r\n </div>\r\n </fieldset>\r\n <Tsi-Modal-Footer [cancelDisabled]=\"saving\" [saveDisabled]=\"isSubmitDisabled()\"\r\n (onCancelClick)=\"hide()\"></Tsi-Modal-Footer>\r\n</tsi-form>", styles: [""], dependencies: [{ kind: "component", type: i4.TsiSearchComboComponent, selector: "Tsi-Search-Combo", inputs: ["elementSourceUrl", "listSourceUrl", "listSourceParams", "id-field", "label-field", "multiple", "sort", "showClear", "reloadDataSource", "isFiltered", "selectedLabel", "maxWidth", "businessClass", "searchDebounceTime", "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: i5.TsiCheckboxComponent, selector: "Tsi-CheckBox", inputs: ["class", "isBinary", "checked", "tooltipText", "tooltipPosition"], outputs: ["inputFieldChange", "checkedChange"] }, { kind: "component", type: i6.TsiDatePickerComponent, selector: "Tsi-Date-Picker", inputs: ["required", "showTime", "showButtonBar"], outputs: ["inputFieldChange"] }, { kind: "component", type: i7.TsiIntegerComponent, selector: "Tsi-Integer", inputs: ["class", "minValue", "maxValue", "delayChangeTime"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i8.TsiTextAreaComponent, selector: "Tsi-Text-Area", inputs: ["rows", "cols"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i9.TsiTextBoxComponent, selector: "Tsi-Text-Box", inputs: ["textBoxType", "autocomplete"], outputs: ["newItemEvent", "inputFieldChange"] }, { kind: "component", type: i10.TsiFileManagerComponent, selector: "Tsi-File-Manager", inputs: ["fileName", "name", "id", "accept", "maxFileSize", "multiple", "exploreOnDownload", "showUploadButton", "showCancelButton", "showDownloadButton", "chooseIcon", "chooseLabel", "showSelectButton", "showFileUpload", "showPreviewButton", "contentHeight"], outputs: ["onSelectFileManager", "onClear", "onRemove", "inputFieldChange", "fileNameChange"] }, { kind: "component", type: i11.TsiLabelComponent, selector: "Tsi-Label", inputs: ["labelValue", "styleClass", "infoText"] }, { kind: "component", type: i12.TsiModalFooterComponent, selector: "Tsi-Modal-Footer", inputs: ["cancelDisabled", "saveDisabled", "cancelLabel", "saveLabel", "isConsult", "isDuplicate", "isOnlyCreate", "additionalButtonLabel", "additionalButtonIcon", "additionalButtonDisabled", "showAdditionalButton", "showSaveAndCloseButton", "mode"], outputs: ["onCancelClick", "onSaveClick", "onAdditionalButtonClick"] }, { kind: "component", type: i13.TsiModalHeaderComponent, selector: "Tsi-Modal-Header", inputs: ["inputTitle"], outputs: ["onCloseClick"] }, { kind: "component", type: i14.TsiFormComponent, selector: "tsi-form", inputs: ["class", "autocomplete", "optionalEndpoints", "disabled", "isLoading", "modalSize", "showManageWorkflowButton", "formEndpoint", "formName", "isReportingToolbarDisabled", "isCreateOnly", "statusInputDisabled"], outputs: ["onSave", "openWorkflow", "onSubmit", "onSubmitFormWorkflowConfiguration", "formRefChange", "onStatusChange"] }, { kind: "pipe", type: i15.LocalizePipe, name: "localize" }] }); }
|
|
193
193
|
}
|
|
194
194
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TsiUploadFicheComponent, decorators: [{
|
|
195
195
|
type: Component,
|
|
@@ -23,6 +23,7 @@ export class PresentationDesignerDirectiveBase {
|
|
|
23
23
|
this._workflowConfigurationService = _workflowConfigurationService;
|
|
24
24
|
this._presentationDesignerBaseService = _presentationDesignerBaseService;
|
|
25
25
|
this.treated = false;
|
|
26
|
+
this.checkboxesAdded = false;
|
|
26
27
|
this.tempTemplateRef = el.nativeElement;
|
|
27
28
|
this.nexSiblingOfElement = this.el.nativeElement?.nextSibling;
|
|
28
29
|
this.tempTemplateParentNode = this.el.nativeElement?.parentNode;
|
|
@@ -135,6 +136,7 @@ export class PresentationDesignerDirectiveBase {
|
|
|
135
136
|
}
|
|
136
137
|
this.renderer.removeClass(this.el.nativeElement, 'config-mode-border');
|
|
137
138
|
this.viewContainerRef.clear();
|
|
139
|
+
this.checkboxesAdded = false;
|
|
138
140
|
}
|
|
139
141
|
removeElement() {
|
|
140
142
|
if (!this.tempTemplateRef) {
|
|
@@ -207,6 +209,10 @@ export class PresentationDesignerDirectiveBase {
|
|
|
207
209
|
});
|
|
208
210
|
}
|
|
209
211
|
addCheckboxesToInputs(presentationSetting) {
|
|
212
|
+
if (this.checkboxesAdded) {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
this.checkboxesAdded = true;
|
|
210
216
|
if (!this._workflowConfigurationService.isDesginModeFromWorkflow) {
|
|
211
217
|
this.showHideCheckboxComponentRef = this.viewContainerRef.createComponent(TsiCheckboxComponent);
|
|
212
218
|
this.showHideCheckboxComponentRef.setInput("inputName", this.presentationDesigner);
|
|
@@ -239,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
239
245
|
}], presentationDesignerBase: [{
|
|
240
246
|
type: Input
|
|
241
247
|
}] } });
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGF0aW9uLWRlc2lnbmVyLWJhc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1kaXJlY3RpdmVzL3ByZXNlbnRhdGlvbi1kZXNpZ25lci1iYXNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLFNBQVMsRUFBYyxLQUFLLEVBQWlELE1BQU0sZUFBZSxDQUFDO0FBRXpJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBSTlHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBTTNDLE1BQU0sT0FBTyxpQ0FBaUM7SUFHNUMsSUFBYSxvQkFBb0IsQ0FBQyxLQUF5QjtRQUV6RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFhLHdCQUF3QixDQUFDLEtBQXlCO1FBRTdELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBRXRCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFVRCxZQUFzQixFQUFjLEVBQ3hCLFFBQW1CLEVBQ25CLGdCQUFrQyxFQUNsQyxvQkFBeUMsRUFDekMsNkJBQTJELEVBQzNELGdDQUFpRTtRQUx2RCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBOEI7UUFDM0QscUNBQWdDLEdBQWhDLGdDQUFnQyxDQUFpQztRQVI3RSxZQUFPLEdBQVksS0FBSyxDQUFBO1FBVXRCLElBQUksQ0FBQyxl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O1FBQzdHLENBQUM7UUFJRCxJQUFJLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBR2hFLE1BQU0sZUFBZSxHQUFHLG1CQUFtQixFQUFFLDBCQUEwQjtpQkFDcEUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxjQUFjLElBQUksSUFBSSxDQUFDO1lBRWhGLE1BQU0sY0FBYyxHQUFHLG1CQUFtQixFQUFFLDBCQUEwQjtpQkFDbkUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxjQUFjLElBQUksSUFBSSxDQUFDO1lBRWhGLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUE7UUFDckUsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDdEUsQ0FBQzsrR0F2U1UsaUNBQWlDO21HQUFqQyxpQ0FBaUM7OzRGQUFqQyxpQ0FBaUM7a0JBSDdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtDQUErQztpQkFDMUQ7aVFBSWMsb0JBQW9CO3NCQUFoQyxLQUFLO2dCQUtPLHdCQUF3QjtzQkFBcEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudFJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFByZXNlbnRhdGlvblNldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBUc2lDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uL3RzaS1jb21wb25lbnRzL2lucHV0LWNvbXBvbmVudHMvdHNpLWNoZWNrYm94L3RzaS1jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMYXlvdXRIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbGF5b3V0L2xheW91dC1oZWxwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFdvcmtmbG93Q29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy93b3JrZmxvdy93b3JrZmxvdy1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcmVzZW50YXRpb25EZXNpZ25lckJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcHJlc2VudGF0aW9uLXNldHRpbmcvcHJlc2VudGF0aW9uLWRlc2lnbmVyLWJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uL2VudW1zJztcclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1twcmVzZW50YXRpb25EZXNpZ25lckJhc2VdOm5vdCh0c2ktdGFiLXBhbmVsKSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFByZXNlbnRhdGlvbkRlc2lnbmVyRGlyZWN0aXZlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxucHJpdmF0ZSBfcHJlc2VudGF0aW9uRGVzaWduZXIhOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBwcmVzZW50YXRpb25EZXNpZ25lcih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKVxyXG4gIHtcclxuICAgIHRoaXMuX3ByZXNlbnRhdGlvbkRlc2lnbmVyID0gdmFsdWU7XHJcbiAgfVxyXG4gIFxyXG4gIEBJbnB1dCgpIHNldCBwcmVzZW50YXRpb25EZXNpZ25lckJhc2UodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZClcclxuICB7XHJcbiAgICB0aGlzLl9wcmVzZW50YXRpb25EZXNpZ25lciA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHByZXNlbnRhdGlvbkRlc2lnbmVyKCk6IHN0cmluZyB8IHVuZGVmaW5lZFxyXG4gIHtcclxuICAgIHJldHVybiB0aGlzLl9wcmVzZW50YXRpb25EZXNpZ25lcjtcclxuICB9XHJcblxyXG4gIHNob3dIaWRlQ2hlY2tib3hDb21wb25lbnRSZWY6IGFueVxyXG4gIGRpc2FibGVkQ2hlY2tib3hDb21wb25lbnRSZWY6IGFueVxyXG4gIHRlbXBUZW1wbGF0ZVJlZjogYW55XHJcbiAgdGVtcFRlbXBsYXRlUGFyZW50Tm9kZTogYW55XHJcbiAgbmV4U2libGluZ09mRWxlbWVudDogYW55XHJcbiAgdHJlYXRlZDogYm9vbGVhbiA9IGZhbHNlXHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByb3RlY3RlZCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJvdGVjdGVkIF9sYXlvdXRIZWxwZXJTZXJ2aWNlOiBMYXlvdXRIZWxwZXJTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIF93b3JrZmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlOiBXb3JrZmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIF9wcmVzZW50YXRpb25EZXNpZ25lckJhc2VTZXJ2aWNlOiBQcmVzZW50YXRpb25EZXNpZ25lckJhc2VTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLnRlbXBUZW1wbGF0ZVJlZiA9IGVsLm5hdGl2ZUVsZW1lbnRcclxuICAgIHRoaXMubmV4U2libGluZ09mRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudD8ubmV4dFNpYmxpbmdcclxuICAgIHRoaXMudGVtcFRlbXBsYXRlUGFyZW50Tm9kZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudD8ucGFyZW50Tm9kZVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2xheW91dEhlbHBlclNlcnZpY2UuaXNEZXNpZ25Nb2RlKSB7XHJcblxyXG4gICAgICBpZiAoIXRoaXMudGVtcFRlbXBsYXRlUmVmKSB7XHJcbiAgICAgICAgdGhpcy50ZW1wVGVtcGxhdGVSZWYgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF0aGlzLm5leFNpYmxpbmdPZkVsZW1lbnQpIHtcclxuICAgICAgICB0aGlzLm5leFNpYmxpbmdPZkVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ/Lm5leHRTaWJsaW5nXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghdGhpcy50ZW1wVGVtcGxhdGVQYXJlbnROb2RlKSB7XHJcbiAgICAgICAgdGhpcy50ZW1wVGVtcGxhdGVQYXJlbnROb2RlID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Py5wYXJlbnROb2RlXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGUsIHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fcHJlc2VudGF0aW9uRGVzaWduZXJCYXNlU2VydmljZS5yZWdpc3Rlcih0aGlzKVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRW1wdHlBbmNlc3RvcnMobm9kZTogSFRNTEVsZW1lbnQgfCBudWxsKSB7XHJcbiAgICAvLyBpZiAoIW5vZGUpIHJldHVybjtcclxuXHJcbiAgICAvLyAvLyBDaGVjayBpZiB0aGUgbm9kZSBoYXMgYW55IGVsZW1lbnQgY2hpbGRyZW5cclxuICAgIC8vIGNvbnN0IGhhc0VsZW1lbnRDaGlsZHJlbiA9IEFycmF5LmZyb20obm9kZS5jaGlsZHJlbikuc29tZShcclxuICAgIC8vICAgKGNoaWxkOiBhbnkpID0+IGNoaWxkLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERVxyXG4gICAgLy8gKTtcclxuXHJcbiAgICAvLyBpZiAoIWhhc0VsZW1lbnRDaGlsZHJlbikge1xyXG4gICAgLy8gICB0cnkge1xyXG4gICAgLy8gICAgIGNvbnN0IHBhcmVudCA9IG5vZGUucGFyZW50Tm9kZTtcclxuICAgIC8vICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHBhcmVudCwgbm9kZSk7XHJcbiAgICAvLyAgICAgdGhpcy5yZW1vdmVFbXB0eUFuY2VzdG9ycyhwYXJlbnQgYXMgSFRNTEVsZW1lbnQpO1xyXG4gICAgLy8gICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8gICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciByZW1vdmluZyBlbXB0eSBhbmNlc3RvcjpcIiwgZXJyb3IpO1xyXG5cclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wcmVzZW50YXRpb25EZXNpZ25lckJhc2VTZXJ2aWNlLnVucmVnaXN0ZXIodGhpcylcclxuICB9XHJcblxyXG4gIGRpc2FibGVJbnB1dHMoKSB7XHJcbiAgICB0aGlzLmV4ZWN1dGUodHJ1ZSlcclxuXHJcbiAgICBjb25zdCB0c2lDb21wb25lbnRzU2VsZWN0b3JzID0gWydUc2ktVGV4dC1Cb3gnLCAnVHNpLUNoZWNrQm94JywgJ1RzaS1DdXJyZW5jeS1PdGhlci1JbnB1dCcsXHJcbiAgICAgICdUc2ktQ3VycmVuY3ktU29jaWV0ZS1JbnB1dCcsICdUc2ktRGF0ZS1QaWNrZXInLCAnVHNpLURlY2ltYWwtSW5wdXQnLFxyXG4gICAgICAnVHNpLUZpbGUtTWFuYWdlcicsICdUc2ktRm9ybXVsYS1Cb3gnLCAnVHNpLUludGVnZXInLCAnVHNpLVJhZGlvLUJ1dHRvbicsICdUc2ktUmF0ZS1JbnB1dCcsXHJcbiAgICAgICdUc2ktU2VhcmNoLUNvbWJvJywgJ1RzaS1UZXh0LUFyZWEnLCAndHNpLXRpbWUtcGlja2VyJywgJ1RzaS1CdXR0b24nXHJcbiAgICBdXHJcblxyXG4gICAgdHNpQ29tcG9uZW50c1NlbGVjdG9ycy5mb3JFYWNoKHNlbGVjdG9yID0+IHtcclxuICAgICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XHJcbiAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVsOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgZWw/LmNsYXNzTGlzdD8uYWRkKCdkaXNhYmxlZC1pbnB1dCcpO1xyXG4gICAgICAgIGVsPy5zZXRBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiLCBcIlwiKVxyXG4gICAgICAgIGlmIChzZWxlY3RvciA9PSAnVHNpLVNlYXJjaC1Db21ibycpIHtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gZWxzZSBpZiAoc2VsZWN0b3IgPT0gJ1RzaS1DaGVja0JveCcpIHtcclxuICAgICAgICAvLyAgIGNvbnN0IGlucHV0RWwgPSBlbC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0nKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgICAgIC8vICAgY29uc3QgaXNDaGVja2VkID0gaW5wdXRFbD8uY2hlY2tlZDtcclxuICAgICAgICAvLyAgIGNvbnNvbGUubG9nKCdDaGVja2VkPycsIGlzQ2hlY2tlZCk7XHJcbiAgICAgICAgLy8gICBjb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIC8vICAgc3Bhbi5jbGFzc0xpc3QuYWRkKCd0c2ktcmVhZG9ubHktc3BhbicpO1xyXG4gICAgICAgIC8vICAgc3Bhbi5jbGFzc0xpc3QuYWRkKCd3LWZ1bGwnKVxyXG4gICAgICAgIC8vICAgc3Bhbi5jbGFzc0xpc3QuYWRkKCd0c2ktcmVhZG9ubHktc3BhbicsICd3LWZ1bGwnLCAncGknKTtcclxuICAgICAgICAvLyAgIHNwYW4uY2xhc3NMaXN0LmFkZChpc0NoZWNrZWQgPyAncGktY2hlY2stc3F1YXJlJyA6ICdwaS1zcXVhcmUnKTtcclxuXHJcbiAgICAgICAgLy8gICBjb25zdCBwYXJlbnQgPSBlbC5wYXJlbnROb2RlO1xyXG4gICAgICAgIC8vICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgIC8vICAgICBwYXJlbnQucmVwbGFjZUNoaWxkKHNwYW4sIGVsKTtcclxuICAgICAgICAvLyAgIH1cclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gZWxzZSB7XHJcbiAgICAgICAgLy8gICAvL2NvbnN0IHZhbHVlID0gZWwuZ2V0QXR0cmlidXRlKCduZy1yZWZsZWN0LW1vZGVsJyk7XHJcblxyXG4gICAgICAgIC8vICAgY29uc3QgaW5wdXRWYWx1ZSA9IChlbD8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJpbnB1dFwiKVswXSBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZVxyXG5cclxuICAgICAgICAvLyAgIGNvbnNvbGUubG9nKFwiaW5wdXRWYWx1ZSA9PiBcIiwgaW5wdXRWYWx1ZSlcclxuXHJcbiAgICAgICAgLy8gICBjb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIC8vICAgc3Bhbi5pbm5lclRleHQgPSBpbnB1dFZhbHVlID8/ICcnO1xyXG4gICAgICAgIC8vICAgc3Bhbi5jbGFzc0xpc3QuYWRkKCd0c2ktcmVhZG9ubHktc3BhbicpO1xyXG4gICAgICAgIC8vICAgc3Bhbi5jbGFzc0xpc3QuYWRkKCd3LWZ1bGwnKVxyXG5cclxuICAgICAgICAvLyAgIGNvbnN0IHBhcmVudCA9IGVsLnBhcmVudE5vZGU7XHJcbiAgICAgICAgLy8gICBpZiAocGFyZW50KSB7XHJcbiAgICAgICAgLy8gICAgIHBhcmVudC5yZXBsYWNlQ2hpbGQoc3BhbiwgZWwpO1xyXG4gICAgICAgIC8vICAgfVxyXG4gICAgICAgIC8vIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29tcG9uZW50SW5zdGFuY2UoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBhbnkpOiBhbnkge1xyXG4gICAgLy8gR2V0IHRoZSBjb21wb25lbnQgaW5zdGFuY2UgZnJvbSBBbmd1bGFyJ3MgY29udGV4dFxyXG4gICAgaWYgKGVsZW1lbnQuX19uZ0NvbnRleHRfXykge1xyXG4gICAgICBjb25zdCBjb250ZXh0ID0gZWxlbWVudC5fX25nQ29udGV4dF9fO1xyXG4gICAgICAvLyBUaGUgY29tcG9uZW50IGluc3RhbmNlIGlzIHVzdWFsbHkgdGhlIGZpcnN0IG5vbi1hcnJheS9ub24tb2JqZWN0IGluIGNvbnRleHRcclxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGNvbnRleHQpIHtcclxuICAgICAgICBpZiAoaXRlbSAmJiB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSkpIHtcclxuICAgICAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBpbnNlcnRFbGVtZW50KCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUodGhpcy50ZW1wVGVtcGxhdGVQYXJlbnROb2RlLCB0aGlzLnRlbXBUZW1wbGF0ZVJlZiwgdGhpcy5uZXhTaWJsaW5nT2ZFbGVtZW50KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVTaG93SGlkZUNoZWNrYm94KCkge1xyXG4gICAgaWYgKHRoaXMuc2hvd0hpZGVDaGVja2JveENvbXBvbmVudFJlZikge1xyXG4gICAgICB0aGlzLnNob3dIaWRlQ2hlY2tib3hDb21wb25lbnRSZWYuZGVzdHJveSgpOyAvLyBkZXN0cm95cyB0aGUgY29tcG9uZW50IGluc3RhbmNlXHJcbiAgICAgIHRoaXMuc2hvd0hpZGVDaGVja2JveENvbXBvbmVudFJlZiA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2NvbmZpZy1tb2RlLWJvcmRlcicpO1xyXG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVFbGVtZW50KCkge1xyXG4gICAgaWYgKCF0aGlzLnRlbXBUZW1wbGF0ZVJlZikge1xyXG4gICAgICB0aGlzLnRlbXBUZW1wbGF0ZVJlZiA9IHRoaXMuZWwubmF0aXZlRWxlbWVudFxyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5uZXhTaWJsaW5nT2ZFbGVtZW50KSB7XHJcbiAgICAgIHRoaXMubmV4U2libGluZ09mRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudD8ubmV4dFNpYmxpbmdcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMudGVtcFRlbXBsYXRlUGFyZW50Tm9kZSkge1xyXG4gICAgICB0aGlzLnRlbXBUZW1wbGF0ZVBhcmVudE5vZGUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ/LnBhcmVudE5vZGVcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlLCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgZXhlY3V0ZShjb25kaXRpb246IGJvb2xlYW4sIGNvbmZpZ3VyYXRpb24gPzogc3RyaW5nKSB7XHJcbiAgICBpZiAoY29uZGl0aW9uKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUodGhpcy50ZW1wVGVtcGxhdGVQYXJlbnROb2RlLCB0aGlzLnRlbXBUZW1wbGF0ZVJlZiwgdGhpcy5uZXhTaWJsaW5nT2ZFbGVtZW50KTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZSwgdGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuICAgIHRoaXMudHJlYXRlZCA9IHRydWVcclxuICB9XHJcblxyXG5cclxuICBnZXRDb21wb25lbnRTZWxlY3RvcigpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgY29tcG9uZW50SW5zdGFuY2UgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3IuZ2V0KHRoaXMuZ2V0Q29tcG9uZW50VHlwZSgpLCBudWxsKTtcclxuICAgIHJldHVybiBjb21wb25lbnRJbnN0YW5jZT8uY29uc3RydWN0b3I/Lsm1Y21wPy5zZWxlY3RvcnM/LlswXT8uWzBdIHx8IFwiXCI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbXBvbmVudFR5cGUoKTogYW55IHtcclxuICAgIHJldHVybiAodGhpcy52aWV3Q29udGFpbmVyUmVmIGFzIGFueSk/Ll9ob3N0TFZpZXc/Lls4XT8uY29uc3RydWN0b3IgfHwgbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ2hlY2tib3hHcm91cFdpdGhMYWJlbHMoaXNCbG9ja0Rpc2FibGVkOiBib29sZWFuLCBpc0Jsb2NrVmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgY29uc3QgY29udGFpbmVyRGl2ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoY29udGFpbmVyRGl2LCAnY2hlY2tib3gtY29udGFpbmVyJyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY29udGFpbmVyRGl2KTtcclxuXHJcbiAgICBjb25zdCBjcmVhdGVDaGVja2JveCA9IChcclxuICAgICAgY29uZmlnOiB7IGlucHV0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLCBpbnB1dElkOiBzdHJpbmcsIGlzQ2hlY2tlZDogYm9vbGVhbiwgXHJcbiAgICAgICAgdG9vbFRpcFRleHQ6IHN0cmluZ1xyXG4gICAgICB9XHJcbiAgICApOiBDb21wb25lbnRSZWY8VHNpQ2hlY2tib3hDb21wb25lbnQ+ID0+IHtcclxuICAgICAgY29uc3QgaXRlbURpdiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoaXRlbURpdiwgJ2NoZWNrYm94LWl0ZW0nKTtcclxuXHJcbiAgICAgIGNvbnN0IGNoZWNrYm94UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChUc2lDaGVja2JveENvbXBvbmVudCk7XHJcbiAgICAgIGNoZWNrYm94UmVmLnNldElucHV0KFwiaW5wdXROYW1lXCIsIGNvbmZpZy5pbnB1dE5hbWUpO1xyXG4gICAgICBjaGVja2JveFJlZi5zZXRJbnB1dChcImlucHV0SWRcIiwgY29uZmlnLmlucHV0SWQpO1xyXG5cclxuICAgICAgY29uc3QgaW5zdGFuY2UgPSBjaGVja2JveFJlZi5pbnN0YW5jZSBhcyBUc2lDaGVja2JveENvbXBvbmVudDtcclxuICAgICAgaW5zdGFuY2UuY2hlY2tlZCA9IGNvbmZpZy5pc0NoZWNrZWQ7XHJcbiAgICAgIGluc3RhbmNlLnRvb2x0aXBUZXh0ID0gY29uZmlnLnRvb2xUaXBUZXh0XHJcbiAgICAgIGluc3RhbmNlLmlzQmluYXJ5ID0gdHJ1ZVxyXG4gICAgICBpbnN0YW5jZS50b29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uVG9wXHJcblxyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGl0ZW1EaXYsIGNoZWNrYm94UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xyXG5cclxuICAgICAgLy8gY29uc3QgbGFiZWxFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgIC8vIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobGFiZWxFbGVtZW50LCAnYmVsb3ctbGFiZWwnKTtcclxuICAgICAgLy8gY29uc3QgbGFiZWxUZXh0ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KGNvbmZpZy5sYWJlbCk7XHJcbiAgICAgIC8vIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQobGFiZWxFbGVtZW50LCBsYWJlbFRleHQpO1xyXG4gICAgICAvLyB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGl0ZW1EaXYsIGxhYmVsRWxlbWVudCk7XHJcblxyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGNvbnRhaW5lckRpdiwgaXRlbURpdik7XHJcblxyXG4gICAgICByZXR1cm4gY2hlY2tib3hSZWY7XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuZGlzYWJsZWRDaGVja2JveENvbXBvbmVudFJlZiA9IGNyZWF0ZUNoZWNrYm94KHtcclxuICAgICAgaW5wdXROYW1lOiB0aGlzLnByZXNlbnRhdGlvbkRlc2lnbmVyLFxyXG4gICAgICBpbnB1dElkOiBgJHt0aGlzLnByZXNlbnRhdGlvbkRlc2lnbmVyfS1kaXNhYmxlLWlucHV0LWNoZWNrYm94YCxcclxuICAgICAgaXNDaGVja2VkOiAhaXNCbG9ja0Rpc2FibGVkLFxyXG4gICAgICB0b29sVGlwVGV4dDogJ0Rpc2FibGVkJ1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zaG93SGlkZUNoZWNrYm94Q29tcG9uZW50UmVmID0gY3JlYXRlQ2hlY2tib3goe1xyXG4gICAgICBpbnB1dE5hbWU6IHRoaXMucHJlc2VudGF0aW9uRGVzaWduZXIsXHJcbiAgICAgIGlucHV0SWQ6IGAke3RoaXMucHJlc2VudGF0aW9uRGVzaWduZXJ9LXZpc2libGUtY2hlY2tib3hgLFxyXG4gICAgICBpc0NoZWNrZWQ6ICFpc0Jsb2NrVmlzaWJsZSxcclxuICAgICAgdG9vbFRpcFRleHQ6ICdWaXNpYmxlJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgYWRkQ2hlY2tib3hlc1RvSW5wdXRzKHByZXNlbnRhdGlvblNldHRpbmc/OiBQcmVzZW50YXRpb25TZXR0aW5nKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKCF0aGlzLl93b3JrZmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLmlzRGVzZ2luTW9kZUZyb21Xb3JrZmxvdykge1xyXG4gICAgICB0aGlzLnNob3dIaWRlQ2hlY2tib3hDb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFRzaUNoZWNrYm94Q29tcG9uZW50KTtcclxuXHJcbiAgICAgIHRoaXMuc2hvd0hpZGVDaGVja2JveENvbXBvbmVudFJlZi5zZXRJbnB1dChcImlucHV0TmFtZVwiLCB0aGlzLnByZXNlbnRhdGlvbkRlc2lnbmVyKVxyXG4gICAgICB0aGlzLnNob3dIaWRlQ2hlY2tib3hDb21wb25lbnRSZWYuc2V0SW5wdXQoXCJpbnB1dElkXCIsIGAke3RoaXMucHJlc2VudGF0aW9uRGVzaWduZXJ9LXNob3ctaGlkZS1jaGVja2JveGApXHJcblxyXG4gICAgICBsZXQgaXNCbG9ja0Rpc3BsYXllZCA9IHByZXNlbnRhdGlvblNldHRpbmc/LnByZXNlbnRhdGlvblNldHRpbmdEZXRhaWxzXHJcbiAgICAgICAgLmZpbmQoeCA9PiB4LmJsb2NrTmFtZSA9PSB0aGlzLnByZXNlbnRhdGlvbkRlc2lnbmVyKT8uaXNCbG9ja1Zpc2libGUgPz8gdHJ1ZTtcclxuXHJcbiAgICAgIGxldCBjaGVja2JveCA9IHRoaXMuc2hvd0hpZGVDaGVja2JveENvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBUc2lDaGVja2JveENvbXBvbmVudDtcclxuICAgICAgY2hlY2tib3guY2hlY2tlZCA9ICFpc0Jsb2NrRGlzcGxheWVkO1xyXG5cclxuXHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLnNob3dIaWRlQ2hlY2tib3hDb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBpZiAodGhpcy5fd29ya2Zsb3dDb25maWd1cmF0aW9uU2VydmljZS5pc0Rlc2dpbk1vZGVGcm9tV29ya2Zsb3cpIHtcclxuXHJcblxyXG4gICAgICBjb25zdCBpc0Jsb2NrRGlzYWJsZWQgPSBwcmVzZW50YXRpb25TZXR0aW5nPy5wcmVzZW50YXRpb25TZXR0aW5nRGV0YWlsc1xyXG4gICAgICAgIC5maW5kKHggPT4geC5ibG9ja05hbWUgPT09IHRoaXMucHJlc2VudGF0aW9uRGVzaWduZXIpPy5pc0lucHV0RW5hYmxlZCA/PyB0cnVlO1xyXG5cclxuICAgICAgY29uc3QgaXNCbG9ja1Zpc2libGUgPSBwcmVzZW50YXRpb25TZXR0aW5nPy5wcmVzZW50YXRpb25TZXR0aW5nRGV0YWlsc1xyXG4gICAgICAgIC5maW5kKHggPT4geC5ibG9ja05hbWUgPT09IHRoaXMucHJlc2VudGF0aW9uRGVzaWduZXIpPy5pc0Jsb2NrVmlzaWJsZSA/PyB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5jcmVhdGVDaGVja2JveEdyb3VwV2l0aExhYmVscyhpc0Jsb2NrRGlzYWJsZWQsIGlzQmxvY2tWaXNpYmxlKVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnY29uZmlnLW1vZGUtYm9yZGVyJyk7XHJcbiAgfVxyXG59Il19
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGF0aW9uLWRlc2lnbmVyLWJhc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1kaXJlY3RpdmVzL3ByZXNlbnRhdGlvbi1kZXNpZ25lci1iYXNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLFNBQVMsRUFBYyxLQUFLLEVBQWlELE1BQU0sZUFBZSxDQUFDO0FBRXpJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBSTlHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBTTNDLE1BQU0sT0FBTyxpQ0FBaUM7SUFHNUMsSUFBYSxvQkFBb0IsQ0FBQyxLQUF5QjtRQUV6RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFhLHdCQUF3QixDQUFDLEtBQXlCO1FBRTdELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBRXRCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFXRCxZQUFzQixFQUFjLEVBQ3hCLFFBQW1CLEVBQ25CLGdCQUFrQyxFQUNsQyxvQkFBeUMsRUFDekMsNkJBQTJELEVBQzNELGdDQUFpRTtRQUx2RCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBOEI7UUFDM0QscUNBQWdDLEdBQWhDLGdDQUFnQyxDQUFpQztRQVQ3RSxZQUFPLEdBQVksS0FBSyxDQUFBO1FBQ3hCLG9CQUFlLEdBQVksS0FBSyxDQUFBO1FBVTlCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQTtRQUN2QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFBO1FBQzdELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUE7SUFDakUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO1lBRTVDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUE7WUFDOUMsQ0FBQztZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQTtZQUMvRCxDQUFDO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFBO1lBQ2pFLENBQUM7WUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRixDQUFDO1FBRUQsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN0RCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBd0I7UUFDM0MscUJBQXFCO1FBRXJCLGdEQUFnRDtRQUNoRCw2REFBNkQ7UUFDN0QseURBQXlEO1FBQ3pELEtBQUs7UUFFTCw2QkFBNkI7UUFDN0IsVUFBVTtRQUNWLHNDQUFzQztRQUN0QywrQ0FBK0M7UUFDL0Msd0RBQXdEO1FBQ3hELHNCQUFzQjtRQUN0Qiw4REFBOEQ7UUFFOUQsTUFBTTtRQUNOLElBQUk7SUFDTixDQUFDO0lBRUQsZUFBZTtJQUNmLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN4RCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFbEIsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUsMEJBQTBCO1lBQ3hGLDRCQUE0QixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQjtZQUNwRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCO1lBQzFGLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxZQUFZO1NBQ3JFLENBQUE7UUFFRCxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFO2dCQUUzQixFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNyQyxFQUFFLEVBQUUsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQTtnQkFDaEMsSUFBSSxRQUFRLElBQUksa0JBQWtCLEVBQUUsQ0FBQztnQkFDckMsQ0FBQztnQkFDRCx5Q0FBeUM7Z0JBQ3pDLG9GQUFvRjtnQkFDcEYsd0NBQXdDO2dCQUN4Qyx3Q0FBd0M7Z0JBQ3hDLGlEQUFpRDtnQkFDakQsNkNBQTZDO2dCQUM3QyxpQ0FBaUM7Z0JBQ2pDLDZEQUE2RDtnQkFDN0QscUVBQXFFO2dCQUVyRSxrQ0FBa0M7Z0JBQ2xDLGtCQUFrQjtnQkFDbEIscUNBQXFDO2dCQUNyQyxNQUFNO2dCQUNOLElBQUk7Z0JBQ0osU0FBUztnQkFDVCx5REFBeUQ7Z0JBRXpELHdGQUF3RjtnQkFFeEYsOENBQThDO2dCQUU5QyxpREFBaUQ7Z0JBQ2pELHVDQUF1QztnQkFDdkMsNkNBQTZDO2dCQUM3QyxpQ0FBaUM7Z0JBRWpDLGtDQUFrQztnQkFDbEMsa0JBQWtCO2dCQUNsQixxQ0FBcUM7Z0JBQ3JDLE1BQU07Z0JBQ04sSUFBSTtZQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsT0FBMEI7UUFDckQsb0RBQW9EO1FBQ3BELElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzFCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDdEMsOEVBQThFO1lBQzlFLEtBQUssTUFBTSxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQzNCLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDN0QsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzFHLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLGtDQUFrQztZQUMvRSxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDO1FBQzNDLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQTtRQUM5QyxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUE7UUFDL0QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFBO1FBQ2pFLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsT0FBTyxDQUFDLFNBQWtCLEVBQUUsYUFBdUI7UUFDakQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQztnQkFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMxRyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3RCLENBQUM7UUFDSCxDQUFDO2FBQ0ksQ0FBQztZQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtJQUNyQixDQUFDO0lBR0Qsb0JBQW9CO1FBQ2xCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUYsT0FBTyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsT0FBUSxJQUFJLENBQUMsZ0JBQXdCLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQztJQUM5RSxDQUFDO0lBRU8sNkJBQTZCLENBQUMsZUFBd0IsRUFBRSxjQUF1QjtRQUNyRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUUvRCxNQUFNLGNBQWMsR0FBRyxDQUNyQixNQUVDLEVBQ21DLEVBQUU7WUFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBRWpELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNoRixXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEQsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWhELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFnQyxDQUFDO1lBQzlELFFBQVEsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUNwQyxRQUFRLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUE7WUFDekMsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7WUFDeEIsUUFBUSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFBO1lBRTlDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRXZFLDREQUE0RDtZQUM1RCx1REFBdUQ7WUFDdkQsNERBQTREO1lBQzVELHNEQUFzRDtZQUN0RCxvREFBb0Q7WUFFcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRWpELE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxjQUFjLENBQUM7WUFDakQsU0FBUyxFQUFFLElBQUksQ0FBQyxvQkFBb0I7WUFDcEMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLG9CQUFvQix5QkFBeUI7WUFDOUQsU0FBUyxFQUFFLENBQUMsZUFBZTtZQUMzQixXQUFXLEVBQUUsVUFBVTtTQUN4QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsNEJBQTRCLEdBQUcsY0FBYyxDQUFDO1lBQ2pELFNBQVMsRUFBRSxJQUFJLENBQUMsb0JBQW9CO1lBQ3BDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsbUJBQW1CO1lBQ3hELFNBQVMsRUFBRSxDQUFDLGNBQWM7WUFDMUIsV0FBVyxFQUFFLFNBQVM7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELHFCQUFxQixDQUFDLG1CQUF5QztRQUU3RCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBRTVCLElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNqRSxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBRWhHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1lBQ2xGLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixxQkFBcUIsQ0FBQyxDQUFBO1lBRXhHLElBQUksZ0JBQWdCLEdBQUcsbUJBQW1CLEVBQUUsMEJBQTBCO2lCQUNuRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUM7WUFFL0UsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQWdDLENBQUM7WUFDbEYsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLGdCQUFnQixDQUFDO1lBR3JDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0csQ0FBQztRQUlELElBQUksSUFBSSxDQUFDLDZCQUE2QixDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFHaEUsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLEVBQUUsMEJBQTBCO2lCQUNwRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUM7WUFFaEYsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLEVBQUUsMEJBQTBCO2lCQUNuRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUM7WUFFaEYsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQTtRQUNyRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUN0RSxDQUFDOytHQTlTVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQzs7NEZBQWpDLGlDQUFpQztrQkFIN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0NBQStDO2lCQUMxRDtpUUFJYyxvQkFBb0I7c0JBQWhDLEtBQUs7Z0JBS08sd0JBQXdCO3NCQUFwQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJlc2VudGF0aW9uU2V0dGluZyB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFRzaUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vdHNpLWNvbXBvbmVudHMvaW5wdXQtY29tcG9uZW50cy90c2ktY2hlY2tib3gvdHNpLWNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExheW91dEhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9sYXlvdXQvbGF5b3V0LWhlbHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV29ya2Zsb3dDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3dvcmtmbG93L3dvcmtmbG93LWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFByZXNlbnRhdGlvbkRlc2lnbmVyQmFzZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcmVzZW50YXRpb24tc2V0dGluZy9wcmVzZW50YXRpb24tZGVzaWduZXItYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vZW51bXMnO1xyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3ByZXNlbnRhdGlvbkRlc2lnbmVyQmFzZV06bm90KHRzaS10YWItcGFuZWwpJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJlc2VudGF0aW9uRGVzaWduZXJEaXJlY3RpdmVCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5wcml2YXRlIF9wcmVzZW50YXRpb25EZXNpZ25lciE6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KCkgc2V0IHByZXNlbnRhdGlvbkRlc2lnbmVyKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpXHJcbiAge1xyXG4gICAgdGhpcy5fcHJlc2VudGF0aW9uRGVzaWduZXIgPSB2YWx1ZTtcclxuICB9XHJcbiAgXHJcbiAgQElucHV0KCkgc2V0IHByZXNlbnRhdGlvbkRlc2lnbmVyQmFzZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKVxyXG4gIHtcclxuICAgIHRoaXMuX3ByZXNlbnRhdGlvbkRlc2lnbmVyID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgcHJlc2VudGF0aW9uRGVzaWduZXIoKTogc3RyaW5nIHwgdW5kZWZpbmVkXHJcbiAge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ByZXNlbnRhdGlvbkRlc2lnbmVyO1xyXG4gIH1cclxuXHJcbiAgc2hvd0hpZGVDaGVja2JveENvbXBvbmVudFJlZjogYW55XHJcbiAgZGlzYWJsZWRDaGVja2JveENvbXBvbmVudFJlZjogYW55XHJcbiAgdGVtcFRlbXBsYXRlUmVmOiBhbnlcclxuICB0ZW1wVGVtcGxhdGVQYXJlbnROb2RlOiBhbnlcclxuICBuZXhTaWJsaW5nT2ZFbGVtZW50OiBhbnlcclxuICB0cmVhdGVkOiBib29sZWFuID0gZmFsc2VcclxuICBjaGVja2JveGVzQWRkZWQ6IGJvb2xlYW4gPSBmYWxzZVxyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByb3RlY3RlZCBfbGF5b3V0SGVscGVyU2VydmljZTogTGF5b3V0SGVscGVyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBfd29ya2Zsb3dDb25maWd1cmF0aW9uU2VydmljZTogV29ya2Zsb3dDb25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBfcHJlc2VudGF0aW9uRGVzaWduZXJCYXNlU2VydmljZTogUHJlc2VudGF0aW9uRGVzaWduZXJCYXNlU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy50ZW1wVGVtcGxhdGVSZWYgPSBlbC5uYXRpdmVFbGVtZW50XHJcbiAgICB0aGlzLm5leFNpYmxpbmdPZkVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ/Lm5leHRTaWJsaW5nXHJcbiAgICB0aGlzLnRlbXBUZW1wbGF0ZVBhcmVudE5vZGUgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ/LnBhcmVudE5vZGVcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9sYXlvdXRIZWxwZXJTZXJ2aWNlLmlzRGVzaWduTW9kZSkge1xyXG5cclxuICAgICAgaWYgKCF0aGlzLnRlbXBUZW1wbGF0ZVJlZikge1xyXG4gICAgICAgIHRoaXMudGVtcFRlbXBsYXRlUmVmID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghdGhpcy5uZXhTaWJsaW5nT2ZFbGVtZW50KSB7XHJcbiAgICAgICAgdGhpcy5uZXhTaWJsaW5nT2ZFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Py5uZXh0U2libGluZ1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIXRoaXMudGVtcFRlbXBsYXRlUGFyZW50Tm9kZSkge1xyXG4gICAgICAgIHRoaXMudGVtcFRlbXBsYXRlUGFyZW50Tm9kZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudD8ucGFyZW50Tm9kZVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlLCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3ByZXNlbnRhdGlvbkRlc2lnbmVyQmFzZVNlcnZpY2UucmVnaXN0ZXIodGhpcylcclxuICB9XHJcblxyXG4gIHJlbW92ZUVtcHR5QW5jZXN0b3JzKG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCkge1xyXG4gICAgLy8gaWYgKCFub2RlKSByZXR1cm47XHJcblxyXG4gICAgLy8gLy8gQ2hlY2sgaWYgdGhlIG5vZGUgaGFzIGFueSBlbGVtZW50IGNoaWxkcmVuXHJcbiAgICAvLyBjb25zdCBoYXNFbGVtZW50Q2hpbGRyZW4gPSBBcnJheS5mcm9tKG5vZGUuY2hpbGRyZW4pLnNvbWUoXHJcbiAgICAvLyAgIChjaGlsZDogYW55KSA9PiBjaGlsZC5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREVcclxuICAgIC8vICk7XHJcblxyXG4gICAgLy8gaWYgKCFoYXNFbGVtZW50Q2hpbGRyZW4pIHtcclxuICAgIC8vICAgdHJ5IHtcclxuICAgIC8vICAgICBjb25zdCBwYXJlbnQgPSBub2RlLnBhcmVudE5vZGU7XHJcbiAgICAvLyAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChwYXJlbnQsIG5vZGUpO1xyXG4gICAgLy8gICAgIHRoaXMucmVtb3ZlRW1wdHlBbmNlc3RvcnMocGFyZW50IGFzIEhUTUxFbGVtZW50KTtcclxuICAgIC8vICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgcmVtb3ZpbmcgZW1wdHkgYW5jZXN0b3I6XCIsIGVycm9yKTtcclxuXHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcHJlc2VudGF0aW9uRGVzaWduZXJCYXNlU2VydmljZS51bnJlZ2lzdGVyKHRoaXMpXHJcbiAgfVxyXG5cclxuICBkaXNhYmxlSW5wdXRzKCkge1xyXG4gICAgdGhpcy5leGVjdXRlKHRydWUpXHJcblxyXG4gICAgY29uc3QgdHNpQ29tcG9uZW50c1NlbGVjdG9ycyA9IFsnVHNpLVRleHQtQm94JywgJ1RzaS1DaGVja0JveCcsICdUc2ktQ3VycmVuY3ktT3RoZXItSW5wdXQnLFxyXG4gICAgICAnVHNpLUN1cnJlbmN5LVNvY2lldGUtSW5wdXQnLCAnVHNpLURhdGUtUGlja2VyJywgJ1RzaS1EZWNpbWFsLUlucHV0JyxcclxuICAgICAgJ1RzaS1GaWxlLU1hbmFnZXInLCAnVHNpLUZvcm11bGEtQm94JywgJ1RzaS1JbnRlZ2VyJywgJ1RzaS1SYWRpby1CdXR0b24nLCAnVHNpLVJhdGUtSW5wdXQnLFxyXG4gICAgICAnVHNpLVNlYXJjaC1Db21ibycsICdUc2ktVGV4dC1BcmVhJywgJ3RzaS10aW1lLXBpY2tlcicsICdUc2ktQnV0dG9uJ1xyXG4gICAgXVxyXG5cclxuICAgIHRzaUNvbXBvbmVudHNTZWxlY3RvcnMuZm9yRWFjaChzZWxlY3RvciA9PiB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xyXG4gICAgICBlbGVtZW50cy5mb3JFYWNoKChlbDogYW55KSA9PiB7XHJcblxyXG4gICAgICAgIGVsPy5jbGFzc0xpc3Q/LmFkZCgnZGlzYWJsZWQtaW5wdXQnKTtcclxuICAgICAgICBlbD8uc2V0QXR0cmlidXRlKFwiZGlzYWJsZWRcIiwgXCJcIilcclxuICAgICAgICBpZiAoc2VsZWN0b3IgPT0gJ1RzaS1TZWFyY2gtQ29tYm8nKSB7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGVsc2UgaWYgKHNlbGVjdG9yID09ICdUc2ktQ2hlY2tCb3gnKSB7XHJcbiAgICAgICAgLy8gICBjb25zdCBpbnB1dEVsID0gZWwucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdJykgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgICAgICAvLyAgIGNvbnN0IGlzQ2hlY2tlZCA9IGlucHV0RWw/LmNoZWNrZWQ7XHJcbiAgICAgICAgLy8gICBjb25zb2xlLmxvZygnQ2hlY2tlZD8nLCBpc0NoZWNrZWQpO1xyXG4gICAgICAgIC8vICAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICAvLyAgIHNwYW4uY2xhc3NMaXN0LmFkZCgndHNpLXJlYWRvbmx5LXNwYW4nKTtcclxuICAgICAgICAvLyAgIHNwYW4uY2xhc3NMaXN0LmFkZCgndy1mdWxsJylcclxuICAgICAgICAvLyAgIHNwYW4uY2xhc3NMaXN0LmFkZCgndHNpLXJlYWRvbmx5LXNwYW4nLCAndy1mdWxsJywgJ3BpJyk7XHJcbiAgICAgICAgLy8gICBzcGFuLmNsYXNzTGlzdC5hZGQoaXNDaGVja2VkID8gJ3BpLWNoZWNrLXNxdWFyZScgOiAncGktc3F1YXJlJyk7XHJcblxyXG4gICAgICAgIC8vICAgY29uc3QgcGFyZW50ID0gZWwucGFyZW50Tm9kZTtcclxuICAgICAgICAvLyAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgICAvLyAgICAgcGFyZW50LnJlcGxhY2VDaGlsZChzcGFuLCBlbCk7XHJcbiAgICAgICAgLy8gICB9XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC8vIGVsc2Uge1xyXG4gICAgICAgIC8vICAgLy9jb25zdCB2YWx1ZSA9IGVsLmdldEF0dHJpYnV0ZSgnbmctcmVmbGVjdC1tb2RlbCcpO1xyXG5cclxuICAgICAgICAvLyAgIGNvbnN0IGlucHV0VmFsdWUgPSAoZWw/LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaW5wdXRcIilbMF0gYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWVcclxuXHJcbiAgICAgICAgLy8gICBjb25zb2xlLmxvZyhcImlucHV0VmFsdWUgPT4gXCIsIGlucHV0VmFsdWUpXHJcblxyXG4gICAgICAgIC8vICAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICAvLyAgIHNwYW4uaW5uZXJUZXh0ID0gaW5wdXRWYWx1ZSA/PyAnJztcclxuICAgICAgICAvLyAgIHNwYW4uY2xhc3NMaXN0LmFkZCgndHNpLXJlYWRvbmx5LXNwYW4nKTtcclxuICAgICAgICAvLyAgIHNwYW4uY2xhc3NMaXN0LmFkZCgndy1mdWxsJylcclxuXHJcbiAgICAgICAgLy8gICBjb25zdCBwYXJlbnQgPSBlbC5wYXJlbnROb2RlO1xyXG4gICAgICAgIC8vICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgIC8vICAgICBwYXJlbnQucmVwbGFjZUNoaWxkKHNwYW4sIGVsKTtcclxuICAgICAgICAvLyAgIH1cclxuICAgICAgICAvLyB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbXBvbmVudEluc3RhbmNlKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgYW55KTogYW55IHtcclxuICAgIC8vIEdldCB0aGUgY29tcG9uZW50IGluc3RhbmNlIGZyb20gQW5ndWxhcidzIGNvbnRleHRcclxuICAgIGlmIChlbGVtZW50Ll9fbmdDb250ZXh0X18pIHtcclxuICAgICAgY29uc3QgY29udGV4dCA9IGVsZW1lbnQuX19uZ0NvbnRleHRfXztcclxuICAgICAgLy8gVGhlIGNvbXBvbmVudCBpbnN0YW5jZSBpcyB1c3VhbGx5IHRoZSBmaXJzdCBub24tYXJyYXkvbm9uLW9iamVjdCBpbiBjb250ZXh0XHJcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBjb250ZXh0KSB7XHJcbiAgICAgICAgaWYgKGl0ZW0gJiYgdHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGl0ZW0pKSB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgaW5zZXJ0RWxlbWVudCgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHRoaXMudGVtcFRlbXBsYXRlUGFyZW50Tm9kZSwgdGhpcy50ZW1wVGVtcGxhdGVSZWYsIHRoaXMubmV4U2libGluZ09mRWxlbWVudCk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlU2hvd0hpZGVDaGVja2JveCgpIHtcclxuICAgIGlmICh0aGlzLnNob3dIaWRlQ2hlY2tib3hDb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5zaG93SGlkZUNoZWNrYm94Q29tcG9uZW50UmVmLmRlc3Ryb3koKTsgLy8gZGVzdHJveXMgdGhlIGNvbXBvbmVudCBpbnN0YW5jZVxyXG4gICAgICB0aGlzLnNob3dIaWRlQ2hlY2tib3hDb21wb25lbnRSZWYgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdjb25maWctbW9kZS1ib3JkZXInKTtcclxuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgdGhpcy5jaGVja2JveGVzQWRkZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUVsZW1lbnQoKSB7XHJcbiAgICBpZiAoIXRoaXMudGVtcFRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIHRoaXMudGVtcFRlbXBsYXRlUmVmID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLm5leFNpYmxpbmdPZkVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5uZXhTaWJsaW5nT2ZFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Py5uZXh0U2libGluZ1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy50ZW1wVGVtcGxhdGVQYXJlbnROb2RlKSB7XHJcbiAgICAgIHRoaXMudGVtcFRlbXBsYXRlUGFyZW50Tm9kZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudD8ucGFyZW50Tm9kZVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGUsIHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBleGVjdXRlKGNvbmRpdGlvbjogYm9vbGVhbiwgY29uZmlndXJhdGlvbiA/OiBzdHJpbmcpIHtcclxuICAgIGlmIChjb25kaXRpb24pIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSh0aGlzLnRlbXBUZW1wbGF0ZVBhcmVudE5vZGUsIHRoaXMudGVtcFRlbXBsYXRlUmVmLCB0aGlzLm5leFNpYmxpbmdPZkVsZW1lbnQpO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlLCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmVhdGVkID0gdHJ1ZVxyXG4gIH1cclxuXHJcblxyXG4gIGdldENvbXBvbmVudFNlbGVjdG9yKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBjb21wb25lbnRJbnN0YW5jZSA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5pbmplY3Rvci5nZXQodGhpcy5nZXRDb21wb25lbnRUeXBlKCksIG51bGwpO1xyXG4gICAgcmV0dXJuIGNvbXBvbmVudEluc3RhbmNlPy5jb25zdHJ1Y3Rvcj8uybVjbXA/LnNlbGVjdG9ycz8uWzBdPy5bMF0gfHwgXCJcIjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29tcG9uZW50VHlwZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuICh0aGlzLnZpZXdDb250YWluZXJSZWYgYXMgYW55KT8uX2hvc3RMVmlldz8uWzhdPy5jb25zdHJ1Y3RvciB8fCBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVDaGVja2JveEdyb3VwV2l0aExhYmVscyhpc0Jsb2NrRGlzYWJsZWQ6IGJvb2xlYW4sIGlzQmxvY2tWaXNpYmxlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250YWluZXJEaXYgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhjb250YWluZXJEaXYsICdjaGVja2JveC1jb250YWluZXInKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCBjb250YWluZXJEaXYpO1xyXG5cclxuICAgIGNvbnN0IGNyZWF0ZUNoZWNrYm94ID0gKFxyXG4gICAgICBjb25maWc6IHsgaW5wdXROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsIGlucHV0SWQ6IHN0cmluZywgaXNDaGVja2VkOiBib29sZWFuLCBcclxuICAgICAgICB0b29sVGlwVGV4dDogc3RyaW5nXHJcbiAgICAgIH1cclxuICAgICk6IENvbXBvbmVudFJlZjxUc2lDaGVja2JveENvbXBvbmVudD4gPT4ge1xyXG4gICAgICBjb25zdCBpdGVtRGl2ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhpdGVtRGl2LCAnY2hlY2tib3gtaXRlbScpO1xyXG5cclxuICAgICAgY29uc3QgY2hlY2tib3hSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFRzaUNoZWNrYm94Q29tcG9uZW50KTtcclxuICAgICAgY2hlY2tib3hSZWYuc2V0SW5wdXQoXCJpbnB1dE5hbWVcIiwgY29uZmlnLmlucHV0TmFtZSk7XHJcbiAgICAgIGNoZWNrYm94UmVmLnNldElucHV0KFwiaW5wdXRJZFwiLCBjb25maWcuaW5wdXRJZCk7XHJcblxyXG4gICAgICBjb25zdCBpbnN0YW5jZSA9IGNoZWNrYm94UmVmLmluc3RhbmNlIGFzIFRzaUNoZWNrYm94Q29tcG9uZW50O1xyXG4gICAgICBpbnN0YW5jZS5jaGVja2VkID0gY29uZmlnLmlzQ2hlY2tlZDtcclxuICAgICAgaW5zdGFuY2UudG9vbHRpcFRleHQgPSBjb25maWcudG9vbFRpcFRleHRcclxuICAgICAgaW5zdGFuY2UuaXNCaW5hcnkgPSB0cnVlXHJcbiAgICAgIGluc3RhbmNlLnRvb2x0aXBQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5Ub3BcclxuXHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoaXRlbURpdiwgY2hlY2tib3hSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XHJcblxyXG4gICAgICAvLyBjb25zdCBsYWJlbEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgLy8gdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhsYWJlbEVsZW1lbnQsICdiZWxvdy1sYWJlbCcpO1xyXG4gICAgICAvLyBjb25zdCBsYWJlbFRleHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQoY29uZmlnLmxhYmVsKTtcclxuICAgICAgLy8gdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChsYWJlbEVsZW1lbnQsIGxhYmVsVGV4dCk7XHJcbiAgICAgIC8vIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoaXRlbURpdiwgbGFiZWxFbGVtZW50KTtcclxuXHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoY29udGFpbmVyRGl2LCBpdGVtRGl2KTtcclxuXHJcbiAgICAgIHJldHVybiBjaGVja2JveFJlZjtcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5kaXNhYmxlZENoZWNrYm94Q29tcG9uZW50UmVmID0gY3JlYXRlQ2hlY2tib3goe1xyXG4gICAgICBpbnB1dE5hbWU6IHRoaXMucHJlc2VudGF0aW9uRGVzaWduZXIsXHJcbiAgICAgIGlucHV0SWQ6IGAke3RoaXMucHJlc2VudGF0aW9uRGVzaWduZXJ9LWRpc2FibGUtaW5wdXQtY2hlY2tib3hgLFxyXG4gICAgICBpc0NoZWNrZWQ6ICFpc0Jsb2NrRGlzYWJsZWQsXHJcbiAgICAgIHRvb2xUaXBUZXh0OiAnRGlzYWJsZWQnXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNob3dIaWRlQ2hlY2tib3hDb21wb25lbnRSZWYgPSBjcmVhdGVDaGVja2JveCh7XHJcbiAgICAgIGlucHV0TmFtZTogdGhpcy5wcmVzZW50YXRpb25EZXNpZ25lcixcclxuICAgICAgaW5wdXRJZDogYCR7dGhpcy5wcmVzZW50YXRpb25EZXNpZ25lcn0tdmlzaWJsZS1jaGVja2JveGAsXHJcbiAgICAgIGlzQ2hlY2tlZDogIWlzQmxvY2tWaXNpYmxlLFxyXG4gICAgICB0b29sVGlwVGV4dDogJ1Zpc2libGUnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBhZGRDaGVja2JveGVzVG9JbnB1dHMocHJlc2VudGF0aW9uU2V0dGluZz86IFByZXNlbnRhdGlvblNldHRpbmcpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAodGhpcy5jaGVja2JveGVzQWRkZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGVja2JveGVzQWRkZWQgPSB0cnVlO1xyXG5cclxuICAgIGlmICghdGhpcy5fd29ya2Zsb3dDb25maWd1cmF0aW9uU2VydmljZS5pc0Rlc2dpbk1vZGVGcm9tV29ya2Zsb3cpIHtcclxuICAgICAgdGhpcy5zaG93SGlkZUNoZWNrYm94Q29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChUc2lDaGVja2JveENvbXBvbmVudCk7XHJcblxyXG4gICAgICB0aGlzLnNob3dIaWRlQ2hlY2tib3hDb21wb25lbnRSZWYuc2V0SW5wdXQoXCJpbnB1dE5hbWVcIiwgdGhpcy5wcmVzZW50YXRpb25EZXNpZ25lcilcclxuICAgICAgdGhpcy5zaG93SGlkZUNoZWNrYm94Q29tcG9uZW50UmVmLnNldElucHV0KFwiaW5wdXRJZFwiLCBgJHt0aGlzLnByZXNlbnRhdGlvbkRlc2lnbmVyfS1zaG93LWhpZGUtY2hlY2tib3hgKVxyXG5cclxuICAgICAgbGV0IGlzQmxvY2tEaXNwbGF5ZWQgPSBwcmVzZW50YXRpb25TZXR0aW5nPy5wcmVzZW50YXRpb25TZXR0aW5nRGV0YWlsc1xyXG4gICAgICAgIC5maW5kKHggPT4geC5ibG9ja05hbWUgPT0gdGhpcy5wcmVzZW50YXRpb25EZXNpZ25lcik/LmlzQmxvY2tWaXNpYmxlID8/IHRydWU7XHJcblxyXG4gICAgICBsZXQgY2hlY2tib3ggPSB0aGlzLnNob3dIaWRlQ2hlY2tib3hDb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgVHNpQ2hlY2tib3hDb21wb25lbnQ7XHJcbiAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSAhaXNCbG9ja0Rpc3BsYXllZDtcclxuXHJcblxyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5zaG93SGlkZUNoZWNrYm94Q29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgaWYgKHRoaXMuX3dvcmtmbG93Q29uZmlndXJhdGlvblNlcnZpY2UuaXNEZXNnaW5Nb2RlRnJvbVdvcmtmbG93KSB7XHJcblxyXG5cclxuICAgICAgY29uc3QgaXNCbG9ja0Rpc2FibGVkID0gcHJlc2VudGF0aW9uU2V0dGluZz8ucHJlc2VudGF0aW9uU2V0dGluZ0RldGFpbHNcclxuICAgICAgICAuZmluZCh4ID0+IHguYmxvY2tOYW1lID09PSB0aGlzLnByZXNlbnRhdGlvbkRlc2lnbmVyKT8uaXNJbnB1dEVuYWJsZWQgPz8gdHJ1ZTtcclxuXHJcbiAgICAgIGNvbnN0IGlzQmxvY2tWaXNpYmxlID0gcHJlc2VudGF0aW9uU2V0dGluZz8ucHJlc2VudGF0aW9uU2V0dGluZ0RldGFpbHNcclxuICAgICAgICAuZmluZCh4ID0+IHguYmxvY2tOYW1lID09PSB0aGlzLnByZXNlbnRhdGlvbkRlc2lnbmVyKT8uaXNCbG9ja1Zpc2libGUgPz8gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuY3JlYXRlQ2hlY2tib3hHcm91cFdpdGhMYWJlbHMoaXNCbG9ja0Rpc2FibGVkLCBpc0Jsb2NrVmlzaWJsZSlcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2NvbmZpZy1tb2RlLWJvcmRlcicpO1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -49,6 +49,10 @@ export class PresentationDesignerTabPanelDirective extends PresentationDesignerD
|
|
|
49
49
|
this.setPanelVisible(false);
|
|
50
50
|
}
|
|
51
51
|
addCheckboxesToInputs(presentationSetting) {
|
|
52
|
+
if (this.checkboxesAdded) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
this.checkboxesAdded = true;
|
|
52
56
|
const isBlockVisible = presentationSetting?.presentationSettingDetails
|
|
53
57
|
.find(x => x.blockName == this.presentationDesigner)?.isBlockVisible ?? true;
|
|
54
58
|
this.panel.designerChecked = !isBlockVisible;
|
|
@@ -69,6 +73,7 @@ export class PresentationDesignerTabPanelDirective extends PresentationDesignerD
|
|
|
69
73
|
removeShowHideCheckbox() {
|
|
70
74
|
this.panel.designerCheckboxVisible = false;
|
|
71
75
|
this.showHideCheckboxComponentRef = null;
|
|
76
|
+
this.checkboxesAdded = false;
|
|
72
77
|
this.tabView?.refreshTabs();
|
|
73
78
|
}
|
|
74
79
|
disableInputs() {
|
|
@@ -91,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
91
96
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i1.LayoutHelperService }, { type: i2.WorkflowConfigurationService }, { type: i3.PresentationDesignerBaseService }, { type: i4.TsiTabPanelComponent }, { type: i5.TsiTabViewComponent, decorators: [{
|
|
92
97
|
type: Optional
|
|
93
98
|
}] }] });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGF0aW9uLWRlc2lnbmVyLXRhYi1wYW5lbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90c2ktc2hhcmVkLXVpL3NyYy9saWIvdHNpLWRpcmVjdGl2ZXMvcHJlc2VudGF0aW9uLWRlc2lnbmVyLXRhYi1wYW5lbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxRQUFRLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBRTdGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7O0FBTzNGOzs7Ozs7Ozs7O0dBVUc7QUFJSCxNQUFNLE9BQU8scUNBQXNDLFNBQVEsaUNBQWlDO0lBRXhGLFlBQ3VCLEVBQWMsRUFDZCxRQUFtQixFQUNuQixnQkFBa0MsRUFDbEMsb0JBQXlDLEVBQ3pDLDZCQUEyRCxFQUMzRCxnQ0FBaUUsRUFDNUUsS0FBMkIsRUFDZixPQUFtQztRQUV2RCxLQUFLLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSw2QkFBNkIsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFBO1FBVHpHLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QyxrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQThCO1FBQzNELHFDQUFnQyxHQUFoQyxnQ0FBZ0MsQ0FBaUM7UUFDNUUsVUFBSyxHQUFMLEtBQUssQ0FBc0I7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUE0QjtJQUczRCxDQUFDO0lBRVEsUUFBUTtRQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFBO1FBRXhELHNFQUFzRTtRQUN0RSx3RUFBd0U7UUFDeEUsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQy9CLENBQUM7UUFFRCxJQUFJLENBQUMsZ0NBQWdDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3hELENBQUM7SUFFUSxPQUFPLENBQUMsU0FBa0IsRUFBRSxhQUFzQjtRQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBQ3ZCLENBQUM7SUFFUSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDOUIsQ0FBQztJQUVRLGFBQWE7UUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBRVEscUJBQXFCLENBQUMsbUJBQXlDO1FBQ3BFLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFFNUIsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLEVBQUUsMEJBQTBCO2FBQ2pFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsY0FBYyxJQUFJLElBQUksQ0FBQztRQUVqRixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxDQUFDLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztRQUUxQyxvRUFBb0U7UUFDcEUsdUVBQXVFO1FBQ3ZFLDhEQUE4RDtRQUM5RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyw0QkFBNEIsR0FBRztZQUNoQyxRQUFRLEVBQUU7Z0JBQ04sSUFBSSxRQUFRO29CQUNSLE9BQU8sS0FBSyxDQUFDLGVBQWUsQ0FBQztnQkFDakMsQ0FBQzthQUNKO1NBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVRLHNCQUFzQjtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVRLGFBQWE7UUFDbEIsc0VBQXNFO1FBQ3RFLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3RCLENBQUM7SUFFTyxlQUFlLENBQUMsT0FBZ0I7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQzsrR0FuRlEscUNBQXFDO21HQUFyQyxxQ0FBcUM7OzRGQUFyQyxxQ0FBcUM7a0JBSGpELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFDQUFxQztpQkFDbEQ7OzBCQVdRLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJlc2VudGF0aW9uU2V0dGluZyB9IGZyb20gJy4uL21vZGVscy9wcmVzZW50YXRpb24tc2V0dGluZ3MvcHJlc2VudGF0aW9uLXNldHRpbmdzJztcclxuaW1wb3J0IHsgUHJlc2VudGF0aW9uRGVzaWduZXJEaXJlY3RpdmVCYXNlIH0gZnJvbSAnLi9wcmVzZW50YXRpb24tZGVzaWduZXItYmFzZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUc2lUYWJQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uL3RzaS1jb21wb25lbnRzL3RzaS10YWItcGFuZWwvdHNpLXRhYi1wYW5lbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUc2lUYWJWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vdHNpLWNvbXBvbmVudHMvdHNpLXRhYi12aWV3L3RzaS10YWItdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMYXlvdXRIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbGF5b3V0L2xheW91dC1oZWxwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFdvcmtmbG93Q29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy93b3JrZmxvdy93b3JrZmxvdy1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcmVzZW50YXRpb25EZXNpZ25lckJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcHJlc2VudGF0aW9uLXNldHRpbmcvcHJlc2VudGF0aW9uLWRlc2lnbmVyLWJhc2Uuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogUHJlc2VudGF0aW9uLWRlc2lnbmVyIHBhcnRpY2lwYXRpb24gZm9yIGFuIGluZGl2aWR1YWwgdGFiIHBhbmVsLlxyXG4gKlxyXG4gKiBBIHRzaS10YWItcGFuZWwgaXMgbm90IGEgZnJlZS1zdGFuZGluZyBET00gYmxvY2s6IGl0cyBob3N0IGVsZW1lbnQgaXMgbmV2ZXJcclxuICogYXR0YWNoZWQgdG8gdGhlIERPTSDigJQgVHNpVGFiVmlld0NvbXBvbmVudCBjb25zdW1lcyBpdCB0aHJvdWdoIGEgY29udGVudCBxdWVyeVxyXG4gKiBhbmQgcmVuZGVycyB0aGUgdGFiIGhlYWRlci9jb250ZW50IGl0c2VsZi4gU28gdGhlIGJhc2UgZGlyZWN0aXZlJ3MgRE9NXHJcbiAqIGRldGFjaC9yZS1hdHRhY2ggbWVjaGFuaXNtIGlzIGEgbm8tb3AgaGVyZS4gSW5zdGVhZCwgZXZlcnkgaGlkZS9zaG93IGVudHJ5XHJcbiAqIHBvaW50IG9mIHRoZSBwcmVzZW50YXRpb24tZGVzaWduZXIgY29udHJhY3QgaXMgcmUtdGFyZ2V0ZWQgdG8gdGhlIHBhbmVsJ3NcclxuICogYHZpc2libGVgIGZsYWcsIHdoaWNoIHRoZSB0YWIgdmlldyB1c2VzIHRvIGRlY2lkZSB3aGV0aGVyIHRvIHJlbmRlciB0aGVcclxuICogcGFuZWwgKGhlYWRlciBhbmQgY29udGVudCkgYXQgYWxsLlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ3RzaS10YWItcGFuZWxbcHJlc2VudGF0aW9uRGVzaWduZXJdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJlc2VudGF0aW9uRGVzaWduZXJUYWJQYW5lbERpcmVjdGl2ZSBleHRlbmRzIFByZXNlbnRhdGlvbkRlc2lnbmVyRGlyZWN0aXZlQmFzZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSBfbGF5b3V0SGVscGVyU2VydmljZTogTGF5b3V0SGVscGVyU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX3dvcmtmbG93Q29uZmlndXJhdGlvblNlcnZpY2U6IFdvcmtmbG93Q29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIF9wcmVzZW50YXRpb25EZXNpZ25lckJhc2VTZXJ2aWNlOiBQcmVzZW50YXRpb25EZXNpZ25lckJhc2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcGFuZWw6IFRzaVRhYlBhbmVsQ29tcG9uZW50LFxyXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgdGFiVmlldzogVHNpVGFiVmlld0NvbXBvbmVudCB8IG51bGxcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGVsLCByZW5kZXJlciwgdmlld0NvbnRhaW5lclJlZiwgX2xheW91dEhlbHBlclNlcnZpY2UsIF93b3JrZmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLCBfcHJlc2VudGF0aW9uRGVzaWduZXJCYXNlU2VydmljZSlcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBhbmVsLmRlc2lnbmVyQmxvY2tOYW1lID0gdGhpcy5wcmVzZW50YXRpb25EZXNpZ25lclxyXG5cclxuICAgICAgICAvLyBNaXJyb3JzIHRoZSBiYXNlIHBhdHRlcm46IGhpZGUgZmlyc3QsIHRoZSBvcmNoZXN0cmF0b3IgcmUtc2hvd3MgdmlhXHJcbiAgICAgICAgLy8gZXhlY3V0ZSh0cnVlKSB3aGVuIHRoZSBwZXJzaXN0ZWQgc2V0dGluZyBzYXlzIHZpc2libGUgb3Igbm9uZSBleGlzdHMuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9sYXlvdXRIZWxwZXJTZXJ2aWNlLmlzRGVzaWduTW9kZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldFBhbmVsVmlzaWJsZShmYWxzZSlcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbkRlc2lnbmVyQmFzZVNlcnZpY2UucmVnaXN0ZXIodGhpcylcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBleGVjdXRlKGNvbmRpdGlvbjogYm9vbGVhbiwgY29uZmlndXJhdGlvbj86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0UGFuZWxWaXNpYmxlKGNvbmRpdGlvbilcclxuICAgICAgICB0aGlzLnRyZWF0ZWQgPSB0cnVlXHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgaW5zZXJ0RWxlbWVudCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNldFBhbmVsVmlzaWJsZSh0cnVlKVxyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIHJlbW92ZUVsZW1lbnQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXRQYW5lbFZpc2libGUoZmFsc2UpXHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgYWRkQ2hlY2tib3hlc1RvSW5wdXRzKHByZXNlbnRhdGlvblNldHRpbmc/OiBQcmVzZW50YXRpb25TZXR0aW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tib3hlc0FkZGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jaGVja2JveGVzQWRkZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICBjb25zdCBpc0Jsb2NrVmlzaWJsZSA9IHByZXNlbnRhdGlvblNldHRpbmc/LnByZXNlbnRhdGlvblNldHRpbmdEZXRhaWxzXHJcbiAgICAgICAgICAgIC5maW5kKHggPT4geC5ibG9ja05hbWUgPT0gdGhpcy5wcmVzZW50YXRpb25EZXNpZ25lcik/LmlzQmxvY2tWaXNpYmxlID8/IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMucGFuZWwuZGVzaWduZXJDaGVja2VkID0gIWlzQmxvY2tWaXNpYmxlO1xyXG4gICAgICAgIHRoaXMucGFuZWwuZGVzaWduZXJDaGVja2JveFZpc2libGUgPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyBUaGUgY2hlY2tib3ggaXRzZWxmIGlzIHJlbmRlcmVkIGJ5IFRzaVRhYlZpZXdDb21wb25lbnQgaW4gdGhlIHRhYlxyXG4gICAgICAgIC8vIGhlYWRlcjsgZXhwb3NlIGl0cyBzdGF0ZSB0aHJvdWdoIHRoZSBzaGFwZSB0aGUgb3JjaGVzdHJhdG9ycyByZWFkIGF0XHJcbiAgICAgICAgLy8gc2F2ZSB0aW1lIChzaG93SGlkZUNoZWNrYm94Q29tcG9uZW50UmVmLmluc3RhbmNlLl9jaGVja2VkKS5cclxuICAgICAgICBjb25zdCBwYW5lbCA9IHRoaXMucGFuZWw7XHJcbiAgICAgICAgdGhpcy5zaG93SGlkZUNoZWNrYm94Q29tcG9uZW50UmVmID0ge1xyXG4gICAgICAgICAgICBpbnN0YW5jZToge1xyXG4gICAgICAgICAgICAgICAgZ2V0IF9jaGVja2VkKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYW5lbC5kZXNpZ25lckNoZWNrZWQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLnRhYlZpZXc/LnJlZnJlc2hUYWJzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgcmVtb3ZlU2hvd0hpZGVDaGVja2JveCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBhbmVsLmRlc2lnbmVyQ2hlY2tib3hWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93SGlkZUNoZWNrYm94Q29tcG9uZW50UmVmID0gbnVsbDtcclxuICAgICAgICB0aGlzLmNoZWNrYm94ZXNBZGRlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGFiVmlldz8ucmVmcmVzaFRhYnMoKTtcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBkaXNhYmxlSW5wdXRzKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFRoZSBwYW5lbCBob3N0IGlzIGVtcHR5IGFuZCBkZXRhY2hlZCDigJQgdGhlcmUgYXJlIG5vIGlucHV0cyB0byByZWFjaFxyXG4gICAgICAgIC8vIGhlcmUuIElucHV0cyBpbnNpZGUgdGhlIHBhbmVsIGNvbnRlbnQgY2FycnkgdGhlaXIgb3duIGRpcmVjdGl2ZXMuXHJcbiAgICAgICAgdGhpcy5leGVjdXRlKHRydWUpXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRQYW5lbFZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucGFuZWwudmlzaWJsZSA9IHZpc2libGU7XHJcbiAgICAgICAgdGhpcy50YWJWaWV3Py5yZWZyZXNoVGFicygpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|