@eqproject/eqp-dynamic-module 2.6.37 → 2.6.38

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.
@@ -33,6 +33,8 @@ export class TriggerCreatorComponent {
33
33
  this.triggerPropertyType = TriggerPropertyTypeEnum;
34
34
  }
35
35
  ngOnInit() {
36
+ console.log("this.formulas", this.formulas);
37
+ console.log("this.trigger", this.trigger);
36
38
  if (this.trigger == null) {
37
39
  this.trigger = new Trigger();
38
40
  this.trigger.conditions = new Array();
@@ -42,10 +44,10 @@ export class TriggerCreatorComponent {
42
44
  this.selectedFormula.key = this.trigger.execution;
43
45
  this.formulaFieldsStructure = new Array();
44
46
  Object.keys(this.formulas[this.selectedFormula.key]).forEach((res) => {
45
- this.formulaFieldsStructure.push({ "key": res });
47
+ this.formulaFieldsStructure.push({ "key": res, "type": this.formulas[this.selectedFormula.key][res].type });
46
48
  });
47
49
  Object.keys(this.trigger.formulas).forEach((res) => {
48
- this.formulaFieldsStructure.find(x => x.key == res).value = this.trigger.formulas[res];
50
+ this.formulaFieldsStructure.find(x => x.key == res).value = this.trigger.formulas[res].value;
49
51
  });
50
52
  }
51
53
  var executeGetModules = false;
@@ -141,17 +143,26 @@ export class TriggerCreatorComponent {
141
143
  this.utilityHelperService.RunEndPointCall(this.endPointConfiguration.Forms.GetAllFormEndPoint, dynamicModuleParams, (res) => {
142
144
  this.forms = res;
143
145
  this.forms = this.forms.sort((uno, due) => uno.Name.localeCompare(due.Name));
146
+ this.forms.forEach((form) => {
147
+ form.ID = '"' + form.ID + '"';
148
+ });
149
+ this.formulaFieldsStructure.forEach((res) => {
150
+ if (res.type == TriggerPropertyTypeEnum.DMMODULE) {
151
+ res.object = this.forms.find(x => x.ID == res.value);
152
+ }
153
+ });
154
+ console.log("this.formulaFieldsStructure", this.formulaFieldsStructure);
144
155
  }, (err) => { });
145
156
  }
146
157
  onEqpSelectModule(ev, formulaField) {
147
- formulaField.value = '"' + ev.ID + '"';
158
+ formulaField.value = ev.ID;
148
159
  }
149
160
  }
150
161
  TriggerCreatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TriggerCreatorComponent, deps: [{ token: i1.MatDialog }, { token: i2.UtilityHelperService }], target: i0.ɵɵFactoryTarget.Component });
151
- TriggerCreatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TriggerCreatorComponent, selector: "trigger-creator", inputs: { form: "form", trigger: "trigger", formulas: "formulas", endPointConfiguration: "endPointConfiguration" }, outputs: { onSaveRecord: "onSaveRecord" }, viewQueries: [{ propertyName: "dialogFormula", first: true, predicate: ["dialogFormula"], descendants: true, static: true }], ngImport: i0, template: "\r\n<mat-card class=\"add-form-field\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{trigger != null ? \"Modifica\" : \"Aggiungi\"}} trigger\r\n </mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <div class=\"container-fluid containerContent padder\" *ngIf=\"trigger.conditions != null\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Descrizione Trigger</div>\r\n <div class=\"col-9\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> Descrizione </mat-label>\r\n <input matInput [(ngModel)]=\"trigger.description\" [readonly]=\"false\" [required]=\"false\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Tipo Trigger</div>\r\n <div class=\"col-9\">\r\n <eqp-select [arrayData]=\"formulaKeys\" [(ngModelInput)]=\"selectedFormula\"\r\n [arrayKeyProperty]=\"'key'\" [arrayValueProperty]=\"'key'\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onChangeFormula($event)\">\r\n </eqp-select> \r\n </div>\r\n </div>\r\n\r\n <div class=\"row\" *ngFor=\"let formulaField of formulaFieldsStructure\">\r\n <div class=\"col-3\">{{formulaField.key}}</div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.STRING\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> {{formulaField.key}} </mat-label>\r\n <input matInput [readonly]=\"false\" [required]=\"false\" (click)=\"openFormulaDialog(formulaField)\" [(ngModel)]=\"formulaField.value\" (ngModelChange)=\"onFormulaFieldChange(formulaField)\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.DMMODULE\">\r\n <eqp-select [placeholder]=\"'Seleziona modulo'\" [arrayData]=\"forms\" [(ngModelInput)]=\"EqpSelectedFormulaField\" [isSearchable]=\"true\"\r\n [arrayKeyProperty]=\"'ID'\" [arrayValueProperty]=\"'Name'\" [ngModelOptions]=\"{ standalone: true }\" (ngModelInputChange)=\"onEqpSelectModule($event, formulaField)\">\r\n </eqp-select>\r\n </div>\r\n </div>\r\n\r\n <button class=\"btn btn-primary\" (click)=\"addCondition()\">Aggiungi condizione</button>\r\n\r\n <div class=\"padder\" *ngFor=\"let condition of trigger.conditions\">\r\n <div class=\"row\" *ngIf=\"condition.Field != null\">\r\n <div class=\"col-1\"><button class=\"btn btn-danger\"><mat-icon (click)=\"deleteCondition(condition)\">delete</mat-icon></button></div>\r\n <div class=\"col-2\">\r\n <eqp-select [arrayData]=\"form.Fields\" [(ngModelInput)]=\"condition.Field\"\r\n [arrayKeyProperty]=\"'Name'\" [arrayValueProperty]=\"'Name'\"\r\n [showCancelButton]=\"false\" (ngModelInputChange)=\"onFieldTypeChange($event, condition)\"\r\n [includeFullObject]=\"true\">\r\n </eqp-select>\r\n </div> \r\n <div class=\"col-9\" *ngIf=\"condition.Field != null\">\r\n <dynamic-module-trigger-fix #fieldTemplate [condition]=\"condition\" [form]=\"form\" (triggerChange)=\"onTriggerChange($event, condition)\"></dynamic-module-trigger-fix>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n <mat-card-footer>\r\n <div class=\"d-flex justify-content-end mt-2 mb-1 me-3\"> \r\n <button class=\"mr-2\" mat-raised-button type=\"button\" (click)=\"saveOrExitForm(true)\">\r\n Annulla\r\n </button>\r\n <button class=\"mr-2\" mat-raised-button color=\"primary\" type=\"button\"\r\n (click)=\"saveOrExitForm(false)\" [disabled]=\"isSaving\">\r\n <span *ngIf=\"!isSaving\">Salva</span>\r\n <span *ngIf=\"isSaving\">Salvataggio in Corso...</span>\r\n </button>\r\n </div>\r\n </mat-card-footer>\r\n\r\n</mat-card>\r\n\r\n<!--DIALOG PER SEMPLIFICARE LA SCRITTURA DEL CAMPO FORMULA-->\r\n<ng-template #dialogFormula>\r\n <eqp-dynamic-module-add-formula-component>\r\n </eqp-dynamic-module-add-formula-component>\r\n</ng-template>", styles: [".padder{padding:15px}\n"], dependencies: [{ kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i6.MatCardFooter, selector: "mat-card-footer" }, { kind: "component", type: i6.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i6.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i10.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "component", type: i11.AddFormulaComponent, selector: "eqp-dynamic-module-add-formula-component" }, { kind: "component", type: i12.DynamicModuleTriggerFixComponent, selector: "dynamic-module-trigger-fix", inputs: ["condition", "form"], outputs: ["triggerChange"] }] });
162
+ TriggerCreatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TriggerCreatorComponent, selector: "trigger-creator", inputs: { form: "form", trigger: "trigger", formulas: "formulas", endPointConfiguration: "endPointConfiguration" }, outputs: { onSaveRecord: "onSaveRecord" }, viewQueries: [{ propertyName: "dialogFormula", first: true, predicate: ["dialogFormula"], descendants: true, static: true }], ngImport: i0, template: "\r\n<mat-card class=\"add-form-field\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{trigger != null ? \"Modifica\" : \"Aggiungi\"}} trigger\r\n </mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <div class=\"container-fluid containerContent padder\" *ngIf=\"trigger.conditions != null\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Descrizione Trigger</div>\r\n <div class=\"col-9\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> Descrizione </mat-label>\r\n <input matInput [(ngModel)]=\"trigger.description\" [readonly]=\"false\" [required]=\"false\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Tipo Trigger</div>\r\n <div class=\"col-9\">\r\n <eqp-select [arrayData]=\"formulaKeys\" [(ngModelInput)]=\"selectedFormula\"\r\n [arrayKeyProperty]=\"'key'\" [arrayValueProperty]=\"'key'\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onChangeFormula($event)\">\r\n </eqp-select> \r\n </div>\r\n </div>\r\n\r\n <div class=\"row\" *ngFor=\"let formulaField of formulaFieldsStructure\">\r\n <div class=\"col-3\">{{formulaField.key}}</div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.STRING\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> {{formulaField.key}} </mat-label>\r\n <input matInput [readonly]=\"false\" [required]=\"false\" (click)=\"openFormulaDialog(formulaField)\" [(ngModel)]=\"formulaField.value\" (ngModelChange)=\"onFormulaFieldChange(formulaField)\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.DMMODULE\">\r\n <eqp-select [placeholder]=\"'Seleziona modulo'\" [arrayData]=\"forms\" [(ngModelInput)]=\"formulaField.object\" [isSearchable]=\"true\"\r\n [arrayKeyProperty]=\"'ID'\" [arrayValueProperty]=\"'Name'\" [ngModelOptions]=\"{ standalone: true }\" (ngModelInputChange)=\"onEqpSelectModule($event, formulaField)\">\r\n </eqp-select>\r\n </div>\r\n </div>\r\n\r\n <button class=\"btn btn-primary\" (click)=\"addCondition()\">Aggiungi condizione</button>\r\n\r\n <div class=\"padder\" *ngFor=\"let condition of trigger.conditions\">\r\n <div class=\"row\" *ngIf=\"condition.Field != null\">\r\n <div class=\"col-1\"><button class=\"btn btn-danger\"><mat-icon (click)=\"deleteCondition(condition)\">delete</mat-icon></button></div>\r\n <div class=\"col-2\">\r\n <eqp-select [arrayData]=\"form.Fields\" [(ngModelInput)]=\"condition.Field\"\r\n [arrayKeyProperty]=\"'Name'\" [arrayValueProperty]=\"'Name'\"\r\n [showCancelButton]=\"false\" (ngModelInputChange)=\"onFieldTypeChange($event, condition)\"\r\n [includeFullObject]=\"true\">\r\n </eqp-select>\r\n </div> \r\n <div class=\"col-9\" *ngIf=\"condition.Field != null\">\r\n <dynamic-module-trigger-fix #fieldTemplate [condition]=\"condition\" [form]=\"form\" (triggerChange)=\"onTriggerChange($event, condition)\"></dynamic-module-trigger-fix>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n <mat-card-footer>\r\n <div class=\"d-flex justify-content-end mt-2 mb-1 me-3\"> \r\n <button class=\"mr-2\" mat-raised-button type=\"button\" (click)=\"saveOrExitForm(true)\">\r\n Annulla\r\n </button>\r\n <button class=\"mr-2\" mat-raised-button color=\"primary\" type=\"button\"\r\n (click)=\"saveOrExitForm(false)\" [disabled]=\"isSaving\">\r\n <span *ngIf=\"!isSaving\">Salva</span>\r\n <span *ngIf=\"isSaving\">Salvataggio in Corso...</span>\r\n </button>\r\n </div>\r\n </mat-card-footer>\r\n\r\n</mat-card>\r\n\r\n<!--DIALOG PER SEMPLIFICARE LA SCRITTURA DEL CAMPO FORMULA-->\r\n<ng-template #dialogFormula>\r\n <eqp-dynamic-module-add-formula-component>\r\n </eqp-dynamic-module-add-formula-component>\r\n</ng-template>", styles: [".padder{padding:15px}\n"], dependencies: [{ kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i6.MatCardFooter, selector: "mat-card-footer" }, { kind: "component", type: i6.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i6.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i10.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "component", type: i11.AddFormulaComponent, selector: "eqp-dynamic-module-add-formula-component" }, { kind: "component", type: i12.DynamicModuleTriggerFixComponent, selector: "dynamic-module-trigger-fix", inputs: ["condition", "form"], outputs: ["triggerChange"] }] });
152
163
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TriggerCreatorComponent, decorators: [{
153
164
  type: Component,
154
- args: [{ selector: 'trigger-creator', template: "\r\n<mat-card class=\"add-form-field\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{trigger != null ? \"Modifica\" : \"Aggiungi\"}} trigger\r\n </mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <div class=\"container-fluid containerContent padder\" *ngIf=\"trigger.conditions != null\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Descrizione Trigger</div>\r\n <div class=\"col-9\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> Descrizione </mat-label>\r\n <input matInput [(ngModel)]=\"trigger.description\" [readonly]=\"false\" [required]=\"false\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Tipo Trigger</div>\r\n <div class=\"col-9\">\r\n <eqp-select [arrayData]=\"formulaKeys\" [(ngModelInput)]=\"selectedFormula\"\r\n [arrayKeyProperty]=\"'key'\" [arrayValueProperty]=\"'key'\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onChangeFormula($event)\">\r\n </eqp-select> \r\n </div>\r\n </div>\r\n\r\n <div class=\"row\" *ngFor=\"let formulaField of formulaFieldsStructure\">\r\n <div class=\"col-3\">{{formulaField.key}}</div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.STRING\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> {{formulaField.key}} </mat-label>\r\n <input matInput [readonly]=\"false\" [required]=\"false\" (click)=\"openFormulaDialog(formulaField)\" [(ngModel)]=\"formulaField.value\" (ngModelChange)=\"onFormulaFieldChange(formulaField)\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.DMMODULE\">\r\n <eqp-select [placeholder]=\"'Seleziona modulo'\" [arrayData]=\"forms\" [(ngModelInput)]=\"EqpSelectedFormulaField\" [isSearchable]=\"true\"\r\n [arrayKeyProperty]=\"'ID'\" [arrayValueProperty]=\"'Name'\" [ngModelOptions]=\"{ standalone: true }\" (ngModelInputChange)=\"onEqpSelectModule($event, formulaField)\">\r\n </eqp-select>\r\n </div>\r\n </div>\r\n\r\n <button class=\"btn btn-primary\" (click)=\"addCondition()\">Aggiungi condizione</button>\r\n\r\n <div class=\"padder\" *ngFor=\"let condition of trigger.conditions\">\r\n <div class=\"row\" *ngIf=\"condition.Field != null\">\r\n <div class=\"col-1\"><button class=\"btn btn-danger\"><mat-icon (click)=\"deleteCondition(condition)\">delete</mat-icon></button></div>\r\n <div class=\"col-2\">\r\n <eqp-select [arrayData]=\"form.Fields\" [(ngModelInput)]=\"condition.Field\"\r\n [arrayKeyProperty]=\"'Name'\" [arrayValueProperty]=\"'Name'\"\r\n [showCancelButton]=\"false\" (ngModelInputChange)=\"onFieldTypeChange($event, condition)\"\r\n [includeFullObject]=\"true\">\r\n </eqp-select>\r\n </div> \r\n <div class=\"col-9\" *ngIf=\"condition.Field != null\">\r\n <dynamic-module-trigger-fix #fieldTemplate [condition]=\"condition\" [form]=\"form\" (triggerChange)=\"onTriggerChange($event, condition)\"></dynamic-module-trigger-fix>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n <mat-card-footer>\r\n <div class=\"d-flex justify-content-end mt-2 mb-1 me-3\"> \r\n <button class=\"mr-2\" mat-raised-button type=\"button\" (click)=\"saveOrExitForm(true)\">\r\n Annulla\r\n </button>\r\n <button class=\"mr-2\" mat-raised-button color=\"primary\" type=\"button\"\r\n (click)=\"saveOrExitForm(false)\" [disabled]=\"isSaving\">\r\n <span *ngIf=\"!isSaving\">Salva</span>\r\n <span *ngIf=\"isSaving\">Salvataggio in Corso...</span>\r\n </button>\r\n </div>\r\n </mat-card-footer>\r\n\r\n</mat-card>\r\n\r\n<!--DIALOG PER SEMPLIFICARE LA SCRITTURA DEL CAMPO FORMULA-->\r\n<ng-template #dialogFormula>\r\n <eqp-dynamic-module-add-formula-component>\r\n </eqp-dynamic-module-add-formula-component>\r\n</ng-template>", styles: [".padder{padding:15px}\n"] }]
165
+ args: [{ selector: 'trigger-creator', template: "\r\n<mat-card class=\"add-form-field\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{trigger != null ? \"Modifica\" : \"Aggiungi\"}} trigger\r\n </mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <div class=\"container-fluid containerContent padder\" *ngIf=\"trigger.conditions != null\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Descrizione Trigger</div>\r\n <div class=\"col-9\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> Descrizione </mat-label>\r\n <input matInput [(ngModel)]=\"trigger.description\" [readonly]=\"false\" [required]=\"false\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Tipo Trigger</div>\r\n <div class=\"col-9\">\r\n <eqp-select [arrayData]=\"formulaKeys\" [(ngModelInput)]=\"selectedFormula\"\r\n [arrayKeyProperty]=\"'key'\" [arrayValueProperty]=\"'key'\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onChangeFormula($event)\">\r\n </eqp-select> \r\n </div>\r\n </div>\r\n\r\n <div class=\"row\" *ngFor=\"let formulaField of formulaFieldsStructure\">\r\n <div class=\"col-3\">{{formulaField.key}}</div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.STRING\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> {{formulaField.key}} </mat-label>\r\n <input matInput [readonly]=\"false\" [required]=\"false\" (click)=\"openFormulaDialog(formulaField)\" [(ngModel)]=\"formulaField.value\" (ngModelChange)=\"onFormulaFieldChange(formulaField)\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.DMMODULE\">\r\n <eqp-select [placeholder]=\"'Seleziona modulo'\" [arrayData]=\"forms\" [(ngModelInput)]=\"formulaField.object\" [isSearchable]=\"true\"\r\n [arrayKeyProperty]=\"'ID'\" [arrayValueProperty]=\"'Name'\" [ngModelOptions]=\"{ standalone: true }\" (ngModelInputChange)=\"onEqpSelectModule($event, formulaField)\">\r\n </eqp-select>\r\n </div>\r\n </div>\r\n\r\n <button class=\"btn btn-primary\" (click)=\"addCondition()\">Aggiungi condizione</button>\r\n\r\n <div class=\"padder\" *ngFor=\"let condition of trigger.conditions\">\r\n <div class=\"row\" *ngIf=\"condition.Field != null\">\r\n <div class=\"col-1\"><button class=\"btn btn-danger\"><mat-icon (click)=\"deleteCondition(condition)\">delete</mat-icon></button></div>\r\n <div class=\"col-2\">\r\n <eqp-select [arrayData]=\"form.Fields\" [(ngModelInput)]=\"condition.Field\"\r\n [arrayKeyProperty]=\"'Name'\" [arrayValueProperty]=\"'Name'\"\r\n [showCancelButton]=\"false\" (ngModelInputChange)=\"onFieldTypeChange($event, condition)\"\r\n [includeFullObject]=\"true\">\r\n </eqp-select>\r\n </div> \r\n <div class=\"col-9\" *ngIf=\"condition.Field != null\">\r\n <dynamic-module-trigger-fix #fieldTemplate [condition]=\"condition\" [form]=\"form\" (triggerChange)=\"onTriggerChange($event, condition)\"></dynamic-module-trigger-fix>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n <mat-card-footer>\r\n <div class=\"d-flex justify-content-end mt-2 mb-1 me-3\"> \r\n <button class=\"mr-2\" mat-raised-button type=\"button\" (click)=\"saveOrExitForm(true)\">\r\n Annulla\r\n </button>\r\n <button class=\"mr-2\" mat-raised-button color=\"primary\" type=\"button\"\r\n (click)=\"saveOrExitForm(false)\" [disabled]=\"isSaving\">\r\n <span *ngIf=\"!isSaving\">Salva</span>\r\n <span *ngIf=\"isSaving\">Salvataggio in Corso...</span>\r\n </button>\r\n </div>\r\n </mat-card-footer>\r\n\r\n</mat-card>\r\n\r\n<!--DIALOG PER SEMPLIFICARE LA SCRITTURA DEL CAMPO FORMULA-->\r\n<ng-template #dialogFormula>\r\n <eqp-dynamic-module-add-formula-component>\r\n </eqp-dynamic-module-add-formula-component>\r\n</ng-template>", styles: [".padder{padding:15px}\n"] }]
155
166
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.UtilityHelperService }]; }, propDecorators: { form: [{
156
167
  type: Input,
157
168
  args: ["form"]
@@ -170,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
170
181
  type: ViewChild,
171
182
  args: ["dialogFormula", { static: true }]
172
183
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlci1jcmVhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS90cmlnZ2VyLWNyZWF0b3IvdHJpZ2dlci1jcmVhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS90cmlnZ2VyLWNyZWF0b3IvdHJpZ2dlci1jcmVhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9GLE9BQU8sRUFBRSx3QkFBd0IsRUFBYSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4SSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRS9ELE9BQU8sRUFBc0IsYUFBYSxFQUF5QixNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVN2SCxNQUFNLE9BQU8sdUJBQXVCO0lBdUJsQyxZQUFvQixNQUFpQixFQUFVLG9CQUEwQztRQUFyRSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQXBCdkUsWUFBTyxHQUFZLElBQUksQ0FBQztRQUN2QixhQUFRLEdB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QVM7Z0JBQ0csUUFBUTtzQkFBMUIsS0FBSzt1QkFBQyxVQUFVO2dCQUNlLHFCQUFxQjtzQkFBcEQsS0FBSzt1QkFBQyx1QkFBdUI7Z0JBRXBCLFlBQVk7c0JBQXJCLE1BQU07Z0JBV3VDLGFBQWE7c0JBQTFELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IEJvb2xlYW5Mb2dpY09wZXJhdG9yVHlwZSwgQ29uZGl0aW9uLCBUcmlnZ2VyLCBUcmlnZ2VyQ29uZGl0aW9uLCBUcmlnZ2VyUHJvcGVydHlUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90cmlnZ2VyLm1vZGVsJztcclxuaW1wb3J0IHsgQmFzZUZpZWxkLCBGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Jhc2VGaWVsZC5tb2RlbCc7XHJcbmltcG9ydCAqIGFzIHNzIGZyb20gJ3NpbXBsZS1zdGF0aXN0aWNzJztcclxuaW1wb3J0IHsgQ2FudmFzSlNBbmd1bGFyU3RvY2tDaGFydHNNb2R1bGUsIENhbnZhc0pTQ2hhcnQsIENhbnZhc0pTU3RvY2tDaGFydCB9IGZyb20gJ0BjYW52YXNqcy9hbmd1bGFyLXN0b2NrY2hhcnRzJztcclxuaW1wb3J0IHsgUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3JlY29yZC5tb2RlbCc7XHJcbmltcG9ydCB7IEdsb2JhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9nbG9iYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IFBpY2tlck1vZGVFbnVtIH0gZnJvbSAnQGVxcHJvamVjdC9lcXAtZGF0ZXRpbWVwaWNrZXInO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEVuZFBvaW50RGF0YVBhcmFtcywgUGFyYW1UeXBlRW51bSwgRW5kUG9pbnRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VuZFBvaW50Q29uZmlndXJhdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFV0aWxpdHlIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbGl0eUhlbHBlci5zZXJ2aWNlcyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cmlnZ2VyLWNyZWF0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmlnZ2VyLWNyZWF0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyaWdnZXItY3JlYXRvci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmlnZ2VyQ3JlYXRvckNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dChcImZvcm1cIikgZm9ybTogRm9ybTtcclxuICBASW5wdXQoXCJ0cmlnZ2VyXCIpIHRyaWdnZXI6IFRyaWdnZXIgPSBudWxsO1xyXG4gIEBJbnB1dChcImZvcm11bGFzXCIpIGZvcm11bGFzOiBhbnkgPSBudWxsO1xyXG4gIEBJbnB1dChcImVuZFBvaW50Q29uZmlndXJhdGlvblwiKSBlbmRQb2ludENvbmZpZ3VyYXRpb246IEVuZFBvaW50Q29uZmlndXJhdGlvbjtcclxuXHJcbiAgQE91dHB1dCgpIG9uU2F2ZVJlY29yZDogRXZlbnRFbWl0dGVyPFRyaWdnZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmlnZ2VyPigpO1xyXG5cclxuICBGaWVsZFR5cGVFbnVtID0gRmllbGRUeXBlRW51bTtcclxuICBpc1NhdmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkRm9ybXVsYTogYW55O1xyXG4gIGZvcm11bGFLZXlzOiBBcnJheTxhbnk+ID0gbmV3IEFycmF5PGFueT4oKTtcclxuICBmb3JtdWxhRmllbGRzU3RydWN0dXJlOiBBcnJheTxhbnk+ID0gbmV3IEFycmF5PGFueT4oKTtcclxuICBwaWNrZXJNb2RlRW51bSA9IFBpY2tlck1vZGVFbnVtO1xyXG4gIHRyaWdnZXJQcm9wZXJ0eVR5cGUgPSBUcmlnZ2VyUHJvcGVydHlUeXBlRW51bTtcclxuXHJcbiAgZGlhbG9nRm9ybXVsYVJlZjogTWF0RGlhbG9nUmVmPFRlbXBsYXRlUmVmPGFueT4+O1xyXG4gIEBWaWV3Q2hpbGQoXCJkaWFsb2dGb3JtdWxhXCIsIHsgc3RhdGljOiB0cnVlIH0pIGRpYWxvZ0Zvcm11bGE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIGZvcm1zOiBBcnJheTxGb3JtPjtcclxuICBFcXBTZWxlY3RlZEZvcm11bGFGaWVsZDogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLCBwcml2YXRlIHV0aWxpdHlIZWxwZXJTZXJ2aWNlOiBVdGlsaXR5SGVscGVyU2VydmljZSl7fVxyXG4gIFxyXG4gIG5nT25Jbml0KCl7XHJcblxyXG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PSBudWxsKXtcclxuICAgICAgdGhpcy50cmlnZ2VyID0gbmV3IFRyaWdnZXIoKTtcclxuICAgICAgdGhpcy50cmlnZ2VyLmNvbmRpdGlvbnMgPSBuZXcgQXJyYXk8VHJpZ2dlckNvbmRpdGlvbj4oKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtdWxhID0ge307XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtdWxhLmtleSA9IHRoaXMudHJpZ2dlci5leGVjdXRpb247XHJcblxyXG4gICAgICB0aGlzLmZvcm11bGFGaWVsZHNTdHJ1Y3R1cmUgPSBuZXcgQXJyYXk8YW55PigpO1xyXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm11bGFzW3RoaXMuc2VsZWN0ZWRGb3JtdWxhLmtleV0pLmZvckVhY2goKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybXVsYUZpZWxkc1N0cnVjdHVyZS5wdXNoKHtcImtleVwiOiByZXN9KTtcclxuICAgICAgfSk7ICAgICAgXHJcblxyXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLnRyaWdnZXIuZm9ybXVsYXMpLmZvckVhY2goKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybXVsYUZpZWxkc1N0cnVjdHVyZS5maW5kKHggPT4geC5rZXkgPT0gcmVzKS52YWx1ZSA9IHRoaXMudHJpZ2dlci5mb3JtdWxhc1tyZXNdO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGV4ZWN1dGVHZXRNb2R1bGVzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm11bGFzKS5mb3JFYWNoKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5mb3JtdWxhS2V5cy5wdXNoKHtcImtleVwiOiByZXN9KTtcclxuICAgICAgT2JqZWN0LmtleXModGhpcy5mb3JtdWxhc1tyZXNdKS5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm11bGFzW3Jlc11bcHJvcGVydHldLnR5cGUgPT0gVHJpZ2dlclByb3BlcnR5VHlwZUVudW0uRE1NT0RVTEUpe1xyXG4gICAgICAgICAgZXhlY3V0ZUdldE1vZHVsZXMgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoZXhlY3V0ZUdldE1vZHVsZXMpe1xyXG4gICAgICB0aGlzLmdldEFsbE1vZHVsZXMoKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBvblRyaWdnZXJDaGFuZ2Uob3V0cHV0Q29uZGl0aW9uOiBDb25kaXRpb24sIFRyaWdnZXJDb25kaXRpb246IFRyaWdnZXJDb25kaXRpb24pe1xyXG4gICAgdGhpcy50cmlnZ2VyLmNvbmRpdGlvbnMuZmluZCh4ID0+IHguQ0lEID09IFRyaWdnZXJDb25kaXRpb24uQ0lEKS5ib29sZWFubG9naWNvcGVyYXRvciA9IG91dHB1dENvbmRpdGlvbi5ib29sZWFubG9naWNvcGVyYXRvcjtcclxuICAgIHRoaXMudHJpZ2dlci5jb25kaXRpb25zLmZpbmQoeCA9PiB4LkNJRCA9PSBUcmlnZ2VyQ29uZGl0aW9uLkNJRCkubG9naWNvcGVyYXRvciA9IG91dHB1dENvbmRpdGlvbi5sb2dpY29wZXJhdG9yO1xyXG5cclxuICAgIHZhciBjaGFuZ2VJbk9yID0gZmFsc2U7XHJcbiAgICB0aGlzLnRyaWdnZXIuY29uZGl0aW9ucy5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcclxuICAgICAgaWYgKGNvbmRpdGlvbi5ib29sZWFubG9naWNvcGVyYXRvciA9PSBCb29sZWFuTG9naWNPcGVyYXRvclR5cGUuT1IpeyBjaGFuZ2VJbk9yID0gdHJ1ZTsgfVxyXG4gICAgICBpZiAoY2hhbmdlSW5Pcil7IGNvbmRpdGlvbi5ib29sZWFubG9naWNvcGVyYXRvciA9IEJvb2xlYW5Mb2dpY09wZXJhdG9yVHlwZS5PUjsgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRDb25kaXRpb24oKXtcclxuICAgIHZhciB0cmlnZ2VyQ29uZGl0aW9uID0gbmV3IFRyaWdnZXJDb25kaXRpb24oKTtcclxuICAgIHRyaWdnZXJDb25kaXRpb24uRmllbGQgPSBuZXcgQmFzZUZpZWxkKCk7XHJcbiAgICB0cmlnZ2VyQ29uZGl0aW9uLnJlY29yZCA9IG5ldyBSZWNvcmQoKTtcclxuICAgIHRyaWdnZXJDb25kaXRpb24ubG9naWNvcGVyYXRvciA9IG51bGw7XHJcbiAgICB0cmlnZ2VyQ29uZGl0aW9uLmJvb2xlYW5sb2dpY29wZXJhdG9yID0gbnVsbDtcclxuICAgIHRoaXMudHJpZ2dlci5jb25kaXRpb25zLnB1c2godHJpZ2dlckNvbmRpdGlvbik7XHJcbiAgfVxyXG5cclxuICBkZWxldGVDb25kaXRpb24oZWxlbWVudDogVHJpZ2dlckNvbmRpdGlvbil7XHJcbiAgICB2YXIgaW5kZXggPSB0aGlzLnRyaWdnZXIuY29uZGl0aW9ucy5maW5kSW5kZXgoeCA9PiB4LkNJRCA9PSBlbGVtZW50LkNJRCk7XHJcbiAgICB0aGlzLnRyaWdnZXIuY29uZGl0aW9ucy5zcGxpY2UoaW5kZXgsMSk7XHJcbiAgfVxyXG5cclxuICBvbkZpZWxkVHlwZUNoYW5nZShldjogQmFzZUZpZWxkLCBjb25kaXRpb246IFRyaWdnZXJDb25kaXRpb24pe1xyXG4gICAgY29uZGl0aW9uLkZpZWxkID0gZXY7XHJcbiAgICBjb25kaXRpb24ucmVjb3JkW2V2Lk5hbWVdID0gXCJcIjtcclxuICB9XHJcblxyXG4gIHNhdmVPckV4aXRGb3JtKGV4aXQ6IGJvb2xlYW4pIHtcclxuICAgIEdsb2JhbFNlcnZpY2UuZGVidWdMb2coJ2FkZC1mb3JtLXJlY29yZCBzYXZlUmVjb3JkRXZlbnQnKVxyXG4gICAgaWYgKGV4aXQpIHtcclxuICAgICAgdGhpcy5vblNhdmVSZWNvcmQuZW1pdChudWxsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybXVsYUZpZWxkc1N0cnVjdHVyZS5mb3JFYWNoKChmb3JtdWxhRmllbGQpID0+IHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHJpZ2dlci5mb3JtdWxhcyA9PSBcInVuZGVmaW5lZFwiKXsgdGhpcy50cmlnZ2VyLmZvcm11bGFzID0ge307IH1cclxuICAgICAgICB0aGlzLnRyaWdnZXIuZm9ybXVsYXNbZm9ybXVsYUZpZWxkLmtleV0gPSBmb3JtdWxhRmllbGQ7XHJcbiAgICAgICAgdGhpcy50cmlnZ2VyLmV4ZWN1dGlvbiA9IHRoaXMuc2VsZWN0ZWRGb3JtdWxhLmtleTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuaXNTYXZpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5vblNhdmVSZWNvcmQuZW1pdCh0aGlzLnRyaWdnZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VGb3JtdWxhKGZvcm11bGE6IGFueSl7XHJcblxyXG4gICAgdGhpcy5mb3JtdWxhRmllbGRzU3RydWN0dXJlID0gbmV3IEFycmF5PGFueT4oKTtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMuZm9ybXVsYXNbZm9ybXVsYS5rZXldKS5mb3JFYWNoKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5mb3JtdWxhRmllbGRzU3RydWN0dXJlLnB1c2goe1wia2V5XCI6IHJlcywgXCJ0eXBlXCI6IHRoaXMuZm9ybXVsYXNbZm9ybXVsYS5rZXldW3Jlc10udHlwZX0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkZvcm11bGFGaWVsZENoYW5nZShmb3JtdWxhRmllbGQ6IGFueSl7XHJcbiAgfVxyXG5cclxuICBvcGVuRm9ybXVsYURpYWxvZyhmb3JtdWxhRmllbGQ6IGFueSkge1xyXG4gICAgdGhpcy5kaWFsb2dGb3JtdWxhUmVmID0gdGhpcy5kaWFsb2cub3Blbih0aGlzLmRpYWxvZ0Zvcm11bGEsIHtcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IFwiNzUlXCIsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBmb3JtdWxhOiB0aGlzLmZvcm11bGFGaWVsZHNTdHJ1Y3R1cmUuZmluZCh4ID0+IHgua2V5ID09IGZvcm11bGFGaWVsZC5rZXkpLnZhbHVlLFxyXG4gICAgICAgIGZpZWxkczogdGhpcy5mb3JtLkZpZWxkc1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ0Zvcm11bGFSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB2YXIgZm9ybXVsYVRvQ2hhbmdlID0gdGhpcy5mb3JtdWxhRmllbGRzU3RydWN0dXJlLmZpbmQoeCA9PiB4LmtleSA9PSBmb3JtdWxhRmllbGQua2V5KTtcclxuICAgICAgZm9ybXVsYVRvQ2hhbmdlLnZhbHVlID0gcmVzdWx0LmZvcm11bGEudG9TdHJpbmcoKSA9PSBcIlwiID8gbnVsbCA6IHJlc3VsdC5mb3JtdWxhLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMub25Gb3JtdWxhRmllbGRDaGFuZ2UoZm9ybXVsYVRvQ2hhbmdlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsTW9kdWxlcygpe1xyXG5cclxuICAgIGNvbnN0IGR5bmFtaWNNb2R1bGVQYXJhbXM6IEFycmF5PEVuZFBvaW50RGF0YVBhcmFtcz4gPVxyXG4gICAgICBuZXcgQXJyYXk8RW5kUG9pbnREYXRhUGFyYW1zPigpO1xyXG4gICAgZHluYW1pY01vZHVsZVBhcmFtcy5wdXNoKHtcclxuICAgICAgUGFyYW1OYW1lOiBcIm9yZ2FpZFwiLFxyXG4gICAgICBQYXJhbVZhbHVlOiB0aGlzLmZvcm0uT3JnYUlELFxyXG4gICAgICBQYXJhbVR5cGU6IFBhcmFtVHlwZUVudW1bXCJRdWVyeSBwYXJhbVwiXSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy51dGlsaXR5SGVscGVyU2VydmljZS5SdW5FbmRQb2ludENhbGwoXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLkZvcm1zLkdldEFsbEZvcm1FbmRQb2ludCxcclxuICAgICAgZHluYW1pY01vZHVsZVBhcmFtcyxcclxuICAgICAgKHJlczogQXJyYXk8Rm9ybT4pID0+IHtcclxuICAgICAgICB0aGlzLmZvcm1zID0gcmVzO1xyXG4gICAgICAgIHRoaXMuZm9ybXMgPSB0aGlzLmZvcm1zLnNvcnQoKHVubywgZHVlKSA9PiB1bm8uTmFtZS5sb2NhbGVDb21wYXJlKGR1ZS5OYW1lKSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHsgfVxyXG4gICAgKTsgICAgXHJcbiAgfVxyXG4gIFxyXG4gIG9uRXFwU2VsZWN0TW9kdWxlKGV2LCBmb3JtdWxhRmllbGQpe1xyXG4gICAgZm9ybXVsYUZpZWxkLnZhbHVlID0gJ1wiJytldi5JRCsnXCInOyAgICBcclxuICB9XHJcblxyXG59XHJcbiIsIlxyXG48bWF0LWNhcmQgY2xhc3M9XCJhZGQtZm9ybS1maWVsZFwiPlxyXG4gICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICA8bWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgIHt7dHJpZ2dlciAhPSBudWxsID8gXCJNb2RpZmljYVwiIDogXCJBZ2dpdW5naVwifX0gdHJpZ2dlclxyXG4gICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuXHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkIGNvbnRhaW5lckNvbnRlbnQgcGFkZGVyXCIgKm5nSWY9XCJ0cmlnZ2VyLmNvbmRpdGlvbnMgIT0gbnVsbFwiPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPkRlc2NyaXppb25lIFRyaWdnZXI8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbCAgY2xhc3M9XCJwdC0xXCI+IERlc2NyaXppb25lIDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cInRyaWdnZXIuZGVzY3JpcHRpb25cIiBbcmVhZG9ubHldPVwiZmFsc2VcIiBbcmVxdWlyZWRdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlRpcG8gVHJpZ2dlcjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTlcIj5cclxuICAgICAgICAgICAgICAgIDxlcXAtc2VsZWN0IFthcnJheURhdGFdPVwiZm9ybXVsYUtleXNcIiBbKG5nTW9kZWxJbnB1dCldPVwic2VsZWN0ZWRGb3JtdWxhXCJcclxuICAgICAgICAgICAgICAgIFthcnJheUtleVByb3BlcnR5XT1cIidrZXknXCIgW2FycmF5VmFsdWVQcm9wZXJ0eV09XCIna2V5J1wiIFtzaG93Q2FuY2VsQnV0dG9uXT1cImZhbHNlXCIgKG5nTW9kZWxJbnB1dENoYW5nZSk9XCJvbkNoYW5nZUZvcm11bGEoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9lcXAtc2VsZWN0PiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0Zvcj1cImxldCBmb3JtdWxhRmllbGQgb2YgZm9ybXVsYUZpZWxkc1N0cnVjdHVyZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj57e2Zvcm11bGFGaWVsZC5rZXl9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTlcIiAqbmdJZj1cImZvcm11bGFGaWVsZC50eXBlID09IHRyaWdnZXJQcm9wZXJ0eVR5cGUuU1RSSU5HXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbCAgY2xhc3M9XCJwdC0xXCI+IHt7Zm9ybXVsYUZpZWxkLmtleX19IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbcmVhZG9ubHldPVwiZmFsc2VcIiBbcmVxdWlyZWRdPVwiZmFsc2VcIiAoY2xpY2spPVwib3BlbkZvcm11bGFEaWFsb2coZm9ybXVsYUZpZWxkKVwiIFsobmdNb2RlbCldPVwiZm9ybXVsYUZpZWxkLnZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25Gb3JtdWxhRmllbGRDaGFuZ2UoZm9ybXVsYUZpZWxkKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiICpuZ0lmPVwiZm9ybXVsYUZpZWxkLnR5cGUgPT0gdHJpZ2dlclByb3BlcnR5VHlwZS5ETU1PRFVMRVwiPlxyXG4gICAgICAgICAgICAgICAgPGVxcC1zZWxlY3QgW3BsYWNlaG9sZGVyXT1cIidTZWxlemlvbmEgbW9kdWxvJ1wiIFthcnJheURhdGFdPVwiZm9ybXNcIiBbKG5nTW9kZWxJbnB1dCldPVwiRXFwU2VsZWN0ZWRGb3JtdWxhRmllbGRcIiBbaXNTZWFyY2hhYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW2FycmF5S2V5UHJvcGVydHldPVwiJ0lEJ1wiIFthcnJheVZhbHVlUHJvcGVydHldPVwiJ05hbWUnXCIgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCIgKG5nTW9kZWxJbnB1dENoYW5nZSk9XCJvbkVxcFNlbGVjdE1vZHVsZSgkZXZlbnQsIGZvcm11bGFGaWVsZClcIj5cclxuICAgICAgICAgICAgICAgIDwvZXFwLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiYWRkQ29uZGl0aW9uKClcIj5BZ2dpdW5naSBjb25kaXppb25lPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYWRkZXJcIiAqbmdGb3I9XCJsZXQgY29uZGl0aW9uIG9mIHRyaWdnZXIuY29uZGl0aW9uc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJjb25kaXRpb24uRmllbGQgIT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xXCI+PGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyXCI+PG1hdC1pY29uIChjbGljayk9XCJkZWxldGVDb25kaXRpb24oY29uZGl0aW9uKVwiPmRlbGV0ZTwvbWF0LWljb24+PC9idXR0b24+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZXFwLXNlbGVjdCBbYXJyYXlEYXRhXT1cImZvcm0uRmllbGRzXCIgWyhuZ01vZGVsSW5wdXQpXT1cImNvbmRpdGlvbi5GaWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FycmF5S2V5UHJvcGVydHldPVwiJ05hbWUnXCIgW2FycmF5VmFsdWVQcm9wZXJ0eV09XCInTmFtZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93Q2FuY2VsQnV0dG9uXT1cImZhbHNlXCIgKG5nTW9kZWxJbnB1dENoYW5nZSk9XCJvbkZpZWxkVHlwZUNoYW5nZSgkZXZlbnQsIGNvbmRpdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpbmNsdWRlRnVsbE9iamVjdF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9lcXAtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTlcIiAqbmdJZj1cImNvbmRpdGlvbi5GaWVsZCAhPSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR5bmFtaWMtbW9kdWxlLXRyaWdnZXItZml4ICNmaWVsZFRlbXBsYXRlIFtjb25kaXRpb25dPVwiY29uZGl0aW9uXCIgW2Zvcm1dPVwiZm9ybVwiICh0cmlnZ2VyQ2hhbmdlKT1cIm9uVHJpZ2dlckNoYW5nZSgkZXZlbnQsIGNvbmRpdGlvbilcIj48L2R5bmFtaWMtbW9kdWxlLXRyaWdnZXItZml4PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8bWF0LWNhcmQtZm9vdGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0yIG1iLTEgbWUtM1wiPiBcclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1yLTJcIiBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmVPckV4aXRGb3JtKHRydWUpXCI+XHJcbiAgICAgICAgICAgICAgICBBbm51bGxhXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibXItMlwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVPckV4aXRGb3JtKGZhbHNlKVwiIFtkaXNhYmxlZF09XCJpc1NhdmluZ1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXNTYXZpbmdcIj5TYWx2YTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNTYXZpbmdcIj5TYWx2YXRhZ2dpbyBpbiBDb3Jzby4uLjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jYXJkLWZvb3Rlcj5cclxuXHJcbjwvbWF0LWNhcmQ+XHJcblxyXG48IS0tRElBTE9HIFBFUiBTRU1QTElGSUNBUkUgTEEgU0NSSVRUVVJBIERFTCBDQU1QTyBGT1JNVUxBLS0+XHJcbjxuZy10ZW1wbGF0ZSAjZGlhbG9nRm9ybXVsYT5cclxuICAgIDxlcXAtZHluYW1pYy1tb2R1bGUtYWRkLWZvcm11bGEtY29tcG9uZW50PlxyXG4gICAgPC9lcXAtZHluYW1pYy1tb2R1bGUtYWRkLWZvcm11bGEtY29tcG9uZW50PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlci1jcmVhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS90cmlnZ2VyLWNyZWF0b3IvdHJpZ2dlci1jcmVhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS90cmlnZ2VyLWNyZWF0b3IvdHJpZ2dlci1jcmVhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9GLE9BQU8sRUFBRSx3QkFBd0IsRUFBYSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4SSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRS9ELE9BQU8sRUFBc0IsYUFBYSxFQUF5QixNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVN2SCxNQUFNLE9BQU8sdUJBQXVCO0lBc0JsQyxZQUFvQixNQUFpQixFQUFVLG9CQUEwQztRQUFyRSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQW5CdkUsWUFBTyxHQUFZLElBQUksQ0FBQztRQUN2QixhQUFRLEdB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dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBCb29sZWFuTG9naWNPcGVyYXRvclR5cGUsIENvbmRpdGlvbiwgVHJpZ2dlciwgVHJpZ2dlckNvbmRpdGlvbiwgVHJpZ2dlclByb3BlcnR5VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdHJpZ2dlci5tb2RlbCc7XHJcbmltcG9ydCB7IEJhc2VGaWVsZCwgRmllbGRUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9iYXNlRmllbGQubW9kZWwnO1xyXG5pbXBvcnQgKiBhcyBzcyBmcm9tICdzaW1wbGUtc3RhdGlzdGljcyc7XHJcbmltcG9ydCB7IENhbnZhc0pTQW5ndWxhclN0b2NrQ2hhcnRzTW9kdWxlLCBDYW52YXNKU0NoYXJ0LCBDYW52YXNKU1N0b2NrQ2hhcnQgfSBmcm9tICdAY2FudmFzanMvYW5ndWxhci1zdG9ja2NoYXJ0cyc7XHJcbmltcG9ydCB7IFJlY29yZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9yZWNvcmQubW9kZWwnO1xyXG5pbXBvcnQgeyBHbG9iYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZ2xvYmFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQaWNrZXJNb2RlRW51bSB9IGZyb20gJ0BlcXByb2plY3QvZXFwLWRhdGV0aW1lcGlja2VyJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBFbmRQb2ludERhdGFQYXJhbXMsIFBhcmFtVHlwZUVudW0sIEVuZFBvaW50Q29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbmRQb2ludENvbmZpZ3VyYXRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHJpZ2dlci1jcmVhdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJpZ2dlci1jcmVhdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmlnZ2VyLWNyZWF0b3IuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJpZ2dlckNyZWF0b3JDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoXCJmb3JtXCIpIGZvcm06IEZvcm07XHJcbiAgQElucHV0KFwidHJpZ2dlclwiKSB0cmlnZ2VyOiBUcmlnZ2VyID0gbnVsbDtcclxuICBASW5wdXQoXCJmb3JtdWxhc1wiKSBmb3JtdWxhczogYW55ID0gbnVsbDtcclxuICBASW5wdXQoXCJlbmRQb2ludENvbmZpZ3VyYXRpb25cIikgZW5kUG9pbnRDb25maWd1cmF0aW9uOiBFbmRQb2ludENvbmZpZ3VyYXRpb247XHJcblxyXG4gIEBPdXRwdXQoKSBvblNhdmVSZWNvcmQ6IEV2ZW50RW1pdHRlcjxUcmlnZ2VyPiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJpZ2dlcj4oKTtcclxuXHJcbiAgRmllbGRUeXBlRW51bSA9IEZpZWxkVHlwZUVudW07XHJcbiAgaXNTYXZpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RlZEZvcm11bGE6IGFueTtcclxuICBmb3JtdWxhS2V5czogQXJyYXk8YW55PiA9IG5ldyBBcnJheTxhbnk+KCk7XHJcbiAgZm9ybXVsYUZpZWxkc1N0cnVjdHVyZTogQXJyYXk8YW55PiA9IG5ldyBBcnJheTxhbnk+KCk7XHJcbiAgcGlja2VyTW9kZUVudW0gPSBQaWNrZXJNb2RlRW51bTtcclxuICB0cmlnZ2VyUHJvcGVydHlUeXBlID0gVHJpZ2dlclByb3BlcnR5VHlwZUVudW07XHJcblxyXG4gIGRpYWxvZ0Zvcm11bGFSZWY6IE1hdERpYWxvZ1JlZjxUZW1wbGF0ZVJlZjxhbnk+PjtcclxuICBAVmlld0NoaWxkKFwiZGlhbG9nRm9ybXVsYVwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBkaWFsb2dGb3JtdWxhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBmb3JtczogQXJyYXk8Rm9ybT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csIHByaXZhdGUgdXRpbGl0eUhlbHBlclNlcnZpY2U6IFV0aWxpdHlIZWxwZXJTZXJ2aWNlKXt9XHJcbiAgXHJcbiAgbmdPbkluaXQoKXtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcInRoaXMuZm9ybXVsYXNcIix0aGlzLmZvcm11bGFzKTtcclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy50cmlnZ2VyXCIsdGhpcy50cmlnZ2VyKTtcclxuXHJcbiAgICBpZiAodGhpcy50cmlnZ2VyID09IG51bGwpe1xyXG4gICAgICB0aGlzLnRyaWdnZXIgPSBuZXcgVHJpZ2dlcigpO1xyXG4gICAgICB0aGlzLnRyaWdnZXIuY29uZGl0aW9ucyA9IG5ldyBBcnJheTxUcmlnZ2VyQ29uZGl0aW9uPigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZvcm11bGEgPSB7fTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZvcm11bGEua2V5ID0gdGhpcy50cmlnZ2VyLmV4ZWN1dGlvbjtcclxuXHJcbiAgICAgIHRoaXMuZm9ybXVsYUZpZWxkc1N0cnVjdHVyZSA9IG5ldyBBcnJheTxhbnk+KCk7XHJcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuZm9ybXVsYXNbdGhpcy5zZWxlY3RlZEZvcm11bGEua2V5XSkuZm9yRWFjaCgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5mb3JtdWxhRmllbGRzU3RydWN0dXJlLnB1c2goe1wia2V5XCI6IHJlcywgXCJ0eXBlXCI6IHRoaXMuZm9ybXVsYXNbdGhpcy5zZWxlY3RlZEZvcm11bGEua2V5XVtyZXNdLnR5cGV9KTtcclxuICAgICAgfSk7ICAgICAgXHJcblxyXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLnRyaWdnZXIuZm9ybXVsYXMpLmZvckVhY2goKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybXVsYUZpZWxkc1N0cnVjdHVyZS5maW5kKHggPT4geC5rZXkgPT0gcmVzKS52YWx1ZSA9IHRoaXMudHJpZ2dlci5mb3JtdWxhc1tyZXNdLnZhbHVlO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGV4ZWN1dGVHZXRNb2R1bGVzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm11bGFzKS5mb3JFYWNoKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5mb3JtdWxhS2V5cy5wdXNoKHtcImtleVwiOiByZXN9KTtcclxuICAgICAgT2JqZWN0LmtleXModGhpcy5mb3JtdWxhc1tyZXNdKS5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm11bGFzW3Jlc11bcHJvcGVydHldLnR5cGUgPT0gVHJpZ2dlclByb3BlcnR5VHlwZUVudW0uRE1NT0RVTEUpe1xyXG4gICAgICAgICAgZXhlY3V0ZUdldE1vZHVsZXMgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoZXhlY3V0ZUdldE1vZHVsZXMpe1xyXG4gICAgICB0aGlzLmdldEFsbE1vZHVsZXMoKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBvblRyaWdnZXJDaGFuZ2Uob3V0cHV0Q29uZGl0aW9uOiBDb25kaXRpb24sIFRyaWdnZXJDb25kaXRpb246IFRyaWdnZXJDb25kaXRpb24pe1xyXG4gICAgdGhpcy50cmlnZ2VyLmNvbmRpdGlvbnMuZmluZCh4ID0+IHguQ0lEID09IFRyaWdnZXJDb25kaXRpb24uQ0lEKS5ib29sZWFubG9naWNvcGVyYXRvciA9IG91dHB1dENvbmRpdGlvbi5ib29sZWFubG9naWNvcGVyYXRvcjtcclxuICAgIHRoaXMudHJpZ2dlci5jb25kaXRpb25zLmZpbmQoeCA9PiB4LkNJRCA9PSBUcmlnZ2VyQ29uZGl0aW9uLkNJRCkubG9naWNvcGVyYXRvciA9IG91dHB1dENvbmRpdGlvbi5sb2dpY29wZXJhdG9yO1xyXG5cclxuICAgIHZhciBjaGFuZ2VJbk9yID0gZmFsc2U7XHJcbiAgICB0aGlzLnRyaWdnZXIuY29uZGl0aW9ucy5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcclxuICAgICAgaWYgKGNvbmRpdGlvbi5ib29sZWFubG9naWNvcGVyYXRvciA9PSBCb29sZWFuTG9naWNPcGVyYXRvclR5cGUuT1IpeyBjaGFuZ2VJbk9yID0gdHJ1ZTsgfVxyXG4gICAgICBpZiAoY2hhbmdlSW5Pcil7IGNvbmRpdGlvbi5ib29sZWFubG9naWNvcGVyYXRvciA9IEJvb2xlYW5Mb2dpY09wZXJhdG9yVHlwZS5PUjsgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRDb25kaXRpb24oKXtcclxuICAgIHZhciB0cmlnZ2VyQ29uZGl0aW9uID0gbmV3IFRyaWdnZXJDb25kaXRpb24oKTtcclxuICAgIHRyaWdnZXJDb25kaXRpb24uRmllbGQgPSBuZXcgQmFzZUZpZWxkKCk7XHJcbiAgICB0cmlnZ2VyQ29uZGl0aW9uLnJlY29yZCA9IG5ldyBSZWNvcmQoKTtcclxuICAgIHRyaWdnZXJDb25kaXRpb24ubG9naWNvcGVyYXRvciA9IG51bGw7XHJcbiAgICB0cmlnZ2VyQ29uZGl0aW9uLmJvb2xlYW5sb2dpY29wZXJhdG9yID0gbnVsbDtcclxuICAgIHRoaXMudHJpZ2dlci5jb25kaXRpb25zLnB1c2godHJpZ2dlckNvbmRpdGlvbik7XHJcbiAgfVxyXG5cclxuICBkZWxldGVDb25kaXRpb24oZWxlbWVudDogVHJpZ2dlckNvbmRpdGlvbil7XHJcbiAgICB2YXIgaW5kZXggPSB0aGlzLnRyaWdnZXIuY29uZGl0aW9ucy5maW5kSW5kZXgoeCA9PiB4LkNJRCA9PSBlbGVtZW50LkNJRCk7XHJcbiAgICB0aGlzLnRyaWdnZXIuY29uZGl0aW9ucy5zcGxpY2UoaW5kZXgsMSk7XHJcbiAgfVxyXG5cclxuICBvbkZpZWxkVHlwZUNoYW5nZShldjogQmFzZUZpZWxkLCBjb25kaXRpb246IFRyaWdnZXJDb25kaXRpb24pe1xyXG4gICAgY29uZGl0aW9uLkZpZWxkID0gZXY7XHJcbiAgICBjb25kaXRpb24ucmVjb3JkW2V2Lk5hbWVdID0gXCJcIjtcclxuICB9XHJcblxyXG4gIHNhdmVPckV4aXRGb3JtKGV4aXQ6IGJvb2xlYW4pIHtcclxuICAgIEdsb2JhbFNlcnZpY2UuZGVidWdMb2coJ2FkZC1mb3JtLXJlY29yZCBzYXZlUmVjb3JkRXZlbnQnKVxyXG4gICAgaWYgKGV4aXQpIHtcclxuICAgICAgdGhpcy5vblNhdmVSZWNvcmQuZW1pdChudWxsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybXVsYUZpZWxkc1N0cnVjdHVyZS5mb3JFYWNoKChmb3JtdWxhRmllbGQpID0+IHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHJpZ2dlci5mb3JtdWxhcyA9PSBcInVuZGVmaW5lZFwiKXsgdGhpcy50cmlnZ2VyLmZvcm11bGFzID0ge307IH1cclxuICAgICAgICB0aGlzLnRyaWdnZXIuZm9ybXVsYXNbZm9ybXVsYUZpZWxkLmtleV0gPSBmb3JtdWxhRmllbGQ7XHJcbiAgICAgICAgdGhpcy50cmlnZ2VyLmV4ZWN1dGlvbiA9IHRoaXMuc2VsZWN0ZWRGb3JtdWxhLmtleTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuaXNTYXZpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5vblNhdmVSZWNvcmQuZW1pdCh0aGlzLnRyaWdnZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VGb3JtdWxhKGZvcm11bGE6IGFueSl7XHJcblxyXG4gICAgdGhpcy5mb3JtdWxhRmllbGRzU3RydWN0dXJlID0gbmV3IEFycmF5PGFueT4oKTtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMuZm9ybXVsYXNbZm9ybXVsYS5rZXldKS5mb3JFYWNoKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5mb3JtdWxhRmllbGRzU3RydWN0dXJlLnB1c2goe1wia2V5XCI6IHJlcywgXCJ0eXBlXCI6IHRoaXMuZm9ybXVsYXNbZm9ybXVsYS5rZXldW3Jlc10udHlwZX0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkZvcm11bGFGaWVsZENoYW5nZShmb3JtdWxhRmllbGQ6IGFueSl7XHJcbiAgfVxyXG5cclxuICBvcGVuRm9ybXVsYURpYWxvZyhmb3JtdWxhRmllbGQ6IGFueSkge1xyXG4gICAgdGhpcy5kaWFsb2dGb3JtdWxhUmVmID0gdGhpcy5kaWFsb2cub3Blbih0aGlzLmRpYWxvZ0Zvcm11bGEsIHtcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IFwiNzUlXCIsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBmb3JtdWxhOiB0aGlzLmZvcm11bGFGaWVsZHNTdHJ1Y3R1cmUuZmluZCh4ID0+IHgua2V5ID09IGZvcm11bGFGaWVsZC5rZXkpLnZhbHVlLFxyXG4gICAgICAgIGZpZWxkczogdGhpcy5mb3JtLkZpZWxkc1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWxvZ0Zvcm11bGFSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB2YXIgZm9ybXVsYVRvQ2hhbmdlID0gdGhpcy5mb3JtdWxhRmllbGRzU3RydWN0dXJlLmZpbmQoeCA9PiB4LmtleSA9PSBmb3JtdWxhRmllbGQua2V5KTtcclxuICAgICAgZm9ybXVsYVRvQ2hhbmdlLnZhbHVlID0gcmVzdWx0LmZvcm11bGEudG9TdHJpbmcoKSA9PSBcIlwiID8gbnVsbCA6IHJlc3VsdC5mb3JtdWxhLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMub25Gb3JtdWxhRmllbGRDaGFuZ2UoZm9ybXVsYVRvQ2hhbmdlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsTW9kdWxlcygpe1xyXG5cclxuICAgIGNvbnN0IGR5bmFtaWNNb2R1bGVQYXJhbXM6IEFycmF5PEVuZFBvaW50RGF0YVBhcmFtcz4gPVxyXG4gICAgICBuZXcgQXJyYXk8RW5kUG9pbnREYXRhUGFyYW1zPigpO1xyXG4gICAgZHluYW1pY01vZHVsZVBhcmFtcy5wdXNoKHtcclxuICAgICAgUGFyYW1OYW1lOiBcIm9yZ2FpZFwiLFxyXG4gICAgICBQYXJhbVZhbHVlOiB0aGlzLmZvcm0uT3JnYUlELFxyXG4gICAgICBQYXJhbVR5cGU6IFBhcmFtVHlwZUVudW1bXCJRdWVyeSBwYXJhbVwiXSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy51dGlsaXR5SGVscGVyU2VydmljZS5SdW5FbmRQb2ludENhbGwoXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLkZvcm1zLkdldEFsbEZvcm1FbmRQb2ludCxcclxuICAgICAgZHluYW1pY01vZHVsZVBhcmFtcyxcclxuICAgICAgKHJlczogQXJyYXk8Rm9ybT4pID0+IHtcclxuICAgICAgICB0aGlzLmZvcm1zID0gcmVzO1xyXG4gICAgICAgIHRoaXMuZm9ybXMgPSB0aGlzLmZvcm1zLnNvcnQoKHVubywgZHVlKSA9PiB1bm8uTmFtZS5sb2NhbGVDb21wYXJlKGR1ZS5OYW1lKSk7XHJcbiAgICAgICAgdGhpcy5mb3Jtcy5mb3JFYWNoKChmb3JtKSA9PiB7XHJcbiAgICAgICAgICBmb3JtLklEID0gJ1wiJytmb3JtLklEKydcIic7IFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm11bGFGaWVsZHNTdHJ1Y3R1cmUuZm9yRWFjaCgocmVzKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzLnR5cGUgPT0gVHJpZ2dlclByb3BlcnR5VHlwZUVudW0uRE1NT0RVTEUpe1xyXG4gICAgICAgICAgICByZXMub2JqZWN0ID0gdGhpcy5mb3Jtcy5maW5kKHggPT4geC5JRCA9PSByZXMudmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gIFxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwidGhpcy5mb3JtdWxhRmllbGRzU3RydWN0dXJlXCIsdGhpcy5mb3JtdWxhRmllbGRzU3RydWN0dXJlKTtcclxuXHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHsgfVxyXG4gICAgKTsgICAgXHJcbiAgfVxyXG4gIFxyXG4gIG9uRXFwU2VsZWN0TW9kdWxlKGV2LCBmb3JtdWxhRmllbGQpe1xyXG4gICAgZm9ybXVsYUZpZWxkLnZhbHVlID0gZXYuSUQ7ICAgIFxyXG4gIH1cclxuXHJcbn1cclxuIiwiXHJcbjxtYXQtY2FyZCBjbGFzcz1cImFkZC1mb3JtLWZpZWxkXCI+XHJcbiAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgICAge3t0cmlnZ2VyICE9IG51bGwgPyBcIk1vZGlmaWNhXCIgOiBcIkFnZ2l1bmdpXCJ9fSB0cmlnZ2VyXHJcbiAgICAgICAgPC9tYXQtY2FyZC10aXRsZT5cclxuICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgY29udGFpbmVyQ29udGVudCBwYWRkZXJcIiAqbmdJZj1cInRyaWdnZXIuY29uZGl0aW9ucyAhPSBudWxsXCI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+RGVzY3JpemlvbmUgVHJpZ2dlcjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTlcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsICBjbGFzcz1cInB0LTFcIj4gRGVzY3JpemlvbmUgPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwidHJpZ2dlci5kZXNjcmlwdGlvblwiIFtyZWFkb25seV09XCJmYWxzZVwiIFtyZXF1aXJlZF09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+VGlwbyBUcmlnZ2VyPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICAgICAgPGVxcC1zZWxlY3QgW2FycmF5RGF0YV09XCJmb3JtdWxhS2V5c1wiIFsobmdNb2RlbElucHV0KV09XCJzZWxlY3RlZEZvcm11bGFcIlxyXG4gICAgICAgICAgICAgICAgW2FycmF5S2V5UHJvcGVydHldPVwiJ2tleSdcIiBbYXJyYXlWYWx1ZVByb3BlcnR5XT1cIidrZXknXCIgW3Nob3dDYW5jZWxCdXR0b25dPVwiZmFsc2VcIiAobmdNb2RlbElucHV0Q2hhbmdlKT1cIm9uQ2hhbmdlRm9ybXVsYSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2VxcC1zZWxlY3Q+ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nRm9yPVwibGV0IGZvcm11bGFGaWVsZCBvZiBmb3JtdWxhRmllbGRzU3RydWN0dXJlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPnt7Zm9ybXVsYUZpZWxkLmtleX19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiICpuZ0lmPVwiZm9ybXVsYUZpZWxkLnR5cGUgPT0gdHJpZ2dlclByb3BlcnR5VHlwZS5TVFJJTkdcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsICBjbGFzcz1cInB0LTFcIj4ge3tmb3JtdWxhRmllbGQua2V5fX0gPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFtyZWFkb25seV09XCJmYWxzZVwiIFtyZXF1aXJlZF09XCJmYWxzZVwiIChjbGljayk9XCJvcGVuRm9ybXVsYURpYWxvZyhmb3JtdWxhRmllbGQpXCIgWyhuZ01vZGVsKV09XCJmb3JtdWxhRmllbGQudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkZvcm11bGFGaWVsZENoYW5nZShmb3JtdWxhRmllbGQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCIgKm5nSWY9XCJmb3JtdWxhRmllbGQudHlwZSA9PSB0cmlnZ2VyUHJvcGVydHlUeXBlLkRNTU9EVUxFXCI+XHJcbiAgICAgICAgICAgICAgICA8ZXFwLXNlbGVjdCBbcGxhY2Vob2xkZXJdPVwiJ1NlbGV6aW9uYSBtb2R1bG8nXCIgW2FycmF5RGF0YV09XCJmb3Jtc1wiIFsobmdNb2RlbElucHV0KV09XCJmb3JtdWxhRmllbGQub2JqZWN0XCIgW2lzU2VhcmNoYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFthcnJheUtleVByb3BlcnR5XT1cIidJRCdcIiBbYXJyYXlWYWx1ZVByb3BlcnR5XT1cIidOYW1lJ1wiIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiIChuZ01vZGVsSW5wdXRDaGFuZ2UpPVwib25FcXBTZWxlY3RNb2R1bGUoJGV2ZW50LCBmb3JtdWxhRmllbGQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2VxcC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImFkZENvbmRpdGlvbigpXCI+QWdnaXVuZ2kgY29uZGl6aW9uZTwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGFkZGVyXCIgKm5nRm9yPVwibGV0IGNvbmRpdGlvbiBvZiB0cmlnZ2VyLmNvbmRpdGlvbnNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiY29uZGl0aW9uLkZpZWxkICE9IG51bGxcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMVwiPjxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRhbmdlclwiPjxtYXQtaWNvbiAoY2xpY2spPVwiZGVsZXRlQ29uZGl0aW9uKGNvbmRpdGlvbilcIj5kZWxldGU8L21hdC1pY29uPjwvYnV0dG9uPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGVxcC1zZWxlY3QgW2FycmF5RGF0YV09XCJmb3JtLkZpZWxkc1wiIFsobmdNb2RlbElucHV0KV09XCJjb25kaXRpb24uRmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthcnJheUtleVByb3BlcnR5XT1cIidOYW1lJ1wiIFthcnJheVZhbHVlUHJvcGVydHldPVwiJ05hbWUnXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2hvd0NhbmNlbEJ1dHRvbl09XCJmYWxzZVwiIChuZ01vZGVsSW5wdXRDaGFuZ2UpPVwib25GaWVsZFR5cGVDaGFuZ2UoJGV2ZW50LCBjb25kaXRpb24pXCJcclxuICAgICAgICAgICAgICAgICAgICBbaW5jbHVkZUZ1bGxPYmplY3RdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZXFwLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCIgKm5nSWY9XCJjb25kaXRpb24uRmllbGQgIT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeW5hbWljLW1vZHVsZS10cmlnZ2VyLWZpeCAjZmllbGRUZW1wbGF0ZSBbY29uZGl0aW9uXT1cImNvbmRpdGlvblwiIFtmb3JtXT1cImZvcm1cIiAodHJpZ2dlckNoYW5nZSk9XCJvblRyaWdnZXJDaGFuZ2UoJGV2ZW50LCBjb25kaXRpb24pXCI+PC9keW5hbWljLW1vZHVsZS10cmlnZ2VyLWZpeD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPG1hdC1jYXJkLWZvb3Rlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtMiBtYi0xIG1lLTNcIj4gXHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtci0yXCIgbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlT3JFeGl0Rm9ybSh0cnVlKVwiPlxyXG4gICAgICAgICAgICAgICAgQW5udWxsYVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1yLTJcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzYXZlT3JFeGl0Rm9ybShmYWxzZSlcIiBbZGlzYWJsZWRdPVwiaXNTYXZpbmdcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWlzU2F2aW5nXCI+U2FsdmE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzU2F2aW5nXCI+U2FsdmF0YWdnaW8gaW4gQ29yc28uLi48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtY2FyZC1mb290ZXI+XHJcblxyXG48L21hdC1jYXJkPlxyXG5cclxuPCEtLURJQUxPRyBQRVIgU0VNUExJRklDQVJFIExBIFNDUklUVFVSQSBERUwgQ0FNUE8gRk9STVVMQS0tPlxyXG48bmctdGVtcGxhdGUgI2RpYWxvZ0Zvcm11bGE+XHJcbiAgICA8ZXFwLWR5bmFtaWMtbW9kdWxlLWFkZC1mb3JtdWxhLWNvbXBvbmVudD5cclxuICAgIDwvZXFwLWR5bmFtaWMtbW9kdWxlLWFkZC1mb3JtdWxhLWNvbXBvbmVudD5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -10762,6 +10762,8 @@ class TriggerCreatorComponent {
10762
10762
  this.triggerPropertyType = TriggerPropertyTypeEnum;
10763
10763
  }
10764
10764
  ngOnInit() {
10765
+ console.log("this.formulas", this.formulas);
10766
+ console.log("this.trigger", this.trigger);
10765
10767
  if (this.trigger == null) {
10766
10768
  this.trigger = new Trigger();
10767
10769
  this.trigger.conditions = new Array();
@@ -10771,10 +10773,10 @@ class TriggerCreatorComponent {
10771
10773
  this.selectedFormula.key = this.trigger.execution;
10772
10774
  this.formulaFieldsStructure = new Array();
10773
10775
  Object.keys(this.formulas[this.selectedFormula.key]).forEach((res) => {
10774
- this.formulaFieldsStructure.push({ "key": res });
10776
+ this.formulaFieldsStructure.push({ "key": res, "type": this.formulas[this.selectedFormula.key][res].type });
10775
10777
  });
10776
10778
  Object.keys(this.trigger.formulas).forEach((res) => {
10777
- this.formulaFieldsStructure.find(x => x.key == res).value = this.trigger.formulas[res];
10779
+ this.formulaFieldsStructure.find(x => x.key == res).value = this.trigger.formulas[res].value;
10778
10780
  });
10779
10781
  }
10780
10782
  var executeGetModules = false;
@@ -10870,17 +10872,26 @@ class TriggerCreatorComponent {
10870
10872
  this.utilityHelperService.RunEndPointCall(this.endPointConfiguration.Forms.GetAllFormEndPoint, dynamicModuleParams, (res) => {
10871
10873
  this.forms = res;
10872
10874
  this.forms = this.forms.sort((uno, due) => uno.Name.localeCompare(due.Name));
10875
+ this.forms.forEach((form) => {
10876
+ form.ID = '"' + form.ID + '"';
10877
+ });
10878
+ this.formulaFieldsStructure.forEach((res) => {
10879
+ if (res.type == TriggerPropertyTypeEnum.DMMODULE) {
10880
+ res.object = this.forms.find(x => x.ID == res.value);
10881
+ }
10882
+ });
10883
+ console.log("this.formulaFieldsStructure", this.formulaFieldsStructure);
10873
10884
  }, (err) => { });
10874
10885
  }
10875
10886
  onEqpSelectModule(ev, formulaField) {
10876
- formulaField.value = '"' + ev.ID + '"';
10887
+ formulaField.value = ev.ID;
10877
10888
  }
10878
10889
  }
10879
10890
  TriggerCreatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TriggerCreatorComponent, deps: [{ token: i1$3.MatDialog }, { token: UtilityHelperService }], target: i0.ɵɵFactoryTarget.Component });
10880
- TriggerCreatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TriggerCreatorComponent, selector: "trigger-creator", inputs: { form: "form", trigger: "trigger", formulas: "formulas", endPointConfiguration: "endPointConfiguration" }, outputs: { onSaveRecord: "onSaveRecord" }, viewQueries: [{ propertyName: "dialogFormula", first: true, predicate: ["dialogFormula"], descendants: true, static: true }], ngImport: i0, template: "\r\n<mat-card class=\"add-form-field\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{trigger != null ? \"Modifica\" : \"Aggiungi\"}} trigger\r\n </mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <div class=\"container-fluid containerContent padder\" *ngIf=\"trigger.conditions != null\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Descrizione Trigger</div>\r\n <div class=\"col-9\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> Descrizione </mat-label>\r\n <input matInput [(ngModel)]=\"trigger.description\" [readonly]=\"false\" [required]=\"false\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Tipo Trigger</div>\r\n <div class=\"col-9\">\r\n <eqp-select [arrayData]=\"formulaKeys\" [(ngModelInput)]=\"selectedFormula\"\r\n [arrayKeyProperty]=\"'key'\" [arrayValueProperty]=\"'key'\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onChangeFormula($event)\">\r\n </eqp-select> \r\n </div>\r\n </div>\r\n\r\n <div class=\"row\" *ngFor=\"let formulaField of formulaFieldsStructure\">\r\n <div class=\"col-3\">{{formulaField.key}}</div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.STRING\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> {{formulaField.key}} </mat-label>\r\n <input matInput [readonly]=\"false\" [required]=\"false\" (click)=\"openFormulaDialog(formulaField)\" [(ngModel)]=\"formulaField.value\" (ngModelChange)=\"onFormulaFieldChange(formulaField)\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.DMMODULE\">\r\n <eqp-select [placeholder]=\"'Seleziona modulo'\" [arrayData]=\"forms\" [(ngModelInput)]=\"EqpSelectedFormulaField\" [isSearchable]=\"true\"\r\n [arrayKeyProperty]=\"'ID'\" [arrayValueProperty]=\"'Name'\" [ngModelOptions]=\"{ standalone: true }\" (ngModelInputChange)=\"onEqpSelectModule($event, formulaField)\">\r\n </eqp-select>\r\n </div>\r\n </div>\r\n\r\n <button class=\"btn btn-primary\" (click)=\"addCondition()\">Aggiungi condizione</button>\r\n\r\n <div class=\"padder\" *ngFor=\"let condition of trigger.conditions\">\r\n <div class=\"row\" *ngIf=\"condition.Field != null\">\r\n <div class=\"col-1\"><button class=\"btn btn-danger\"><mat-icon (click)=\"deleteCondition(condition)\">delete</mat-icon></button></div>\r\n <div class=\"col-2\">\r\n <eqp-select [arrayData]=\"form.Fields\" [(ngModelInput)]=\"condition.Field\"\r\n [arrayKeyProperty]=\"'Name'\" [arrayValueProperty]=\"'Name'\"\r\n [showCancelButton]=\"false\" (ngModelInputChange)=\"onFieldTypeChange($event, condition)\"\r\n [includeFullObject]=\"true\">\r\n </eqp-select>\r\n </div> \r\n <div class=\"col-9\" *ngIf=\"condition.Field != null\">\r\n <dynamic-module-trigger-fix #fieldTemplate [condition]=\"condition\" [form]=\"form\" (triggerChange)=\"onTriggerChange($event, condition)\"></dynamic-module-trigger-fix>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n <mat-card-footer>\r\n <div class=\"d-flex justify-content-end mt-2 mb-1 me-3\"> \r\n <button class=\"mr-2\" mat-raised-button type=\"button\" (click)=\"saveOrExitForm(true)\">\r\n Annulla\r\n </button>\r\n <button class=\"mr-2\" mat-raised-button color=\"primary\" type=\"button\"\r\n (click)=\"saveOrExitForm(false)\" [disabled]=\"isSaving\">\r\n <span *ngIf=\"!isSaving\">Salva</span>\r\n <span *ngIf=\"isSaving\">Salvataggio in Corso...</span>\r\n </button>\r\n </div>\r\n </mat-card-footer>\r\n\r\n</mat-card>\r\n\r\n<!--DIALOG PER SEMPLIFICARE LA SCRITTURA DEL CAMPO FORMULA-->\r\n<ng-template #dialogFormula>\r\n <eqp-dynamic-module-add-formula-component>\r\n </eqp-dynamic-module-add-formula-component>\r\n</ng-template>", styles: [".padder{padding:15px}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i2$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i5$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5$1.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i5$1.MatCardFooter, selector: "mat-card-footer" }, { kind: "component", type: i5$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i5$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "component", type: AddFormulaComponent, selector: "eqp-dynamic-module-add-formula-component" }, { kind: "component", type: DynamicModuleTriggerFixComponent, selector: "dynamic-module-trigger-fix", inputs: ["condition", "form"], outputs: ["triggerChange"] }] });
10891
+ TriggerCreatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TriggerCreatorComponent, selector: "trigger-creator", inputs: { form: "form", trigger: "trigger", formulas: "formulas", endPointConfiguration: "endPointConfiguration" }, outputs: { onSaveRecord: "onSaveRecord" }, viewQueries: [{ propertyName: "dialogFormula", first: true, predicate: ["dialogFormula"], descendants: true, static: true }], ngImport: i0, template: "\r\n<mat-card class=\"add-form-field\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{trigger != null ? \"Modifica\" : \"Aggiungi\"}} trigger\r\n </mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <div class=\"container-fluid containerContent padder\" *ngIf=\"trigger.conditions != null\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Descrizione Trigger</div>\r\n <div class=\"col-9\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> Descrizione </mat-label>\r\n <input matInput [(ngModel)]=\"trigger.description\" [readonly]=\"false\" [required]=\"false\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Tipo Trigger</div>\r\n <div class=\"col-9\">\r\n <eqp-select [arrayData]=\"formulaKeys\" [(ngModelInput)]=\"selectedFormula\"\r\n [arrayKeyProperty]=\"'key'\" [arrayValueProperty]=\"'key'\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onChangeFormula($event)\">\r\n </eqp-select> \r\n </div>\r\n </div>\r\n\r\n <div class=\"row\" *ngFor=\"let formulaField of formulaFieldsStructure\">\r\n <div class=\"col-3\">{{formulaField.key}}</div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.STRING\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> {{formulaField.key}} </mat-label>\r\n <input matInput [readonly]=\"false\" [required]=\"false\" (click)=\"openFormulaDialog(formulaField)\" [(ngModel)]=\"formulaField.value\" (ngModelChange)=\"onFormulaFieldChange(formulaField)\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.DMMODULE\">\r\n <eqp-select [placeholder]=\"'Seleziona modulo'\" [arrayData]=\"forms\" [(ngModelInput)]=\"formulaField.object\" [isSearchable]=\"true\"\r\n [arrayKeyProperty]=\"'ID'\" [arrayValueProperty]=\"'Name'\" [ngModelOptions]=\"{ standalone: true }\" (ngModelInputChange)=\"onEqpSelectModule($event, formulaField)\">\r\n </eqp-select>\r\n </div>\r\n </div>\r\n\r\n <button class=\"btn btn-primary\" (click)=\"addCondition()\">Aggiungi condizione</button>\r\n\r\n <div class=\"padder\" *ngFor=\"let condition of trigger.conditions\">\r\n <div class=\"row\" *ngIf=\"condition.Field != null\">\r\n <div class=\"col-1\"><button class=\"btn btn-danger\"><mat-icon (click)=\"deleteCondition(condition)\">delete</mat-icon></button></div>\r\n <div class=\"col-2\">\r\n <eqp-select [arrayData]=\"form.Fields\" [(ngModelInput)]=\"condition.Field\"\r\n [arrayKeyProperty]=\"'Name'\" [arrayValueProperty]=\"'Name'\"\r\n [showCancelButton]=\"false\" (ngModelInputChange)=\"onFieldTypeChange($event, condition)\"\r\n [includeFullObject]=\"true\">\r\n </eqp-select>\r\n </div> \r\n <div class=\"col-9\" *ngIf=\"condition.Field != null\">\r\n <dynamic-module-trigger-fix #fieldTemplate [condition]=\"condition\" [form]=\"form\" (triggerChange)=\"onTriggerChange($event, condition)\"></dynamic-module-trigger-fix>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n <mat-card-footer>\r\n <div class=\"d-flex justify-content-end mt-2 mb-1 me-3\"> \r\n <button class=\"mr-2\" mat-raised-button type=\"button\" (click)=\"saveOrExitForm(true)\">\r\n Annulla\r\n </button>\r\n <button class=\"mr-2\" mat-raised-button color=\"primary\" type=\"button\"\r\n (click)=\"saveOrExitForm(false)\" [disabled]=\"isSaving\">\r\n <span *ngIf=\"!isSaving\">Salva</span>\r\n <span *ngIf=\"isSaving\">Salvataggio in Corso...</span>\r\n </button>\r\n </div>\r\n </mat-card-footer>\r\n\r\n</mat-card>\r\n\r\n<!--DIALOG PER SEMPLIFICARE LA SCRITTURA DEL CAMPO FORMULA-->\r\n<ng-template #dialogFormula>\r\n <eqp-dynamic-module-add-formula-component>\r\n </eqp-dynamic-module-add-formula-component>\r\n</ng-template>", styles: [".padder{padding:15px}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i2$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i5$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5$1.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i5$1.MatCardFooter, selector: "mat-card-footer" }, { kind: "component", type: i5$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i5$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "component", type: AddFormulaComponent, selector: "eqp-dynamic-module-add-formula-component" }, { kind: "component", type: DynamicModuleTriggerFixComponent, selector: "dynamic-module-trigger-fix", inputs: ["condition", "form"], outputs: ["triggerChange"] }] });
10881
10892
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TriggerCreatorComponent, decorators: [{
10882
10893
  type: Component,
10883
- args: [{ selector: 'trigger-creator', template: "\r\n<mat-card class=\"add-form-field\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{trigger != null ? \"Modifica\" : \"Aggiungi\"}} trigger\r\n </mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <div class=\"container-fluid containerContent padder\" *ngIf=\"trigger.conditions != null\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Descrizione Trigger</div>\r\n <div class=\"col-9\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> Descrizione </mat-label>\r\n <input matInput [(ngModel)]=\"trigger.description\" [readonly]=\"false\" [required]=\"false\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Tipo Trigger</div>\r\n <div class=\"col-9\">\r\n <eqp-select [arrayData]=\"formulaKeys\" [(ngModelInput)]=\"selectedFormula\"\r\n [arrayKeyProperty]=\"'key'\" [arrayValueProperty]=\"'key'\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onChangeFormula($event)\">\r\n </eqp-select> \r\n </div>\r\n </div>\r\n\r\n <div class=\"row\" *ngFor=\"let formulaField of formulaFieldsStructure\">\r\n <div class=\"col-3\">{{formulaField.key}}</div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.STRING\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> {{formulaField.key}} </mat-label>\r\n <input matInput [readonly]=\"false\" [required]=\"false\" (click)=\"openFormulaDialog(formulaField)\" [(ngModel)]=\"formulaField.value\" (ngModelChange)=\"onFormulaFieldChange(formulaField)\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.DMMODULE\">\r\n <eqp-select [placeholder]=\"'Seleziona modulo'\" [arrayData]=\"forms\" [(ngModelInput)]=\"EqpSelectedFormulaField\" [isSearchable]=\"true\"\r\n [arrayKeyProperty]=\"'ID'\" [arrayValueProperty]=\"'Name'\" [ngModelOptions]=\"{ standalone: true }\" (ngModelInputChange)=\"onEqpSelectModule($event, formulaField)\">\r\n </eqp-select>\r\n </div>\r\n </div>\r\n\r\n <button class=\"btn btn-primary\" (click)=\"addCondition()\">Aggiungi condizione</button>\r\n\r\n <div class=\"padder\" *ngFor=\"let condition of trigger.conditions\">\r\n <div class=\"row\" *ngIf=\"condition.Field != null\">\r\n <div class=\"col-1\"><button class=\"btn btn-danger\"><mat-icon (click)=\"deleteCondition(condition)\">delete</mat-icon></button></div>\r\n <div class=\"col-2\">\r\n <eqp-select [arrayData]=\"form.Fields\" [(ngModelInput)]=\"condition.Field\"\r\n [arrayKeyProperty]=\"'Name'\" [arrayValueProperty]=\"'Name'\"\r\n [showCancelButton]=\"false\" (ngModelInputChange)=\"onFieldTypeChange($event, condition)\"\r\n [includeFullObject]=\"true\">\r\n </eqp-select>\r\n </div> \r\n <div class=\"col-9\" *ngIf=\"condition.Field != null\">\r\n <dynamic-module-trigger-fix #fieldTemplate [condition]=\"condition\" [form]=\"form\" (triggerChange)=\"onTriggerChange($event, condition)\"></dynamic-module-trigger-fix>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n <mat-card-footer>\r\n <div class=\"d-flex justify-content-end mt-2 mb-1 me-3\"> \r\n <button class=\"mr-2\" mat-raised-button type=\"button\" (click)=\"saveOrExitForm(true)\">\r\n Annulla\r\n </button>\r\n <button class=\"mr-2\" mat-raised-button color=\"primary\" type=\"button\"\r\n (click)=\"saveOrExitForm(false)\" [disabled]=\"isSaving\">\r\n <span *ngIf=\"!isSaving\">Salva</span>\r\n <span *ngIf=\"isSaving\">Salvataggio in Corso...</span>\r\n </button>\r\n </div>\r\n </mat-card-footer>\r\n\r\n</mat-card>\r\n\r\n<!--DIALOG PER SEMPLIFICARE LA SCRITTURA DEL CAMPO FORMULA-->\r\n<ng-template #dialogFormula>\r\n <eqp-dynamic-module-add-formula-component>\r\n </eqp-dynamic-module-add-formula-component>\r\n</ng-template>", styles: [".padder{padding:15px}\n"] }]
10894
+ args: [{ selector: 'trigger-creator', template: "\r\n<mat-card class=\"add-form-field\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{trigger != null ? \"Modifica\" : \"Aggiungi\"}} trigger\r\n </mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <div class=\"container-fluid containerContent padder\" *ngIf=\"trigger.conditions != null\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Descrizione Trigger</div>\r\n <div class=\"col-9\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> Descrizione </mat-label>\r\n <input matInput [(ngModel)]=\"trigger.description\" [readonly]=\"false\" [required]=\"false\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Tipo Trigger</div>\r\n <div class=\"col-9\">\r\n <eqp-select [arrayData]=\"formulaKeys\" [(ngModelInput)]=\"selectedFormula\"\r\n [arrayKeyProperty]=\"'key'\" [arrayValueProperty]=\"'key'\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onChangeFormula($event)\">\r\n </eqp-select> \r\n </div>\r\n </div>\r\n\r\n <div class=\"row\" *ngFor=\"let formulaField of formulaFieldsStructure\">\r\n <div class=\"col-3\">{{formulaField.key}}</div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.STRING\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> {{formulaField.key}} </mat-label>\r\n <input matInput [readonly]=\"false\" [required]=\"false\" (click)=\"openFormulaDialog(formulaField)\" [(ngModel)]=\"formulaField.value\" (ngModelChange)=\"onFormulaFieldChange(formulaField)\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-9\" *ngIf=\"formulaField.type == triggerPropertyType.DMMODULE\">\r\n <eqp-select [placeholder]=\"'Seleziona modulo'\" [arrayData]=\"forms\" [(ngModelInput)]=\"formulaField.object\" [isSearchable]=\"true\"\r\n [arrayKeyProperty]=\"'ID'\" [arrayValueProperty]=\"'Name'\" [ngModelOptions]=\"{ standalone: true }\" (ngModelInputChange)=\"onEqpSelectModule($event, formulaField)\">\r\n </eqp-select>\r\n </div>\r\n </div>\r\n\r\n <button class=\"btn btn-primary\" (click)=\"addCondition()\">Aggiungi condizione</button>\r\n\r\n <div class=\"padder\" *ngFor=\"let condition of trigger.conditions\">\r\n <div class=\"row\" *ngIf=\"condition.Field != null\">\r\n <div class=\"col-1\"><button class=\"btn btn-danger\"><mat-icon (click)=\"deleteCondition(condition)\">delete</mat-icon></button></div>\r\n <div class=\"col-2\">\r\n <eqp-select [arrayData]=\"form.Fields\" [(ngModelInput)]=\"condition.Field\"\r\n [arrayKeyProperty]=\"'Name'\" [arrayValueProperty]=\"'Name'\"\r\n [showCancelButton]=\"false\" (ngModelInputChange)=\"onFieldTypeChange($event, condition)\"\r\n [includeFullObject]=\"true\">\r\n </eqp-select>\r\n </div> \r\n <div class=\"col-9\" *ngIf=\"condition.Field != null\">\r\n <dynamic-module-trigger-fix #fieldTemplate [condition]=\"condition\" [form]=\"form\" (triggerChange)=\"onTriggerChange($event, condition)\"></dynamic-module-trigger-fix>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n <mat-card-footer>\r\n <div class=\"d-flex justify-content-end mt-2 mb-1 me-3\"> \r\n <button class=\"mr-2\" mat-raised-button type=\"button\" (click)=\"saveOrExitForm(true)\">\r\n Annulla\r\n </button>\r\n <button class=\"mr-2\" mat-raised-button color=\"primary\" type=\"button\"\r\n (click)=\"saveOrExitForm(false)\" [disabled]=\"isSaving\">\r\n <span *ngIf=\"!isSaving\">Salva</span>\r\n <span *ngIf=\"isSaving\">Salvataggio in Corso...</span>\r\n </button>\r\n </div>\r\n </mat-card-footer>\r\n\r\n</mat-card>\r\n\r\n<!--DIALOG PER SEMPLIFICARE LA SCRITTURA DEL CAMPO FORMULA-->\r\n<ng-template #dialogFormula>\r\n <eqp-dynamic-module-add-formula-component>\r\n </eqp-dynamic-module-add-formula-component>\r\n</ng-template>", styles: [".padder{padding:15px}\n"] }]
10884
10895
  }], ctorParameters: function () { return [{ type: i1$3.MatDialog }, { type: UtilityHelperService }]; }, propDecorators: { form: [{
10885
10896
  type: Input,
10886
10897
  args: ["form"]