@alfresco/aca-content 4.5.0-10138766629 → 4.5.0-10138775038
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/esm2020/folder-rules/rule-details/actions/rule-action.ui-component.mjs +3 -3
- package/esm2020/folder-rules/rule-details/edit-rule-dialog.ui-component.mjs +3 -3
- package/esm2020/folder-rules/rule-details/rule-details.ui-component.mjs +3 -3
- package/fesm2015/alfresco-aca-content-folder-rules.mjs +6 -6
- package/fesm2015/alfresco-aca-content-folder-rules.mjs.map +1 -1
- package/fesm2020/alfresco-aca-content-folder-rules.mjs +6 -6
- package/fesm2020/alfresco-aca-content-folder-rules.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -328,7 +328,7 @@ RuleActionUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
328
328
|
useExisting: forwardRef(() => RuleActionUiComponent)
|
|
329
329
|
},
|
|
330
330
|
CardViewUpdateService
|
|
331
|
-
], usesOnChanges: true, ngImport: i0, template: "<form class=\"aca-rule-action__form\" [formGroup]=\"form\">\n\n <mat-form-field class=\"aca-rule-action-full-width\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-select\n formControlName=\"actionDefinitionId\"\n data-automation-id=\"rule-action-select\"\n [placeholder]=\"'ACA_FOLDER_RULES.RULE_DETAILS.ACTION_SELECT_PLACEHOLDER' | translate\">\n <mat-option\n *ngFor=\"let actionDefinition of actionDefinitions\"\n [value]=\"actionDefinition.id\">\n {{ actionDefinition.title }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <adf-card-view\n *ngIf=\"cardViewItems?.length > 0\"\n data-automation-id=\"rule-action-card-view\"\n [properties]=\"cardViewItems\"\n class=\"aca-rule-action-full-width\"\n [editable]=\"!readOnly\">\n </adf-card-view>\n\n</form>\n", styles: [".aca-rule-action__form{display:flex;flex-direction:row;gap:20px}.aca-rule-action__form adf-card-view{margin-top:-15px}.aca-rule-action__form adf-card-view .adf-property-list .adf-property adf-card-view-item-dispatcher adf-card-view-textitem{display:inline-block;width:
|
|
331
|
+
], usesOnChanges: true, ngImport: i0, template: "<form class=\"aca-rule-action__form\" [formGroup]=\"form\">\n\n <mat-form-field class=\"aca-rule-action-full-width\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-select\n formControlName=\"actionDefinitionId\"\n data-automation-id=\"rule-action-select\"\n [placeholder]=\"'ACA_FOLDER_RULES.RULE_DETAILS.ACTION_SELECT_PLACEHOLDER' | translate\">\n <mat-option\n *ngFor=\"let actionDefinition of actionDefinitions\"\n [value]=\"actionDefinition.id\">\n {{ actionDefinition.title }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <adf-card-view\n *ngIf=\"cardViewItems?.length > 0\"\n data-automation-id=\"rule-action-card-view\"\n [properties]=\"cardViewItems\"\n class=\"aca-rule-action-full-width\"\n [editable]=\"!readOnly\">\n </adf-card-view>\n\n</form>\n", styles: [".aca-rule-action__form{display:flex;flex-direction:row;gap:20px}.aca-rule-action__form adf-card-view{margin-top:-15px}.aca-rule-action__form adf-card-view .adf-property-list .adf-property adf-card-view-item-dispatcher adf-card-view-textitem{display:inline-block;width:100%}.aca-rule-action__form adf-card-view .adf-property-list .adf-property adf-card-view-item-dispatcher adf-card-view-textitem .adf-textitem-clickable{padding-top:0}.aca-rule-action__form adf-card-view .adf-property-list .adf-property adf-card-view-item-dispatcher adf-card-view-textitem .adf-textitem-action .adf-textitem-icon{margin-left:-10px}.aca-rule-action-full-width{height:-moz-fit-content;height:fit-content;flex:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: CardViewModule }, { kind: "component", type: i1.CardViewComponent, selector: "adf-card-view", inputs: ["properties", "editable", "displayEmpty", "displayNoneOption", "displayClearAction", "copyToClipboardAction", "useChipsForMultiValueProperty", "multiValueSeparator", "displayLabelForChips"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
332
332
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuleActionUiComponent, decorators: [{
|
|
333
333
|
type: Component,
|
|
334
334
|
args: [{ standalone: true, imports: [CommonModule, TranslateModule, ReactiveFormsModule, MatFormFieldModule, MatSelectModule, CardViewModule], selector: 'aca-rule-action', encapsulation: ViewEncapsulation.None, host: { class: 'aca-rule-action' }, providers: [
|
|
@@ -338,7 +338,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
338
338
|
useExisting: forwardRef(() => RuleActionUiComponent)
|
|
339
339
|
},
|
|
340
340
|
CardViewUpdateService
|
|
341
|
-
], template: "<form class=\"aca-rule-action__form\" [formGroup]=\"form\">\n\n <mat-form-field class=\"aca-rule-action-full-width\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-select\n formControlName=\"actionDefinitionId\"\n data-automation-id=\"rule-action-select\"\n [placeholder]=\"'ACA_FOLDER_RULES.RULE_DETAILS.ACTION_SELECT_PLACEHOLDER' | translate\">\n <mat-option\n *ngFor=\"let actionDefinition of actionDefinitions\"\n [value]=\"actionDefinition.id\">\n {{ actionDefinition.title }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <adf-card-view\n *ngIf=\"cardViewItems?.length > 0\"\n data-automation-id=\"rule-action-card-view\"\n [properties]=\"cardViewItems\"\n class=\"aca-rule-action-full-width\"\n [editable]=\"!readOnly\">\n </adf-card-view>\n\n</form>\n", styles: [".aca-rule-action__form{display:flex;flex-direction:row;gap:20px}.aca-rule-action__form adf-card-view{margin-top:-15px}.aca-rule-action__form adf-card-view .adf-property-list .adf-property adf-card-view-item-dispatcher adf-card-view-textitem{display:inline-block;width:
|
|
341
|
+
], template: "<form class=\"aca-rule-action__form\" [formGroup]=\"form\">\n\n <mat-form-field class=\"aca-rule-action-full-width\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-select\n formControlName=\"actionDefinitionId\"\n data-automation-id=\"rule-action-select\"\n [placeholder]=\"'ACA_FOLDER_RULES.RULE_DETAILS.ACTION_SELECT_PLACEHOLDER' | translate\">\n <mat-option\n *ngFor=\"let actionDefinition of actionDefinitions\"\n [value]=\"actionDefinition.id\">\n {{ actionDefinition.title }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <adf-card-view\n *ngIf=\"cardViewItems?.length > 0\"\n data-automation-id=\"rule-action-card-view\"\n [properties]=\"cardViewItems\"\n class=\"aca-rule-action-full-width\"\n [editable]=\"!readOnly\">\n </adf-card-view>\n\n</form>\n", styles: [".aca-rule-action__form{display:flex;flex-direction:row;gap:20px}.aca-rule-action__form adf-card-view{margin-top:-15px}.aca-rule-action__form adf-card-view .adf-property-list .adf-property adf-card-view-item-dispatcher adf-card-view-textitem{display:inline-block;width:100%}.aca-rule-action__form adf-card-view .adf-property-list .adf-property adf-card-view-item-dispatcher adf-card-view-textitem .adf-textitem-clickable{padding-top:0}.aca-rule-action__form adf-card-view .adf-property-list .adf-property adf-card-view-item-dispatcher adf-card-view-textitem .adf-textitem-action .adf-textitem-icon{margin-left:-10px}.aca-rule-action-full-width{height:-moz-fit-content;height:fit-content;flex:1}\n"] }]
|
|
342
342
|
}], ctorParameters: function () { return [{ type: i1.CardViewUpdateService }, { type: i2.MatDialog }, { type: i3.TranslateService }, { type: i4.TagService }, { type: i4.CategoryService }, { type: i4.SecurityControlsService }]; }, propDecorators: { nodeId: [{
|
|
343
343
|
type: Input
|
|
344
344
|
}], actionDefinitions: [{
|
|
@@ -348,4 +348,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
348
348
|
}], parameterConstraints: [{
|
|
349
349
|
type: Input
|
|
350
350
|
}] } });
|
|
351
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1hY3Rpb24udWktY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9ydWxlLWRldGFpbHMvYWN0aW9ucy9ydWxlLWFjdGlvbi51aS1jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3J1bGUtZGV0YWlscy9hY3Rpb25zL3J1bGUtYWN0aW9uLnVpLWNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUErQyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQXdCLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEksT0FBTyxFQUNMLHFCQUFxQixFQUVyQixjQUFjLEVBQ2QsdUJBQXVCLEVBRXZCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFFdEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLDRCQUE0QixFQUU1QixVQUFVLEVBQ1YsVUFBVSxFQUNWLCtCQUErQixFQUUvQix1QkFBdUIsRUFDeEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFB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eVNBQUUsY0FBYzs0RkFldEcscUJBQXFCO2tCQWpCakMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUMsWUFDeEcsaUJBQWlCLGlCQUdaLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsYUFDdkI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7eUJBQ3JEO3dCQUNELHFCQUFxQjtxQkFDdEI7Z1FBSUQsTUFBTTtzQkFETCxLQUFLO2dCQUlOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBS0Ysb0JBQW9CO3NCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3Rpb25EZWZpbml0aW9uVHJhbnNmb3JtZWQsIFJ1bGVBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9ydWxlLWFjdGlvbi5tb2RlbCc7XG5pbXBvcnQge1xuICBDYXJkVmlld0Jvb2xJdGVtTW9kZWwsXG4gIENhcmRWaWV3SXRlbSxcbiAgQ2FyZFZpZXdNb2R1bGUsXG4gIENhcmRWaWV3U2VsZWN0SXRlbU1vZGVsLFxuICBDYXJkVmlld1NlbGVjdEl0ZW1PcHRpb24sXG4gIENhcmRWaWV3VGV4dEl0ZW1Nb2RlbCxcbiAgQ2FyZFZpZXdVcGRhdGVTZXJ2aWNlLFxuICBVcGRhdGVOb3RpZmljYXRpb25cbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEFjdGlvblBhcmFtZXRlckRlZmluaXRpb24sIENhdGVnb3J5LCBOb2RlLCBTZWN1cml0eU1hcmsgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IGZyb20sIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnQsIENvbnN0cmFpbnRWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVsL2FjdGlvbi1wYXJhbWV0ZXItY29uc3RyYWludC5tb2RlbCc7XG5pbXBvcnQge1xuICBDYXRlZ29yeVNlcnZpY2UsXG4gIENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnQsXG4gIENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnREYXRhLFxuICBOb2RlQWN0aW9uLFxuICBUYWdTZXJ2aWNlLFxuICBDYXRlZ29yeVNlbGVjdG9yRGlhbG9nQ29tcG9uZW50LFxuICBDYXRlZ29yeVNlbGVjdG9yRGlhbG9nT3B0aW9ucyxcbiAgU2VjdXJpdHlDb250cm9sc1NlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLCBDYXJkVmlld01vZHVsZV0sXG4gIHNlbGVjdG9yOiAnYWNhLXJ1bGUtYWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3J1bGUtYWN0aW9uLnVpLWNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcnVsZS1hY3Rpb24udWktY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDogeyBjbGFzczogJ2FjYS1ydWxlLWFjdGlvbicgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJ1bGVBY3Rpb25VaUNvbXBvbmVudClcbiAgICB9LFxuICAgIENhcmRWaWV3VXBkYXRlU2VydmljZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJ1bGVBY3Rpb25VaUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgbm9kZUlkID0gJyc7XG5cbiAgQElucHV0KClcbiAgYWN0aW9uRGVmaW5pdGlvbnM6IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZFtdO1xuXG4gIEBJbnB1dCgpXG4gIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfcGFyYW1ldGVyQ29uc3RyYWludHMgPSBbXTtcbiAgQElucHV0KClcbiAgZ2V0IHBhcmFtZXRlckNvbnN0cmFpbnRzKCk6IEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmFtZXRlckNvbnN0cmFpbnRzO1xuICB9XG5cbiAgc2V0IHBhcmFtZXRlckNvbnN0cmFpbnRzKHZhbHVlKSB7XG4gICAgdGhpcy5fcGFyYW1ldGVyQ29uc3RyYWludHMgPSB2YWx1ZS5tYXAoKG9iaikgPT4gKHtcbiAgICAgIC4uLm9iaixcbiAgICAgIGNvbnN0cmFpbnRzOiB0aGlzLnBhcnNlQ29uc3RyYWludHNUb1NlbGVjdE9wdGlvbnMob2JqLmNvbnN0cmFpbnRzKVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGFnc1JlbGF0ZWRQcm9wZXJ0aWVzQW5kQXNwZWN0cyA9IFsnY206dGFnc2NvcGUnLCAnY206dGFnU2NvcGVDYWNoZScsICdjbTp0YWdnYWJsZSddO1xuICBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3JpZXNSZWxhdGVkUHJvcGVydGllc0FuZEFzcGVjdHMgPSBbJ2NtOmNhdGVnb3JpZXMnLCAnY206Z2VuZXJhbGNsYXNzaWZpYWJsZSddO1xuICBwcml2YXRlIHJlYWRvbmx5IHBhcmFtc1RvRm9ybWF0RGlzcGxheWVkVmFsdWUgPSBbJ3NlY3VyaXR5TWFya0lkJywgJ3NlY3VyaXR5R3JvdXBJZCddO1xuXG4gIGlzRnVsbFdpZHRoID0gZmFsc2U7XG5cbiAgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIGFjdGlvbkRlZmluaXRpb25JZDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKVxuICB9KTtcblxuICBjYXJkVmlld0l0ZW1zOiBDYXJkVmlld0l0ZW1bXSA9IFtdO1xuICBwYXJhbWV0ZXJzOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSA9IHt9O1xuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGdldCBzZWxlY3RlZEFjdGlvbkRlZmluaXRpb25JZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdhY3Rpb25EZWZpbml0aW9uSWQnKS52YWx1ZTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZEFjdGlvbkRlZmluaXRpb24oKTogQWN0aW9uRGVmaW5pdGlvblRyYW5zZm9ybWVkIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25EZWZpbml0aW9ucy5maW5kKChhY3Rpb25EZWZpbml0aW9uOiBBY3Rpb25EZWZpbml0aW9uVHJhbnNmb3JtZWQpID0+IGFjdGlvbkRlZmluaXRpb24uaWQgPT09IHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQpO1xuICB9XG5cbiAgb25DaGFuZ2U6IChhY3Rpb246IFJ1bGVBY3Rpb24pID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG4gIG9uVG91Y2g6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjYXJkVmlld1VwZGF0ZVNlcnZpY2U6IENhcmRWaWV3VXBkYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGFnU2VydmljZTogVGFnU2VydmljZSxcbiAgICBwcml2YXRlIGNhdGVnb3J5U2VydmljZTogQ2F0ZWdvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VjdXJpdHlDb250cm9sc1NlcnZpY2U6IFNlY3VyaXR5Q29udHJvbHNTZXJ2aWNlXG4gICkge31cblxuICB3cml0ZVZhbHVlKGFjdGlvbjogUnVsZUFjdGlvbikge1xuICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh7XG4gICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IGFjdGlvbi5hY3Rpb25EZWZpbml0aW9uSWRcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSB7XG4gICAgICAuLi50aGlzLnBhcmFtZXRlcnMsXG4gICAgICAuLi5hY3Rpb24ucGFyYW1zXG4gICAgfTtcbiAgICB0aGlzLnNldENhcmRWaWV3UHJvcGVydGllcygpO1xuICAgIGlmICh0aGlzLnBhcmFtZXRlcnM/LnNlY3VyaXR5R3JvdXBJZCkge1xuICAgICAgdGhpcy5sb2FkU2VjdXJpdHlNYXJrT3B0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChhY3Rpb246IFJ1bGVBY3Rpb24pID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFjdGlvbkRlZmluaXRpb25zID0gdGhpcy5hY3Rpb25EZWZpbml0aW9ucy5zb3J0KChmaXJzdEFjdGlvbkRlZmluaXRpb24sIHNlY29uZEFjdGlvbkRlZmluaXRpb24pID0+XG4gICAgICBmaXJzdEFjdGlvbkRlZmluaXRpb24udGl0bGUubG9jYWxlQ29tcGFyZShzZWNvbmRBY3Rpb25EZWZpbml0aW9uLnRpdGxlKVxuICAgICk7XG5cbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNldERlZmF1bHRQYXJhbWV0ZXJzKCk7XG4gICAgICB0aGlzLnNldENhcmRWaWV3UHJvcGVydGllcygpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh7XG4gICAgICAgIGFjdGlvbkRlZmluaXRpb25JZDogdGhpcy5zZWxlY3RlZEFjdGlvbkRlZmluaXRpb25JZCxcbiAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtZXRlcnNcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNhcmRWaWV3VXBkYXRlU2VydmljZS5pdGVtVXBkYXRlZCQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCh1cGRhdGVOb3RpZmljYXRpb246IFVwZGF0ZU5vdGlmaWNhdGlvbikgPT4ge1xuICAgICAgY29uc3QgaXNTZWN1cml0eUdyb3VwVXBkYXRlZCA9IHVwZGF0ZU5vdGlmaWNhdGlvbi50YXJnZXQua2V5ID09PSAnc2VjdXJpdHlHcm91cElkJztcbiAgICAgIGlmIChpc1NlY3VyaXR5R3JvdXBVcGRhdGVkKSB7XG4gICAgICAgIHRoaXMucGFyYW1ldGVycy5zZWN1cml0eU1hcmtJZCA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucGFyYW1ldGVycyA9IHRoaXMuY2xlYXJFbXB0eVBhcmFtZXRlcnMoe1xuICAgICAgICAuLi50aGlzLnBhcmFtZXRlcnMsXG4gICAgICAgIC4uLnVwZGF0ZU5vdGlmaWNhdGlvbi5jaGFuZ2VkXG4gICAgICB9KTtcbiAgICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQsXG4gICAgICAgIHBhcmFtczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICB9KTtcbiAgICAgIHRoaXMub25Ub3VjaCgpO1xuXG4gICAgICBpZiAoaXNTZWN1cml0eUdyb3VwVXBkYXRlZCkge1xuICAgICAgICB0aGlzLnNldENhcmRWaWV3UHJvcGVydGllcygpO1xuICAgICAgICB0aGlzLmxvYWRTZWN1cml0eU1hcmtPcHRpb25zKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgcmVhZE9ubHkgPSBjaGFuZ2VzWydyZWFkT25seSddPy5jdXJyZW50VmFsdWU7XG4gICAgaWYgKHJlYWRPbmx5ICE9PSB1bmRlZmluZWQgJiYgcmVhZE9ubHkgIT09IG51bGwpIHtcbiAgICAgIGlmIChyZWFkT25seSkge1xuICAgICAgICB0aGlzLnJlYWRPbmx5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVhZE9ubHkgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBzZXRDYXJkVmlld1Byb3BlcnRpZXMoc2VjdXJpdHlNYXJrT3B0aW9ucz86IENhcmRWaWV3U2VsZWN0SXRlbU9wdGlvbjxzdHJpbmc+W10pIHtcbiAgICBjb25zdCBkaXNhYmxlZFRhZ3MgPSAhdGhpcy50YWdTZXJ2aWNlLmFyZVRhZ3NFbmFibGVkKCk7XG4gICAgY29uc3QgZGlzYWJsZWRDYXRlZ29yaWVzID0gIXRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmFyZUNhdGVnb3JpZXNFbmFibGVkKCk7XG4gICAgdGhpcy5jYXJkVmlld0l0ZW1zID0gKHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uPy5wYXJhbWV0ZXJEZWZpbml0aW9ucyA/PyBbXSkubWFwKChwYXJhbURlZikgPT4ge1xuICAgICAgY29uc3QgY29uc3RyYWludHNGb3JEcm9wZG93bkJveCA9XG4gICAgICAgIHBhcmFtRGVmLm5hbWUgPT09ICdzZWN1cml0eU1hcmtJZCdcbiAgICAgICAgICA/IHsgbmFtZTogcGFyYW1EZWYubmFtZSwgY29uc3RyYWludHM6IHNlY3VyaXR5TWFya09wdGlvbnMgfHwgW10gfVxuICAgICAgICAgIDogdGhpcy5fcGFyYW1ldGVyQ29uc3RyYWludHMuZmluZCgob2JqKSA9PiBvYmoubmFtZSA9PT0gcGFyYW1EZWYubmFtZSk7XG4gICAgICBjb25zdCBjYXJkVmlld1Byb3BlcnRpZXNNb2RlbCA9IHtcbiAgICAgICAgbGFiZWw6IHBhcmFtRGVmLmRpc3BsYXlMYWJlbCArIChwYXJhbURlZi5tYW5kYXRvcnkgPyAnIConIDogJycpLFxuICAgICAgICBrZXk6IHBhcmFtRGVmLm5hbWUsXG4gICAgICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgICAgICAuLi4ocGFyYW1EZWYubWFuZGF0b3J5XG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuRVJST1IuUkVRVUlSRUQnLFxuICAgICAgICAgICAgICAgICAgaXNWYWxpZDogKHZhbHVlOiB1bmtub3duKSA9PiAhIXZhbHVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSlcbiAgICAgIH07XG4gICAgICBzd2l0Y2ggKHBhcmFtRGVmLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnZDpib29sZWFuJzpcbiAgICAgICAgICByZXR1cm4gbmV3IENhcmRWaWV3Qm9vbEl0ZW1Nb2RlbCh7XG4gICAgICAgICAgICAuLi5jYXJkVmlld1Byb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV0gPz8gZmFsc2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAnZDpub2RlcmVmJzpcbiAgICAgICAgICBpZiAoIWNvbnN0cmFpbnRzRm9yRHJvcGRvd25Cb3ggJiYgIXRoaXMucmVhZE9ubHkgJiYgcGFyYW1EZWYubmFtZSAhPT0gJ2NhdGVnb3J5LXZhbHVlJykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDYXJkVmlld1RleHRJdGVtTW9kZWwoe1xuICAgICAgICAgICAgICAuLi5jYXJkVmlld1Byb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgICAgICAgaWNvbjogJ2ZvbGRlcicsXG4gICAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICAgICAgICBjbGlja2FibGU6IHRydWUsXG4gICAgICAgICAgICAgIGNsaWNrQ2FsbEJhY2s6IHRoaXMub3BlblNlbGVjdG9yRGlhbG9nLmJpbmQodGhpcywgcGFyYW1EZWYubmFtZSksXG4gICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAocGFyYW1EZWYubmFtZSA9PT0gJ2NhdGVnb3J5LXZhbHVlJyAmJiAhdGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDYXJkVmlld1RleHRJdGVtTW9kZWwoe1xuICAgICAgICAgICAgICAuLi5jYXJkVmlld1Byb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgICAgICAgaWNvbjogJ2xpYnJhcnlfYWRkJyxcbiAgICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgICAgICAgIGNsaWNrYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgY2xpY2tDYWxsQmFjazogdGhpcy5vcGVuQ2F0RGlhbG9nLmJpbmQodGhpcywgcGFyYW1EZWYubmFtZSksXG4gICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgLy8gIGZhbGxzIHRocm91Z2hcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAoY29uc3RyYWludHNGb3JEcm9wZG93bkJveCAmJiAhdGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDYXJkVmlld1NlbGVjdEl0ZW1Nb2RlbCh7XG4gICAgICAgICAgICAgIC4uLmNhcmRWaWV3UHJvcGVydGllc01vZGVsLFxuICAgICAgICAgICAgICB2YWx1ZTogKHRoaXMucGFyYW1ldGVyc1twYXJhbURlZi5uYW1lXSBhcyBzdHJpbmcpID8/ICcnLFxuICAgICAgICAgICAgICBvcHRpb25zJDogb2YoY29uc3RyYWludHNGb3JEcm9wZG93bkJveC5jb25zdHJhaW50cykucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGRpc2FibGVkVGFncyAmJiB0aGlzLnRhZ3NSZWxhdGVkUHJvcGVydGllc0FuZEFzcGVjdHMuaW5jbHVkZXMob3B0aW9uLmtleSkpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAoZGlzYWJsZWRDYXRlZ29yaWVzICYmIHRoaXMuY2F0ZWdvcmllc1JlbGF0ZWRQcm9wZXJ0aWVzQW5kQXNwZWN0cy5pbmNsdWRlcyhvcHRpb24ua2V5KSlcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IENhcmRWaWV3VGV4dEl0ZW1Nb2RlbCh7XG4gICAgICAgICAgICAuLi5jYXJkVmlld1Byb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICBjb25zdHJhaW50c0ZvckRyb3Bkb3duQm94ICYmIHRoaXMucmVhZE9ubHkgJiYgdGhpcy5wYXJhbXNUb0Zvcm1hdERpc3BsYXllZFZhbHVlLmluY2x1ZGVzKHBhcmFtRGVmLm5hbWUpXG4gICAgICAgICAgICAgICAgPyBjb25zdHJhaW50c0ZvckRyb3Bkb3duQm94LmNvbnN0cmFpbnRzLmZpbmQoKGNvbnN0cmFpbnQpID0+IGNvbnN0cmFpbnQua2V5ID09PSB0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV0pPy5sYWJlbCA/PyAnJ1xuICAgICAgICAgICAgICAgIDogdGhpcy5wYXJhbWV0ZXJzW3BhcmFtRGVmLm5hbWVdID8/ICcnXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5TZWxlY3RvckRpYWxvZyhwYXJhbURlZk5hbWUpIHtcbiAgICBjb25zdCBkYXRhOiBDb250ZW50Tm9kZVNlbGVjdG9yQ29tcG9uZW50RGF0YSA9IHtcbiAgICAgIHNlbGVjdGlvbk1vZGU6ICdzaW5nbGUnLFxuICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLlBMQUNFSE9MREVSLkNIT09TRV9GT0xERVInKSxcbiAgICAgIGFjdGlvbk5hbWU6IE5vZGVBY3Rpb24uQ0hPT1NFLFxuICAgICAgY3VycmVudEZvbGRlcklkOiB0aGlzLm5vZGVJZCxcbiAgICAgIHNlbGVjdDogbmV3IFN1YmplY3Q8Tm9kZVtdPigpXG4gICAgfTtcblxuICAgIHRoaXMuZGlhbG9nLm9wZW4oQ29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudCwge1xuICAgICAgZGF0YSxcbiAgICAgIHBhbmVsQ2xhc3M6ICdhZGYtY29udGVudC1ub2RlLXNlbGVjdG9yLWRpYWxvZycsXG4gICAgICB3aWR0aDogJzYzMHB4J1xuICAgIH0pO1xuXG4gICAgZGF0YS5zZWxlY3Quc3Vic2NyaWJlKFxuICAgICAgKHNlbGVjdGlvbnM6IE5vZGVbXSkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0aW9uc1swXS5pZCkge1xuICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh7XG4gICAgICAgICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQsXG4gICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgLi4udGhpcy5wYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICBbcGFyYW1EZWZOYW1lXTogc2VsZWN0aW9uc1swXS5pZFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgICAgICAgYWN0aW9uRGVmaW5pdGlvbklkOiB0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbklkLFxuICAgICAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtZXRlcnNcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkNhdERpYWxvZyhwYXJhbURlZk5hbWUpIHtcbiAgICBjb25zdCBkYXRhOiBDYXRlZ29yeVNlbGVjdG9yRGlhbG9nT3B0aW9ucyA9IHtcbiAgICAgIHNlbGVjdDogbmV3IFN1YmplY3Q8Q2F0ZWdvcnlbXT4oKSxcbiAgICAgIG11bHRpU2VsZWN0OiBmYWxzZVxuICAgIH07XG5cbiAgICB0aGlzLmRpYWxvZy5vcGVuKENhdGVnb3J5U2VsZWN0b3JEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGEsXG4gICAgICB3aWR0aDogJzYzMHB4J1xuICAgIH0pO1xuXG4gICAgZGF0YS5zZWxlY3QucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzZWxlY3Rpb25zOiBDYXRlZ29yeVtdKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0aW9uc1swXS5pZCkge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUoe1xuICAgICAgICAgIGFjdGlvbkRlZmluaXRpb25JZDogdGhpcy5zZWxlY3RlZEFjdGlvbkRlZmluaXRpb25JZCxcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIC4uLnRoaXMucGFyYW1ldGVycyxcbiAgICAgICAgICAgIFtwYXJhbURlZk5hbWVdOiBzZWxlY3Rpb25zWzBdLmlkXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh7XG4gICAgICAgICAgYWN0aW9uRGVmaW5pdGlvbklkOiB0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbklkLFxuICAgICAgICAgIHBhcmFtczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldERlZmF1bHRQYXJhbWV0ZXJzKCkge1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHt9O1xuICAgICh0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbj8ucGFyYW1ldGVyRGVmaW5pdGlvbnMgPz8gW10pLmZvckVhY2goKHBhcmFtRGVmOiBBY3Rpb25QYXJhbWV0ZXJEZWZpbml0aW9uKSA9PiB7XG4gICAgICBpZiAocGFyYW1EZWYudHlwZSA9PT0gJ2Q6Ym9vbGVhbicpIHtcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzW3BhcmFtRGVmLm5hbWVdID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlQ29uc3RyYWludHNUb1NlbGVjdE9wdGlvbnMoY29uc3RyYWludHM6IENvbnN0cmFpbnRWYWx1ZVtdKTogQ2FyZFZpZXdTZWxlY3RJdGVtT3B0aW9uPHVua25vd24+W10ge1xuICAgIHJldHVybiBjb25zdHJhaW50c1xuICAgICAgLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKCFhLmxhYmVsICYmIGIubGFiZWwpIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWIubGFiZWwgJiYgYS5sYWJlbCkge1xuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYS5sYWJlbD8ubG9jYWxlQ29tcGFyZShiLmxhYmVsKSA/PyAtMTtcbiAgICAgIH0pXG4gICAgICAubWFwKChjb25zdHJhaW50KSA9PiAoe1xuICAgICAgICBrZXk6IGNvbnN0cmFpbnQudmFsdWUsXG4gICAgICAgIGxhYmVsOiBjb25zdHJhaW50LmxhYmVsID8gYCR7Y29uc3RyYWludC5sYWJlbH0gWyR7Y29uc3RyYWludC52YWx1ZX1dYCA6IGNvbnN0cmFpbnQudmFsdWVcbiAgICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJFbXB0eVBhcmFtZXRlcnMocGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSk6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9IHtcbiAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goKGtleSkgPT4gKHBhcmFtc1trZXldID09PSBudWxsIHx8IHBhcmFtc1trZXldID09PSB1bmRlZmluZWQgfHwgcGFyYW1zW2tleV0gPT09ICcnKSAmJiBkZWxldGUgcGFyYW1zW2tleV0pO1xuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBsb2FkU2VjdXJpdHlNYXJrT3B0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYXJhbWV0ZXJzPy5zZWN1cml0eUdyb3VwSWQpIHtcbiAgICAgIGZyb20odGhpcy5zZWN1cml0eUNvbnRyb2xzU2VydmljZS5nZXRTZWN1cml0eU1hcmsodGhpcy5wYXJhbWV0ZXJzLnNlY3VyaXR5R3JvdXBJZCBhcyBzdHJpbmcpKVxuICAgICAgICAucGlwZShtYXAoKHNlY3VyaXR5TWFya3MpID0+IHNlY3VyaXR5TWFya3MuZW50cmllcy5tYXAoKGVudHJ5KSA9PiB0aGlzLmZvcm1hdFNlY3VyaXR5TWFya0NvbnN0cmFpbnQoZW50cnkpKSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4gdGhpcy5zZXRDYXJkVmlld1Byb3BlcnRpZXModGhpcy5wYXJzZUNvbnN0cmFpbnRzVG9TZWxlY3RPcHRpb25zKHJlcykgYXMgQ2FyZFZpZXdTZWxlY3RJdGVtT3B0aW9uPHN0cmluZz5bXSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0U2VjdXJpdHlNYXJrQ29uc3RyYWludChzZWN1cml0eU1hcms6IFNlY3VyaXR5TWFyayk6IENvbnN0cmFpbnRWYWx1ZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiBzZWN1cml0eU1hcmsuaWQsXG4gICAgICBsYWJlbDogc2VjdXJpdHlNYXJrLm5hbWVcbiAgICB9O1xuICB9XG59XG4iLCI8Zm9ybSBjbGFzcz1cImFjYS1ydWxlLWFjdGlvbl9fZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuXG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFjYS1ydWxlLWFjdGlvbi1mdWxsLXdpZHRoXCIgYXBwZWFyYW5jZT1cImZpbGxcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgPG1hdC1zZWxlY3RcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImFjdGlvbkRlZmluaXRpb25JZFwiXG4gICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJydWxlLWFjdGlvbi1zZWxlY3RcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIidBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5BQ1RJT05fU0VMRUNUX1BMQUNFSE9MREVSJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IGFjdGlvbkRlZmluaXRpb24gb2YgYWN0aW9uRGVmaW5pdGlvbnNcIlxuICAgICAgICBbdmFsdWVdPVwiYWN0aW9uRGVmaW5pdGlvbi5pZFwiPlxuICAgICAgICB7eyBhY3Rpb25EZWZpbml0aW9uLnRpdGxlIH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxhZGYtY2FyZC12aWV3XG4gICAgKm5nSWY9XCJjYXJkVmlld0l0ZW1zPy5sZW5ndGggPiAwXCJcbiAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJydWxlLWFjdGlvbi1jYXJkLXZpZXdcIlxuICAgIFtwcm9wZXJ0aWVzXT1cImNhcmRWaWV3SXRlbXNcIlxuICAgIGNsYXNzPVwiYWNhLXJ1bGUtYWN0aW9uLWZ1bGwtd2lkdGhcIlxuICAgIFtlZGl0YWJsZV09XCIhcmVhZE9ubHlcIj5cbiAgPC9hZGYtY2FyZC12aWV3PlxuXG48L2Zvcm0+XG4iXX0=
|
|
351
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1hY3Rpb24udWktY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9ydWxlLWRldGFpbHMvYWN0aW9ucy9ydWxlLWFjdGlvbi51aS1jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3J1bGUtZGV0YWlscy9hY3Rpb25zL3J1bGUtYWN0aW9uLnVpLWNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUErQyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQXdCLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEksT0FBTyxFQUNMLHFCQUFxQixFQUVyQixjQUFjLEVBQ2QsdUJBQXVCLEVBRXZCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFFdEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLDRCQUE0QixFQUU1QixVQUFVLEVBQ1YsVUFBVSxFQUNWLCtCQUErQixFQUUvQix1QkFBdUIsRUFDeEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFB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eVNBQUUsY0FBYzs0RkFldEcscUJBQXFCO2tCQWpCakMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUMsWUFDeEcsaUJBQWlCLGlCQUdaLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsYUFDdkI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7eUJBQ3JEO3dCQUNELHFCQUFxQjtxQkFDdEI7Z1FBSUQsTUFBTTtzQkFETCxLQUFLO2dCQUlOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBS0Ysb0JBQW9CO3NCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3Rpb25EZWZpbml0aW9uVHJhbnNmb3JtZWQsIFJ1bGVBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9ydWxlLWFjdGlvbi5tb2RlbCc7XG5pbXBvcnQge1xuICBDYXJkVmlld0Jvb2xJdGVtTW9kZWwsXG4gIENhcmRWaWV3SXRlbSxcbiAgQ2FyZFZpZXdNb2R1bGUsXG4gIENhcmRWaWV3U2VsZWN0SXRlbU1vZGVsLFxuICBDYXJkVmlld1NlbGVjdEl0ZW1PcHRpb24sXG4gIENhcmRWaWV3VGV4dEl0ZW1Nb2RlbCxcbiAgQ2FyZFZpZXdVcGRhdGVTZXJ2aWNlLFxuICBVcGRhdGVOb3RpZmljYXRpb25cbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEFjdGlvblBhcmFtZXRlckRlZmluaXRpb24sIENhdGVnb3J5LCBOb2RlLCBTZWN1cml0eU1hcmsgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IGZyb20sIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnQsIENvbnN0cmFpbnRWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVsL2FjdGlvbi1wYXJhbWV0ZXItY29uc3RyYWludC5tb2RlbCc7XG5pbXBvcnQge1xuICBDYXRlZ29yeVNlcnZpY2UsXG4gIENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnQsXG4gIENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnREYXRhLFxuICBOb2RlQWN0aW9uLFxuICBUYWdTZXJ2aWNlLFxuICBDYXRlZ29yeVNlbGVjdG9yRGlhbG9nQ29tcG9uZW50LFxuICBDYXRlZ29yeVNlbGVjdG9yRGlhbG9nT3B0aW9ucyxcbiAgU2VjdXJpdHlDb250cm9sc1NlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLCBDYXJkVmlld01vZHVsZV0sXG4gIHNlbGVjdG9yOiAnYWNhLXJ1bGUtYWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3J1bGUtYWN0aW9uLnVpLWNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcnVsZS1hY3Rpb24udWktY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDogeyBjbGFzczogJ2FjYS1ydWxlLWFjdGlvbicgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJ1bGVBY3Rpb25VaUNvbXBvbmVudClcbiAgICB9LFxuICAgIENhcmRWaWV3VXBkYXRlU2VydmljZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJ1bGVBY3Rpb25VaUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgbm9kZUlkID0gJyc7XG5cbiAgQElucHV0KClcbiAgYWN0aW9uRGVmaW5pdGlvbnM6IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZFtdO1xuXG4gIEBJbnB1dCgpXG4gIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfcGFyYW1ldGVyQ29uc3RyYWludHMgPSBbXTtcbiAgQElucHV0KClcbiAgZ2V0IHBhcmFtZXRlckNvbnN0cmFpbnRzKCk6IEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmFtZXRlckNvbnN0cmFpbnRzO1xuICB9XG5cbiAgc2V0IHBhcmFtZXRlckNvbnN0cmFpbnRzKHZhbHVlKSB7XG4gICAgdGhpcy5fcGFyYW1ldGVyQ29uc3RyYWludHMgPSB2YWx1ZS5tYXAoKG9iaikgPT4gKHtcbiAgICAgIC4uLm9iaixcbiAgICAgIGNvbnN0cmFpbnRzOiB0aGlzLnBhcnNlQ29uc3RyYWludHNUb1NlbGVjdE9wdGlvbnMob2JqLmNvbnN0cmFpbnRzKVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGFnc1JlbGF0ZWRQcm9wZXJ0aWVzQW5kQXNwZWN0cyA9IFsnY206dGFnc2NvcGUnLCAnY206dGFnU2NvcGVDYWNoZScsICdjbTp0YWdnYWJsZSddO1xuICBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3JpZXNSZWxhdGVkUHJvcGVydGllc0FuZEFzcGVjdHMgPSBbJ2NtOmNhdGVnb3JpZXMnLCAnY206Z2VuZXJhbGNsYXNzaWZpYWJsZSddO1xuICBwcml2YXRlIHJlYWRvbmx5IHBhcmFtc1RvRm9ybWF0RGlzcGxheWVkVmFsdWUgPSBbJ3NlY3VyaXR5TWFya0lkJywgJ3NlY3VyaXR5R3JvdXBJZCddO1xuXG4gIGlzRnVsbFdpZHRoID0gZmFsc2U7XG5cbiAgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIGFjdGlvbkRlZmluaXRpb25JZDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKVxuICB9KTtcblxuICBjYXJkVmlld0l0ZW1zOiBDYXJkVmlld0l0ZW1bXSA9IFtdO1xuICBwYXJhbWV0ZXJzOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSA9IHt9O1xuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGdldCBzZWxlY3RlZEFjdGlvbkRlZmluaXRpb25JZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdhY3Rpb25EZWZpbml0aW9uSWQnKS52YWx1ZTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZEFjdGlvbkRlZmluaXRpb24oKTogQWN0aW9uRGVmaW5pdGlvblRyYW5zZm9ybWVkIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25EZWZpbml0aW9ucy5maW5kKChhY3Rpb25EZWZpbml0aW9uOiBBY3Rpb25EZWZpbml0aW9uVHJhbnNmb3JtZWQpID0+IGFjdGlvbkRlZmluaXRpb24uaWQgPT09IHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQpO1xuICB9XG5cbiAgb25DaGFuZ2U6IChhY3Rpb246IFJ1bGVBY3Rpb24pID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG4gIG9uVG91Y2g6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjYXJkVmlld1VwZGF0ZVNlcnZpY2U6IENhcmRWaWV3VXBkYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGFnU2VydmljZTogVGFnU2VydmljZSxcbiAgICBwcml2YXRlIGNhdGVnb3J5U2VydmljZTogQ2F0ZWdvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VjdXJpdHlDb250cm9sc1NlcnZpY2U6IFNlY3VyaXR5Q29udHJvbHNTZXJ2aWNlXG4gICkge31cblxuICB3cml0ZVZhbHVlKGFjdGlvbjogUnVsZUFjdGlvbikge1xuICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh7XG4gICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IGFjdGlvbi5hY3Rpb25EZWZpbml0aW9uSWRcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSB7XG4gICAgICAuLi50aGlzLnBhcmFtZXRlcnMsXG4gICAgICAuLi5hY3Rpb24ucGFyYW1zXG4gICAgfTtcbiAgICB0aGlzLnNldENhcmRWaWV3UHJvcGVydGllcygpO1xuICAgIGlmICh0aGlzLnBhcmFtZXRlcnM/LnNlY3VyaXR5R3JvdXBJZCkge1xuICAgICAgdGhpcy5sb2FkU2VjdXJpdHlNYXJrT3B0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChhY3Rpb246IFJ1bGVBY3Rpb24pID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFjdGlvbkRlZmluaXRpb25zID0gdGhpcy5hY3Rpb25EZWZpbml0aW9ucy5zb3J0KChmaXJzdEFjdGlvbkRlZmluaXRpb24sIHNlY29uZEFjdGlvbkRlZmluaXRpb24pID0+XG4gICAgICBmaXJzdEFjdGlvbkRlZmluaXRpb24udGl0bGUubG9jYWxlQ29tcGFyZShzZWNvbmRBY3Rpb25EZWZpbml0aW9uLnRpdGxlKVxuICAgICk7XG5cbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNldERlZmF1bHRQYXJhbWV0ZXJzKCk7XG4gICAgICB0aGlzLnNldENhcmRWaWV3UHJvcGVydGllcygpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh7XG4gICAgICAgIGFjdGlvbkRlZmluaXRpb25JZDogdGhpcy5zZWxlY3RlZEFjdGlvbkRlZmluaXRpb25JZCxcbiAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtZXRlcnNcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNhcmRWaWV3VXBkYXRlU2VydmljZS5pdGVtVXBkYXRlZCQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCh1cGRhdGVOb3RpZmljYXRpb246IFVwZGF0ZU5vdGlmaWNhdGlvbikgPT4ge1xuICAgICAgY29uc3QgaXNTZWN1cml0eUdyb3VwVXBkYXRlZCA9IHVwZGF0ZU5vdGlmaWNhdGlvbi50YXJnZXQua2V5ID09PSAnc2VjdXJpdHlHcm91cElkJztcbiAgICAgIGlmIChpc1NlY3VyaXR5R3JvdXBVcGRhdGVkKSB7XG4gICAgICAgIHRoaXMucGFyYW1ldGVycy5zZWN1cml0eU1hcmtJZCA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucGFyYW1ldGVycyA9IHRoaXMuY2xlYXJFbXB0eVBhcmFtZXRlcnMoe1xuICAgICAgICAuLi50aGlzLnBhcmFtZXRlcnMsXG4gICAgICAgIC4uLnVwZGF0ZU5vdGlmaWNhdGlvbi5jaGFuZ2VkXG4gICAgICB9KTtcbiAgICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQsXG4gICAgICAgIHBhcmFtczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICB9KTtcbiAgICAgIHRoaXMub25Ub3VjaCgpO1xuXG4gICAgICBpZiAoaXNTZWN1cml0eUdyb3VwVXBkYXRlZCkge1xuICAgICAgICB0aGlzLnNldENhcmRWaWV3UHJvcGVydGllcygpO1xuICAgICAgICB0aGlzLmxvYWRTZWN1cml0eU1hcmtPcHRpb25zKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgcmVhZE9ubHkgPSBjaGFuZ2VzWydyZWFkT25seSddPy5jdXJyZW50VmFsdWU7XG4gICAgaWYgKHJlYWRPbmx5ICE9PSB1bmRlZmluZWQgJiYgcmVhZE9ubHkgIT09IG51bGwpIHtcbiAgICAgIGlmIChyZWFkT25seSkge1xuICAgICAgICB0aGlzLnJlYWRPbmx5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVhZE9ubHkgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBzZXRDYXJkVmlld1Byb3BlcnRpZXMoc2VjdXJpdHlNYXJrT3B0aW9ucz86IENhcmRWaWV3U2VsZWN0SXRlbU9wdGlvbjxzdHJpbmc+W10pIHtcbiAgICBjb25zdCBkaXNhYmxlZFRhZ3MgPSAhdGhpcy50YWdTZXJ2aWNlLmFyZVRhZ3NFbmFibGVkKCk7XG4gICAgY29uc3QgZGlzYWJsZWRDYXRlZ29yaWVzID0gIXRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmFyZUNhdGVnb3JpZXNFbmFibGVkKCk7XG4gICAgdGhpcy5jYXJkVmlld0l0ZW1zID0gKHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uPy5wYXJhbWV0ZXJEZWZpbml0aW9ucyA/PyBbXSkubWFwKChwYXJhbURlZikgPT4ge1xuICAgICAgY29uc3QgY29uc3RyYWludHNGb3JEcm9wZG93bkJveCA9XG4gICAgICAgIHBhcmFtRGVmLm5hbWUgPT09ICdzZWN1cml0eU1hcmtJZCdcbiAgICAgICAgICA/IHsgbmFtZTogcGFyYW1EZWYubmFtZSwgY29uc3RyYWludHM6IHNlY3VyaXR5TWFya09wdGlvbnMgfHwgW10gfVxuICAgICAgICAgIDogdGhpcy5fcGFyYW1ldGVyQ29uc3RyYWludHMuZmluZCgob2JqKSA9PiBvYmoubmFtZSA9PT0gcGFyYW1EZWYubmFtZSk7XG4gICAgICBjb25zdCBjYXJkVmlld1Byb3BlcnRpZXNNb2RlbCA9IHtcbiAgICAgICAgbGFiZWw6IHBhcmFtRGVmLmRpc3BsYXlMYWJlbCArIChwYXJhbURlZi5tYW5kYXRvcnkgPyAnIConIDogJycpLFxuICAgICAgICBrZXk6IHBhcmFtRGVmLm5hbWUsXG4gICAgICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgICAgICAuLi4ocGFyYW1EZWYubWFuZGF0b3J5XG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuRVJST1IuUkVRVUlSRUQnLFxuICAgICAgICAgICAgICAgICAgaXNWYWxpZDogKHZhbHVlOiB1bmtub3duKSA9PiAhIXZhbHVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSlcbiAgICAgIH07XG4gICAgICBzd2l0Y2ggKHBhcmFtRGVmLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnZDpib29sZWFuJzpcbiAgICAgICAgICByZXR1cm4gbmV3IENhcmRWaWV3Qm9vbEl0ZW1Nb2RlbCh7XG4gICAgICAgICAgICAuLi5jYXJkVmlld1Byb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV0gPz8gZmFsc2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAnZDpub2RlcmVmJzpcbiAgICAgICAgICBpZiAoIWNvbnN0cmFpbnRzRm9yRHJvcGRvd25Cb3ggJiYgIXRoaXMucmVhZE9ubHkgJiYgcGFyYW1EZWYubmFtZSAhPT0gJ2NhdGVnb3J5LXZhbHVlJykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDYXJkVmlld1RleHRJdGVtTW9kZWwoe1xuICAgICAgICAgICAgICAuLi5jYXJkVmlld1Byb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgICAgICAgaWNvbjogJ2ZvbGRlcicsXG4gICAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICAgICAgICBjbGlja2FibGU6IHRydWUsXG4gICAgICAgICAgICAgIGNsaWNrQ2FsbEJhY2s6IHRoaXMub3BlblNlbGVjdG9yRGlhbG9nLmJpbmQodGhpcywgcGFyYW1EZWYubmFtZSksXG4gICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAocGFyYW1EZWYubmFtZSA9PT0gJ2NhdGVnb3J5LXZhbHVlJyAmJiAhdGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDYXJkVmlld1RleHRJdGVtTW9kZWwoe1xuICAgICAgICAgICAgICAuLi5jYXJkVmlld1Byb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgICAgICAgaWNvbjogJ2xpYnJhcnlfYWRkJyxcbiAgICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgICAgICAgIGNsaWNrYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgY2xpY2tDYWxsQmFjazogdGhpcy5vcGVuQ2F0RGlhbG9nLmJpbmQodGhpcywgcGFyYW1EZWYubmFtZSksXG4gICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgLy8gIGZhbGxzIHRocm91Z2hcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAoY29uc3RyYWludHNGb3JEcm9wZG93bkJveCAmJiAhdGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDYXJkVmlld1NlbGVjdEl0ZW1Nb2RlbCh7XG4gICAgICAgICAgICAgIC4uLmNhcmRWaWV3UHJvcGVydGllc01vZGVsLFxuICAgICAgICAgICAgICB2YWx1ZTogKHRoaXMucGFyYW1ldGVyc1twYXJhbURlZi5uYW1lXSBhcyBzdHJpbmcpID8/ICcnLFxuICAgICAgICAgICAgICBvcHRpb25zJDogb2YoY29uc3RyYWludHNGb3JEcm9wZG93bkJveC5jb25zdHJhaW50cykucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGRpc2FibGVkVGFncyAmJiB0aGlzLnRhZ3NSZWxhdGVkUHJvcGVydGllc0FuZEFzcGVjdHMuaW5jbHVkZXMob3B0aW9uLmtleSkpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAoZGlzYWJsZWRDYXRlZ29yaWVzICYmIHRoaXMuY2F0ZWdvcmllc1JlbGF0ZWRQcm9wZXJ0aWVzQW5kQXNwZWN0cy5pbmNsdWRlcyhvcHRpb24ua2V5KSlcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IENhcmRWaWV3VGV4dEl0ZW1Nb2RlbCh7XG4gICAgICAgICAgICAuLi5jYXJkVmlld1Byb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICBjb25zdHJhaW50c0ZvckRyb3Bkb3duQm94ICYmIHRoaXMucmVhZE9ubHkgJiYgdGhpcy5wYXJhbXNUb0Zvcm1hdERpc3BsYXllZFZhbHVlLmluY2x1ZGVzKHBhcmFtRGVmLm5hbWUpXG4gICAgICAgICAgICAgICAgPyBjb25zdHJhaW50c0ZvckRyb3Bkb3duQm94LmNvbnN0cmFpbnRzLmZpbmQoKGNvbnN0cmFpbnQpID0+IGNvbnN0cmFpbnQua2V5ID09PSB0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV0pPy5sYWJlbCA/PyAnJ1xuICAgICAgICAgICAgICAgIDogdGhpcy5wYXJhbWV0ZXJzW3BhcmFtRGVmLm5hbWVdID8/ICcnXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5TZWxlY3RvckRpYWxvZyhwYXJhbURlZk5hbWUpIHtcbiAgICBjb25zdCBkYXRhOiBDb250ZW50Tm9kZVNlbGVjdG9yQ29tcG9uZW50RGF0YSA9IHtcbiAgICAgIHNlbGVjdGlvbk1vZGU6ICdzaW5nbGUnLFxuICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLlBMQUNFSE9MREVSLkNIT09TRV9GT0xERVInKSxcbiAgICAgIGFjdGlvbk5hbWU6IE5vZGVBY3Rpb24uQ0hPT1NFLFxuICAgICAgY3VycmVudEZvbGRlcklkOiB0aGlzLm5vZGVJZCxcbiAgICAgIHNlbGVjdDogbmV3IFN1YmplY3Q8Tm9kZVtdPigpXG4gICAgfTtcblxuICAgIHRoaXMuZGlhbG9nLm9wZW4oQ29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudCwge1xuICAgICAgZGF0YSxcbiAgICAgIHBhbmVsQ2xhc3M6ICdhZGYtY29udGVudC1ub2RlLXNlbGVjdG9yLWRpYWxvZycsXG4gICAgICB3aWR0aDogJzYzMHB4J1xuICAgIH0pO1xuXG4gICAgZGF0YS5zZWxlY3Quc3Vic2NyaWJlKFxuICAgICAgKHNlbGVjdGlvbnM6IE5vZGVbXSkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0aW9uc1swXS5pZCkge1xuICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh7XG4gICAgICAgICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQsXG4gICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgLi4udGhpcy5wYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICBbcGFyYW1EZWZOYW1lXTogc2VsZWN0aW9uc1swXS5pZFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgICAgICAgYWN0aW9uRGVmaW5pdGlvbklkOiB0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbklkLFxuICAgICAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtZXRlcnNcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkNhdERpYWxvZyhwYXJhbURlZk5hbWUpIHtcbiAgICBjb25zdCBkYXRhOiBDYXRlZ29yeVNlbGVjdG9yRGlhbG9nT3B0aW9ucyA9IHtcbiAgICAgIHNlbGVjdDogbmV3IFN1YmplY3Q8Q2F0ZWdvcnlbXT4oKSxcbiAgICAgIG11bHRpU2VsZWN0OiBmYWxzZVxuICAgIH07XG5cbiAgICB0aGlzLmRpYWxvZy5vcGVuKENhdGVnb3J5U2VsZWN0b3JEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGEsXG4gICAgICB3aWR0aDogJzYzMHB4J1xuICAgIH0pO1xuXG4gICAgZGF0YS5zZWxlY3QucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzZWxlY3Rpb25zOiBDYXRlZ29yeVtdKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0aW9uc1swXS5pZCkge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUoe1xuICAgICAgICAgIGFjdGlvbkRlZmluaXRpb25JZDogdGhpcy5zZWxlY3RlZEFjdGlvbkRlZmluaXRpb25JZCxcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIC4uLnRoaXMucGFyYW1ldGVycyxcbiAgICAgICAgICAgIFtwYXJhbURlZk5hbWVdOiBzZWxlY3Rpb25zWzBdLmlkXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh7XG4gICAgICAgICAgYWN0aW9uRGVmaW5pdGlvbklkOiB0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbklkLFxuICAgICAgICAgIHBhcmFtczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldERlZmF1bHRQYXJhbWV0ZXJzKCkge1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHt9O1xuICAgICh0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbj8ucGFyYW1ldGVyRGVmaW5pdGlvbnMgPz8gW10pLmZvckVhY2goKHBhcmFtRGVmOiBBY3Rpb25QYXJhbWV0ZXJEZWZpbml0aW9uKSA9PiB7XG4gICAgICBpZiAocGFyYW1EZWYudHlwZSA9PT0gJ2Q6Ym9vbGVhbicpIHtcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzW3BhcmFtRGVmLm5hbWVdID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlQ29uc3RyYWludHNUb1NlbGVjdE9wdGlvbnMoY29uc3RyYWludHM6IENvbnN0cmFpbnRWYWx1ZVtdKTogQ2FyZFZpZXdTZWxlY3RJdGVtT3B0aW9uPHVua25vd24+W10ge1xuICAgIHJldHVybiBjb25zdHJhaW50c1xuICAgICAgLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKCFhLmxhYmVsICYmIGIubGFiZWwpIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWIubGFiZWwgJiYgYS5sYWJlbCkge1xuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYS5sYWJlbD8ubG9jYWxlQ29tcGFyZShiLmxhYmVsKSA/PyAtMTtcbiAgICAgIH0pXG4gICAgICAubWFwKChjb25zdHJhaW50KSA9PiAoe1xuICAgICAgICBrZXk6IGNvbnN0cmFpbnQudmFsdWUsXG4gICAgICAgIGxhYmVsOiBjb25zdHJhaW50LmxhYmVsID8gYCR7Y29uc3RyYWludC5sYWJlbH0gWyR7Y29uc3RyYWludC52YWx1ZX1dYCA6IGNvbnN0cmFpbnQudmFsdWVcbiAgICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJFbXB0eVBhcmFtZXRlcnMocGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSk6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9IHtcbiAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goKGtleSkgPT4gKHBhcmFtc1trZXldID09PSBudWxsIHx8IHBhcmFtc1trZXldID09PSB1bmRlZmluZWQgfHwgcGFyYW1zW2tleV0gPT09ICcnKSAmJiBkZWxldGUgcGFyYW1zW2tleV0pO1xuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBsb2FkU2VjdXJpdHlNYXJrT3B0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYXJhbWV0ZXJzPy5zZWN1cml0eUdyb3VwSWQpIHtcbiAgICAgIGZyb20odGhpcy5zZWN1cml0eUNvbnRyb2xzU2VydmljZS5nZXRTZWN1cml0eU1hcmsodGhpcy5wYXJhbWV0ZXJzLnNlY3VyaXR5R3JvdXBJZCBhcyBzdHJpbmcpKVxuICAgICAgICAucGlwZShtYXAoKHNlY3VyaXR5TWFya3MpID0+IHNlY3VyaXR5TWFya3MuZW50cmllcy5tYXAoKGVudHJ5KSA9PiB0aGlzLmZvcm1hdFNlY3VyaXR5TWFya0NvbnN0cmFpbnQoZW50cnkpKSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4gdGhpcy5zZXRDYXJkVmlld1Byb3BlcnRpZXModGhpcy5wYXJzZUNvbnN0cmFpbnRzVG9TZWxlY3RPcHRpb25zKHJlcykgYXMgQ2FyZFZpZXdTZWxlY3RJdGVtT3B0aW9uPHN0cmluZz5bXSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0U2VjdXJpdHlNYXJrQ29uc3RyYWludChzZWN1cml0eU1hcms6IFNlY3VyaXR5TWFyayk6IENvbnN0cmFpbnRWYWx1ZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiBzZWN1cml0eU1hcmsuaWQsXG4gICAgICBsYWJlbDogc2VjdXJpdHlNYXJrLm5hbWVcbiAgICB9O1xuICB9XG59XG4iLCI8Zm9ybSBjbGFzcz1cImFjYS1ydWxlLWFjdGlvbl9fZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuXG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFjYS1ydWxlLWFjdGlvbi1mdWxsLXdpZHRoXCIgYXBwZWFyYW5jZT1cImZpbGxcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgPG1hdC1zZWxlY3RcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImFjdGlvbkRlZmluaXRpb25JZFwiXG4gICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJydWxlLWFjdGlvbi1zZWxlY3RcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIidBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5BQ1RJT05fU0VMRUNUX1BMQUNFSE9MREVSJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IGFjdGlvbkRlZmluaXRpb24gb2YgYWN0aW9uRGVmaW5pdGlvbnNcIlxuICAgICAgICBbdmFsdWVdPVwiYWN0aW9uRGVmaW5pdGlvbi5pZFwiPlxuICAgICAgICB7eyBhY3Rpb25EZWZpbml0aW9uLnRpdGxlIH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxhZGYtY2FyZC12aWV3XG4gICAgKm5nSWY9XCJjYXJkVmlld0l0ZW1zPy5sZW5ndGggPiAwXCJcbiAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJydWxlLWFjdGlvbi1jYXJkLXZpZXdcIlxuICAgIFtwcm9wZXJ0aWVzXT1cImNhcmRWaWV3SXRlbXNcIlxuICAgIGNsYXNzPVwiYWNhLXJ1bGUtYWN0aW9uLWZ1bGwtd2lkdGhcIlxuICAgIFtlZGl0YWJsZV09XCIhcmVhZE9ubHlcIj5cbiAgPC9hZGYtY2FyZC12aWV3PlxuXG48L2Zvcm0+XG4iXX0=
|
|
@@ -61,14 +61,14 @@ export class EditRuleDialogUiComponent {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
EditRuleDialogUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditRuleDialogUiComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
64
|
-
EditRuleDialogUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: EditRuleDialogUiComponent, isStandalone: true, selector: "aca-edit-rule-dialog", outputs: { submitted: "submitted" }, host: { classAttribute: "aca-edit-rule-dialog" }, ngImport: i0, template: "<div mat-dialog-title class=\"aca-edit-rule-dialog__header\">\n <div class=\"aca-edit-rule-dialog__header__title\" data-automation-id=\"edit-rule-dialog-title\">\n {{ title | translate }}\n </div>\n <button mat-icon-button mat-dialog-close class=\"aca-edit-rule-dialog__header__close\" tabindex=\"-1\">\n <mat-icon class=\"aca-edit-rule-dialog__header__icon\">close</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"aca-edit-rule-dialog__content\">\n <aca-rule-details\n [actionDefinitions]=\"actionDefinitions$ | async\"\n [parameterConstraints]=\"parameterConstraints$ | async\"\n [value]=\"model\"\n [nodeId]=\"nodeId\"\n (formValueChanged)=\"formValue = $event\"\n (formValidationChanged)=\"onFormValidChange($event)\">\n </aca-rule-details>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"aca-edit-rule-dialog__footer\">\n <button mat-flat-button mat-dialog-close>{{ 'ACA_FOLDER_RULES.EDIT_RULE_DIALOG.CANCEL' | translate }}</button>\n <button mat-flat-button color=\"primary\" [disabled]=\"!formValid\" data-automation-id=\"edit-rule-dialog-submit\" (click)=\"onSubmit()\">{{ submitLabel | translate }}</button>\n</mat-dialog-actions>\n", styles: [".aca-edit-rule-dialog-container{--edit-rule-dialog-padding: 8px 20px}.aca-edit-rule-dialog{
|
|
64
|
+
EditRuleDialogUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: EditRuleDialogUiComponent, isStandalone: true, selector: "aca-edit-rule-dialog", outputs: { submitted: "submitted" }, host: { classAttribute: "aca-edit-rule-dialog" }, ngImport: i0, template: "<div mat-dialog-title class=\"aca-edit-rule-dialog__header\">\n <div class=\"aca-edit-rule-dialog__header__title\" data-automation-id=\"edit-rule-dialog-title\">\n {{ title | translate }}\n </div>\n <button mat-icon-button mat-dialog-close class=\"aca-edit-rule-dialog__header__close\" tabindex=\"-1\">\n <mat-icon class=\"aca-edit-rule-dialog__header__icon\">close</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"aca-edit-rule-dialog__content\">\n <aca-rule-details\n [actionDefinitions]=\"actionDefinitions$ | async\"\n [parameterConstraints]=\"parameterConstraints$ | async\"\n [value]=\"model\"\n [nodeId]=\"nodeId\"\n (formValueChanged)=\"formValue = $event\"\n (formValidationChanged)=\"onFormValidChange($event)\">\n </aca-rule-details>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"aca-edit-rule-dialog__footer\">\n <button mat-flat-button mat-dialog-close>{{ 'ACA_FOLDER_RULES.EDIT_RULE_DIALOG.CANCEL' | translate }}</button>\n <button mat-flat-button color=\"primary\" [disabled]=\"!formValid\" data-automation-id=\"edit-rule-dialog-submit\" (click)=\"onSubmit()\">{{ submitLabel | translate }}</button>\n</mat-dialog-actions>\n", styles: [".aca-edit-rule-dialog-container{--edit-rule-dialog-padding: 8px 20px}.aca-edit-rule-dialog-container .mat-mdc-dialog-surface{padding:0}.aca-edit-rule-dialog{display:flex;flex-direction:column;height:100%}.aca-edit-rule-dialog input{box-sizing:border-box}.aca-edit-rule-dialog .aca-edit-rule-dialog__header{display:flex;align-items:center;margin-bottom:0;padding:var(--edit-rule-dialog-padding);box-sizing:border-box;border-bottom:1px solid var(--theme-border-color)}.aca-edit-rule-dialog .aca-edit-rule-dialog__header__title{font-size:16px;font-weight:700;flex-grow:1}.aca-edit-rule-dialog .aca-edit-rule-dialog__header__close .aca-edit-rule-dialog__header__icon{font-size:18px}.aca-edit-rule-dialog .aca-edit-rule-dialog__content{padding:0}.aca-edit-rule-dialog .aca-edit-rule-dialog__content__spinner{display:flex;align-items:center;justify-content:center;margin:20px 0}.aca-edit-rule-dialog .aca-edit-rule-dialog__footer{padding:var(--edit-rule-dialog-padding);box-sizing:border-box;border-top:1px solid var(--theme-border-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: RuleDetailsUiComponent, selector: "aca-rule-details", inputs: ["readOnly", "value", "preview", "actionDefinitions", "parameterConstraints", "nodeId"], outputs: ["formValidationChanged", "formValueChanged"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
65
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditRuleDialogUiComponent, decorators: [{
|
|
66
66
|
type: Component,
|
|
67
|
-
args: [{ standalone: true, imports: [CommonModule, TranslateModule, MatDialogModule, MatButtonModule, MatIconModule, RuleDetailsUiComponent], selector: 'aca-edit-rule-dialog', encapsulation: ViewEncapsulation.None, host: { class: 'aca-edit-rule-dialog' }, template: "<div mat-dialog-title class=\"aca-edit-rule-dialog__header\">\n <div class=\"aca-edit-rule-dialog__header__title\" data-automation-id=\"edit-rule-dialog-title\">\n {{ title | translate }}\n </div>\n <button mat-icon-button mat-dialog-close class=\"aca-edit-rule-dialog__header__close\" tabindex=\"-1\">\n <mat-icon class=\"aca-edit-rule-dialog__header__icon\">close</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"aca-edit-rule-dialog__content\">\n <aca-rule-details\n [actionDefinitions]=\"actionDefinitions$ | async\"\n [parameterConstraints]=\"parameterConstraints$ | async\"\n [value]=\"model\"\n [nodeId]=\"nodeId\"\n (formValueChanged)=\"formValue = $event\"\n (formValidationChanged)=\"onFormValidChange($event)\">\n </aca-rule-details>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"aca-edit-rule-dialog__footer\">\n <button mat-flat-button mat-dialog-close>{{ 'ACA_FOLDER_RULES.EDIT_RULE_DIALOG.CANCEL' | translate }}</button>\n <button mat-flat-button color=\"primary\" [disabled]=\"!formValid\" data-automation-id=\"edit-rule-dialog-submit\" (click)=\"onSubmit()\">{{ submitLabel | translate }}</button>\n</mat-dialog-actions>\n", styles: [".aca-edit-rule-dialog-container{--edit-rule-dialog-padding: 8px 20px}.aca-edit-rule-dialog{
|
|
67
|
+
args: [{ standalone: true, imports: [CommonModule, TranslateModule, MatDialogModule, MatButtonModule, MatIconModule, RuleDetailsUiComponent], selector: 'aca-edit-rule-dialog', encapsulation: ViewEncapsulation.None, host: { class: 'aca-edit-rule-dialog' }, template: "<div mat-dialog-title class=\"aca-edit-rule-dialog__header\">\n <div class=\"aca-edit-rule-dialog__header__title\" data-automation-id=\"edit-rule-dialog-title\">\n {{ title | translate }}\n </div>\n <button mat-icon-button mat-dialog-close class=\"aca-edit-rule-dialog__header__close\" tabindex=\"-1\">\n <mat-icon class=\"aca-edit-rule-dialog__header__icon\">close</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"aca-edit-rule-dialog__content\">\n <aca-rule-details\n [actionDefinitions]=\"actionDefinitions$ | async\"\n [parameterConstraints]=\"parameterConstraints$ | async\"\n [value]=\"model\"\n [nodeId]=\"nodeId\"\n (formValueChanged)=\"formValue = $event\"\n (formValidationChanged)=\"onFormValidChange($event)\">\n </aca-rule-details>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"aca-edit-rule-dialog__footer\">\n <button mat-flat-button mat-dialog-close>{{ 'ACA_FOLDER_RULES.EDIT_RULE_DIALOG.CANCEL' | translate }}</button>\n <button mat-flat-button color=\"primary\" [disabled]=\"!formValid\" data-automation-id=\"edit-rule-dialog-submit\" (click)=\"onSubmit()\">{{ submitLabel | translate }}</button>\n</mat-dialog-actions>\n", styles: [".aca-edit-rule-dialog-container{--edit-rule-dialog-padding: 8px 20px}.aca-edit-rule-dialog-container .mat-mdc-dialog-surface{padding:0}.aca-edit-rule-dialog{display:flex;flex-direction:column;height:100%}.aca-edit-rule-dialog input{box-sizing:border-box}.aca-edit-rule-dialog .aca-edit-rule-dialog__header{display:flex;align-items:center;margin-bottom:0;padding:var(--edit-rule-dialog-padding);box-sizing:border-box;border-bottom:1px solid var(--theme-border-color)}.aca-edit-rule-dialog .aca-edit-rule-dialog__header__title{font-size:16px;font-weight:700;flex-grow:1}.aca-edit-rule-dialog .aca-edit-rule-dialog__header__close .aca-edit-rule-dialog__header__icon{font-size:18px}.aca-edit-rule-dialog .aca-edit-rule-dialog__content{padding:0}.aca-edit-rule-dialog .aca-edit-rule-dialog__content__spinner{display:flex;align-items:center;justify-content:center;margin:20px 0}.aca-edit-rule-dialog .aca-edit-rule-dialog__footer{padding:var(--edit-rule-dialog-padding);box-sizing:border-box;border-top:1px solid var(--theme-border-color)}\n"] }]
|
|
68
68
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
69
69
|
type: Inject,
|
|
70
70
|
args: [MAT_DIALOG_DATA]
|
|
71
71
|
}] }]; }, propDecorators: { submitted: [{
|
|
72
72
|
type: Output
|
|
73
73
|
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1ydWxlLWRpYWxvZy51aS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3J1bGUtZGV0YWlscy9lZGl0LXJ1bGUtZGlhbG9nLnVpLWNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL2VkaXQtcnVsZS1kaWFsb2cudWktY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7O0FBa0JyRSxNQUFNLE9BQU8seUJBQXlCO0lBWXBDLFlBQTRDLElBQTJCO1FBQTNCLFNBQUksR0FBSixJQUFJLENBQXVCO1FBWHZFLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUlGLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUV4RCxVQUFLLEdBQUcsb0NBQW9DLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JHLGdCQUFXLEdBQUcsb0NBQW9DLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRzdGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUM7UUFDeEQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUM7SUFDaEUsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBZ0I7UUFDaEMseUVBQXlFO1FBQ3pFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUMzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOzt1SEEvQlUseUJBQXlCLGtCQVloQixlQUFlOzJHQVp4Qix5QkFBeUIsdUtDcER0Qyx3ckNBd0JBLG9rQ0RxQlksWUFBWSxtRkFBRSxlQUFlLDJGQUFFLGVBQWUsK25CQUFFLGVBQWUsd2FBQUUsYUFBYSxvTEFBRSxzQkFBc0I7NEZBT3JHLHlCQUF5QjtrQkFUckMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixDQUFDLFlBQ3ZHLHNCQUFzQixpQkFHakIsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRTs7MEJBYzFCLE1BQU07MkJBQUMsZUFBZTs0Q0FMekIsU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBSdWxlIH0gZnJvbSAnLi4vbW9kZWwvcnVsZS5tb2RlbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3Rpb25EZWZpbml0aW9uVHJhbnNmb3JtZWQgfSBmcm9tICcuLi9tb2RlbC9ydWxlLWFjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBBY3Rpb25QYXJhbWV0ZXJDb25zdHJhaW50IH0gZnJvbSAnLi4vbW9kZWwvYWN0aW9uLXBhcmFtZXRlci1jb25zdHJhaW50Lm1vZGVsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBSdWxlRGV0YWlsc1VpQ29tcG9uZW50IH0gZnJvbSAnLi9ydWxlLWRldGFpbHMudWktY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBFZGl0UnVsZURpYWxvZ09wdGlvbnMge1xuICBtb2RlbD86IFBhcnRpYWw8UnVsZT47XG4gIG5vZGVJZD86IHN0cmluZztcbiAgYWN0aW9uRGVmaW5pdGlvbnMkPzogT2JzZXJ2YWJsZTxBY3Rpb25EZWZpbml0aW9uVHJhbnNmb3JtZWRbXT47XG4gIHBhcmFtZXRlckNvbnN0cmFpbnRzJD86IE9ic2VydmFibGU8QWN0aW9uUGFyYW1ldGVyQ29uc3RyYWludFtdPjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgTWF0RGlhbG9nTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIFJ1bGVEZXRhaWxzVWlDb21wb25lbnRdLFxuICBzZWxlY3RvcjogJ2FjYS1lZGl0LXJ1bGUtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtcnVsZS1kaWFsb2cudWktY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZGl0LXJ1bGUtZGlhbG9nLnVpLWNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdhY2EtZWRpdC1ydWxlLWRpYWxvZycgfVxufSlcbmV4cG9ydCBjbGFzcyBFZGl0UnVsZURpYWxvZ1VpQ29tcG9uZW50IHtcbiAgZm9ybVZhbGlkID0gZmFsc2U7XG4gIG1vZGVsOiBQYXJ0aWFsPFJ1bGU+O1xuICBub2RlSWQgPSAnJztcbiAgYWN0aW9uRGVmaW5pdGlvbnMkO1xuICBwYXJhbWV0ZXJDb25zdHJhaW50cyQ7XG4gIGZvcm1WYWx1ZTogUGFydGlhbDxSdWxlPjtcbiAgQE91dHB1dCgpIHN1Ym1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UGFydGlhbDxSdWxlPj4oKTtcblxuICB0aXRsZSA9ICdBQ0FfRk9MREVSX1JVTEVTLkVESVRfUlVMRV9ESUFMT0cuJyArICh0aGlzLmlzVXBkYXRlTW9kZSA/ICdVUERBVEVfVElUTEUnIDogJ0NSRUFURV9USVRMRScpO1xuICBzdWJtaXRMYWJlbCA9ICdBQ0FfRk9MREVSX1JVTEVTLkVESVRfUlVMRV9ESUFMT0cuJyArICh0aGlzLmlzVXBkYXRlTW9kZSA/ICdVUERBVEUnIDogJ0NSRUFURScpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogRWRpdFJ1bGVEaWFsb2dPcHRpb25zKSB7XG4gICAgdGhpcy5tb2RlbCA9IHRoaXMuZGF0YT8ubW9kZWwgfHwge307XG4gICAgdGhpcy5ub2RlSWQgPSB0aGlzLmRhdGE/Lm5vZGVJZDtcbiAgICB0aGlzLmFjdGlvbkRlZmluaXRpb25zJCA9IHRoaXMuZGF0YT8uYWN0aW9uRGVmaW5pdGlvbnMkO1xuICAgIHRoaXMucGFyYW1ldGVyQ29uc3RyYWludHMkID0gdGhpcy5kYXRhPy5wYXJhbWV0ZXJDb25zdHJhaW50cyQ7XG4gIH1cblxuICBnZXQgaXNVcGRhdGVNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZGF0YT8ubW9kZWw/LmlkO1xuICB9XG4gIG9uU3VibWl0KCkge1xuICAgIHRoaXMuc3VibWl0dGVkLmVtaXQodGhpcy5mb3JtVmFsdWUpO1xuICB9XG5cbiAgb25Gb3JtVmFsaWRDaGFuZ2UoaXNWYWxpZDogYm9vbGVhbikge1xuICAgIC8vIHNldFRpbWVvdXQgbmVlZGVkIHRvIGF2b2lkIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9ybVZhbGlkID0gaXNWYWxpZDtcbiAgICB9LCAwKTtcbiAgfVxufVxuIiwiPGRpdiBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwiYWNhLWVkaXQtcnVsZS1kaWFsb2dfX2hlYWRlclwiPlxuICA8ZGl2IGNsYXNzPVwiYWNhLWVkaXQtcnVsZS1kaWFsb2dfX2hlYWRlcl9fdGl0bGVcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJlZGl0LXJ1bGUtZGlhbG9nLXRpdGxlXCI+XG4gICAge3sgdGl0bGUgfCB0cmFuc2xhdGUgfX1cbiAgPC9kaXY+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2UgY2xhc3M9XCJhY2EtZWRpdC1ydWxlLWRpYWxvZ19faGVhZGVyX19jbG9zZVwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJhY2EtZWRpdC1ydWxlLWRpYWxvZ19faGVhZGVyX19pY29uXCI+Y2xvc2U8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48bWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiYWNhLWVkaXQtcnVsZS1kaWFsb2dfX2NvbnRlbnRcIj5cbiAgPGFjYS1ydWxlLWRldGFpbHNcbiAgICBbYWN0aW9uRGVmaW5pdGlvbnNdPVwiYWN0aW9uRGVmaW5pdGlvbnMkIHwgYXN5bmNcIlxuICAgIFtwYXJhbWV0ZXJDb25zdHJhaW50c109XCJwYXJhbWV0ZXJDb25zdHJhaW50cyQgfCBhc3luY1wiXG4gICAgW3ZhbHVlXT1cIm1vZGVsXCJcbiAgICBbbm9kZUlkXT1cIm5vZGVJZFwiXG4gICAgKGZvcm1WYWx1ZUNoYW5nZWQpPVwiZm9ybVZhbHVlID0gJGV2ZW50XCJcbiAgICAoZm9ybVZhbGlkYXRpb25DaGFuZ2VkKT1cIm9uRm9ybVZhbGlkQ2hhbmdlKCRldmVudClcIj5cbiAgPC9hY2EtcnVsZS1kZXRhaWxzPlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnMgYWxpZ249XCJlbmRcIiBjbGFzcz1cImFjYS1lZGl0LXJ1bGUtZGlhbG9nX19mb290ZXJcIj5cbiAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZT57eyAnQUNBX0ZPTERFUl9SVUxFUy5FRElUX1JVTEVfRElBTE9HLkNBTkNFTCcgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFmb3JtVmFsaWRcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJlZGl0LXJ1bGUtZGlhbG9nLXN1Ym1pdFwiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+e3sgc3VibWl0TGFiZWwgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
|
|
@@ -151,7 +151,7 @@ export class RuleDetailsUiComponent {
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
RuleDetailsUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuleDetailsUiComponent, deps: [{ token: i1.CategoryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
154
|
-
RuleDetailsUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RuleDetailsUiComponent, isStandalone: true, selector: "aca-rule-details", inputs: { readOnly: "readOnly", value: "value", preview: "preview", actionDefinitions: "actionDefinitions", parameterConstraints: "parameterConstraints", nodeId: "nodeId" }, outputs: { formValidationChanged: "formValidationChanged", formValueChanged: "formValueChanged" }, host: { classAttribute: "aca-rule-details" }, ngImport: i0, template: "<form class=\"aca-rule-details__form\" [ngClass]=\"{ 'aca-read-only': readOnly }\" [formGroup]=\"form\">\n\n <ng-container *ngIf=\"!preview\">\n <div class=\"aca-rule-details__form__row\">\n <label class=\"aca-rule-details__name__label\" for=\"rule-details-name-input\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.NAME' | translate }}</label>\n <div>\n <mat-form-field appearance=\"fill\" floatLabel='auto' class=\"aca-rule-details__form__row__field\">\n <input\n id=\"rule-details-name-input\"\n matInput type=\"text\" formControlName=\"name\" data-automation-id=\"rule-details-name-input\"\n [placeholder]=\"'ACA_FOLDER_RULES.RULE_DETAILS.PLACEHOLDER.NAME' | translate\">\n <mat-error>{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.REQUIRED' | translate }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__description\">\n <label for=\"rule-details-description-textarea\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.DESCRIPTION' | translate }}</label>\n <div>\n <mat-form-field floatLabel='auto' appearance=\"fill\" class=\"aca-rule-details__form__row__field\">\n <textarea\n class=\"aca-rule-details__form__row__field__textarea\"\n id=\"rule-details-description-textarea\"\n matInput formControlName=\"description\" data-automation-id=\"rule-details-description-textarea\"\n [placeholder]=\"descriptionPlaceHolder | translate\">\n </textarea>\n </mat-form-field>\n </div>\n </div>\n </ng-container>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__triggers\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.WHEN' | translate }}</div>\n <div>\n <aca-rule-triggers formControlName=\"triggers\" data-automation-id=\"rule-details-triggers-component\"></aca-rule-triggers>\n <mat-error class=\"aca-rule-details-error\" *ngIf=\"triggers.hasError('required')\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.INSUFFICIENT_TRIGGERS_SELECTED' | translate }}</mat-error>\n </div>\n </div>\n\n <div class=\"aca-rule-details__form__conditions\">\n <aca-rule-composite-condition [readOnly]=\"readOnly\" formControlName=\"conditions\"></aca-rule-composite-condition>\n <mat-error class=\"aca-rule-details-error\" *ngIf=\"conditions.hasError('ruleCompositeConditionInvalid')\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.RULE_COMPOSITE_CONDITION_INVALID' | translate }}</mat-error>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__actions\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.PERFORM_ACTIONS' | translate }}</div>\n <aca-rule-action-list\n formControlName=\"actions\"\n [actionDefinitions]=\"actionDefinitions\"\n [parameterConstraints]=\"parameterConstraints\"\n [readOnly]=\"readOnly\"\n [nodeId]=\"nodeId\">\n </aca-rule-action-list>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__others\" *ngIf=\"showOptionsSection\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.OPTIONS' | translate }}</div>\n <aca-rule-options\n formControlName=\"options\"\n data-automation-id=\"rule-details-options-component\"\n [errorScriptConstraint]=\"errorScriptConstraint\">\n </aca-rule-options>\n </div>\n\n</form>\n", styles: [".aca-rule-details .aca-rule-details__form__triggers{margin-top:10px}.aca-rule-details .aca-rule-details__name__label{padding-top:1.5em}.aca-rule-details .aca-rule-details__form__others{margin-bottom:12px}.aca-rule-details__form{position:relative}.aca-rule-details__form>div{padding:0 20px;width:100%;box-sizing:border-box}.aca-rule-details__form>div.aca-rule-details__form__description{padding-top:0;border:none;align-items:flex-start}.aca-rule-details__form__row{display:flex;align-items:baseline;gap:8px}.aca-rule-details__form__row>label,.aca-rule-details__form__row>.aca-label{font-weight:700;width:20%;min-width:100px;max-width:150px;padding:.5em 0}.aca-rule-details__form__row>div{flex-grow:1}.aca-rule-details__form__row__field{width:100%;max-width:400px;font-size:inherit}.aca-rule-details__form__row__field__textarea{min-height:4em}.aca-rule-details__form:not(:nth-child(1)){border-top:1px solid var(--theme-border-color)}.aca-rule-details__form__conditions{width:100%;margin:14px 0 36px}.aca-rule-details__form__conditions>.aca-rule-details-error{margin-left:16px;color:inherit}.aca-rule-details__form .aca-rule-details-error{font-size:75%;height:1em}.aca-rule-details__form__actions .aca-rule-action-list{flex:1}.aca-rule-details__form.aca-read-only .mdc-notched-outline__leading,.aca-rule-details__form.aca-read-only .mdc-notched-outline__trailing,.aca-rule-details__form.aca-read-only .mdc-notched-outline__notch,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__leading,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__trailing,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__notch{border:none}.aca-rule-details__form.aca-read-only .mdc-line-ripple:before,.aca-rule-details__form.aca-read-only .mdc-line-ripple:after,.aca-rule-details__form .mat-form-field-disabled .mdc-line-ripple:before,.aca-rule-details__form .mat-form-field-disabled .mdc-line-ripple:after{display:none}.aca-rule-details__form.aca-read-only *:disabled,.aca-rule-details__form.aca-read-only .mat-mdc-select-disabled .mat-mdc-select-value,.aca-rule-details__form .mat-form-field-disabled *:disabled,.aca-rule-details__form .mat-form-field-disabled .mat-mdc-select-disabled .mat-mdc-select-value{color:inherit}.aca-rule-details__form.aca-read-only .mat-mdc-select-arrow-wrapper,.aca-rule-details__form .mat-form-field-disabled .mat-mdc-select-arrow-wrapper{display:none}.aca-rule-details__form .aca-rule-details__form__row .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-
|
|
154
|
+
RuleDetailsUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RuleDetailsUiComponent, isStandalone: true, selector: "aca-rule-details", inputs: { readOnly: "readOnly", value: "value", preview: "preview", actionDefinitions: "actionDefinitions", parameterConstraints: "parameterConstraints", nodeId: "nodeId" }, outputs: { formValidationChanged: "formValidationChanged", formValueChanged: "formValueChanged" }, host: { classAttribute: "aca-rule-details" }, ngImport: i0, template: "<form class=\"aca-rule-details__form\" [ngClass]=\"{ 'aca-read-only': readOnly }\" [formGroup]=\"form\">\n\n <ng-container *ngIf=\"!preview\">\n <div class=\"aca-rule-details__form__row\">\n <label class=\"aca-rule-details__name__label\" for=\"rule-details-name-input\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.NAME' | translate }}</label>\n <div>\n <mat-form-field appearance=\"fill\" floatLabel='auto' class=\"aca-rule-details__form__row__field\">\n <input\n id=\"rule-details-name-input\"\n matInput type=\"text\" formControlName=\"name\" data-automation-id=\"rule-details-name-input\"\n [placeholder]=\"'ACA_FOLDER_RULES.RULE_DETAILS.PLACEHOLDER.NAME' | translate\">\n <mat-error>{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.REQUIRED' | translate }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__description\">\n <label for=\"rule-details-description-textarea\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.DESCRIPTION' | translate }}</label>\n <div>\n <mat-form-field floatLabel='auto' appearance=\"fill\" class=\"aca-rule-details__form__row__field\">\n <textarea\n class=\"aca-rule-details__form__row__field__textarea\"\n id=\"rule-details-description-textarea\"\n matInput formControlName=\"description\" data-automation-id=\"rule-details-description-textarea\"\n [placeholder]=\"descriptionPlaceHolder | translate\">\n </textarea>\n </mat-form-field>\n </div>\n </div>\n </ng-container>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__triggers\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.WHEN' | translate }}</div>\n <div>\n <aca-rule-triggers formControlName=\"triggers\" data-automation-id=\"rule-details-triggers-component\"></aca-rule-triggers>\n <mat-error class=\"aca-rule-details-error\" *ngIf=\"triggers.hasError('required')\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.INSUFFICIENT_TRIGGERS_SELECTED' | translate }}</mat-error>\n </div>\n </div>\n\n <div class=\"aca-rule-details__form__conditions\">\n <aca-rule-composite-condition [readOnly]=\"readOnly\" formControlName=\"conditions\"></aca-rule-composite-condition>\n <mat-error class=\"aca-rule-details-error\" *ngIf=\"conditions.hasError('ruleCompositeConditionInvalid')\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.RULE_COMPOSITE_CONDITION_INVALID' | translate }}</mat-error>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__actions\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.PERFORM_ACTIONS' | translate }}</div>\n <aca-rule-action-list\n formControlName=\"actions\"\n [actionDefinitions]=\"actionDefinitions\"\n [parameterConstraints]=\"parameterConstraints\"\n [readOnly]=\"readOnly\"\n [nodeId]=\"nodeId\">\n </aca-rule-action-list>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__others\" *ngIf=\"showOptionsSection\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.OPTIONS' | translate }}</div>\n <aca-rule-options\n formControlName=\"options\"\n data-automation-id=\"rule-details-options-component\"\n [errorScriptConstraint]=\"errorScriptConstraint\">\n </aca-rule-options>\n </div>\n\n</form>\n", styles: [".aca-rule-details .aca-rule-details__form__triggers{margin-top:10px}.aca-rule-details .aca-rule-details__name__label{padding-top:1.5em}.aca-rule-details .aca-rule-details__form__others{margin-bottom:12px}.aca-rule-details__form{position:relative}.aca-rule-details__form>div{padding:0 20px;width:100%;box-sizing:border-box}.aca-rule-details__form>div.aca-rule-details__form__description{padding-top:0;border:none;align-items:flex-start}.aca-rule-details__form__row{display:flex;align-items:baseline;gap:8px}.aca-rule-details__form__row>label,.aca-rule-details__form__row>.aca-label{font-weight:700;width:20%;min-width:100px;max-width:150px;padding:.5em 0}.aca-rule-details__form__row>div{flex-grow:1}.aca-rule-details__form__row__field{width:100%;max-width:400px;font-size:inherit}.aca-rule-details__form__row__field__textarea{min-height:4em}.aca-rule-details__form:not(:nth-child(1)){border-top:1px solid var(--theme-border-color)}.aca-rule-details__form__conditions{width:100%;margin:14px 0 36px}.aca-rule-details__form__conditions>.aca-rule-details-error{margin-left:16px;color:inherit}.aca-rule-details__form .aca-rule-details-error{font-size:75%;height:1em}.aca-rule-details__form__actions .aca-rule-action-list{flex:1}.aca-rule-details__form.aca-read-only .mdc-notched-outline__leading,.aca-rule-details__form.aca-read-only .mdc-notched-outline__trailing,.aca-rule-details__form.aca-read-only .mdc-notched-outline__notch,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__leading,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__trailing,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__notch{border:none}.aca-rule-details__form.aca-read-only .mdc-line-ripple:before,.aca-rule-details__form.aca-read-only .mdc-line-ripple:after,.aca-rule-details__form .mat-form-field-disabled .mdc-line-ripple:before,.aca-rule-details__form .mat-form-field-disabled .mdc-line-ripple:after{display:none}.aca-rule-details__form.aca-read-only *:disabled,.aca-rule-details__form.aca-read-only .mat-mdc-select-disabled .mat-mdc-select-value,.aca-rule-details__form .mat-form-field-disabled *:disabled,.aca-rule-details__form .mat-form-field-disabled .mat-mdc-select-disabled .mat-mdc-select-value{color:inherit}.aca-rule-details__form.aca-read-only .mat-mdc-select-arrow-wrapper,.aca-rule-details__form .mat-form-field-disabled .mat-mdc-select-arrow-wrapper{display:none}.aca-rule-details__form .aca-rule-details__form__row .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-bottom:.375em}.aca-rule-details__form .aca-rule-details__form__row aca-rule-action .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-top:.1em;padding-bottom:.1em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.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: RuleTriggersUiComponent, selector: "aca-rule-triggers" }, { kind: "component", type: RuleCompositeConditionUiComponent, selector: "aca-rule-composite-condition", inputs: ["secondaryBackground", "childCondition", "readOnly"] }, { kind: "component", type: RuleActionListUiComponent, selector: "aca-rule-action-list", inputs: ["actionDefinitions", "readOnly", "parameterConstraints", "nodeId"] }, { kind: "component", type: RuleOptionsUiComponent, selector: "aca-rule-options", inputs: ["errorScriptConstraint"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
155
155
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RuleDetailsUiComponent, decorators: [{
|
|
156
156
|
type: Component,
|
|
157
157
|
args: [{ standalone: true, imports: [
|
|
@@ -164,7 +164,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
164
164
|
RuleCompositeConditionUiComponent,
|
|
165
165
|
RuleActionListUiComponent,
|
|
166
166
|
RuleOptionsUiComponent
|
|
167
|
-
], selector: 'aca-rule-details', encapsulation: ViewEncapsulation.None, host: { class: 'aca-rule-details' }, template: "<form class=\"aca-rule-details__form\" [ngClass]=\"{ 'aca-read-only': readOnly }\" [formGroup]=\"form\">\n\n <ng-container *ngIf=\"!preview\">\n <div class=\"aca-rule-details__form__row\">\n <label class=\"aca-rule-details__name__label\" for=\"rule-details-name-input\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.NAME' | translate }}</label>\n <div>\n <mat-form-field appearance=\"fill\" floatLabel='auto' class=\"aca-rule-details__form__row__field\">\n <input\n id=\"rule-details-name-input\"\n matInput type=\"text\" formControlName=\"name\" data-automation-id=\"rule-details-name-input\"\n [placeholder]=\"'ACA_FOLDER_RULES.RULE_DETAILS.PLACEHOLDER.NAME' | translate\">\n <mat-error>{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.REQUIRED' | translate }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__description\">\n <label for=\"rule-details-description-textarea\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.DESCRIPTION' | translate }}</label>\n <div>\n <mat-form-field floatLabel='auto' appearance=\"fill\" class=\"aca-rule-details__form__row__field\">\n <textarea\n class=\"aca-rule-details__form__row__field__textarea\"\n id=\"rule-details-description-textarea\"\n matInput formControlName=\"description\" data-automation-id=\"rule-details-description-textarea\"\n [placeholder]=\"descriptionPlaceHolder | translate\">\n </textarea>\n </mat-form-field>\n </div>\n </div>\n </ng-container>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__triggers\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.WHEN' | translate }}</div>\n <div>\n <aca-rule-triggers formControlName=\"triggers\" data-automation-id=\"rule-details-triggers-component\"></aca-rule-triggers>\n <mat-error class=\"aca-rule-details-error\" *ngIf=\"triggers.hasError('required')\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.INSUFFICIENT_TRIGGERS_SELECTED' | translate }}</mat-error>\n </div>\n </div>\n\n <div class=\"aca-rule-details__form__conditions\">\n <aca-rule-composite-condition [readOnly]=\"readOnly\" formControlName=\"conditions\"></aca-rule-composite-condition>\n <mat-error class=\"aca-rule-details-error\" *ngIf=\"conditions.hasError('ruleCompositeConditionInvalid')\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.RULE_COMPOSITE_CONDITION_INVALID' | translate }}</mat-error>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__actions\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.PERFORM_ACTIONS' | translate }}</div>\n <aca-rule-action-list\n formControlName=\"actions\"\n [actionDefinitions]=\"actionDefinitions\"\n [parameterConstraints]=\"parameterConstraints\"\n [readOnly]=\"readOnly\"\n [nodeId]=\"nodeId\">\n </aca-rule-action-list>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__others\" *ngIf=\"showOptionsSection\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.OPTIONS' | translate }}</div>\n <aca-rule-options\n formControlName=\"options\"\n data-automation-id=\"rule-details-options-component\"\n [errorScriptConstraint]=\"errorScriptConstraint\">\n </aca-rule-options>\n </div>\n\n</form>\n", styles: [".aca-rule-details .aca-rule-details__form__triggers{margin-top:10px}.aca-rule-details .aca-rule-details__name__label{padding-top:1.5em}.aca-rule-details .aca-rule-details__form__others{margin-bottom:12px}.aca-rule-details__form{position:relative}.aca-rule-details__form>div{padding:0 20px;width:100%;box-sizing:border-box}.aca-rule-details__form>div.aca-rule-details__form__description{padding-top:0;border:none;align-items:flex-start}.aca-rule-details__form__row{display:flex;align-items:baseline;gap:8px}.aca-rule-details__form__row>label,.aca-rule-details__form__row>.aca-label{font-weight:700;width:20%;min-width:100px;max-width:150px;padding:.5em 0}.aca-rule-details__form__row>div{flex-grow:1}.aca-rule-details__form__row__field{width:100%;max-width:400px;font-size:inherit}.aca-rule-details__form__row__field__textarea{min-height:4em}.aca-rule-details__form:not(:nth-child(1)){border-top:1px solid var(--theme-border-color)}.aca-rule-details__form__conditions{width:100%;margin:14px 0 36px}.aca-rule-details__form__conditions>.aca-rule-details-error{margin-left:16px;color:inherit}.aca-rule-details__form .aca-rule-details-error{font-size:75%;height:1em}.aca-rule-details__form__actions .aca-rule-action-list{flex:1}.aca-rule-details__form.aca-read-only .mdc-notched-outline__leading,.aca-rule-details__form.aca-read-only .mdc-notched-outline__trailing,.aca-rule-details__form.aca-read-only .mdc-notched-outline__notch,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__leading,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__trailing,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__notch{border:none}.aca-rule-details__form.aca-read-only .mdc-line-ripple:before,.aca-rule-details__form.aca-read-only .mdc-line-ripple:after,.aca-rule-details__form .mat-form-field-disabled .mdc-line-ripple:before,.aca-rule-details__form .mat-form-field-disabled .mdc-line-ripple:after{display:none}.aca-rule-details__form.aca-read-only *:disabled,.aca-rule-details__form.aca-read-only .mat-mdc-select-disabled .mat-mdc-select-value,.aca-rule-details__form .mat-form-field-disabled *:disabled,.aca-rule-details__form .mat-form-field-disabled .mat-mdc-select-disabled .mat-mdc-select-value{color:inherit}.aca-rule-details__form.aca-read-only .mat-mdc-select-arrow-wrapper,.aca-rule-details__form .mat-form-field-disabled .mat-mdc-select-arrow-wrapper{display:none}.aca-rule-details__form .aca-rule-details__form__row .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-
|
|
167
|
+
], selector: 'aca-rule-details', encapsulation: ViewEncapsulation.None, host: { class: 'aca-rule-details' }, template: "<form class=\"aca-rule-details__form\" [ngClass]=\"{ 'aca-read-only': readOnly }\" [formGroup]=\"form\">\n\n <ng-container *ngIf=\"!preview\">\n <div class=\"aca-rule-details__form__row\">\n <label class=\"aca-rule-details__name__label\" for=\"rule-details-name-input\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.NAME' | translate }}</label>\n <div>\n <mat-form-field appearance=\"fill\" floatLabel='auto' class=\"aca-rule-details__form__row__field\">\n <input\n id=\"rule-details-name-input\"\n matInput type=\"text\" formControlName=\"name\" data-automation-id=\"rule-details-name-input\"\n [placeholder]=\"'ACA_FOLDER_RULES.RULE_DETAILS.PLACEHOLDER.NAME' | translate\">\n <mat-error>{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.REQUIRED' | translate }}</mat-error>\n </mat-form-field>\n </div>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__description\">\n <label for=\"rule-details-description-textarea\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.DESCRIPTION' | translate }}</label>\n <div>\n <mat-form-field floatLabel='auto' appearance=\"fill\" class=\"aca-rule-details__form__row__field\">\n <textarea\n class=\"aca-rule-details__form__row__field__textarea\"\n id=\"rule-details-description-textarea\"\n matInput formControlName=\"description\" data-automation-id=\"rule-details-description-textarea\"\n [placeholder]=\"descriptionPlaceHolder | translate\">\n </textarea>\n </mat-form-field>\n </div>\n </div>\n </ng-container>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__triggers\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.WHEN' | translate }}</div>\n <div>\n <aca-rule-triggers formControlName=\"triggers\" data-automation-id=\"rule-details-triggers-component\"></aca-rule-triggers>\n <mat-error class=\"aca-rule-details-error\" *ngIf=\"triggers.hasError('required')\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.INSUFFICIENT_TRIGGERS_SELECTED' | translate }}</mat-error>\n </div>\n </div>\n\n <div class=\"aca-rule-details__form__conditions\">\n <aca-rule-composite-condition [readOnly]=\"readOnly\" formControlName=\"conditions\"></aca-rule-composite-condition>\n <mat-error class=\"aca-rule-details-error\" *ngIf=\"conditions.hasError('ruleCompositeConditionInvalid')\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.ERROR.RULE_COMPOSITE_CONDITION_INVALID' | translate }}</mat-error>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__actions\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.PERFORM_ACTIONS' | translate }}</div>\n <aca-rule-action-list\n formControlName=\"actions\"\n [actionDefinitions]=\"actionDefinitions\"\n [parameterConstraints]=\"parameterConstraints\"\n [readOnly]=\"readOnly\"\n [nodeId]=\"nodeId\">\n </aca-rule-action-list>\n </div>\n\n <div class=\"aca-rule-details__form__row aca-rule-details__form__others\" *ngIf=\"showOptionsSection\">\n <div class=\"aca-label\">{{ 'ACA_FOLDER_RULES.RULE_DETAILS.LABEL.OPTIONS' | translate }}</div>\n <aca-rule-options\n formControlName=\"options\"\n data-automation-id=\"rule-details-options-component\"\n [errorScriptConstraint]=\"errorScriptConstraint\">\n </aca-rule-options>\n </div>\n\n</form>\n", styles: [".aca-rule-details .aca-rule-details__form__triggers{margin-top:10px}.aca-rule-details .aca-rule-details__name__label{padding-top:1.5em}.aca-rule-details .aca-rule-details__form__others{margin-bottom:12px}.aca-rule-details__form{position:relative}.aca-rule-details__form>div{padding:0 20px;width:100%;box-sizing:border-box}.aca-rule-details__form>div.aca-rule-details__form__description{padding-top:0;border:none;align-items:flex-start}.aca-rule-details__form__row{display:flex;align-items:baseline;gap:8px}.aca-rule-details__form__row>label,.aca-rule-details__form__row>.aca-label{font-weight:700;width:20%;min-width:100px;max-width:150px;padding:.5em 0}.aca-rule-details__form__row>div{flex-grow:1}.aca-rule-details__form__row__field{width:100%;max-width:400px;font-size:inherit}.aca-rule-details__form__row__field__textarea{min-height:4em}.aca-rule-details__form:not(:nth-child(1)){border-top:1px solid var(--theme-border-color)}.aca-rule-details__form__conditions{width:100%;margin:14px 0 36px}.aca-rule-details__form__conditions>.aca-rule-details-error{margin-left:16px;color:inherit}.aca-rule-details__form .aca-rule-details-error{font-size:75%;height:1em}.aca-rule-details__form__actions .aca-rule-action-list{flex:1}.aca-rule-details__form.aca-read-only .mdc-notched-outline__leading,.aca-rule-details__form.aca-read-only .mdc-notched-outline__trailing,.aca-rule-details__form.aca-read-only .mdc-notched-outline__notch,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__leading,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__trailing,.aca-rule-details__form .mat-form-field-disabled .mdc-notched-outline__notch{border:none}.aca-rule-details__form.aca-read-only .mdc-line-ripple:before,.aca-rule-details__form.aca-read-only .mdc-line-ripple:after,.aca-rule-details__form .mat-form-field-disabled .mdc-line-ripple:before,.aca-rule-details__form .mat-form-field-disabled .mdc-line-ripple:after{display:none}.aca-rule-details__form.aca-read-only *:disabled,.aca-rule-details__form.aca-read-only .mat-mdc-select-disabled .mat-mdc-select-value,.aca-rule-details__form .mat-form-field-disabled *:disabled,.aca-rule-details__form .mat-form-field-disabled .mat-mdc-select-disabled .mat-mdc-select-value{color:inherit}.aca-rule-details__form.aca-read-only .mat-mdc-select-arrow-wrapper,.aca-rule-details__form .mat-form-field-disabled .mat-mdc-select-arrow-wrapper{display:none}.aca-rule-details__form .aca-rule-details__form__row .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-bottom:.375em}.aca-rule-details__form .aca-rule-details__form__row aca-rule-action .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-top:.1em;padding-bottom:.1em}\n"] }]
|
|
168
168
|
}], ctorParameters: function () { return [{ type: i1.CategoryService }]; }, propDecorators: { readOnly: [{
|
|
169
169
|
type: Input
|
|
170
170
|
}], value: [{
|
|
@@ -182,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
182
182
|
}], formValueChanged: [{
|
|
183
183
|
type: Output
|
|
184
184
|
}] } });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1kZXRhaWxzLnVpLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL3J1bGUtZGV0YWlscy51aS1jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3J1bGUtZGV0YWlscy9ydWxlLWRldGFpbHMudWktY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFN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QUF1Qiw4REFDdkIsaUNBQWlDLHdJQUNqQyx5QkFBeUIsOElBQ3pCLHNCQUFzQjs0RkFRYixzQkFBc0I7a0JBbkJsQyxTQUFTO2lDQUNJLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixpQ0FBaUM7d0JBQ2pDLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3FCQUN2QixZQUNTLGtCQUFrQixpQkFHYixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFO3NHQUluQyxRQUFRO3NCQURQLEtBQUs7Z0JBT0YsS0FBSztzQkFEUixLQUFLO2dCQWtDTixPQUFPO3NCQUROLEtBQUs7Z0JBR04saUJBQWlCO3NCQURoQixLQUFLO2dCQUdOLG9CQUFvQjtzQkFEbkIsS0FBSztnQkFHTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4scUJBQXFCO3NCQURwQixNQUFNO2dCQUdQLGdCQUFnQjtzQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJ1bGUsIFJ1bGVGb3JGb3JtIH0gZnJvbSAnLi4vbW9kZWwvcnVsZS5tb2RlbCc7XG5pbXBvcnQgeyBydWxlQ29tcG9zaXRlQ29uZGl0aW9uVmFsaWRhdG9yIH0gZnJvbSAnLi92YWxpZGF0b3JzL3J1bGUtY29tcG9zaXRlLWNvbmRpdGlvbi52YWxpZGF0b3InO1xuaW1wb3J0IHsgRm9sZGVyUnVsZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZm9sZGVyLXJ1bGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aW9uRGVmaW5pdGlvblRyYW5zZm9ybWVkIH0gZnJvbSAnLi4vbW9kZWwvcnVsZS1hY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgcnVsZUFjdGlvbnNWYWxpZGF0b3IgfSBmcm9tICcuL3ZhbGlkYXRvcnMvcnVsZS1hY3Rpb25zLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBBY3Rpb25QYXJhbWV0ZXJDb25zdHJhaW50IH0gZnJvbSAnLi4vbW9kZWwvYWN0aW9uLXBhcmFtZXRlci1jb25zdHJhaW50Lm1vZGVsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBSdWxlVHJpZ2dlcnNVaUNvbXBvbmVudCB9IGZyb20gJy4vdHJpZ2dlcnMvcnVsZS10cmlnZ2Vycy51aS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUnVsZUNvbXBvc2l0ZUNvbmRpdGlvblVpQ29tcG9uZW50IH0gZnJvbSAnLi9jb25kaXRpb25zL3J1bGUtY29tcG9zaXRlLWNvbmRpdGlvbi51aS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUnVsZUFjdGlvbkxpc3RVaUNvbXBvbmVudCB9IGZyb20gJy4vYWN0aW9ucy9ydWxlLWFjdGlvbi1saXN0LnVpLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBSdWxlT3B0aW9uc1VpQ29tcG9uZW50IH0gZnJvbSAnLi9vcHRpb25zL3J1bGUtb3B0aW9ucy51aS1jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIFJ1bGVUcmlnZ2Vyc1VpQ29tcG9uZW50LFxuICAgIFJ1bGVDb21wb3NpdGVDb25kaXRpb25VaUNvbXBvbmVudCxcbiAgICBSdWxlQWN0aW9uTGlzdFVpQ29tcG9uZW50LFxuICAgIFJ1bGVPcHRpb25zVWlDb21wb25lbnRcbiAgXSxcbiAgc2VsZWN0b3I6ICdhY2EtcnVsZS1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3J1bGUtZGV0YWlscy51aS1jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J1bGUtZGV0YWlscy51aS1jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7IGNsYXNzOiAnYWNhLXJ1bGUtZGV0YWlscycgfVxufSlcbmV4cG9ydCBjbGFzcyBSdWxlRGV0YWlsc1VpQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICByZWFkT25seTogYm9vbGVhbjtcblxuICBkZXNjcmlwdGlvblBsYWNlSG9sZGVyOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbFZhbHVlOiBSdWxlRm9yRm9ybSA9IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGVGb3JGb3JtO1xuICBASW5wdXQoKVxuICBnZXQgdmFsdWUoKTogUGFydGlhbDxSdWxlPiB7XG4gICAgbGV0IHZhbHVlID0gdGhpcy5mb3JtID8gdGhpcy5mb3JtLnZhbHVlIDogdGhpcy5faW5pdGlhbFZhbHVlO1xuICAgIGlmICh2YWx1ZS5vcHRpb25zKSB7XG4gICAgICB2YWx1ZSA9IHtcbiAgICAgICAgLi4udmFsdWUsXG4gICAgICAgIC4uLih2YWx1ZS5vcHRpb25zID8/IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGVPcHRpb25zKVxuICAgICAgfTtcbiAgICAgIGRlbGV0ZSB2YWx1ZS5vcHRpb25zO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgc2V0IHZhbHVlKG5ld1ZhbHVlOiBQYXJ0aWFsPFJ1bGU+KSB7XG4gICAgY29uc3QgbmV3VmFsdWVGb3JGb3JtOiBSdWxlRm9yRm9ybSA9IHtcbiAgICAgIGlkOiBuZXdWYWx1ZS5pZCB8fCBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLmlkLFxuICAgICAgbmFtZTogbmV3VmFsdWUubmFtZSB8fCBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogbmV3VmFsdWUuZGVzY3JpcHRpb24gfHwgRm9sZGVyUnVsZXNTZXJ2aWNlLmVtcHR5UnVsZS5kZXNjcmlwdGlvbixcbiAgICAgIHRyaWdnZXJzOiBuZXdWYWx1ZS50cmlnZ2VycyB8fCBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLnRyaWdnZXJzLFxuICAgICAgY29uZGl0aW9uczogbmV3VmFsdWUuY29uZGl0aW9ucyB8fCBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLmNvbmRpdGlvbnMsXG4gICAgICBhY3Rpb25zOiBuZXdWYWx1ZS5hY3Rpb25zIHx8IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuYWN0aW9ucyxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaXNFbmFibGVkOiB0eXBlb2YgbmV3VmFsdWUuaXNJbmhlcml0YWJsZSA9PSAnYm9vbGVhbicgPyBuZXdWYWx1ZS5pc0VuYWJsZWQgOiBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLmlzRW5hYmxlZCxcbiAgICAgICAgaXNJbmhlcml0YWJsZTogbmV3VmFsdWUuaXNJbmhlcml0YWJsZSB8fCBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLmlzSW5oZXJpdGFibGUsXG4gICAgICAgIGlzQXN5bmNocm9ub3VzOiBuZXdWYWx1ZS5pc0FzeW5jaHJvbm91cyB8fCBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLmlzQXN5bmNocm9ub3VzLFxuICAgICAgICBlcnJvclNjcmlwdDogbmV3VmFsdWUuZXJyb3JTY3JpcHQgfHwgRm9sZGVyUnVsZXNTZXJ2aWNlLmVtcHR5UnVsZS5lcnJvclNjcmlwdFxuICAgICAgfVxuICAgIH07XG4gICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgdGhpcy5mb3JtLnNldFZhbHVlKG5ld1ZhbHVlRm9yRm9ybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2luaXRpYWxWYWx1ZSA9IG5ld1ZhbHVlRm9yRm9ybTtcbiAgICB9XG4gIH1cbiAgQElucHV0KClcbiAgcHJldmlldzogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgYWN0aW9uRGVmaW5pdGlvbnM6IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZFtdID0gW107XG4gIEBJbnB1dCgpXG4gIHBhcmFtZXRlckNvbnN0cmFpbnRzOiBBY3Rpb25QYXJhbWV0ZXJDb25zdHJhaW50W10gPSBbXTtcbiAgQElucHV0KClcbiAgbm9kZUlkID0gJyc7XG5cbiAgQE91dHB1dCgpXG4gIGZvcm1WYWxpZGF0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpXG4gIGZvcm1WYWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8UnVsZT4+KCk7XG5cbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcbiAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICBlcnJvclNjcmlwdENvbnN0cmFpbnQ6IEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnQ7XG4gIGdldCBuYW1lKCk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ25hbWUnKSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIH1cbiAgZ2V0IGRlc2NyaXB0aW9uKCk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2Rlc2NyaXB0aW9uJykgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICB9XG4gIGdldCB0cmlnZ2VycygpOiBVbnR5cGVkRm9ybUNvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCd0cmlnZ2VycycpIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcbiAgfVxuXG4gIGdldCBjb25kaXRpb25zKCk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2NvbmRpdGlvbnMnKSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIH1cblxuICBnZXQgc2hvd09wdGlvbnNTZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5yZWFkT25seSB8fCB0aGlzLnZhbHVlLmlzQXN5bmNocm9ub3VzIHx8IHRoaXMudmFsdWUuaXNJbmhlcml0YWJsZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2F0ZWdvcnlTZXJ2aWNlOiBDYXRlZ29yeVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgZGlzYWJsZWRDYXRlZ29yeSA9ICF0aGlzLmNhdGVnb3J5U2VydmljZS5hcmVDYXRlZ29yaWVzRW5hYmxlZCgpO1xuICAgIHRoaXMuYWN0aW9uRGVmaW5pdGlvbnMgPSB0aGlzLmFjdGlvbkRlZmluaXRpb25zLmZpbHRlcigoYWN0aW9uKSA9PiAhKGRpc2FibGVkQ2F0ZWdvcnkgJiYgYWN0aW9uLmlkID09PSAnbGluay1jYXRlZ29yeScpKTtcbiAgICB0aGlzLmZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgICBpZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLnZhbHVlLmlkKSxcbiAgICAgIG5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy52YWx1ZS5uYW1lIHx8ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMudmFsdWUuZGVzY3JpcHRpb24gfHwgJycpLFxuICAgICAgdHJpZ2dlcnM6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy52YWx1ZS50cmlnZ2VycyB8fCBbJ2luYm91bmQnXSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBjb25kaXRpb25zOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxuICAgICAgICB0aGlzLnZhbHVlLmNvbmRpdGlvbnMgfHwge1xuICAgICAgICAgIGludmVydGVkOiBmYWxzZSxcbiAgICAgICAgICBib29sZWFuTW9kZTogJ2FuZCcsXG4gICAgICAgICAgY29tcG9zaXRlQ29uZGl0aW9uczogW10sXG4gICAgICAgICAgc2ltcGxlQ29uZGl0aW9uczogW11cbiAgICAgICAgfSxcbiAgICAgICAgcnVsZUNvbXBvc2l0ZUNvbmRpdGlvblZhbGlkYXRvcigpXG4gICAgICApLFxuICAgICAgYWN0aW9uczogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLnZhbHVlLmFjdGlvbnMsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBydWxlQWN0aW9uc1ZhbGlkYXRvcih0aGlzLmFjdGlvbkRlZmluaXRpb25zKV0pLFxuICAgICAgb3B0aW9uczogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7XG4gICAgICAgIGlzRW5hYmxlZDogdGhpcy52YWx1ZS5pc0VuYWJsZWQsXG4gICAgICAgIGlzSW5oZXJpdGFibGU6IHRoaXMudmFsdWUuaXNJbmhlcml0YWJsZSxcbiAgICAgICAgaXNBc3luY2hyb25vdXM6IHRoaXMudmFsdWUuaXNBc3luY2hyb25vdXMsXG4gICAgICAgIGVycm9yU2NyaXB0OiB0aGlzLnZhbHVlLmVycm9yU2NyaXB0XG4gICAgICB9KVxuICAgIH0pO1xuXG4gICAgdGhpcy5mb3JtLnN0YXR1c0NoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5mb3JtLnZhbGlkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybVZhbGlkYXRpb25DaGFuZ2VkLmVtaXQodmFsdWUpO1xuICAgICAgfSk7XG4gICAgdGhpcy5mb3JtVmFsaWRhdGlvbkNoYW5nZWQuZW1pdCh0aGlzLmZvcm0udmFsaWQpO1xuXG4gICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5mb3JtVmFsdWVDaGFuZ2VkLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICAgIH1cblxuICAgIHRoaXMuZGVzY3JpcHRpb25QbGFjZUhvbGRlciA9IHRoaXMucmVhZE9ubHlcbiAgICAgID8gJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLlBMQUNFSE9MREVSLk5PX0RFU0NSSVBUSU9OJ1xuICAgICAgOiAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuUExBQ0VIT0xERVIuREVTQ1JJUFRJT04nO1xuXG4gICAgdGhpcy5lcnJvclNjcmlwdENvbnN0cmFpbnQgPSB0aGlzLnBhcmFtZXRlckNvbnN0cmFpbnRzLmZpbmQoXG4gICAgICAocGFyYW1ldGVyQ29uc3RyYWludDogQWN0aW9uUGFyYW1ldGVyQ29uc3RyYWludCkgPT4gcGFyYW1ldGVyQ29uc3RyYWludC5uYW1lID09PSAnc2NyaXB0LXJlZidcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19mb3JtXCIgW25nQ2xhc3NdPVwieyAnYWNhLXJlYWQtb25seSc6IHJlYWRPbmx5IH1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXByZXZpZXdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fcm93XCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19uYW1lX19sYWJlbFwiIGZvcj1cInJ1bGUtZGV0YWlscy1uYW1lLWlucHV0XCI+e3sgJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkxBQkVMLk5BTUUnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGZsb2F0TGFiZWw9J2F1dG8nIGNsYXNzPVwiYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fcm93X19maWVsZFwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJydWxlLWRldGFpbHMtbmFtZS1pbnB1dFwiXG4gICAgICAgICAgICBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJydWxlLWRldGFpbHMtbmFtZS1pbnB1dFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLlBMQUNFSE9MREVSLk5BTUUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgPG1hdC1lcnJvcj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuRVJST1IuUkVRVUlSRUQnIHwgdHJhbnNsYXRlIH19PC9tYXQtZXJyb3I+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19mb3JtX19yb3cgYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fZGVzY3JpcHRpb25cIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJydWxlLWRldGFpbHMtZGVzY3JpcHRpb24tdGV4dGFyZWFcIj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuTEFCRUwuREVTQ1JJUFRJT04nIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPSdhdXRvJyBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fcm93X19maWVsZFwiPlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICBjbGFzcz1cImFjYS1ydWxlLWRldGFpbHNfX2Zvcm1fX3Jvd19fZmllbGRfX3RleHRhcmVhXCJcbiAgICAgICAgICBpZD1cInJ1bGUtZGV0YWlscy1kZXNjcmlwdGlvbi10ZXh0YXJlYVwiXG4gICAgICAgICAgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJydWxlLWRldGFpbHMtZGVzY3JpcHRpb24tdGV4dGFyZWFcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkZXNjcmlwdGlvblBsYWNlSG9sZGVyIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdiBjbGFzcz1cImFjYS1ydWxlLWRldGFpbHNfX2Zvcm1fX3JvdyBhY2EtcnVsZS1kZXRhaWxzX19mb3JtX190cmlnZ2Vyc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJhY2EtbGFiZWxcIj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuTEFCRUwuV0hFTicgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGFjYS1ydWxlLXRyaWdnZXJzIGZvcm1Db250cm9sTmFtZT1cInRyaWdnZXJzXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwicnVsZS1kZXRhaWxzLXRyaWdnZXJzLWNvbXBvbmVudFwiPjwvYWNhLXJ1bGUtdHJpZ2dlcnM+XG4gICAgICA8bWF0LWVycm9yIGNsYXNzPVwiYWNhLXJ1bGUtZGV0YWlscy1lcnJvclwiICpuZ0lmPVwidHJpZ2dlcnMuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuRVJST1IuSU5TVUZGSUNJRU5UX1RSSUdHRVJTX1NFTEVDVEVEJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWVycm9yPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fY29uZGl0aW9uc1wiPlxuICAgIDxhY2EtcnVsZS1jb21wb3NpdGUtY29uZGl0aW9uIFtyZWFkT25seV09XCJyZWFkT25seVwiIGZvcm1Db250cm9sTmFtZT1cImNvbmRpdGlvbnNcIj48L2FjYS1ydWxlLWNvbXBvc2l0ZS1jb25kaXRpb24+XG4gICAgPG1hdC1lcnJvciBjbGFzcz1cImFjYS1ydWxlLWRldGFpbHMtZXJyb3JcIiAqbmdJZj1cImNvbmRpdGlvbnMuaGFzRXJyb3IoJ3J1bGVDb21wb3NpdGVDb25kaXRpb25JbnZhbGlkJylcIj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuRVJST1IuUlVMRV9DT01QT1NJVEVfQ09ORElUSU9OX0lOVkFMSUQnIHwgdHJhbnNsYXRlIH19PC9tYXQtZXJyb3I+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19mb3JtX19yb3cgYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fYWN0aW9uc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJhY2EtbGFiZWxcIj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuTEFCRUwuUEVSRk9STV9BQ1RJT05TJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgIDxhY2EtcnVsZS1hY3Rpb24tbGlzdFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWN0aW9uc1wiXG4gICAgICBbYWN0aW9uRGVmaW5pdGlvbnNdPVwiYWN0aW9uRGVmaW5pdGlvbnNcIlxuICAgICAgW3BhcmFtZXRlckNvbnN0cmFpbnRzXT1cInBhcmFtZXRlckNvbnN0cmFpbnRzXCJcbiAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICBbbm9kZUlkXT1cIm5vZGVJZFwiPlxuICAgIDwvYWNhLXJ1bGUtYWN0aW9uLWxpc3Q+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19mb3JtX19yb3cgYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fb3RoZXJzXCIgKm5nSWY9XCJzaG93T3B0aW9uc1NlY3Rpb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWNhLWxhYmVsXCI+e3sgJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkxBQkVMLk9QVElPTlMnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgPGFjYS1ydWxlLW9wdGlvbnNcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9wdGlvbnNcIlxuICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwicnVsZS1kZXRhaWxzLW9wdGlvbnMtY29tcG9uZW50XCJcbiAgICAgIFtlcnJvclNjcmlwdENvbnN0cmFpbnRdPVwiZXJyb3JTY3JpcHRDb25zdHJhaW50XCI+XG4gICAgPC9hY2EtcnVsZS1vcHRpb25zPlxuICA8L2Rpdj5cblxuPC9mb3JtPlxuIl19
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1kZXRhaWxzLnVpLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL3J1bGUtZGV0YWlscy51aS1jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3J1bGUtZGV0YWlscy9ydWxlLWRldGFpbHMudWktY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFN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QUF1Qiw4REFDdkIsaUNBQWlDLHdJQUNqQyx5QkFBeUIsOElBQ3pCLHNCQUFzQjs0RkFRYixzQkFBc0I7a0JBbkJsQyxTQUFTO2lDQUNJLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixpQ0FBaUM7d0JBQ2pDLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3FCQUN2QixZQUNTLGtCQUFrQixpQkFHYixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFO3NHQUluQyxRQUFRO3NCQURQLEtBQUs7Z0JBT0YsS0FBSztzQkFEUixLQUFLO2dCQWtDTixPQUFPO3NCQUROLEtBQUs7Z0JBR04saUJBQWlCO3NCQURoQixLQUFLO2dCQUdOLG9CQUFvQjtzQkFEbkIsS0FBSztnQkFHTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4scUJBQXFCO3NCQURwQixNQUFNO2dCQUdQLGdCQUFnQjtzQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJ1bGUsIFJ1bGVGb3JGb3JtIH0gZnJvbSAnLi4vbW9kZWwvcnVsZS5tb2RlbCc7XG5pbXBvcnQgeyBydWxlQ29tcG9zaXRlQ29uZGl0aW9uVmFsaWRhdG9yIH0gZnJvbSAnLi92YWxpZGF0b3JzL3J1bGUtY29tcG9zaXRlLWNvbmRpdGlvbi52YWxpZGF0b3InO1xuaW1wb3J0IHsgRm9sZGVyUnVsZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZm9sZGVyLXJ1bGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aW9uRGVmaW5pdGlvblRyYW5zZm9ybWVkIH0gZnJvbSAnLi4vbW9kZWwvcnVsZS1hY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgcnVsZUFjdGlvbnNWYWxpZGF0b3IgfSBmcm9tICcuL3ZhbGlkYXRvcnMvcnVsZS1hY3Rpb25zLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBBY3Rpb25QYXJhbWV0ZXJDb25zdHJhaW50IH0gZnJvbSAnLi4vbW9kZWwvYWN0aW9uLXBhcmFtZXRlci1jb25zdHJhaW50Lm1vZGVsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBSdWxlVHJpZ2dlcnNVaUNvbXBvbmVudCB9IGZyb20gJy4vdHJpZ2dlcnMvcnVsZS10cmlnZ2Vycy51aS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUnVsZUNvbXBvc2l0ZUNvbmRpdGlvblVpQ29tcG9uZW50IH0gZnJvbSAnLi9jb25kaXRpb25zL3J1bGUtY29tcG9zaXRlLWNvbmRpdGlvbi51aS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUnVsZUFjdGlvbkxpc3RVaUNvbXBvbmVudCB9IGZyb20gJy4vYWN0aW9ucy9ydWxlLWFjdGlvbi1saXN0LnVpLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBSdWxlT3B0aW9uc1VpQ29tcG9uZW50IH0gZnJvbSAnLi9vcHRpb25zL3J1bGUtb3B0aW9ucy51aS1jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIFJ1bGVUcmlnZ2Vyc1VpQ29tcG9uZW50LFxuICAgIFJ1bGVDb21wb3NpdGVDb25kaXRpb25VaUNvbXBvbmVudCxcbiAgICBSdWxlQWN0aW9uTGlzdFVpQ29tcG9uZW50LFxuICAgIFJ1bGVPcHRpb25zVWlDb21wb25lbnRcbiAgXSxcbiAgc2VsZWN0b3I6ICdhY2EtcnVsZS1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3J1bGUtZGV0YWlscy51aS1jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J1bGUtZGV0YWlscy51aS1jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7IGNsYXNzOiAnYWNhLXJ1bGUtZGV0YWlscycgfVxufSlcbmV4cG9ydCBjbGFzcyBSdWxlRGV0YWlsc1VpQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICByZWFkT25seTogYm9vbGVhbjtcblxuICBkZXNjcmlwdGlvblBsYWNlSG9sZGVyOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbFZhbHVlOiBSdWxlRm9yRm9ybSA9IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGVGb3JGb3JtO1xuICBASW5wdXQoKVxuICBnZXQgdmFsdWUoKTogUGFydGlhbDxSdWxlPiB7XG4gICAgbGV0IHZhbHVlID0gdGhpcy5mb3JtID8gdGhpcy5mb3JtLnZhbHVlIDogdGhpcy5faW5pdGlhbFZhbHVlO1xuICAgIGlmICh2YWx1ZS5vcHRpb25zKSB7XG4gICAgICB2YWx1ZSA9IHtcbiAgICAgICAgLi4udmFsdWUsXG4gICAgICAgIC4uLih2YWx1ZS5vcHRpb25zID8/IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGVPcHRpb25zKVxuICAgICAgfTtcbiAgICAgIGRlbGV0ZSB2YWx1ZS5vcHRpb25zO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgc2V0IHZhbHVlKG5ld1ZhbHVlOiBQYXJ0aWFsPFJ1bGU+KSB7XG4gICAgY29uc3QgbmV3VmFsdWVGb3JGb3JtOiBSdWxlRm9yRm9ybSA9IHtcbiAgICAgIGlkOiBuZXdWYWx1ZS5pZCB8fCBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLmlkLFxuICAgICAgbmFtZTogbmV3VmFsdWUubmFtZSB8fCBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogbmV3VmFsdWUuZGVzY3JpcHRpb24gfHwgRm9sZGVyUnVsZXNTZXJ2aWNlLmVtcHR5UnVsZS5kZXNjcmlwdGlvbixcbiAgICAgIHRyaWdnZXJzOiBuZXdWYWx1ZS50cmlnZ2VycyB8fCBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLnRyaWdnZXJzLFxuICAgICAgY29uZGl0aW9uczogbmV3VmFsdWUuY29uZGl0aW9ucyB8fCBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLmNvbmRpdGlvbnMsXG4gICAgICBhY3Rpb25zOiBuZXdWYWx1ZS5hY3Rpb25zIHx8IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuYWN0aW9ucyxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaXNFbmFibGVkOiB0eXBlb2YgbmV3VmFsdWUuaXNJbmhlcml0YWJsZSA9PSAnYm9vbGVhbicgPyBuZXdWYWx1ZS5pc0VuYWJsZWQgOiBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLmlzRW5hYmxlZCxcbiAgICAgICAgaXNJbmhlcml0YWJsZTogbmV3VmFsdWUuaXNJbmhlcml0YWJsZSB8fCBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLmlzSW5oZXJpdGFibGUsXG4gICAgICAgIGlzQXN5bmNocm9ub3VzOiBuZXdWYWx1ZS5pc0FzeW5jaHJvbm91cyB8fCBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLmlzQXN5bmNocm9ub3VzLFxuICAgICAgICBlcnJvclNjcmlwdDogbmV3VmFsdWUuZXJyb3JTY3JpcHQgfHwgRm9sZGVyUnVsZXNTZXJ2aWNlLmVtcHR5UnVsZS5lcnJvclNjcmlwdFxuICAgICAgfVxuICAgIH07XG4gICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgdGhpcy5mb3JtLnNldFZhbHVlKG5ld1ZhbHVlRm9yRm9ybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2luaXRpYWxWYWx1ZSA9IG5ld1ZhbHVlRm9yRm9ybTtcbiAgICB9XG4gIH1cbiAgQElucHV0KClcbiAgcHJldmlldzogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgYWN0aW9uRGVmaW5pdGlvbnM6IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZFtdID0gW107XG4gIEBJbnB1dCgpXG4gIHBhcmFtZXRlckNvbnN0cmFpbnRzOiBBY3Rpb25QYXJhbWV0ZXJDb25zdHJhaW50W10gPSBbXTtcbiAgQElucHV0KClcbiAgbm9kZUlkID0gJyc7XG5cbiAgQE91dHB1dCgpXG4gIGZvcm1WYWxpZGF0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpXG4gIGZvcm1WYWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8UnVsZT4+KCk7XG5cbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcbiAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICBlcnJvclNjcmlwdENvbnN0cmFpbnQ6IEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnQ7XG4gIGdldCBuYW1lKCk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ25hbWUnKSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIH1cbiAgZ2V0IGRlc2NyaXB0aW9uKCk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2Rlc2NyaXB0aW9uJykgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICB9XG4gIGdldCB0cmlnZ2VycygpOiBVbnR5cGVkRm9ybUNvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCd0cmlnZ2VycycpIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcbiAgfVxuXG4gIGdldCBjb25kaXRpb25zKCk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2NvbmRpdGlvbnMnKSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIH1cblxuICBnZXQgc2hvd09wdGlvbnNTZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5yZWFkT25seSB8fCB0aGlzLnZhbHVlLmlzQXN5bmNocm9ub3VzIHx8IHRoaXMudmFsdWUuaXNJbmhlcml0YWJsZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2F0ZWdvcnlTZXJ2aWNlOiBDYXRlZ29yeVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgZGlzYWJsZWRDYXRlZ29yeSA9ICF0aGlzLmNhdGVnb3J5U2VydmljZS5hcmVDYXRlZ29yaWVzRW5hYmxlZCgpO1xuICAgIHRoaXMuYWN0aW9uRGVmaW5pdGlvbnMgPSB0aGlzLmFjdGlvbkRlZmluaXRpb25zLmZpbHRlcigoYWN0aW9uKSA9PiAhKGRpc2FibGVkQ2F0ZWdvcnkgJiYgYWN0aW9uLmlkID09PSAnbGluay1jYXRlZ29yeScpKTtcbiAgICB0aGlzLmZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgICBpZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLnZhbHVlLmlkKSxcbiAgICAgIG5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy52YWx1ZS5uYW1lIHx8ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMudmFsdWUuZGVzY3JpcHRpb24gfHwgJycpLFxuICAgICAgdHJpZ2dlcnM6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy52YWx1ZS50cmlnZ2VycyB8fCBbJ2luYm91bmQnXSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBjb25kaXRpb25zOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxuICAgICAgICB0aGlzLnZhbHVlLmNvbmRpdGlvbnMgfHwge1xuICAgICAgICAgIGludmVydGVkOiBmYWxzZSxcbiAgICAgICAgICBib29sZWFuTW9kZTogJ2FuZCcsXG4gICAgICAgICAgY29tcG9zaXRlQ29uZGl0aW9uczogW10sXG4gICAgICAgICAgc2ltcGxlQ29uZGl0aW9uczogW11cbiAgICAgICAgfSxcbiAgICAgICAgcnVsZUNvbXBvc2l0ZUNvbmRpdGlvblZhbGlkYXRvcigpXG4gICAgICApLFxuICAgICAgYWN0aW9uczogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0aGlzLnZhbHVlLmFjdGlvbnMsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBydWxlQWN0aW9uc1ZhbGlkYXRvcih0aGlzLmFjdGlvbkRlZmluaXRpb25zKV0pLFxuICAgICAgb3B0aW9uczogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7XG4gICAgICAgIGlzRW5hYmxlZDogdGhpcy52YWx1ZS5pc0VuYWJsZWQsXG4gICAgICAgIGlzSW5oZXJpdGFibGU6IHRoaXMudmFsdWUuaXNJbmhlcml0YWJsZSxcbiAgICAgICAgaXNBc3luY2hyb25vdXM6IHRoaXMudmFsdWUuaXNBc3luY2hyb25vdXMsXG4gICAgICAgIGVycm9yU2NyaXB0OiB0aGlzLnZhbHVlLmVycm9yU2NyaXB0XG4gICAgICB9KVxuICAgIH0pO1xuXG4gICAgdGhpcy5mb3JtLnN0YXR1c0NoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5mb3JtLnZhbGlkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybVZhbGlkYXRpb25DaGFuZ2VkLmVtaXQodmFsdWUpO1xuICAgICAgfSk7XG4gICAgdGhpcy5mb3JtVmFsaWRhdGlvbkNoYW5nZWQuZW1pdCh0aGlzLmZvcm0udmFsaWQpO1xuXG4gICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5mb3JtVmFsdWVDaGFuZ2VkLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICAgIH1cblxuICAgIHRoaXMuZGVzY3JpcHRpb25QbGFjZUhvbGRlciA9IHRoaXMucmVhZE9ubHlcbiAgICAgID8gJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLlBMQUNFSE9MREVSLk5PX0RFU0NSSVBUSU9OJ1xuICAgICAgOiAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuUExBQ0VIT0xERVIuREVTQ1JJUFRJT04nO1xuXG4gICAgdGhpcy5lcnJvclNjcmlwdENvbnN0cmFpbnQgPSB0aGlzLnBhcmFtZXRlckNvbnN0cmFpbnRzLmZpbmQoXG4gICAgICAocGFyYW1ldGVyQ29uc3RyYWludDogQWN0aW9uUGFyYW1ldGVyQ29uc3RyYWludCkgPT4gcGFyYW1ldGVyQ29uc3RyYWludC5uYW1lID09PSAnc2NyaXB0LXJlZidcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19mb3JtXCIgW25nQ2xhc3NdPVwieyAnYWNhLXJlYWQtb25seSc6IHJlYWRPbmx5IH1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXByZXZpZXdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fcm93XCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19uYW1lX19sYWJlbFwiIGZvcj1cInJ1bGUtZGV0YWlscy1uYW1lLWlucHV0XCI+e3sgJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkxBQkVMLk5BTUUnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGZsb2F0TGFiZWw9J2F1dG8nIGNsYXNzPVwiYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fcm93X19maWVsZFwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJydWxlLWRldGFpbHMtbmFtZS1pbnB1dFwiXG4gICAgICAgICAgICBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJydWxlLWRldGFpbHMtbmFtZS1pbnB1dFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLlBMQUNFSE9MREVSLk5BTUUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgPG1hdC1lcnJvcj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuRVJST1IuUkVRVUlSRUQnIHwgdHJhbnNsYXRlIH19PC9tYXQtZXJyb3I+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19mb3JtX19yb3cgYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fZGVzY3JpcHRpb25cIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJydWxlLWRldGFpbHMtZGVzY3JpcHRpb24tdGV4dGFyZWFcIj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuTEFCRUwuREVTQ1JJUFRJT04nIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPSdhdXRvJyBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fcm93X19maWVsZFwiPlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICBjbGFzcz1cImFjYS1ydWxlLWRldGFpbHNfX2Zvcm1fX3Jvd19fZmllbGRfX3RleHRhcmVhXCJcbiAgICAgICAgICBpZD1cInJ1bGUtZGV0YWlscy1kZXNjcmlwdGlvbi10ZXh0YXJlYVwiXG4gICAgICAgICAgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJydWxlLWRldGFpbHMtZGVzY3JpcHRpb24tdGV4dGFyZWFcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkZXNjcmlwdGlvblBsYWNlSG9sZGVyIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdiBjbGFzcz1cImFjYS1ydWxlLWRldGFpbHNfX2Zvcm1fX3JvdyBhY2EtcnVsZS1kZXRhaWxzX19mb3JtX190cmlnZ2Vyc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJhY2EtbGFiZWxcIj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuTEFCRUwuV0hFTicgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGFjYS1ydWxlLXRyaWdnZXJzIGZvcm1Db250cm9sTmFtZT1cInRyaWdnZXJzXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwicnVsZS1kZXRhaWxzLXRyaWdnZXJzLWNvbXBvbmVudFwiPjwvYWNhLXJ1bGUtdHJpZ2dlcnM+XG4gICAgICA8bWF0LWVycm9yIGNsYXNzPVwiYWNhLXJ1bGUtZGV0YWlscy1lcnJvclwiICpuZ0lmPVwidHJpZ2dlcnMuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuRVJST1IuSU5TVUZGSUNJRU5UX1RSSUdHRVJTX1NFTEVDVEVEJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWVycm9yPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fY29uZGl0aW9uc1wiPlxuICAgIDxhY2EtcnVsZS1jb21wb3NpdGUtY29uZGl0aW9uIFtyZWFkT25seV09XCJyZWFkT25seVwiIGZvcm1Db250cm9sTmFtZT1cImNvbmRpdGlvbnNcIj48L2FjYS1ydWxlLWNvbXBvc2l0ZS1jb25kaXRpb24+XG4gICAgPG1hdC1lcnJvciBjbGFzcz1cImFjYS1ydWxlLWRldGFpbHMtZXJyb3JcIiAqbmdJZj1cImNvbmRpdGlvbnMuaGFzRXJyb3IoJ3J1bGVDb21wb3NpdGVDb25kaXRpb25JbnZhbGlkJylcIj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuRVJST1IuUlVMRV9DT01QT1NJVEVfQ09ORElUSU9OX0lOVkFMSUQnIHwgdHJhbnNsYXRlIH19PC9tYXQtZXJyb3I+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19mb3JtX19yb3cgYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fYWN0aW9uc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJhY2EtbGFiZWxcIj57eyAnQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuTEFCRUwuUEVSRk9STV9BQ1RJT05TJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgIDxhY2EtcnVsZS1hY3Rpb24tbGlzdFxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWN0aW9uc1wiXG4gICAgICBbYWN0aW9uRGVmaW5pdGlvbnNdPVwiYWN0aW9uRGVmaW5pdGlvbnNcIlxuICAgICAgW3BhcmFtZXRlckNvbnN0cmFpbnRzXT1cInBhcmFtZXRlckNvbnN0cmFpbnRzXCJcbiAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICBbbm9kZUlkXT1cIm5vZGVJZFwiPlxuICAgIDwvYWNhLXJ1bGUtYWN0aW9uLWxpc3Q+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY2EtcnVsZS1kZXRhaWxzX19mb3JtX19yb3cgYWNhLXJ1bGUtZGV0YWlsc19fZm9ybV9fb3RoZXJzXCIgKm5nSWY9XCJzaG93T3B0aW9uc1NlY3Rpb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWNhLWxhYmVsXCI+e3sgJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkxBQkVMLk9QVElPTlMnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgPGFjYS1ydWxlLW9wdGlvbnNcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9wdGlvbnNcIlxuICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwicnVsZS1kZXRhaWxzLW9wdGlvbnMtY29tcG9uZW50XCJcbiAgICAgIFtlcnJvclNjcmlwdENvbnN0cmFpbnRdPVwiZXJyb3JTY3JpcHRDb25zdHJhaW50XCI+XG4gICAgPC9hY2EtcnVsZS1vcHRpb25zPlxuICA8L2Rpdj5cblxuPC9mb3JtPlxuIl19
|