@tsi-developpement/tsi-shared-ui 1.10.5 → 1.10.7
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 +2 -2
- package/esm2022/lib/services/workflow/workflow-configuration.service.mjs +30 -9
- package/esm2022/lib/tsi-base/components/tsi-form-base/tsi-form-base.component.mjs +74 -22
- package/esm2022/lib/tsi-components/tsi-generic-crud/tsi-generic-crud.component.mjs +7 -41
- 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 +119 -68
- 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 +1 -1
- package/lib/providers/shared-ui-tsi.provider.d.ts +1 -1
- package/lib/services/workflow/workflow-configuration.service.d.ts +8 -4
- package/lib/tsi-base/components/tsi-form-base/tsi-form-base.component.d.ts +7 -2
- package/lib/tsi-components/manage-reporting/add-report-popup/add-report-popup.component.d.ts +1 -1
- package/lib/tsi-components/tsi-action-erp-create-or-edit/tsi-action-erp-create-or-edit.component.d.ts +1 -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 +1 -1
- package/lib/tsi-directives/presentation-designer-base.directive.d.ts +1 -0
- package/package.json +1 -1
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGF0aW9uLWRlc2lnbmVyLWJhc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHNpLXNoYXJlZC11aS9zcmMvbGliL3RzaS1kaXJlY3RpdmVzL3ByZXNlbnRhdGlvbi1kZXNpZ25lci1iYXNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLFNBQVMsRUFBYyxLQUFLLEVBQWlELE1BQU0sZUFBZSxDQUFDO0FBRXpJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBSTlHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBTTNDLE1BQU0sT0FBTyxpQ0FBaUM7SUFHNUMsSUFBYSxvQkFBb0IsQ0FBQyxLQUF5QjtRQUV6RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFhLHdCQUF3QixDQUFDLEtBQXlCO1FBRTdELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBRXRCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFXRCxZQUFzQixFQUFjLEVBQ3hCLFFBQW1CLEVBQ25CLGdCQUFrQyxFQUNsQyxvQkFBeUMsRUFDekMsNkJBQTJELEVBQzNELGdDQUFpRTtRQUx2RCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBOEI7UUFDM0QscUNBQWdDLEdBQWhDLGdDQUFnQyxDQUFpQztRQVQ3RSxZQUFPLEdBQVksS0FBSyxDQUFBO1FBQ3hCLG9CQUFlLEdBQVks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WUFDbEYsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLGdCQUFnQixDQUFDO1lBR3JDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0csQ0FBQztRQUlELElBQUksSUFBSSxDQUFDLDZCQUE2QixDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFHaEUsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLEVBQUUsMEJBQTBCO2lCQUNwRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUM7WUFFaEYsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLEVBQUUsMEJBQTBCO2lCQUNuRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUM7WUFFaEYsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQTtRQUNyRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUN0RSxDQUFDOytHQTlTVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQzs7NEZBQWpDLGlDQUFpQztrQkFIN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0NBQStDO2lCQUMxRDtpUUFJYyxvQkFBb0I7c0JBQWhDLEtBQUs7Z0JBS08sd0JBQXdCO3NCQUFwQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJlc2VudGF0aW9uU2V0dGluZyB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFRzaUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vdHNpLWNvbXBvbmVudHMvaW5wdXQtY29tcG9uZW50cy90c2ktY2hlY2tib3gvdHNpLWNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExheW91dEhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9sYXlvdXQvbGF5b3V0LWhlbHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV29ya2Zsb3dDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3dvcmtmbG93L3dvcmtmbG93LWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFByZXNlbnRhdGlvbkRlc2lnbmVyQmFzZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcmVzZW50YXRpb24tc2V0dGluZy9wcmVzZW50YXRpb24tZGVzaWduZXItYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vZW51bXMnO1xyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3ByZXNlbnRhdGlvbkRlc2lnbmVyQmFzZV06bm90KHRzaS10YWItcGFuZWwpJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJlc2VudGF0aW9uRGVzaWduZXJEaXJlY3RpdmVCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5wcml2YXRlIF9wcmVzZW50YXRpb25EZXNpZ25lciE6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KCkgc2V0IHByZXNlbnRhdGlvbkRlc2lnbmVyKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpXHJcbiAge1xyXG4gICAgdGhpcy5fcHJlc2VudGF0aW9uRGVzaWduZXIgPSB2YWx1ZTtcclxuICB9XHJcbiAgXHJcbiAgQElucHV0KCkgc2V0IHByZXNlbnRhdGlvbkRlc2lnbmVyQmFzZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKVxyXG4gIHtcclxuICAgIHRoaXMuX3ByZXNlbnRhdGlvbkRlc2lnbmVyID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgcHJlc2VudGF0aW9uRGVzaWduZXIoKTogc3RyaW5nIHwgdW5kZWZpbmVkXHJcbiAge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ByZXNlbnRhdGlvbkRlc2lnbmVyO1xyXG4gIH1cclxuXHJcbiAgc2hvd0hpZGVDaGVja2JveENvbXBvbmVudFJlZjogYW55XHJcbiAgZGlzYWJsZWRDaGVja2JveENvbXBvbmVudFJlZjogYW55XHJcbiAgdGVtcFRlbXBsYXRlUmVmOiBhbnlcclxuICB0ZW1wVGVtcGxhdGVQYXJlbnROb2RlOiBhbnlcclxuICBuZXhTaWJsaW5nT2ZFbGVtZW50OiBhbnlcclxuICB0cmVhdGVkOiBib29sZWFuID0gZmFsc2VcclxuICBjaGVja2JveGVzQWRkZWQ6IGJvb2xlYW4gPSBmYWxzZVxyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByb3RlY3RlZCBfbGF5b3V0SGVscGVyU2VydmljZTogTGF5b3V0SGVscGVyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBfd29ya2Zsb3dDb25maWd1cmF0aW9uU2VydmljZTogV29ya2Zsb3dDb25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBfcHJlc2VudGF0aW9uRGVzaWduZXJCYXNlU2VydmljZTogUHJlc2VudGF0aW9uRGVzaWduZXJCYXNlU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy50ZW1wVGVtcGxhdGVSZWYgPSBlbC5uYXRpdmVFbGVtZW50XHJcbiAgICB0aGlzLm5leFNpYmxpbmdPZkVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ/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==
|
|
@@ -389,7 +389,7 @@ const AdministrationEndpoints = {
|
|
|
389
389
|
getSqlColumns: (businessClassName) => `${Segment.base}/${AdministrationSegments.entityInfoController}/${AdministrationSegments.sqlColumns}/${businessClassName}`,
|
|
390
390
|
getWorkflowConditionPassageOperatorEnum: () => `${Segment.base}/${AdministrationSegments.workflow}/${AdministrationSegments.getWorkflowConditionPassageOperatorEnum}`,
|
|
391
391
|
getConnectedUsers: () => `${Segment.base}/${AdministrationSegments.admin}/${AdministrationSegments.getConnectedUsers}`,
|
|
392
|
-
getWorkflowEtatFormByClassName: (className) => `${Segment.base}/${AdministrationSegments.workflowEtat}/${AdministrationSegments.getWorkflowEtatFormByClassName}/${className}`,
|
|
392
|
+
getWorkflowEtatFormByClassName: (className, descriminatorValue) => `${Segment.base}/${AdministrationSegments.workflowEtat}/${AdministrationSegments.getWorkflowEtatFormByClassName}/${className}${descriminatorValue ? `/${descriminatorValue}` : ""}`,
|
|
393
393
|
// getAlertByCodeModule: () => `${Segment.base}/${AdministrationSegments.alert}/${AdministrationSegments.getByCodeModule}`,
|
|
394
394
|
getAlertByCodeModule: (codeModule, alertDisplay) => `${Segment.base}/${AdministrationSegments.alert}/${codeModule}/${alertDisplay}`,
|
|
395
395
|
getColonnesByClassNameAsKeyValuePair: (parentEntityName, columnName) => `${Segment.base}/${AdministrationSegments.modeleImport}/${AdministrationSegments.colonneByClassNameAsKeyValuePair}/${parentEntityName}/${columnName}`,
|
|
@@ -2318,19 +2318,40 @@ class WorkflowConfigurationService {
|
|
|
2318
2318
|
get isDesginModeFromWorkflow() {
|
|
2319
2319
|
return this._isDesginModeFromWorkflow;
|
|
2320
2320
|
}
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
}
|
|
2324
|
-
|
|
2325
|
-
|
|
2321
|
+
_workflowEtatFormCacheKey(businessClass, descriminatorValue) {
|
|
2322
|
+
return descriminatorValue ? `${businessClass}::${descriminatorValue}` : businessClass;
|
|
2323
|
+
}
|
|
2324
|
+
/** Returns the cached rule set for a class(+discriminator) if present, without triggering a load. */
|
|
2325
|
+
getWorkflowEtatFormFromCacheSync(businessClass, descriminatorValue) {
|
|
2326
|
+
return businessClass ? this._workflowEtatFormDictionary.get(this._workflowEtatFormCacheKey(businessClass, descriminatorValue)) : undefined;
|
|
2327
|
+
}
|
|
2328
|
+
/** Returns the cached rule set for a class(+discriminator), loading and caching it on first request. Concurrent requests for the same key share one HTTP call. */
|
|
2329
|
+
async getWorkflowEtatFormForClassFromCache(businessClass, descriminatorValue) {
|
|
2330
|
+
const key = this._workflowEtatFormCacheKey(businessClass, descriminatorValue);
|
|
2331
|
+
const cached = this._workflowEtatFormDictionary.get(key);
|
|
2332
|
+
if (cached) {
|
|
2333
|
+
return cached;
|
|
2334
|
+
}
|
|
2335
|
+
let inFlight = this._workflowEtatFormInFlight.get(key);
|
|
2336
|
+
if (!inFlight) {
|
|
2337
|
+
inFlight = firstValueFrom(this.getWorkflowEtatFormByClassName(businessClass, descriminatorValue))
|
|
2338
|
+
.then(result => {
|
|
2339
|
+
this._workflowEtatFormDictionary.set(key, result);
|
|
2340
|
+
return result;
|
|
2341
|
+
})
|
|
2342
|
+
.finally(() => this._workflowEtatFormInFlight.delete(key));
|
|
2343
|
+
this._workflowEtatFormInFlight.set(key, inFlight);
|
|
2344
|
+
}
|
|
2345
|
+
return inFlight;
|
|
2326
2346
|
}
|
|
2327
2347
|
constructor(_httpClient) {
|
|
2328
2348
|
this._httpClient = _httpClient;
|
|
2329
2349
|
this._isDesginModeFromWorkflow = false;
|
|
2330
|
-
this.
|
|
2350
|
+
this._workflowEtatFormDictionary = new Map();
|
|
2351
|
+
this._workflowEtatFormInFlight = new Map();
|
|
2331
2352
|
}
|
|
2332
|
-
getWorkflowEtatFormByClassName(className) {
|
|
2333
|
-
return this._httpClient.get(AdministrationEndpoints.getWorkflowEtatFormByClassName(className));
|
|
2353
|
+
getWorkflowEtatFormByClassName(className, descriminatorValue) {
|
|
2354
|
+
return this._httpClient.get(AdministrationEndpoints.getWorkflowEtatFormByClassName(className, descriminatorValue));
|
|
2334
2355
|
}
|
|
2335
2356
|
getCurrentEntityWorklfowInstanceInformation(request) {
|
|
2336
2357
|
return this._httpClient.post(AdministrationEndpoints.getEntityWorklfowInstanceInformation(), request);
|
|
@@ -2426,6 +2447,7 @@ class PresentationDesignerDirectiveBase {
|
|
|
2426
2447
|
this._workflowConfigurationService = _workflowConfigurationService;
|
|
2427
2448
|
this._presentationDesignerBaseService = _presentationDesignerBaseService;
|
|
2428
2449
|
this.treated = false;
|
|
2450
|
+
this.checkboxesAdded = false;
|
|
2429
2451
|
this.tempTemplateRef = el.nativeElement;
|
|
2430
2452
|
this.nexSiblingOfElement = this.el.nativeElement?.nextSibling;
|
|
2431
2453
|
this.tempTemplateParentNode = this.el.nativeElement?.parentNode;
|
|
@@ -2538,6 +2560,7 @@ class PresentationDesignerDirectiveBase {
|
|
|
2538
2560
|
}
|
|
2539
2561
|
this.renderer.removeClass(this.el.nativeElement, 'config-mode-border');
|
|
2540
2562
|
this.viewContainerRef.clear();
|
|
2563
|
+
this.checkboxesAdded = false;
|
|
2541
2564
|
}
|
|
2542
2565
|
removeElement() {
|
|
2543
2566
|
if (!this.tempTemplateRef) {
|
|
@@ -2610,6 +2633,10 @@ class PresentationDesignerDirectiveBase {
|
|
|
2610
2633
|
});
|
|
2611
2634
|
}
|
|
2612
2635
|
addCheckboxesToInputs(presentationSetting) {
|
|
2636
|
+
if (this.checkboxesAdded) {
|
|
2637
|
+
return;
|
|
2638
|
+
}
|
|
2639
|
+
this.checkboxesAdded = true;
|
|
2613
2640
|
if (!this._workflowConfigurationService.isDesginModeFromWorkflow) {
|
|
2614
2641
|
this.showHideCheckboxComponentRef = this.viewContainerRef.createComponent(TsiCheckboxComponent);
|
|
2615
2642
|
this.showHideCheckboxComponentRef.setInput("inputName", this.presentationDesigner);
|
|
@@ -2952,6 +2979,10 @@ class PresentationDesignerTabPanelDirective extends PresentationDesignerDirectiv
|
|
|
2952
2979
|
this.setPanelVisible(false);
|
|
2953
2980
|
}
|
|
2954
2981
|
addCheckboxesToInputs(presentationSetting) {
|
|
2982
|
+
if (this.checkboxesAdded) {
|
|
2983
|
+
return;
|
|
2984
|
+
}
|
|
2985
|
+
this.checkboxesAdded = true;
|
|
2955
2986
|
const isBlockVisible = presentationSetting?.presentationSettingDetails
|
|
2956
2987
|
.find(x => x.blockName == this.presentationDesigner)?.isBlockVisible ?? true;
|
|
2957
2988
|
this.panel.designerChecked = !isBlockVisible;
|
|
@@ -2972,6 +3003,7 @@ class PresentationDesignerTabPanelDirective extends PresentationDesignerDirectiv
|
|
|
2972
3003
|
removeShowHideCheckbox() {
|
|
2973
3004
|
this.panel.designerCheckboxVisible = false;
|
|
2974
3005
|
this.showHideCheckboxComponentRef = null;
|
|
3006
|
+
this.checkboxesAdded = false;
|
|
2975
3007
|
this.tabView?.refreshTabs();
|
|
2976
3008
|
}
|
|
2977
3009
|
disableInputs() {
|
|
@@ -14354,7 +14386,6 @@ class TsiGenericCrudComponent {
|
|
|
14354
14386
|
this._formEndpoint = undefined;
|
|
14355
14387
|
this.filterIcon = 'pi pi-filter';
|
|
14356
14388
|
this.filterTooltip = 'show_filter';
|
|
14357
|
-
this._isWorkflowEtatFormLoaded = false;
|
|
14358
14389
|
this.buttonType = ButtonType;
|
|
14359
14390
|
this.tooltipPosition = TooltipPosition;
|
|
14360
14391
|
this.configModeButtonId = "confg-mode-button-from-list";
|
|
@@ -14447,41 +14478,11 @@ class TsiGenericCrudComponent {
|
|
|
14447
14478
|
// ngAfterContentChecked(): void {
|
|
14448
14479
|
// this._cdRef.detectChanges();
|
|
14449
14480
|
// }
|
|
14450
|
-
|
|
14451
|
-
if (this.businessClass
|
|
14452
|
-
this.
|
|
14453
|
-
|
|
14454
|
-
const result = await firstValueFrom(this._workflowConfigurationService.getWorkflowEtatFormByClassName(this.businessClass));
|
|
14455
|
-
this._workflowConfigurationService.workflowEtatFormForCurrentForm = result;
|
|
14456
|
-
}
|
|
14457
|
-
catch (error) {
|
|
14458
|
-
console.error('Error fetching workflow state form:', error);
|
|
14459
|
-
}
|
|
14460
|
-
}
|
|
14461
|
-
}
|
|
14462
|
-
async getWorkflowEntityInformation(businessClass, uidObject) {
|
|
14463
|
-
let result = undefined;
|
|
14464
|
-
try {
|
|
14465
|
-
let request = new GetWorkflowInstanceInformationRequest();
|
|
14466
|
-
request.className = businessClass;
|
|
14467
|
-
request.uidObjet = uidObject;
|
|
14468
|
-
request.discriminatorClassName = this.entityInfo?.discriminatorClassName;
|
|
14469
|
-
request.discriminatorPropertyName = this.entityInfo?.discriminatorPropertyName;
|
|
14470
|
-
request.discriminatorValue = this.descriminatorValue;
|
|
14471
|
-
result = await firstValueFrom(this._workflowConfigurationService.getCurrentEntityWorklfowInstanceInformation(request));
|
|
14472
|
-
// if (result) {
|
|
14473
|
-
// let workflowEtatForm = this._workflowConfigurationService.workflowEtatFormForCurrentForm
|
|
14474
|
-
// ?.find(x => x.uid == result?.workflowEtat)
|
|
14475
|
-
// if (workflowEtatForm) {
|
|
14476
|
-
// // this._workflowConfigurationService.workflowEtatForForCurrentEntityForm =
|
|
14477
|
-
// // this._workflowConfigurationService.mapWorkflowEtatFormToPresentationSetting(workflowEtatForm.workflowEtatsForms)
|
|
14478
|
-
// }
|
|
14479
|
-
// }
|
|
14480
|
-
}
|
|
14481
|
-
catch (error) {
|
|
14482
|
-
console.error(error);
|
|
14481
|
+
getWorkflowEtatFormForCurrentBusinessClass() {
|
|
14482
|
+
if (this.businessClass) {
|
|
14483
|
+
this._workflowConfigurationService.getWorkflowEtatFormForClassFromCache(this.businessClass, this.descriminatorValue)
|
|
14484
|
+
.catch(error => console.error('Error fetching workflow state form:', error));
|
|
14483
14485
|
}
|
|
14484
|
-
return result;
|
|
14485
14486
|
}
|
|
14486
14487
|
searchFieldValueChanges(newSearchFieldValues) {
|
|
14487
14488
|
this.searchFieldsValueChanged.emit(newSearchFieldValues);
|
|
@@ -15011,11 +15012,9 @@ class TsiGenericCrudComponent {
|
|
|
15011
15012
|
}
|
|
15012
15013
|
async _openModal(mode, itemKey, data) {
|
|
15013
15014
|
this.crudService.isDuplicate = mode === Modes.duplicate;
|
|
15014
|
-
let workflowEntityInformation = undefined;
|
|
15015
15015
|
if (this.businessClass) {
|
|
15016
15016
|
try {
|
|
15017
15017
|
this.entityInfo = await this._entityConfigService.getEntityInfoFromCache(this.businessClass);
|
|
15018
|
-
workflowEntityInformation = await this.getWorkflowEntityInformation(this.businessClass, itemKey);
|
|
15019
15018
|
}
|
|
15020
15019
|
catch (error) {
|
|
15021
15020
|
console.error(error);
|
|
@@ -15024,7 +15023,7 @@ class TsiGenericCrudComponent {
|
|
|
15024
15023
|
let conf;
|
|
15025
15024
|
if (this.modalSize != null && this.modalSize != undefined) {
|
|
15026
15025
|
conf = {
|
|
15027
|
-
data: { id: itemKey, mode: mode, customData: data,
|
|
15026
|
+
data: { id: itemKey, mode: mode, customData: data, entityInfo: this.entityInfo },
|
|
15028
15027
|
styleClass: '',
|
|
15029
15028
|
width: this.modalSize.width,
|
|
15030
15029
|
height: this.modalSize.height,
|
|
@@ -15036,7 +15035,7 @@ class TsiGenericCrudComponent {
|
|
|
15036
15035
|
}
|
|
15037
15036
|
else {
|
|
15038
15037
|
conf = {
|
|
15039
|
-
data: { id: itemKey, mode: mode, customData: data
|
|
15038
|
+
data: { id: itemKey, mode: mode, customData: data },
|
|
15040
15039
|
maximizable: true,
|
|
15041
15040
|
};
|
|
15042
15041
|
}
|
|
@@ -17124,6 +17123,9 @@ class TsiFormComponentBaseComponent extends AppBaseComponent {
|
|
|
17124
17123
|
this._businessClass = value;
|
|
17125
17124
|
this.formEndpoint = this.businessClass;
|
|
17126
17125
|
this._genericValidationStateService?.loadEntityValidationInfos(this._businessClass);
|
|
17126
|
+
if (this._businessClass) {
|
|
17127
|
+
this._fetchWorkflowEntityInformation();
|
|
17128
|
+
}
|
|
17127
17129
|
}
|
|
17128
17130
|
set componentDescriminator(value) {
|
|
17129
17131
|
this._componentDescriminator = value;
|
|
@@ -17136,7 +17138,12 @@ class TsiFormComponentBaseComponent extends AppBaseComponent {
|
|
|
17136
17138
|
this.directiveElements = [...this._presentationDesignerService.getDirectives(),
|
|
17137
17139
|
...this._presentationDesignerBaseService.getDirectives()
|
|
17138
17140
|
];
|
|
17139
|
-
this.
|
|
17141
|
+
this._ensureWorkflowDataReady().then(() => {
|
|
17142
|
+
this.directiveElements = [...this._presentationDesignerService.getDirectives(),
|
|
17143
|
+
...this._presentationDesignerBaseService.getDirectives()
|
|
17144
|
+
];
|
|
17145
|
+
this.addInputs(this.presentationRequest, !this._layoutHelperService?.isDesignMode);
|
|
17146
|
+
});
|
|
17140
17147
|
// this._reportingService.getReportDecriminator(req).subscribe({
|
|
17141
17148
|
// next: async (result) => {
|
|
17142
17149
|
// this.descriminatorValue = result.propertyValue;
|
|
@@ -17170,6 +17177,15 @@ class TsiFormComponentBaseComponent extends AppBaseComponent {
|
|
|
17170
17177
|
set mode(value) {
|
|
17171
17178
|
this._mode = value;
|
|
17172
17179
|
}
|
|
17180
|
+
get id() {
|
|
17181
|
+
return this._id;
|
|
17182
|
+
}
|
|
17183
|
+
set id(value) {
|
|
17184
|
+
this._id = value;
|
|
17185
|
+
if (this.businessClass) {
|
|
17186
|
+
this._fetchWorkflowEntityInformation();
|
|
17187
|
+
}
|
|
17188
|
+
}
|
|
17173
17189
|
set isloading(value) {
|
|
17174
17190
|
this._isloading = value;
|
|
17175
17191
|
console.log('isloading set to', value);
|
|
@@ -17258,7 +17274,7 @@ class TsiFormComponentBaseComponent extends AppBaseComponent {
|
|
|
17258
17274
|
this._initModalRef();
|
|
17259
17275
|
this.initModalData();
|
|
17260
17276
|
this._addedDirectiveSubscritpion = this._presentationDesignerService.addedDirectiveObservable
|
|
17261
|
-
.subscribe(data => {
|
|
17277
|
+
.subscribe(async (data) => {
|
|
17262
17278
|
if (data.treated) {
|
|
17263
17279
|
return;
|
|
17264
17280
|
}
|
|
@@ -17270,14 +17286,16 @@ class TsiFormComponentBaseComponent extends AppBaseComponent {
|
|
|
17270
17286
|
this.entityInfo = this._workflowConfigurationService.currentWorkflowEntityInfo;
|
|
17271
17287
|
}
|
|
17272
17288
|
if (!this.entityInfo?.discriminatorPropertyName && !this.entityInfo?.discriminatorClassName) {
|
|
17289
|
+
await this._ensureWorkflowDataReady();
|
|
17273
17290
|
this.processSingleElement(data);
|
|
17274
17291
|
}
|
|
17275
17292
|
else if (this.descriminatorValue) {
|
|
17293
|
+
await this._ensureWorkflowDataReady();
|
|
17276
17294
|
this.processSingleElement(data);
|
|
17277
17295
|
}
|
|
17278
17296
|
});
|
|
17279
17297
|
this._addedDirectiveBaseSubscritpion = this._presentationDesignerBaseService.addedDirectiveObservable
|
|
17280
|
-
.subscribe(data => {
|
|
17298
|
+
.subscribe(async (data) => {
|
|
17281
17299
|
if (data.treated) {
|
|
17282
17300
|
return;
|
|
17283
17301
|
}
|
|
@@ -17289,9 +17307,11 @@ class TsiFormComponentBaseComponent extends AppBaseComponent {
|
|
|
17289
17307
|
this.entityInfo = this._workflowConfigurationService.currentWorkflowEntityInfo;
|
|
17290
17308
|
}
|
|
17291
17309
|
if (!this.entityInfo?.discriminatorPropertyName && !this.entityInfo?.discriminatorClassName) {
|
|
17310
|
+
await this._ensureWorkflowDataReady();
|
|
17292
17311
|
this.processSingleElement(data);
|
|
17293
17312
|
}
|
|
17294
17313
|
else if (this.descriminatorValue) {
|
|
17314
|
+
await this._ensureWorkflowDataReady();
|
|
17295
17315
|
this.processSingleElement(data);
|
|
17296
17316
|
}
|
|
17297
17317
|
});
|
|
@@ -17520,7 +17540,6 @@ class TsiFormComponentBaseComponent extends AppBaseComponent {
|
|
|
17520
17540
|
this.form.id = this.id;
|
|
17521
17541
|
this.form.mode = this.mode;
|
|
17522
17542
|
this.form.formEndpoint = this.formEndpoint;
|
|
17523
|
-
this.refreshWorkflowInformation(this.id);
|
|
17524
17543
|
}
|
|
17525
17544
|
}
|
|
17526
17545
|
if (this.form) {
|
|
@@ -17536,6 +17555,10 @@ class TsiFormComponentBaseComponent extends AppBaseComponent {
|
|
|
17536
17555
|
this.hide(apiResponse);
|
|
17537
17556
|
}
|
|
17538
17557
|
async openWorkflow() {
|
|
17558
|
+
if (!this.entityInfo?.isWorkflow) {
|
|
17559
|
+
this._messageInfoService.error('tsi_form_entity_not_marked_as_workflow');
|
|
17560
|
+
return;
|
|
17561
|
+
}
|
|
17539
17562
|
const descriminator = this.form?.ignoreDescriminator ? undefined : this.descriminatorValue;
|
|
17540
17563
|
try {
|
|
17541
17564
|
const match = await firstValueFrom(this._workflowConfigurationService.getWorkflowByClasseAndDescriminator(this.businessClass, descriminator));
|
|
@@ -17545,33 +17568,60 @@ class TsiFormComponentBaseComponent extends AppBaseComponent {
|
|
|
17545
17568
|
: { data: { mode: Modes.create, customData: { workflow: { classe: this.businessClass, descriminatorValue: descriminator } } },
|
|
17546
17569
|
styleClass: '', width: ModalSizeEnum.ExtraLarge.width, height: ModalSizeEnum.ExtraLarge.height, maximizable: true };
|
|
17547
17570
|
const dialogRef = this._workflowModalService.open(TypeRegistryHelper.getType('CreateOrEditWorkflowsComponent'), conf);
|
|
17548
|
-
dialogRef.onClose.subscribe(() => this.
|
|
17571
|
+
dialogRef.onClose.subscribe(() => this._fetchWorkflowEntityInformation());
|
|
17549
17572
|
}
|
|
17550
17573
|
catch (error) {
|
|
17551
17574
|
console.error("Error when getting workflow information", error);
|
|
17552
17575
|
}
|
|
17553
17576
|
}
|
|
17554
|
-
|
|
17577
|
+
_fetchWorkflowEntityInformation() {
|
|
17578
|
+
if (!this.businessClass)
|
|
17579
|
+
return Promise.resolve();
|
|
17580
|
+
if (!this._workflowEntityInformationPromise) {
|
|
17581
|
+
this._workflowEntityInformationPromise = this._fetchWorkflowEntityInformationCore()
|
|
17582
|
+
.finally(() => { this._workflowEntityInformationPromise = undefined; });
|
|
17583
|
+
}
|
|
17584
|
+
return this._workflowEntityInformationPromise;
|
|
17585
|
+
}
|
|
17586
|
+
async _fetchWorkflowEntityInformationCore() {
|
|
17587
|
+
await this.getEntityInformation(this.businessClass);
|
|
17588
|
+
const requiresDescriminator = !!(this.entityInfo?.discriminatorClassName || this.entityInfo?.discriminatorPropertyName);
|
|
17589
|
+
if (requiresDescriminator && !this.descriminatorValue) {
|
|
17590
|
+
return;
|
|
17591
|
+
}
|
|
17555
17592
|
let request = new GetWorkflowInstanceInformationRequest();
|
|
17556
17593
|
request.className = this.businessClass;
|
|
17557
|
-
request.uidObjet = id;
|
|
17594
|
+
request.uidObjet = this.id;
|
|
17558
17595
|
request.discriminatorClassName = this.entityInfo?.discriminatorClassName;
|
|
17559
17596
|
request.discriminatorPropertyName = this.entityInfo?.discriminatorPropertyName;
|
|
17560
17597
|
request.discriminatorValue = this.descriminatorValue;
|
|
17561
|
-
|
|
17562
|
-
|
|
17563
|
-
|
|
17564
|
-
|
|
17565
|
-
|
|
17566
|
-
},
|
|
17567
|
-
error: (error) => {
|
|
17568
|
-
console.error("Error while getting workflowInformation", error);
|
|
17598
|
+
try {
|
|
17599
|
+
const response = await firstValueFrom(this._workflowConfigurationService.getCurrentEntityWorklfowInstanceInformation(request));
|
|
17600
|
+
this.workflowInformation = response;
|
|
17601
|
+
if (this.form) {
|
|
17602
|
+
this.form.workflowInformation = response ?? new workflowInstanceInformationResponse();
|
|
17569
17603
|
}
|
|
17570
|
-
|
|
17604
|
+
this.directiveElements = [...this._presentationDesignerService.getDirectives(),
|
|
17605
|
+
...this._presentationDesignerBaseService.getDirectives()
|
|
17606
|
+
];
|
|
17607
|
+
}
|
|
17608
|
+
catch (error) {
|
|
17609
|
+
console.error("Error while getting workflowInformation", error);
|
|
17610
|
+
}
|
|
17611
|
+
}
|
|
17612
|
+
async _ensureWorkflowDataReady() {
|
|
17613
|
+
if (!this.businessClass)
|
|
17614
|
+
return;
|
|
17615
|
+
await Promise.all([
|
|
17616
|
+
this._workflowConfigurationService.getWorkflowEtatFormForClassFromCache(this.businessClass, this.descriminatorValue).catch(error => {
|
|
17617
|
+
console.error("Error while getting workflow etat form configuration", error);
|
|
17618
|
+
}),
|
|
17619
|
+
this._fetchWorkflowEntityInformation()
|
|
17620
|
+
]);
|
|
17571
17621
|
}
|
|
17572
17622
|
//#endregion traiter multiple combo
|
|
17573
17623
|
getWorkflowEtatForm() {
|
|
17574
|
-
let workflowEtatForm = this._workflowConfigurationService.
|
|
17624
|
+
let workflowEtatForm = this._workflowConfigurationService.getWorkflowEtatFormFromCacheSync(this.businessClass, this.descriminatorValue)
|
|
17575
17625
|
?.find(x => x.uid == this.workflowInformation?.workflowEtat);
|
|
17576
17626
|
if (workflowEtatForm) {
|
|
17577
17627
|
let workflowEtat = this._workflowConfigurationService.mapWorkflowEtatFormToPresentationSetting(workflowEtatForm?.workflowEtatsForms);
|
|
@@ -17583,7 +17633,8 @@ class TsiFormComponentBaseComponent extends AppBaseComponent {
|
|
|
17583
17633
|
addInputs(presentationRequest, applyGridConfig = true, workflowEtat, directiveElements = this.directiveElements) {
|
|
17584
17634
|
if ((!workflowEtat || workflowEtat.presentationSettingDetails.length == 0)
|
|
17585
17635
|
&& this.workflowInformation
|
|
17586
|
-
&& this.workflowInformation?.workflowEtat
|
|
17636
|
+
&& this.workflowInformation?.workflowEtat
|
|
17637
|
+
&& !this._workflowConfigurationService.isDesginModeFromWorkflow) {
|
|
17587
17638
|
workflowEtat = this.getWorkflowEtatForm();
|
|
17588
17639
|
}
|
|
17589
17640
|
const hasPresentationRequest = presentationRequest?.presentationSettingDetails?.length > 0;
|
|
@@ -17594,7 +17645,7 @@ class TsiFormComponentBaseComponent extends AppBaseComponent {
|
|
|
17594
17645
|
directiveElements?.forEach(directive => {
|
|
17595
17646
|
const presentationSettingDetail = presentationRequest.presentationSettingDetails.find(x => x.blockName == directive.presentationDesigner);
|
|
17596
17647
|
if (presentationSettingDetail == undefined || presentationSettingDetail.isBlockVisible) {
|
|
17597
|
-
let worfkflowEtatForm = this.getWorkflowEtatForm();
|
|
17648
|
+
let worfkflowEtatForm = this._workflowConfigurationService.isDesginModeFromWorkflow ? undefined : this.getWorkflowEtatForm();
|
|
17598
17649
|
if (worfkflowEtatForm) {
|
|
17599
17650
|
let workflowConfig = worfkflowEtatForm.presentationSettingDetails.find(x => x.blockName == directive.presentationDesigner);
|
|
17600
17651
|
if (!workflowConfig) {
|
|
@@ -17709,7 +17760,7 @@ class TsiFormComponentBaseComponent extends AppBaseComponent {
|
|
|
17709
17760
|
this.presentationRequest = this._presentationSettingService.getPresentationSettingByComponentIdentifierSync(this.getComponentIdentifier(), this.descriminatorValue) ?? new PresentationSetting();
|
|
17710
17761
|
let presentationSettingDetail = this.presentationRequest?.presentationSettingDetails?.find(x => x.blockName == directive.presentationDesigner);
|
|
17711
17762
|
if (presentationSettingDetail == undefined || presentationSettingDetail.isBlockVisible) {
|
|
17712
|
-
let worfkflowEtatForm = this.getWorkflowEtatForm();
|
|
17763
|
+
let worfkflowEtatForm = this._workflowConfigurationService.isDesginModeFromWorkflow ? undefined : this.getWorkflowEtatForm();
|
|
17713
17764
|
if (worfkflowEtatForm) {
|
|
17714
17765
|
let workflowConfig = worfkflowEtatForm.presentationSettingDetails.find(x => x.blockName == directive.presentationDesigner);
|
|
17715
17766
|
if (!workflowConfig) {
|