@alfresco/aca-content 4.3.0-6613445400 → 4.3.0-6632217231

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.
@@ -51,7 +51,8 @@ import * as i8 from "@angular/forms";
51
51
  import * as i9 from "@angular/material/select";
52
52
  import * as i10 from "@angular/material/core";
53
53
  import * as i11 from "@angular/material/input";
54
- import * as i12 from "@angular/material/button";
54
+ import * as i12 from "@angular/cdk/a11y";
55
+ import * as i13 from "@angular/material/button";
55
56
  export class InstantErrorStateMatcher {
56
57
  isErrorState(control, form) {
57
58
  const isSubmitted = form && form.submitted;
@@ -77,7 +78,6 @@ export class LibraryMetadataFormComponent {
77
78
  });
78
79
  this.matcher = new InstantErrorStateMatcher();
79
80
  this.canUpdateLibrary = false;
80
- this.visibilityLabel = '';
81
81
  this.onDestroy$ = new Subject();
82
82
  }
83
83
  get queriesApi() {
@@ -87,11 +87,18 @@ export class LibraryMetadataFormComponent {
87
87
  get titleErrorTranslationKey() {
88
88
  return this._titleErrorTranslationKey;
89
89
  }
90
- getVisibilityLabel(value) {
91
- return this.libraryType.find((type) => type.value === value).label;
92
- }
93
90
  toggleEdit() {
94
- this.edit = !this.edit;
91
+ if (this.form.enabled) {
92
+ this.form.disable({
93
+ emitEvent: false
94
+ });
95
+ }
96
+ else {
97
+ this.form.enable({
98
+ emitEvent: false
99
+ });
100
+ this.form.controls.id.disable();
101
+ }
95
102
  }
96
103
  cancel() {
97
104
  this.updateForm(this.node);
@@ -99,6 +106,7 @@ export class LibraryMetadataFormComponent {
99
106
  this.form.markAsPristine();
100
107
  }
101
108
  ngOnInit() {
109
+ this.toggleEdit();
102
110
  this.updateForm(this.node);
103
111
  this.form.controls.title.statusChanges
104
112
  .pipe(takeUntil(this.onDestroy$))
@@ -122,7 +130,6 @@ export class LibraryMetadataFormComponent {
122
130
  }
123
131
  });
124
132
  this.canUpdateLibrary = this.node?.entry?.role === 'SiteManager';
125
- this.visibilityLabel = this.libraryType.find((type) => type.value === this.form.controls['visibility'].value).label;
126
133
  this.handleUpdatingEvent(SnackbarActionTypes.Info, 'LIBRARY.SUCCESS.LIBRARY_UPDATED', () => Object.assign(this.node.entry, this.form.value));
127
134
  this.handleUpdatingEvent(SnackbarActionTypes.Error, 'LIBRARY.ERRORS.LIBRARY_UPDATE_ERROR', () => this.form.markAsDirty());
128
135
  }
@@ -169,7 +176,7 @@ export class LibraryMetadataFormComponent {
169
176
  }
170
177
  }
171
178
  LibraryMetadataFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: LibraryMetadataFormComponent, deps: [{ token: i1.AlfrescoApiService }, { token: i2.Store }, { token: i3.Actions }], target: i0.ɵɵFactoryTarget.Component });
172
- LibraryMetadataFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: LibraryMetadataFormComponent, isStandalone: true, selector: "app-library-metadata-form", inputs: { node: "node" }, usesOnChanges: true, ngImport: i0, template: "<mat-card *ngIf=\"node\">\n <mat-card-content *ngIf=\"!edit\">\n <div class=\"mat-form-field mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-name-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.title.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-id-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.id.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-visibility-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ visibilityLabel | translate }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-description-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.description?.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"!edit && canUpdateLibrary\">\n <button mat-button color=\"primary\" (click)=\"toggleEdit()\">\n {{ 'LIBRARY.DIALOG.EDIT' | translate }}\n </button>\n </mat-card-actions>\n\n <mat-card-content *ngIf=\"edit\">\n <form [formGroup]=\"form\" autocomplete=\"off\">\n <mat-form-field floatLabel=\"auto\">\n <input\n matInput\n cdkFocusInitial\n required\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\"\n formControlName=\"title\"\n [errorStateMatcher]=\"matcher\"\n />\n <mat-hint *ngIf=\"libraryTitleExists\">{{ 'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate }}</mat-hint>\n <mat-error>\n {{ titleErrorTranslationKey | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\">\n <input matInput placeholder=\"{{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\" formControlName=\"id\" />\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\">\n <mat-select placeholder=\"{{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\" formControlName=\"visibility\">\n <mat-option [value]=\"type.value\" *ngFor=\"let type of libraryType\">\n {{ type.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\">\n <textarea\n matInput\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\"\n rows=\"3\"\n formControlName=\"description\"\n [errorStateMatcher]=\"matcher\"\n ></textarea>\n <mat-error>\n {{ 'LIBRARY.ERRORS.DESCRIPTION_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n </form>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"edit && canUpdateLibrary\">\n <button mat-button (click)=\"cancel()\">\n {{ 'LIBRARY.DIALOG.CANCEL' | translate }}\n </button>\n <button mat-button color=\"primary\" [disabled]=\"form.invalid || form.pristine\" (click)=\"update()\">\n {{ 'LIBRARY.DIALOG.UPDATE' | translate }}\n </button>\n </mat-card-actions>\n</mat-card>\n", styles: ["app-library-metadata-form .mat-form-field{width:100%}app-library-metadata-form .mat-form-field-infix{position:relative;width:180px}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper{position:absolute;width:100%;pointer-events:none}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper .mat-form-field-label{position:absolute;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i5.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i5.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i11.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: "ngmodule", type: A11yModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i12.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None });
179
+ LibraryMetadataFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: LibraryMetadataFormComponent, isStandalone: true, selector: "app-library-metadata-form", inputs: { node: "node" }, usesOnChanges: true, ngImport: i0, template: "<mat-card *ngIf=\"node\">\n <mat-card-content>\n <form [formGroup]=\"form\" autocomplete=\"off\">\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-name-properties-wrapper\">\n <input\n matInput\n [cdkTrapFocusAutoCapture]=\"form.enabled\"\n [cdkTrapFocus]=\"form.enabled\"\n required\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\"\n formControlName=\"title\"\n [errorStateMatcher]=\"matcher\"\n />\n <mat-hint *ngIf=\"libraryTitleExists\">{{ 'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate }}</mat-hint>\n <mat-error>\n {{ titleErrorTranslationKey | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-id-properties-wrapper\">\n <input matInput placeholder=\"{{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\" formControlName=\"id\" />\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-visibility-properties-wrapper\">\n <mat-select placeholder=\"{{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\" formControlName=\"visibility\">\n <mat-option [value]=\"type.value\" *ngFor=\"let type of libraryType\">\n {{ type.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-description-properties-wrapper\">\n <textarea\n matInput\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\"\n rows=\"3\"\n formControlName=\"description\"\n [errorStateMatcher]=\"matcher\"\n ></textarea>\n <mat-error>\n {{ 'LIBRARY.ERRORS.DESCRIPTION_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n </form>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"canUpdateLibrary\">\n <ng-container *ngIf=\"form.enabled\">\n <button mat-button (click)=\"cancel()\">\n {{ 'LIBRARY.DIALOG.CANCEL' | translate }}\n </button>\n <button mat-button color=\"primary\" [disabled]=\"form.invalid || form.pristine\" (click)=\"update()\">\n {{ 'LIBRARY.DIALOG.UPDATE' | translate }}\n </button>\n </ng-container>\n <button mat-button color=\"primary\" (click)=\"toggleEdit()\" *ngIf=\"form.disabled\">\n {{ 'LIBRARY.DIALOG.EDIT' | translate }}\n </button>\n </mat-card-actions>\n</mat-card>\n", styles: ["app-library-metadata-form .mat-form-field{width:100%}app-library-metadata-form .mat-form-field-infix{position:relative;width:180px}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper{position:absolute;width:100%;pointer-events:none}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper .mat-form-field-label{position:absolute;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i5.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i5.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i11.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: "ngmodule", type: A11yModule }, { kind: "directive", type: i12.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i13.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None });
173
180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: LibraryMetadataFormComponent, decorators: [{
174
181
  type: Component,
175
182
  args: [{ standalone: true, imports: [
@@ -184,8 +191,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
184
191
  MatInputModule,
185
192
  A11yModule,
186
193
  MatButtonModule
187
- ], selector: 'app-library-metadata-form', encapsulation: ViewEncapsulation.None, template: "<mat-card *ngIf=\"node\">\n <mat-card-content *ngIf=\"!edit\">\n <div class=\"mat-form-field mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-name-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.title.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-id-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.id.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-visibility-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ visibilityLabel | translate }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-description-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.description?.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"!edit && canUpdateLibrary\">\n <button mat-button color=\"primary\" (click)=\"toggleEdit()\">\n {{ 'LIBRARY.DIALOG.EDIT' | translate }}\n </button>\n </mat-card-actions>\n\n <mat-card-content *ngIf=\"edit\">\n <form [formGroup]=\"form\" autocomplete=\"off\">\n <mat-form-field floatLabel=\"auto\">\n <input\n matInput\n cdkFocusInitial\n required\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\"\n formControlName=\"title\"\n [errorStateMatcher]=\"matcher\"\n />\n <mat-hint *ngIf=\"libraryTitleExists\">{{ 'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate }}</mat-hint>\n <mat-error>\n {{ titleErrorTranslationKey | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\">\n <input matInput placeholder=\"{{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\" formControlName=\"id\" />\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\">\n <mat-select placeholder=\"{{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\" formControlName=\"visibility\">\n <mat-option [value]=\"type.value\" *ngFor=\"let type of libraryType\">\n {{ type.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\">\n <textarea\n matInput\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\"\n rows=\"3\"\n formControlName=\"description\"\n [errorStateMatcher]=\"matcher\"\n ></textarea>\n <mat-error>\n {{ 'LIBRARY.ERRORS.DESCRIPTION_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n </form>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"edit && canUpdateLibrary\">\n <button mat-button (click)=\"cancel()\">\n {{ 'LIBRARY.DIALOG.CANCEL' | translate }}\n </button>\n <button mat-button color=\"primary\" [disabled]=\"form.invalid || form.pristine\" (click)=\"update()\">\n {{ 'LIBRARY.DIALOG.UPDATE' | translate }}\n </button>\n </mat-card-actions>\n</mat-card>\n", styles: ["app-library-metadata-form .mat-form-field{width:100%}app-library-metadata-form .mat-form-field-infix{position:relative;width:180px}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper{position:absolute;width:100%;pointer-events:none}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper .mat-form-field-label{position:absolute;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0}\n"] }]
194
+ ], selector: 'app-library-metadata-form', encapsulation: ViewEncapsulation.None, template: "<mat-card *ngIf=\"node\">\n <mat-card-content>\n <form [formGroup]=\"form\" autocomplete=\"off\">\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-name-properties-wrapper\">\n <input\n matInput\n [cdkTrapFocusAutoCapture]=\"form.enabled\"\n [cdkTrapFocus]=\"form.enabled\"\n required\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\"\n formControlName=\"title\"\n [errorStateMatcher]=\"matcher\"\n />\n <mat-hint *ngIf=\"libraryTitleExists\">{{ 'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate }}</mat-hint>\n <mat-error>\n {{ titleErrorTranslationKey | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-id-properties-wrapper\">\n <input matInput placeholder=\"{{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\" formControlName=\"id\" />\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-visibility-properties-wrapper\">\n <mat-select placeholder=\"{{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\" formControlName=\"visibility\">\n <mat-option [value]=\"type.value\" *ngFor=\"let type of libraryType\">\n {{ type.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-description-properties-wrapper\">\n <textarea\n matInput\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\"\n rows=\"3\"\n formControlName=\"description\"\n [errorStateMatcher]=\"matcher\"\n ></textarea>\n <mat-error>\n {{ 'LIBRARY.ERRORS.DESCRIPTION_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n </form>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"canUpdateLibrary\">\n <ng-container *ngIf=\"form.enabled\">\n <button mat-button (click)=\"cancel()\">\n {{ 'LIBRARY.DIALOG.CANCEL' | translate }}\n </button>\n <button mat-button color=\"primary\" [disabled]=\"form.invalid || form.pristine\" (click)=\"update()\">\n {{ 'LIBRARY.DIALOG.UPDATE' | translate }}\n </button>\n </ng-container>\n <button mat-button color=\"primary\" (click)=\"toggleEdit()\" *ngIf=\"form.disabled\">\n {{ 'LIBRARY.DIALOG.EDIT' | translate }}\n </button>\n </mat-card-actions>\n</mat-card>\n", styles: ["app-library-metadata-form .mat-form-field{width:100%}app-library-metadata-form .mat-form-field-infix{position:relative;width:180px}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper{position:absolute;width:100%;pointer-events:none}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper .mat-form-field-label{position:absolute;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0}\n"] }]
188
195
  }], ctorParameters: function () { return [{ type: i1.AlfrescoApiService }, { type: i2.Store }, { type: i3.Actions }]; }, propDecorators: { node: [{
189
196
  type: Input
190
197
  }] } });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS1tZXRhZGF0YS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9pbmZvLWRyYXdlci9saWJyYXJ5LW1ldGFkYXRhLXRhYi9saWJyYXJ5LW1ldGFkYXRhLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL2luZm8tZHJhd2VyL2xpYnJhcnktbWV0YWRhdGEtdGFiL2xpYnJhcnktbWV0YWRhdGEtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFnQyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixVQUFVLEVBR1YsV0FBVyxFQUNYLG1CQUFtQixFQUdwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBR0wsbUJBQW1CLEVBR25CLG1CQUFtQixFQUNwQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQWMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVB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Q2YsY0FBYywyV0FDZCxVQUFVLDhCQUNWLGVBQWU7MkZBT04sNEJBQTRCO2tCQXBCeEMsU0FBUztpQ0FDSSxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsVUFBVTt3QkFDVixlQUFlO3FCQUNoQixZQUNTLDJCQUEyQixpQkFHdEIsaUJBQWlCLENBQUMsSUFBSTttSkFnQnJDLElBQUk7c0JBREgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyMyBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgVW50eXBlZEZvcm1Hcm91cCxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBWYWxpZGF0b3JzLFxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gIE5nRm9ybSxcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIEZvcm1Db250cm9sLFxuICBWYWxpZGF0aW9uRXJyb3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFF1ZXJpZXNBcGksIFNpdGVFbnRyeSwgU2l0ZVBhZ2luZyB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBcHBTdG9yZSxcbiAgU25hY2tiYXJBY3Rpb24sXG4gIFNuYWNrYmFyQWN0aW9uVHlwZXMsXG4gIFNuYWNrYmFyRXJyb3JBY3Rpb24sXG4gIFNuYWNrYmFySW5mb0FjdGlvbixcbiAgVXBkYXRlTGlicmFyeUFjdGlvblxufSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWVyZ2VNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFsZnJlc2NvQXBpU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciwgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgQWN0aW9ucywgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5cbmV4cG9ydCBjbGFzcyBJbnN0YW50RXJyb3JTdGF0ZU1hdGNoZXIgaW1wbGVtZW50cyBFcnJvclN0YXRlTWF0Y2hlciB7XG4gIGlzRXJyb3JTdGF0ZShjb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgfCBudWxsLCBmb3JtOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNTdWJtaXR0ZWQgPSBmb3JtICYmIGZvcm0uc3VibWl0dGVkO1xuICAgIHJldHVybiAhIShjb250cm9sICYmIGNvbnRyb2wuaW52YWxpZCAmJiAoY29udHJvbC5kaXJ0eSB8fCBjb250cm9sLnRvdWNoZWQgfHwgaXNTdWJtaXR0ZWQpKTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRDYXJkTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIEExMXlNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlXG4gIF0sXG4gIHNlbGVjdG9yOiAnYXBwLWxpYnJhcnktbWV0YWRhdGEtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9saWJyYXJ5LW1ldGFkYXRhLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saWJyYXJ5LW1ldGFkYXRhLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBMaWJyYXJ5TWV0YWRhdGFGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3F1ZXJpZXNBcGk6IFF1ZXJpZXNBcGk7XG4gIHByaXZhdGUgX3RpdGxlRXJyb3JUcmFuc2xhdGlvbktleTogc3RyaW5nO1xuXG4gIGdldCBxdWVyaWVzQXBpKCk6IFF1ZXJpZXNBcGkge1xuICAgIHRoaXMuX3F1ZXJpZXNBcGkgPSB0aGlzLl9xdWVyaWVzQXBpID8/IG5ldyBRdWVyaWVzQXBpKHRoaXMuYWxmcmVzY29BcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgIHJldHVybiB0aGlzLl9xdWVyaWVzQXBpO1xuICB9XG5cbiAgZ2V0IHRpdGxlRXJyb3JUcmFuc2xhdGlvbktleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90aXRsZUVycm9yVHJhbnNsYXRpb25LZXk7XG4gIH1cblxuICBASW5wdXQoKVxuICBub2RlOiBTaXRlRW50cnk7XG5cbiAgZWRpdDogYm9vbGVhbjtcbiAgbGlicmFyeVRpdGxlRXhpc3RzID0gZmFsc2U7XG5cbiAgbGlicmFyeVR5cGUgPSBbXG4gICAgeyB2YWx1ZTogJ1BVQkxJQycsIGxhYmVsOiAnTElCUkFSWS5WSVNJQklMSVRZLlBVQkxJQycgfSxcbiAgICB7IHZhbHVlOiAnUFJJVkFURScsIGxhYmVsOiAnTElCUkFSWS5WSVNJQklMSVRZLlBSSVZBVEUnIH0sXG4gICAgeyB2YWx1ZTogJ01PREVSQVRFRCcsIGxhYmVsOiAnTElCUkFSWS5WSVNJQklMSVRZLk1PREVSQVRFRCcgfVxuICBdO1xuXG4gIGZvcm06IFVudHlwZWRGb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgaWQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0cnVlIH0pLFxuICAgIHRpdGxlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6ICcnIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpLCB0aGlzLnZhbGlkYXRlRW1wdHlOYW1lXSksXG4gICAgZGVzY3JpcHRpb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woeyB2YWx1ZTogJycgfSwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDUxMildKSxcbiAgICB2aXNpYmlsaXR5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMubGlicmFyeVR5cGVbMF0udmFsdWUpXG4gIH0pO1xuXG4gIG1hdGNoZXIgPSBuZXcgSW5zdGFudEVycm9yU3RhdGVNYXRjaGVyKCk7XG4gIGNhblVwZGF0ZUxpYnJhcnkgPSBmYWxzZTtcbiAgdmlzaWJpbGl0eUxhYmVsID0gJyc7XG5cbiAgb25EZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbGZyZXNjb0FwaVNlcnZpY2U6IEFsZnJlc2NvQXBpU2VydmljZSwgcHJvdGVjdGVkIHN0b3JlOiBTdG9yZTxBcHBTdG9yZT4sIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMpIHt9XG4gIGdldFZpc2liaWxpdHlMYWJlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubGlicmFyeVR5cGUuZmluZCgodHlwZSkgPT4gdHlwZS52YWx1ZSA9PT0gdmFsdWUpLmxhYmVsO1xuICB9XG5cbiAgdG9nZ2xlRWRpdCgpIHtcbiAgICB0aGlzLmVkaXQgPSAhdGhpcy5lZGl0O1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMudXBkYXRlRm9ybSh0aGlzLm5vZGUpO1xuICAgIHRoaXMudG9nZ2xlRWRpdCgpO1xuICAgIHRoaXMuZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVGb3JtKHRoaXMubm9kZSk7XG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLnRpdGxlLnN0YXR1c0NoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAodGhpcy5fdGl0bGVFcnJvclRyYW5zbGF0aW9uS2V5ID0gdGhpcy5mb3JtLmNvbnRyb2xzLnRpdGxlLmVycm9ycz8uZW1wdHlcbiAgICAgICAgICAgID8gJ0xJQlJBUlkuRVJST1JTLk9OTFlfU1BBQ0VTJ1xuICAgICAgICAgICAgOiAnTElCUkFSWS5FUlJPUlMuVElUTEVfVE9PX0xPTkdfT1JfTUlTU0lORycpXG4gICAgICApO1xuICAgIHRoaXMuZm9ybS5jb250cm9sc1sndGl0bGUnXS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgICAgbWVyZ2VNYXAoKHRpdGxlKSA9PiB0aGlzLmZpbmRMaWJyYXJ5QnlUaXRsZSh0aXRsZSkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZW50cmllcyB9ID0gcmVzdWx0Lmxpc3Q7XG5cbiAgICAgICAgaWYgKGVudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9scy50aXRsZS52YWx1ZSA9PT0gdGhpcy5ub2RlLmVudHJ5LnRpdGxlKSB7XG4gICAgICAgICAgICB0aGlzLmxpYnJhcnlUaXRsZUV4aXN0cyA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxpYnJhcnlUaXRsZUV4aXN0cyA9IHRoaXMuZm9ybS5jb250cm9scy50aXRsZS52YWx1ZSA9PT0gZW50cmllc1swXS5lbnRyeS50aXRsZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5saWJyYXJ5VGl0bGVFeGlzdHMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy5jYW5VcGRhdGVMaWJyYXJ5ID0gdGhpcy5ub2RlPy5lbnRyeT8ucm9sZSA9PT0gJ1NpdGVNYW5hZ2VyJztcbiAgICB0aGlzLnZpc2liaWxpdHlMYWJlbCA9IHRoaXMubGlicmFyeVR5cGUuZmluZCgodHlwZSkgPT4gdHlwZS52YWx1ZSA9PT0gdGhpcy5mb3JtLmNvbnRyb2xzWyd2aXNpYmlsaXR5J10udmFsdWUpLmxhYmVsO1xuICAgIHRoaXMuaGFuZGxlVXBkYXRpbmdFdmVudDxTbmFja2JhckluZm9BY3Rpb24+KFNuYWNrYmFyQWN0aW9uVHlwZXMuSW5mbywgJ0xJQlJBUlkuU1VDQ0VTUy5MSUJSQVJZX1VQREFURUQnLCAoKSA9PlxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm5vZGUuZW50cnksIHRoaXMuZm9ybS52YWx1ZSlcbiAgICApO1xuICAgIHRoaXMuaGFuZGxlVXBkYXRpbmdFdmVudDxTbmFja2JhckVycm9yQWN0aW9uPihTbmFja2JhckFjdGlvblR5cGVzLkVycm9yLCAnTElCUkFSWS5FUlJPUlMuTElCUkFSWV9VUERBVEVfRVJST1InLCAoKSA9PiB0aGlzLmZvcm0ubWFya0FzRGlydHkoKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMudXBkYXRlRm9ybSh0aGlzLm5vZGUpO1xuICB9XG5cbiAgdXBkYXRlKCkge1xuICAgIGlmICh0aGlzLmNhblVwZGF0ZUxpYnJhcnkgJiYgdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIG5ldyBVcGRhdGVMaWJyYXJ5QWN0aW9uKHtcbiAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXG4gICAgICAgICAgdGl0bGU6IHRoaXMuZm9ybS52YWx1ZS50aXRsZS50cmltKClcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb3JtKG5vZGU6IFNpdGVFbnRyeSkge1xuICAgIGNvbnN0IHsgZW50cnkgfSA9IG5vZGU7XG5cbiAgICB0aGlzLmZvcm0uc2V0VmFsdWUoe1xuICAgICAgaWQ6IGVudHJ5LmlkLFxuICAgICAgdGl0bGU6IGVudHJ5LnRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IGVudHJ5LmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgdmlzaWJpbGl0eTogZW50cnkudmlzaWJpbGl0eVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTGlicmFyeUJ5VGl0bGUobGlicmFyeVRpdGxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNpdGVQYWdpbmcgfCB7IGxpc3Q6IHsgZW50cmllczogYW55W10gfSB9PiB7XG4gICAgcmV0dXJuIGZyb20oXG4gICAgICB0aGlzLnF1ZXJpZXNBcGlcbiAgICAgICAgLmZpbmRTaXRlcyhsaWJyYXJ5VGl0bGUudHJpbSgpLCB7XG4gICAgICAgICAgbWF4SXRlbXM6IDEsXG4gICAgICAgICAgZmllbGRzOiBbJ3RpdGxlJ11cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKCgpID0+ICh7IGxpc3Q6IHsgZW50cmllczogW10gfSB9KSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVVcGRhdGluZ0V2ZW50PFQgZXh0ZW5kcyBTbmFja2JhckFjdGlvbj4oYWN0aW9uVHlwZTogU25hY2tiYXJBY3Rpb25UeXBlcywgcGF5bG9hZDogc3RyaW5nLCBoYW5kbGU6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgb2ZUeXBlPFQ+KGFjdGlvblR5cGUpLFxuICAgICAgICBmaWx0ZXIoKGFjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQgPT09IHBheWxvYWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShoYW5kbGUpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUVtcHR5TmFtZShjb250cm9sOiBGb3JtQ29udHJvbDxzdHJpbmc+KTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgcmV0dXJuIGNvbnRyb2wudmFsdWUubGVuZ3RoICYmICFjb250cm9sLnZhbHVlLnRyaW0oKSA/IHsgZW1wdHk6IHRydWUgfSA6IG51bGw7XG4gIH1cbn1cbiIsIjxtYXQtY2FyZCAqbmdJZj1cIm5vZGVcIj5cbiAgPG1hdC1jYXJkLWNvbnRlbnQgKm5nSWY9XCIhZWRpdFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZCBtYXQtZm9ybS1maWVsZC10eXBlLW1hdC1pbnB1dCBtYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtd3JhcHBlclwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImxpYnJhcnktbmFtZS1wcm9wZXJ0aWVzLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWZsZXhcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtaW5maXhcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAge3sgJ0xJQlJBUlkuRElBTE9HLkZPUk0uTkFNRScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1pbnB1dC1lbGVtZW50XCI+XG4gICAgICAgICAgICAgIHt7IGZvcm0uY29udHJvbHMudGl0bGUudmFsdWUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZCBtYXQtcHJpbWFyeSBtYXQtZm9ybS1maWVsZC10eXBlLW1hdC1pbnB1dCBtYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtd3JhcHBlclwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImxpYnJhcnktaWQtcHJvcGVydGllcy13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1mbGV4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWluZml4XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgIHt7ICdMSUJSQVJZLkRJQUxPRy5GT1JNLlNJVEVfSUQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtaW5wdXQtZWxlbWVudFwiPlxuICAgICAgICAgICAgICB7eyBmb3JtLmNvbnRyb2xzLmlkLnZhbHVlIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQgbWF0LXByaW1hcnkgbWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtaW5wdXQgbWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJsaWJyYXJ5LXZpc2liaWxpdHktcHJvcGVydGllcy13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1mbGV4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWluZml4XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgIHt7ICdMSUJSQVJZLkRJQUxPRy5GT1JNLlZJU0lCSUxJVFknIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtaW5wdXQtZWxlbWVudFwiPlxuICAgICAgICAgICAgICB7eyB2aXNpYmlsaXR5TGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZCBtYXQtcHJpbWFyeSBtYXQtZm9ybS1maWVsZC10eXBlLW1hdC1pbnB1dCBtYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtd3JhcHBlclwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImxpYnJhcnktZGVzY3JpcHRpb24tcHJvcGVydGllcy13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1mbGV4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWluZml4XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgIHt7ICdMSUJSQVJZLkRJQUxPRy5GT1JNLkRFU0NSSVBUSU9OJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWlucHV0LWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAge3sgZm9ybS5jb250cm9scy5kZXNjcmlwdGlvbj8udmFsdWUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuXG4gIDxtYXQtY2FyZC1hY3Rpb25zIGFsaWduPVwiZW5kXCIgKm5nSWY9XCIhZWRpdCAmJiBjYW5VcGRhdGVMaWJyYXJ5XCI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJ0b2dnbGVFZGl0KClcIj5cbiAgICAgIHt7ICdMSUJSQVJZLkRJQUxPRy5FRElUJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1jYXJkLWFjdGlvbnM+XG5cbiAgPG1hdC1jYXJkLWNvbnRlbnQgKm5nSWY9XCJlZGl0XCI+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImF1dG9cIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICBjZGtGb2N1c0luaXRpYWxcbiAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ0xJQlJBUlkuRElBTE9HLkZPUk0uTkFNRScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCJcbiAgICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwibWF0Y2hlclwiXG4gICAgICAgIC8+XG4gICAgICAgIDxtYXQtaGludCAqbmdJZj1cImxpYnJhcnlUaXRsZUV4aXN0c1wiPnt7ICdMSUJSQVJZLkhJTlRTLlNJVEVfVElUTEVfRVhJU1RTJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWhpbnQ+XG4gICAgICAgIDxtYXQtZXJyb3I+XG4gICAgICAgICAge3sgdGl0bGVFcnJvclRyYW5zbGF0aW9uS2V5IHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhdXRvXCI+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cInt7ICdMSUJSQVJZLkRJQUxPRy5GT1JNLlNJVEVfSUQnIHwgdHJhbnNsYXRlIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwiaWRcIiAvPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhdXRvXCI+XG4gICAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwie3sgJ0xJQlJBUlkuRElBTE9HLkZPUk0uVklTSUJJTElUWScgfCB0cmFuc2xhdGUgfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJ2aXNpYmlsaXR5XCI+XG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInR5cGUudmFsdWVcIiAqbmdGb3I9XCJsZXQgdHlwZSBvZiBsaWJyYXJ5VHlwZVwiPlxuICAgICAgICAgICAge3sgdHlwZS5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhdXRvXCI+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnTElCUkFSWS5ESUFMT0cuRk9STS5ERVNDUklQVElPTicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIHJvd3M9XCIzXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cIm1hdGNoZXJcIlxuICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgPG1hdC1lcnJvcj5cbiAgICAgICAgICB7eyAnTElCUkFSWS5FUlJPUlMuREVTQ1JJUFRJT05fVE9PX0xPTkcnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Zvcm0+XG4gIDwvbWF0LWNhcmQtY29udGVudD5cblxuICA8bWF0LWNhcmQtYWN0aW9ucyBhbGlnbj1cImVuZFwiICpuZ0lmPVwiZWRpdCAmJiBjYW5VcGRhdGVMaWJyYXJ5XCI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJjYW5jZWwoKVwiPlxuICAgICAge3sgJ0xJQlJBUlkuRElBTE9HLkNBTkNFTCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZCB8fCBmb3JtLnByaXN0aW5lXCIgKGNsaWNrKT1cInVwZGF0ZSgpXCI+XG4gICAgICB7eyAnTElCUkFSWS5ESUFMT0cuVVBEQVRFJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1jYXJkLWFjdGlvbnM+XG48L21hdC1jYXJkPlxuIl19
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS1tZXRhZGF0YS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9pbmZvLWRyYXdlci9saWJyYXJ5LW1ldGFkYXRhLXRhYi9saWJyYXJ5LW1ldGFkYXRhLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL2luZm8tZHJhd2VyL2xpYnJhcnktbWV0YWRhdGEtdGFiL2xpYnJhcnktbWV0YWRhdGEtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFnQyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixVQUFVLEVBR1YsV0FBVyxFQUNYLG1CQUFtQixFQUdwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBR0wsbUJBQW1CLEVBR25CLG1CQUFtQixFQUNwQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQWMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQXFCLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBRWhELE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFBWSxDQUFDLE9BQWtDLEVBQUUsSUFBd0M7UUFDdkYsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDM0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7Q0FDRjtBQXNCRCxNQUFNLE9BQU8sNEJBQTRCO0lBb0N2QyxZQUFvQixrQkFBc0MsRUFBWSxLQUFzQixFQUFVLFFBQWlCO1FBQW5HLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBWSxVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVM7UUFwQnZILHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUUzQixnQkFBVyxHQUFHO1lBQ1osRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTtZQUN2RCxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLDRCQUE0QixFQUFFO1lBQ3pELEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsOEJBQThCLEVBQUU7U0FDOUQsQ0FBQztRQUVGLFNBQUksR0FBcUIsSUFBSSxnQkFBZ0IsQ0FBQztZQUM1QyxFQUFFLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3pELEtBQUssRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3RILFdBQVcsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQy9FLFVBQVUsRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQzlELENBQUMsQ0FBQztRQUVILFlBQU8sR0FBRyxJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFDekMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLGVBQVUsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUVvRSxDQUFDO0lBaEMzSCxJQUFJLFVBQVU7UUFDWixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDN0YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLHdCQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztJQUN4QyxDQUFDO0lBMkJELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUNoQixTQUFTLEVBQUUsS0FBSzthQUNqQixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ2YsU0FBUyxFQUFFLEtBQUs7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYTthQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxTQUFTLENBQ1IsR0FBRyxFQUFFLENBQ0gsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLO1lBQ3RFLENBQUMsQ0FBQyw0QkFBNEI7WUFDOUIsQ0FBQyxDQUFDLDBDQUEwQyxDQUFDLENBQ2xELENBQUM7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZO2FBQ3JDLElBQUksQ0FDSCxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFFBQVEsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ25ELFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFFaEMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUNsQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO29CQUM1RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO2lCQUNqQztxQkFBTTtvQkFDTCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztpQkFDckY7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO2FBQ2pDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxLQUFLLGFBQWEsQ0FBQztRQUNqRSxJQUFJLENBQUMsbUJBQW1CLENBQXFCLG1CQUFtQixDQUFDLElBQUksRUFBRSxpQ0FBaUMsRUFBRSxHQUFHLEVBQUUsQ0FDN0csTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUNoRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFzQixtQkFBbUIsQ0FBQyxLQUFLLEVBQUUscUNBQXFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2pKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsSUFBSSxtQkFBbUIsQ0FBQztnQkFDdEIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7Z0JBQ2xCLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO2FBQ3BDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU8sVUFBVSxDQUFDLElBQWU7UUFDaEMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQztRQUV2QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNqQixFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDWixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksRUFBRTtZQUNwQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFlBQW9CO1FBQzdDLE9BQU8sSUFBSSxDQUNULElBQUksQ0FBQyxVQUFVO2FBQ1osU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM5QixRQUFRLEVBQUUsQ0FBQztZQUNYLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQztTQUNsQixDQUFDO2FBQ0QsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQzVDLENBQUM7SUFDSixDQUFDO0lBRU8sbUJBQW1CLENBQTJCLFVBQStCLEVBQUUsT0FBZSxFQUFFLE1BQWtCO1FBQ3hILElBQUksQ0FBQyxRQUFRO2FBQ1YsSUFBSSxDQUNILE1BQU0sQ0FBSSxVQUFVLENBQUMsRUFDckIsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxFQUM5QyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzQjthQUNBLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBNEI7UUFDcEQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDaEYsQ0FBQzs7eUhBckpVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLG9JQ3ZGekMsOC9FQTREQSxrZ0JEVUksWUFBWSwrUEFDWixhQUFhLHVXQUNiLGVBQWUsMkZBQ2Ysa0JBQWtCLCtYQUNsQixXQUFXLHczQkFDWCxtQkFBbUIsK1VBQ25CLGVBQWUsMFFBQ2YsZUFBZSw4QkFDZixjQUFjLDJXQUNkLFVBQVUsMExBQ1YsZUFBZTsyRkFPTiw0QkFBNEI7a0JBcEJ4QyxTQUFTO2lDQUNJLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxVQUFVO3dCQUNWLGVBQWU7cUJBQ2hCLFlBQ1MsMkJBQTJCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJO21KQWdCckMsSUFBSTtzQkFESCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBVbnR5cGVkRm9ybUdyb3VwLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFZhbGlkYXRvcnMsXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgTmdGb3JtLFxuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgRm9ybUNvbnRyb2wsXG4gIFZhbGlkYXRpb25FcnJvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUXVlcmllc0FwaSwgU2l0ZUVudHJ5LCBTaXRlUGFnaW5nIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEFwcFN0b3JlLFxuICBTbmFja2JhckFjdGlvbixcbiAgU25hY2tiYXJBY3Rpb25UeXBlcyxcbiAgU25hY2tiYXJFcnJvckFjdGlvbixcbiAgU25hY2tiYXJJbmZvQWN0aW9uLFxuICBVcGRhdGVMaWJyYXJ5QWN0aW9uXG59IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBtZXJnZU1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyLCBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBBY3Rpb25zLCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcblxuZXhwb3J0IGNsYXNzIEluc3RhbnRFcnJvclN0YXRlTWF0Y2hlciBpbXBsZW1lbnRzIEVycm9yU3RhdGVNYXRjaGVyIHtcbiAgaXNFcnJvclN0YXRlKGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc1N1Ym1pdHRlZCA9IGZvcm0gJiYgZm9ybS5zdWJtaXR0ZWQ7XG4gICAgcmV0dXJuICEhKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCB8fCBpc1N1Ym1pdHRlZCkpO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdENhcmRNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgQTExeU1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGVcbiAgXSxcbiAgc2VsZWN0b3I6ICdhcHAtbGlicmFyeS1tZXRhZGF0YS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYnJhcnktbWV0YWRhdGEtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpYnJhcnktbWV0YWRhdGEtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIExpYnJhcnlNZXRhZGF0YUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfcXVlcmllc0FwaTogUXVlcmllc0FwaTtcbiAgcHJpdmF0ZSBfdGl0bGVFcnJvclRyYW5zbGF0aW9uS2V5OiBzdHJpbmc7XG5cbiAgZ2V0IHF1ZXJpZXNBcGkoKTogUXVlcmllc0FwaSB7XG4gICAgdGhpcy5fcXVlcmllc0FwaSA9IHRoaXMuX3F1ZXJpZXNBcGkgPz8gbmV3IFF1ZXJpZXNBcGkodGhpcy5hbGZyZXNjb0FwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJpZXNBcGk7XG4gIH1cblxuICBnZXQgdGl0bGVFcnJvclRyYW5zbGF0aW9uS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RpdGxlRXJyb3JUcmFuc2xhdGlvbktleTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIG5vZGU6IFNpdGVFbnRyeTtcblxuICBsaWJyYXJ5VGl0bGVFeGlzdHMgPSBmYWxzZTtcblxuICBsaWJyYXJ5VHlwZSA9IFtcbiAgICB7IHZhbHVlOiAnUFVCTElDJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuUFVCTElDJyB9LFxuICAgIHsgdmFsdWU6ICdQUklWQVRFJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuUFJJVkFURScgfSxcbiAgICB7IHZhbHVlOiAnTU9ERVJBVEVEJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuTU9ERVJBVEVEJyB9XG4gIF07XG5cbiAgZm9ybTogVW50eXBlZEZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBpZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfSksXG4gICAgdGl0bGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woeyB2YWx1ZTogJycgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NiksIHRoaXMudmFsaWRhdGVFbXB0eU5hbWVdKSxcbiAgICBkZXNjcmlwdGlvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiAnJyB9LCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTEyKV0pLFxuICAgIHZpc2liaWxpdHk6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy5saWJyYXJ5VHlwZVswXS52YWx1ZSlcbiAgfSk7XG5cbiAgbWF0Y2hlciA9IG5ldyBJbnN0YW50RXJyb3JTdGF0ZU1hdGNoZXIoKTtcbiAgY2FuVXBkYXRlTGlicmFyeSA9IGZhbHNlO1xuXG4gIG9uRGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWxmcmVzY29BcGlTZXJ2aWNlOiBBbGZyZXNjb0FwaVNlcnZpY2UsIHByb3RlY3RlZCBzdG9yZTogU3RvcmU8QXBwU3RvcmU+LCBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zKSB7fVxuXG4gIHRvZ2dsZUVkaXQoKSB7XG4gICAgaWYgKHRoaXMuZm9ybS5lbmFibGVkKSB7XG4gICAgICB0aGlzLmZvcm0uZGlzYWJsZSh7XG4gICAgICAgIGVtaXRFdmVudDogZmFsc2VcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm0uZW5hYmxlKHtcbiAgICAgICAgZW1pdEV2ZW50OiBmYWxzZVxuICAgICAgfSk7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuaWQuZGlzYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLnVwZGF0ZUZvcm0odGhpcy5ub2RlKTtcbiAgICB0aGlzLnRvZ2dsZUVkaXQoKTtcbiAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudG9nZ2xlRWRpdCgpO1xuICAgIHRoaXMudXBkYXRlRm9ybSh0aGlzLm5vZGUpO1xuICAgIHRoaXMuZm9ybS5jb250cm9scy50aXRsZS5zdGF0dXNDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+XG4gICAgICAgICAgKHRoaXMuX3RpdGxlRXJyb3JUcmFuc2xhdGlvbktleSA9IHRoaXMuZm9ybS5jb250cm9scy50aXRsZS5lcnJvcnM/LmVtcHR5XG4gICAgICAgICAgICA/ICdMSUJSQVJZLkVSUk9SUy5PTkxZX1NQQUNFUydcbiAgICAgICAgICAgIDogJ0xJQlJBUlkuRVJST1JTLlRJVExFX1RPT19MT05HX09SX01JU1NJTkcnKVxuICAgICAgKTtcbiAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3RpdGxlJ10udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICAgIG1lcmdlTWFwKCh0aXRsZSkgPT4gdGhpcy5maW5kTGlicmFyeUJ5VGl0bGUodGl0bGUpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICBjb25zdCB7IGVudHJpZXMgfSA9IHJlc3VsdC5saXN0O1xuXG4gICAgICAgIGlmIChlbnRyaWVzLmxlbmd0aCkge1xuICAgICAgICAgIGlmICh0aGlzLmZvcm0uY29udHJvbHMudGl0bGUudmFsdWUgPT09IHRoaXMubm9kZS5lbnRyeS50aXRsZSkge1xuICAgICAgICAgICAgdGhpcy5saWJyYXJ5VGl0bGVFeGlzdHMgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5saWJyYXJ5VGl0bGVFeGlzdHMgPSB0aGlzLmZvcm0uY29udHJvbHMudGl0bGUudmFsdWUgPT09IGVudHJpZXNbMF0uZW50cnkudGl0bGU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubGlicmFyeVRpdGxlRXhpc3RzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuY2FuVXBkYXRlTGlicmFyeSA9IHRoaXMubm9kZT8uZW50cnk/LnJvbGUgPT09ICdTaXRlTWFuYWdlcic7XG4gICAgdGhpcy5oYW5kbGVVcGRhdGluZ0V2ZW50PFNuYWNrYmFySW5mb0FjdGlvbj4oU25hY2tiYXJBY3Rpb25UeXBlcy5JbmZvLCAnTElCUkFSWS5TVUNDRVNTLkxJQlJBUllfVVBEQVRFRCcsICgpID0+XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMubm9kZS5lbnRyeSwgdGhpcy5mb3JtLnZhbHVlKVxuICAgICk7XG4gICAgdGhpcy5oYW5kbGVVcGRhdGluZ0V2ZW50PFNuYWNrYmFyRXJyb3JBY3Rpb24+KFNuYWNrYmFyQWN0aW9uVHlwZXMuRXJyb3IsICdMSUJSQVJZLkVSUk9SUy5MSUJSQVJZX1VQREFURV9FUlJPUicsICgpID0+IHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KHRydWUpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy51cGRhdGVGb3JtKHRoaXMubm9kZSk7XG4gIH1cblxuICB1cGRhdGUoKSB7XG4gICAgaWYgKHRoaXMuY2FuVXBkYXRlTGlicmFyeSAmJiB0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgbmV3IFVwZGF0ZUxpYnJhcnlBY3Rpb24oe1xuICAgICAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcbiAgICAgICAgICB0aXRsZTogdGhpcy5mb3JtLnZhbHVlLnRpdGxlLnRyaW0oKVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUZvcm0obm9kZTogU2l0ZUVudHJ5KSB7XG4gICAgY29uc3QgeyBlbnRyeSB9ID0gbm9kZTtcblxuICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh7XG4gICAgICBpZDogZW50cnkuaWQsXG4gICAgICB0aXRsZTogZW50cnkudGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbjogZW50cnkuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB2aXNpYmlsaXR5OiBlbnRyeS52aXNpYmlsaXR5XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRMaWJyYXJ5QnlUaXRsZShsaWJyYXJ5VGl0bGU6IHN0cmluZyk6IE9ic2VydmFibGU8U2l0ZVBhZ2luZyB8IHsgbGlzdDogeyBlbnRyaWVzOiBhbnlbXSB9IH0+IHtcbiAgICByZXR1cm4gZnJvbShcbiAgICAgIHRoaXMucXVlcmllc0FwaVxuICAgICAgICAuZmluZFNpdGVzKGxpYnJhcnlUaXRsZS50cmltKCksIHtcbiAgICAgICAgICBtYXhJdGVtczogMSxcbiAgICAgICAgICBmaWVsZHM6IFsndGl0bGUnXVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKCkgPT4gKHsgbGlzdDogeyBlbnRyaWVzOiBbXSB9IH0pKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVVwZGF0aW5nRXZlbnQ8VCBleHRlbmRzIFNuYWNrYmFyQWN0aW9uPihhY3Rpb25UeXBlOiBTbmFja2JhckFjdGlvblR5cGVzLCBwYXlsb2FkOiBzdHJpbmcsIGhhbmRsZTogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBvZlR5cGU8VD4oYWN0aW9uVHlwZSksXG4gICAgICAgIGZpbHRlcigoYWN0aW9uKSA9PiBhY3Rpb24ucGF5bG9hZCA9PT0gcGF5bG9hZCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGhhbmRsZSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRW1wdHlOYW1lKGNvbnRyb2w6IEZvcm1Db250cm9sPHN0cmluZz4pOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICByZXR1cm4gY29udHJvbC52YWx1ZS5sZW5ndGggJiYgIWNvbnRyb2wudmFsdWUudHJpbSgpID8geyBlbXB0eTogdHJ1ZSB9IDogbnVsbDtcbiAgfVxufVxuIiwiPG1hdC1jYXJkICpuZ0lmPVwibm9kZVwiPlxuICA8bWF0LWNhcmQtY29udGVudD5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYXV0b1wiIGRhdGEtYXV0b21hdGlvbi1pZD1cImxpYnJhcnktbmFtZS1wcm9wZXJ0aWVzLXdyYXBwZXJcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICBbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwiZm9ybS5lbmFibGVkXCJcbiAgICAgICAgICBbY2RrVHJhcEZvY3VzXT1cImZvcm0uZW5hYmxlZFwiXG4gICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdMSUJSQVJZLkRJQUxPRy5GT1JNLk5BTUUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiXG4gICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cIm1hdGNoZXJcIlxuICAgICAgICAvPlxuICAgICAgICA8bWF0LWhpbnQgKm5nSWY9XCJsaWJyYXJ5VGl0bGVFeGlzdHNcIj57eyAnTElCUkFSWS5ISU5UUy5TSVRFX1RJVExFX0VYSVNUUycgfCB0cmFuc2xhdGUgfX08L21hdC1oaW50PlxuICAgICAgICA8bWF0LWVycm9yPlxuICAgICAgICAgIHt7IHRpdGxlRXJyb3JUcmFuc2xhdGlvbktleSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYXV0b1wiIGRhdGEtYXV0b21hdGlvbi1pZD1cImxpYnJhcnktaWQtcHJvcGVydGllcy13cmFwcGVyXCI+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cInt7ICdMSUJSQVJZLkRJQUxPRy5GT1JNLlNJVEVfSUQnIHwgdHJhbnNsYXRlIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwiaWRcIiAvPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhdXRvXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwibGlicmFyeS12aXNpYmlsaXR5LXByb3BlcnRpZXMtd3JhcHBlclwiPlxuICAgICAgICA8bWF0LXNlbGVjdCBwbGFjZWhvbGRlcj1cInt7ICdMSUJSQVJZLkRJQUxPRy5GT1JNLlZJU0lCSUxJVFknIHwgdHJhbnNsYXRlIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwidmlzaWJpbGl0eVwiPlxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ0eXBlLnZhbHVlXCIgKm5nRm9yPVwibGV0IHR5cGUgb2YgbGlicmFyeVR5cGVcIj5cbiAgICAgICAgICAgIHt7IHR5cGUubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYXV0b1wiIGRhdGEtYXV0b21hdGlvbi1pZD1cImxpYnJhcnktZGVzY3JpcHRpb24tcHJvcGVydGllcy13cmFwcGVyXCI+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnTElCUkFSWS5ESUFMT0cuRk9STS5ERVNDUklQVElPTicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIHJvd3M9XCIzXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cIm1hdGNoZXJcIlxuICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgPG1hdC1lcnJvcj5cbiAgICAgICAgICB7eyAnTElCUkFSWS5FUlJPUlMuREVTQ1JJUFRJT05fVE9PX0xPTkcnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Zvcm0+XG4gIDwvbWF0LWNhcmQtY29udGVudD5cblxuICA8bWF0LWNhcmQtYWN0aW9ucyBhbGlnbj1cImVuZFwiICpuZ0lmPVwiY2FuVXBkYXRlTGlicmFyeVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtLmVuYWJsZWRcIj5cbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsKClcIj5cbiAgICAgICAge3sgJ0xJQlJBUlkuRElBTE9HLkNBTkNFTCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWQgfHwgZm9ybS5wcmlzdGluZVwiIChjbGljayk9XCJ1cGRhdGUoKVwiPlxuICAgICAgICB7eyAnTElCUkFSWS5ESUFMT0cuVVBEQVRFJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJ0b2dnbGVFZGl0KClcIiAqbmdJZj1cImZvcm0uZGlzYWJsZWRcIj5cbiAgICAgIHt7ICdMSUJSQVJZLkRJQUxPRy5FRElUJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L21hdC1jYXJkLWFjdGlvbnM+XG48L21hdC1jYXJkPlxuIl19
@@ -54,7 +54,7 @@ import * as i10$1 from '@angular/material/core';
54
54
  import { MatOptionModule } from '@angular/material/core';
55
55
  import * as i9$1 from '@angular/material/select';
56
56
  import { MatSelectModule } from '@angular/material/select';
57
- import * as i15 from '@angular/cdk/a11y';
57
+ import * as i12 from '@angular/cdk/a11y';
58
58
  import { A11yModule } from '@angular/cdk/a11y';
59
59
  import * as i7$2 from '@angular/material/icon';
60
60
  import { MatIconModule } from '@angular/material/icon';
@@ -4597,7 +4597,6 @@ class LibraryMetadataFormComponent {
4597
4597
  });
4598
4598
  this.matcher = new InstantErrorStateMatcher();
4599
4599
  this.canUpdateLibrary = false;
4600
- this.visibilityLabel = '';
4601
4600
  this.onDestroy$ = new Subject();
4602
4601
  }
4603
4602
  get queriesApi() {
@@ -4608,11 +4607,18 @@ class LibraryMetadataFormComponent {
4608
4607
  get titleErrorTranslationKey() {
4609
4608
  return this._titleErrorTranslationKey;
4610
4609
  }
4611
- getVisibilityLabel(value) {
4612
- return this.libraryType.find((type) => type.value === value).label;
4613
- }
4614
4610
  toggleEdit() {
4615
- this.edit = !this.edit;
4611
+ if (this.form.enabled) {
4612
+ this.form.disable({
4613
+ emitEvent: false
4614
+ });
4615
+ }
4616
+ else {
4617
+ this.form.enable({
4618
+ emitEvent: false
4619
+ });
4620
+ this.form.controls.id.disable();
4621
+ }
4616
4622
  }
4617
4623
  cancel() {
4618
4624
  this.updateForm(this.node);
@@ -4621,6 +4627,7 @@ class LibraryMetadataFormComponent {
4621
4627
  }
4622
4628
  ngOnInit() {
4623
4629
  var _a, _b;
4630
+ this.toggleEdit();
4624
4631
  this.updateForm(this.node);
4625
4632
  this.form.controls.title.statusChanges
4626
4633
  .pipe(takeUntil(this.onDestroy$))
@@ -4647,7 +4654,6 @@ class LibraryMetadataFormComponent {
4647
4654
  }
4648
4655
  });
4649
4656
  this.canUpdateLibrary = ((_b = (_a = this.node) === null || _a === void 0 ? void 0 : _a.entry) === null || _b === void 0 ? void 0 : _b.role) === 'SiteManager';
4650
- this.visibilityLabel = this.libraryType.find((type) => type.value === this.form.controls['visibility'].value).label;
4651
4657
  this.handleUpdatingEvent(SnackbarActionTypes.Info, 'LIBRARY.SUCCESS.LIBRARY_UPDATED', () => Object.assign(this.node.entry, this.form.value));
4652
4658
  this.handleUpdatingEvent(SnackbarActionTypes.Error, 'LIBRARY.ERRORS.LIBRARY_UPDATE_ERROR', () => this.form.markAsDirty());
4653
4659
  }
@@ -4691,7 +4697,7 @@ class LibraryMetadataFormComponent {
4691
4697
  }
4692
4698
  }
4693
4699
  LibraryMetadataFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: LibraryMetadataFormComponent, deps: [{ token: i4.AlfrescoApiService }, { token: i1.Store }, { token: i2$3.Actions }], target: i0.ɵɵFactoryTarget.Component });
4694
- LibraryMetadataFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: LibraryMetadataFormComponent, isStandalone: true, selector: "app-library-metadata-form", inputs: { node: "node" }, usesOnChanges: true, ngImport: i0, template: "<mat-card *ngIf=\"node\">\n <mat-card-content *ngIf=\"!edit\">\n <div class=\"mat-form-field mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-name-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.title.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-id-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.id.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-visibility-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ visibilityLabel | translate }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-description-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.description?.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"!edit && canUpdateLibrary\">\n <button mat-button color=\"primary\" (click)=\"toggleEdit()\">\n {{ 'LIBRARY.DIALOG.EDIT' | translate }}\n </button>\n </mat-card-actions>\n\n <mat-card-content *ngIf=\"edit\">\n <form [formGroup]=\"form\" autocomplete=\"off\">\n <mat-form-field floatLabel=\"auto\">\n <input\n matInput\n cdkFocusInitial\n required\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\"\n formControlName=\"title\"\n [errorStateMatcher]=\"matcher\"\n />\n <mat-hint *ngIf=\"libraryTitleExists\">{{ 'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate }}</mat-hint>\n <mat-error>\n {{ titleErrorTranslationKey | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\">\n <input matInput placeholder=\"{{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\" formControlName=\"id\" />\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\">\n <mat-select placeholder=\"{{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\" formControlName=\"visibility\">\n <mat-option [value]=\"type.value\" *ngFor=\"let type of libraryType\">\n {{ type.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\">\n <textarea\n matInput\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\"\n rows=\"3\"\n formControlName=\"description\"\n [errorStateMatcher]=\"matcher\"\n ></textarea>\n <mat-error>\n {{ 'LIBRARY.ERRORS.DESCRIPTION_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n </form>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"edit && canUpdateLibrary\">\n <button mat-button (click)=\"cancel()\">\n {{ 'LIBRARY.DIALOG.CANCEL' | translate }}\n </button>\n <button mat-button color=\"primary\" [disabled]=\"form.invalid || form.pristine\" (click)=\"update()\">\n {{ 'LIBRARY.DIALOG.UPDATE' | translate }}\n </button>\n </mat-card-actions>\n</mat-card>\n", styles: ["app-library-metadata-form .mat-form-field{width:100%}app-library-metadata-form .mat-form-field-infix{position:relative;width:180px}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper{position:absolute;width:100%;pointer-events:none}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper .mat-form-field-label{position:absolute;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i5$3.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i5$3.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i5$3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i9$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.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: "ngmodule", type: A11yModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None });
4700
+ LibraryMetadataFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: LibraryMetadataFormComponent, isStandalone: true, selector: "app-library-metadata-form", inputs: { node: "node" }, usesOnChanges: true, ngImport: i0, template: "<mat-card *ngIf=\"node\">\n <mat-card-content>\n <form [formGroup]=\"form\" autocomplete=\"off\">\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-name-properties-wrapper\">\n <input\n matInput\n [cdkTrapFocusAutoCapture]=\"form.enabled\"\n [cdkTrapFocus]=\"form.enabled\"\n required\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\"\n formControlName=\"title\"\n [errorStateMatcher]=\"matcher\"\n />\n <mat-hint *ngIf=\"libraryTitleExists\">{{ 'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate }}</mat-hint>\n <mat-error>\n {{ titleErrorTranslationKey | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-id-properties-wrapper\">\n <input matInput placeholder=\"{{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\" formControlName=\"id\" />\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-visibility-properties-wrapper\">\n <mat-select placeholder=\"{{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\" formControlName=\"visibility\">\n <mat-option [value]=\"type.value\" *ngFor=\"let type of libraryType\">\n {{ type.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-description-properties-wrapper\">\n <textarea\n matInput\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\"\n rows=\"3\"\n formControlName=\"description\"\n [errorStateMatcher]=\"matcher\"\n ></textarea>\n <mat-error>\n {{ 'LIBRARY.ERRORS.DESCRIPTION_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n </form>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"canUpdateLibrary\">\n <ng-container *ngIf=\"form.enabled\">\n <button mat-button (click)=\"cancel()\">\n {{ 'LIBRARY.DIALOG.CANCEL' | translate }}\n </button>\n <button mat-button color=\"primary\" [disabled]=\"form.invalid || form.pristine\" (click)=\"update()\">\n {{ 'LIBRARY.DIALOG.UPDATE' | translate }}\n </button>\n </ng-container>\n <button mat-button color=\"primary\" (click)=\"toggleEdit()\" *ngIf=\"form.disabled\">\n {{ 'LIBRARY.DIALOG.EDIT' | translate }}\n </button>\n </mat-card-actions>\n</mat-card>\n", styles: ["app-library-metadata-form .mat-form-field{width:100%}app-library-metadata-form .mat-form-field-infix{position:relative;width:180px}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper{position:absolute;width:100%;pointer-events:none}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper .mat-form-field-label{position:absolute;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i5$3.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i5$3.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i5$3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i9$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.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: "ngmodule", type: A11yModule }, { kind: "directive", type: i12.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None });
4695
4701
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: LibraryMetadataFormComponent, decorators: [{
4696
4702
  type: Component,
4697
4703
  args: [{ standalone: true, imports: [
@@ -4706,7 +4712,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
4706
4712
  MatInputModule,
4707
4713
  A11yModule,
4708
4714
  MatButtonModule
4709
- ], selector: 'app-library-metadata-form', encapsulation: ViewEncapsulation.None, template: "<mat-card *ngIf=\"node\">\n <mat-card-content *ngIf=\"!edit\">\n <div class=\"mat-form-field mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-name-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.title.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-id-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.id.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-visibility-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ visibilityLabel | translate }}\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float\">\n <div class=\"mat-form-field-wrapper\" data-automation-id=\"library-description-properties-wrapper\">\n <div class=\"mat-form-field-flex\">\n <div class=\"mat-form-field-infix\">\n <span class=\"mat-form-field-label-wrapper\">\n <span class=\"mat-form-field-label\">\n {{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\n </span>\n </span>\n\n <span class=\"mat-input-element\">\n {{ form.controls.description?.value }}\n </span>\n </div>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"!edit && canUpdateLibrary\">\n <button mat-button color=\"primary\" (click)=\"toggleEdit()\">\n {{ 'LIBRARY.DIALOG.EDIT' | translate }}\n </button>\n </mat-card-actions>\n\n <mat-card-content *ngIf=\"edit\">\n <form [formGroup]=\"form\" autocomplete=\"off\">\n <mat-form-field floatLabel=\"auto\">\n <input\n matInput\n cdkFocusInitial\n required\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\"\n formControlName=\"title\"\n [errorStateMatcher]=\"matcher\"\n />\n <mat-hint *ngIf=\"libraryTitleExists\">{{ 'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate }}</mat-hint>\n <mat-error>\n {{ titleErrorTranslationKey | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\">\n <input matInput placeholder=\"{{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\" formControlName=\"id\" />\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\">\n <mat-select placeholder=\"{{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\" formControlName=\"visibility\">\n <mat-option [value]=\"type.value\" *ngFor=\"let type of libraryType\">\n {{ type.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\">\n <textarea\n matInput\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\"\n rows=\"3\"\n formControlName=\"description\"\n [errorStateMatcher]=\"matcher\"\n ></textarea>\n <mat-error>\n {{ 'LIBRARY.ERRORS.DESCRIPTION_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n </form>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"edit && canUpdateLibrary\">\n <button mat-button (click)=\"cancel()\">\n {{ 'LIBRARY.DIALOG.CANCEL' | translate }}\n </button>\n <button mat-button color=\"primary\" [disabled]=\"form.invalid || form.pristine\" (click)=\"update()\">\n {{ 'LIBRARY.DIALOG.UPDATE' | translate }}\n </button>\n </mat-card-actions>\n</mat-card>\n", styles: ["app-library-metadata-form .mat-form-field{width:100%}app-library-metadata-form .mat-form-field-infix{position:relative;width:180px}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper{position:absolute;width:100%;pointer-events:none}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper .mat-form-field-label{position:absolute;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0}\n"] }]
4715
+ ], selector: 'app-library-metadata-form', encapsulation: ViewEncapsulation.None, template: "<mat-card *ngIf=\"node\">\n <mat-card-content>\n <form [formGroup]=\"form\" autocomplete=\"off\">\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-name-properties-wrapper\">\n <input\n matInput\n [cdkTrapFocusAutoCapture]=\"form.enabled\"\n [cdkTrapFocus]=\"form.enabled\"\n required\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}\"\n formControlName=\"title\"\n [errorStateMatcher]=\"matcher\"\n />\n <mat-hint *ngIf=\"libraryTitleExists\">{{ 'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate }}</mat-hint>\n <mat-error>\n {{ titleErrorTranslationKey | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-id-properties-wrapper\">\n <input matInput placeholder=\"{{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}\" formControlName=\"id\" />\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-visibility-properties-wrapper\">\n <mat-select placeholder=\"{{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}\" formControlName=\"visibility\">\n <mat-option [value]=\"type.value\" *ngFor=\"let type of libraryType\">\n {{ type.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field floatLabel=\"auto\" data-automation-id=\"library-description-properties-wrapper\">\n <textarea\n matInput\n placeholder=\"{{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}\"\n rows=\"3\"\n formControlName=\"description\"\n [errorStateMatcher]=\"matcher\"\n ></textarea>\n <mat-error>\n {{ 'LIBRARY.ERRORS.DESCRIPTION_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n </form>\n </mat-card-content>\n\n <mat-card-actions align=\"end\" *ngIf=\"canUpdateLibrary\">\n <ng-container *ngIf=\"form.enabled\">\n <button mat-button (click)=\"cancel()\">\n {{ 'LIBRARY.DIALOG.CANCEL' | translate }}\n </button>\n <button mat-button color=\"primary\" [disabled]=\"form.invalid || form.pristine\" (click)=\"update()\">\n {{ 'LIBRARY.DIALOG.UPDATE' | translate }}\n </button>\n </ng-container>\n <button mat-button color=\"primary\" (click)=\"toggleEdit()\" *ngIf=\"form.disabled\">\n {{ 'LIBRARY.DIALOG.EDIT' | translate }}\n </button>\n </mat-card-actions>\n</mat-card>\n", styles: ["app-library-metadata-form .mat-form-field{width:100%}app-library-metadata-form .mat-form-field-infix{position:relative;width:180px}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper{position:absolute;width:100%;pointer-events:none}app-library-metadata-form .mat-form-field-infix .mat-form-field-label-wrapper .mat-form-field-label{position:absolute;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0}\n"] }]
4710
4716
  }], ctorParameters: function () { return [{ type: i4.AlfrescoApiService }, { type: i1.Store }, { type: i2$3.Actions }]; }, propDecorators: { node: [{
4711
4717
  type: Input
4712
4718
  }] } });
@@ -6987,7 +6993,7 @@ class SearchInputComponent {
6987
6993
  }
6988
6994
  }
6989
6995
  SearchInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SearchInputComponent, deps: [{ token: i1$1.SearchQueryBuilderService }, { token: SearchLibrariesQueryBuilderService }, { token: i4.AppConfigService }, { token: i2.Router }, { token: i1.Store }, { token: i2$1.AppHookService }, { token: i2$1.AppService }, { token: SearchNavigationService }], target: i0.ɵɵFactoryTarget.Component });
6990
- SearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: SearchInputComponent, isStandalone: true, selector: "aca-search-input", host: { classAttribute: "aca-search-input" }, viewQueries: [{ propertyName: "searchInputControl", first: true, predicate: ["searchInputControl"], descendants: true, static: true }, { propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true, static: true }], ngImport: i0, template: "<div class=\"app-search-container searchMenuTrigger\"\n [matMenuTriggerFor]=\"searchOptionsMenu\"\n (menuOpened)=\"onMenuOpened()\"\n (menuClosed)=\"syncInputValues()\"\n>\n\n <button mat-icon-button class=\"app-search-button\" (click)=\"searchByOption()\" [title]=\"'SEARCH.BUTTON.TOOLTIP' | translate\">\n <mat-icon [attr.aria-label]=\"'SEARCH.BUTTON.ARIA-LABEL' | translate\">search</mat-icon>\n </button>\n <mat-form-field class=\"app-input-form-field\" [floatLabel]=\"'never'\">\n <input\n matInput\n [attr.aria-label]=\"'SEARCH.INPUT.ARIA-LABEL' | translate\"\n [type]=\"'text'\"\n [disabled]=\"true\"\n [value]=\"searchedWord\"\n [placeholder]=\"'SEARCH.INPUT.PLACEHOLDER' | translate\"\n />\n\n <div matSuffix class=\"app-suffix-search-icon-wrapper\">\n <mat-icon>arrow_drop_down</mat-icon>\n </div>\n\n <button mat-icon-button matSuffix class=\"app-suffix-search-icon-wrapper app-close-icon\" (click)=\"exitSearch()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</div>\n\n<mat-menu #searchOptionsMenu=\"matMenu\" [overlapTrigger]=\"true\" class=\"app-search-options-menu\">\n <div (keydown.tab)=\"$event.stopPropagation()\" (keydown.shift.tab)=\"$event.stopPropagation()\" tabindex=0>\n <div cdkTrapFocus>\n <app-search-input-control\n #searchInputControl\n (click)=\"$event.stopPropagation()\"\n (submit)=\"onSearchSubmit($event)\"\n (searchChange)=\"onSearchChange($event)\"\n >\n </app-search-input-control>\n <mat-hint *ngIf=\"hasLibrariesConstraint\" class=\"app-search-hint\">{{ 'SEARCH.INPUT.HINT' | translate }}</mat-hint>\n\n <div id=\"search-options\">\n <mat-checkbox\n *ngFor=\"let option of searchOptions\"\n id=\"{{ option.id }}\"\n [(ngModel)]=\"option.value\"\n [disabled]=\"option.shouldDisable()\"\n (change)=\"searchByOption()\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ option.key | translate }}\n </mat-checkbox>\n </div>\n </div>\n </div>\n</mat-menu>\n", styles: [".app-search-container{color:var(--theme-foreground-text-color);width:100%;max-width:594px;height:44px}.app-search-container.mat-menu-trigger{margin:0}.app-search-container .app-search-button{width:32px;height:32px;margin-left:0;padding-left:0;margin-top:-4px}.app-search-container .app-input-form-field .app-close-icon{height:6px}.app-search-container .app-input-form-field .app-close-icon.app-suffix-search-icon-wrapper .mat-icon{font-size:18px;line-height:28px}.app-search-container .app-input-form-field .mat-input-element{caret-color:var(--theme-text-color)}.app-search-container .app-input-form-field .mat-input-element:disabled{color:var(--theme-text-color)}.app-search-container .mat-focused label.mat-form-field-label{display:none}.app-search-options-menu.mat-menu-panel{background-color:var(--theme-dialog-background-color);width:594px;max-width:unset;border-radius:4px;margin-top:12px}.app-search-options-menu .mat-menu-content:not(:empty){padding-top:0;padding-bottom:0}mat-checkbox .mat-checkbox-frame{border-color:var(--theme-text-color)}.aca-search-input{width:100%;max-width:594px;background-color:#f5f6f5;border-radius:4px;height:32px;margin-bottom:0;padding-bottom:26px}.app-search-control{margin-top:-12px}#search-options{color:var(--theme-text-color);border-top:1px solid var(--theme-divider-color);padding:20px 0;font-size:16px;letter-spacing:-.7px}#search-options mat-checkbox{padding:3px 24px 3px 19px}#search-options mat-checkbox .mat-checkbox-inner-container{height:18px;width:18px}#search-options mat-checkbox .mat-checkbox-label{padding:0 0 0 11px;overflow:hidden;text-overflow:ellipsis}#search-options .mat-checkbox-layout{max-width:155px}.app-search-hint{position:absolute;font-size:12px;padding-left:17px}@media screen and (max-width: 959px){.aca-search-input,.app-search-container{max-width:400px}.app-search-options-menu.mat-menu-panel{width:400px}#search-options{padding-left:20px}#search-options mat-checkbox{padding:3px 20px 3px 0}#search-options mat-checkbox .mat-checkbox-label{padding:0}#search-options .mat-checkbox-layout{max-width:105px}}@media screen and (max-width: 599px){.aca-search-input,.app-search-container{max-width:220px}.app-search-options-menu.mat-menu-panel{width:220px;margin-top:9px}#search-options .mat-checkbox-layout{max-width:180px}}@media screen and (max-width: 380px){.aca-search-input{max-width:148px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i4$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix]" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.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: "ngmodule", type: A11yModule }, { kind: "directive", type: i15.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i16.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SearchInputControlComponent, selector: "app-search-input-control", inputs: ["inputType"], outputs: ["submit", "searchChange"] }], encapsulation: i0.ViewEncapsulation.None });
6996
+ SearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: SearchInputComponent, isStandalone: true, selector: "aca-search-input", host: { classAttribute: "aca-search-input" }, viewQueries: [{ propertyName: "searchInputControl", first: true, predicate: ["searchInputControl"], descendants: true, static: true }, { propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true, static: true }], ngImport: i0, template: "<div class=\"app-search-container searchMenuTrigger\"\n [matMenuTriggerFor]=\"searchOptionsMenu\"\n (menuOpened)=\"onMenuOpened()\"\n (menuClosed)=\"syncInputValues()\"\n>\n\n <button mat-icon-button class=\"app-search-button\" (click)=\"searchByOption()\" [title]=\"'SEARCH.BUTTON.TOOLTIP' | translate\">\n <mat-icon [attr.aria-label]=\"'SEARCH.BUTTON.ARIA-LABEL' | translate\">search</mat-icon>\n </button>\n <mat-form-field class=\"app-input-form-field\" [floatLabel]=\"'never'\">\n <input\n matInput\n [attr.aria-label]=\"'SEARCH.INPUT.ARIA-LABEL' | translate\"\n [type]=\"'text'\"\n [disabled]=\"true\"\n [value]=\"searchedWord\"\n [placeholder]=\"'SEARCH.INPUT.PLACEHOLDER' | translate\"\n />\n\n <div matSuffix class=\"app-suffix-search-icon-wrapper\">\n <mat-icon>arrow_drop_down</mat-icon>\n </div>\n\n <button mat-icon-button matSuffix class=\"app-suffix-search-icon-wrapper app-close-icon\" (click)=\"exitSearch()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n</div>\n\n<mat-menu #searchOptionsMenu=\"matMenu\" [overlapTrigger]=\"true\" class=\"app-search-options-menu\">\n <div (keydown.tab)=\"$event.stopPropagation()\" (keydown.shift.tab)=\"$event.stopPropagation()\" tabindex=0>\n <div cdkTrapFocus>\n <app-search-input-control\n #searchInputControl\n (click)=\"$event.stopPropagation()\"\n (submit)=\"onSearchSubmit($event)\"\n (searchChange)=\"onSearchChange($event)\"\n >\n </app-search-input-control>\n <mat-hint *ngIf=\"hasLibrariesConstraint\" class=\"app-search-hint\">{{ 'SEARCH.INPUT.HINT' | translate }}</mat-hint>\n\n <div id=\"search-options\">\n <mat-checkbox\n *ngFor=\"let option of searchOptions\"\n id=\"{{ option.id }}\"\n [(ngModel)]=\"option.value\"\n [disabled]=\"option.shouldDisable()\"\n (change)=\"searchByOption()\"\n (click)=\"$event.stopPropagation()\"\n >\n {{ option.key | translate }}\n </mat-checkbox>\n </div>\n </div>\n </div>\n</mat-menu>\n", styles: [".app-search-container{color:var(--theme-foreground-text-color);width:100%;max-width:594px;height:44px}.app-search-container.mat-menu-trigger{margin:0}.app-search-container .app-search-button{width:32px;height:32px;margin-left:0;padding-left:0;margin-top:-4px}.app-search-container .app-input-form-field .app-close-icon{height:6px}.app-search-container .app-input-form-field .app-close-icon.app-suffix-search-icon-wrapper .mat-icon{font-size:18px;line-height:28px}.app-search-container .app-input-form-field .mat-input-element{caret-color:var(--theme-text-color)}.app-search-container .app-input-form-field .mat-input-element:disabled{color:var(--theme-text-color)}.app-search-container .mat-focused label.mat-form-field-label{display:none}.app-search-options-menu.mat-menu-panel{background-color:var(--theme-dialog-background-color);width:594px;max-width:unset;border-radius:4px;margin-top:12px}.app-search-options-menu .mat-menu-content:not(:empty){padding-top:0;padding-bottom:0}mat-checkbox .mat-checkbox-frame{border-color:var(--theme-text-color)}.aca-search-input{width:100%;max-width:594px;background-color:#f5f6f5;border-radius:4px;height:32px;margin-bottom:0;padding-bottom:26px}.app-search-control{margin-top:-12px}#search-options{color:var(--theme-text-color);border-top:1px solid var(--theme-divider-color);padding:20px 0;font-size:16px;letter-spacing:-.7px}#search-options mat-checkbox{padding:3px 24px 3px 19px}#search-options mat-checkbox .mat-checkbox-inner-container{height:18px;width:18px}#search-options mat-checkbox .mat-checkbox-label{padding:0 0 0 11px;overflow:hidden;text-overflow:ellipsis}#search-options .mat-checkbox-layout{max-width:155px}.app-search-hint{position:absolute;font-size:12px;padding-left:17px}@media screen and (max-width: 959px){.aca-search-input,.app-search-container{max-width:400px}.app-search-options-menu.mat-menu-panel{width:400px}#search-options{padding-left:20px}#search-options mat-checkbox{padding:3px 20px 3px 0}#search-options mat-checkbox .mat-checkbox-label{padding:0}#search-options .mat-checkbox-layout{max-width:105px}}@media screen and (max-width: 599px){.aca-search-input,.app-search-container{max-width:220px}.app-search-options-menu.mat-menu-panel{width:220px;margin-top:9px}#search-options .mat-checkbox-layout{max-width:180px}}@media screen and (max-width: 380px){.aca-search-input{max-width:148px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i4$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix]" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.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: "ngmodule", type: A11yModule }, { kind: "directive", type: i12.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i16.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SearchInputControlComponent, selector: "app-search-input-control", inputs: ["inputType"], outputs: ["submit", "searchChange"] }], encapsulation: i0.ViewEncapsulation.None });
6991
6997
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SearchInputComponent, decorators: [{
6992
6998
  type: Component,
6993
6999
  args: [{ standalone: true, imports: [