@alfresco/adf-core 8.1.0-15991166790 → 8.1.0-15993930410

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.
@@ -19,6 +19,8 @@ export class CommentsComponent {
19
19
  this.readOnly = false;
20
20
  /** Emitted when an error occurs while displaying/adding a comment. */
21
21
  this.error = new EventEmitter();
22
+ /** Emits when a new comment is added */
23
+ this.commentAdded = new EventEmitter();
22
24
  this.comments = [];
23
25
  this.beingAdded = false;
24
26
  this.commentsService = inject(ADF_COMMENTS_SERVICE);
@@ -64,6 +66,7 @@ export class CommentsComponent {
64
66
  next: (res) => {
65
67
  this.addToComments(res);
66
68
  this.commentControl.reset();
69
+ this.commentAdded.emit(res);
67
70
  },
68
71
  error: (err) => {
69
72
  this.error.emit(err);
@@ -103,7 +106,7 @@ export class CommentsComponent {
103
106
  return commentControl.value?.trim() ? null : { emptyComment: true };
104
107
  }
105
108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentsComponent, isStandalone: true, selector: "adf-comments", inputs: { id: "id", readOnly: "readOnly" }, outputs: { error: "error" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-comments-container\">\n <div id=\"comment-header\" class=\"adf-comments-header adf-comments-divider\">\n {{'COMMENTS.HEADER' | translate: { count: comments?.length } }}\n </div>\n <div *ngIf=\"!readOnly\" class=\"adf-comments-input-container adf-comments-divider\">\n <mat-form-field>\n <textarea\n matInput\n id=\"comment-input\"\n class=\"adf-text-text-area\"\n [placeholder]='(\"COMMENTS.ADD\" | translate) + \"*\"'\n [attr.aria-label]=\"'COMMENTS.ADD' | translate\"\n [formControl]=\"commentControl\"\n (keydown.escape)=\"clearMessage($event)\"\n >\n </textarea>\n <mat-error *ngIf=\"commentControl.invalid && commentControl.touched\">{{ 'COMMENTS.EMPTY_ERROR' | translate }}</mat-error>\n </mat-form-field>\n\n <div class=\"adf-comments-input-actions\">\n <button\n mat-button\n data-automation-id=\"comments-input-add\"\n color=\"primary\"\n (click)=\"addComment()\"\n [disabled]=\"commentControl.invalid\"\n >\n {{ 'COMMENTS.ADD' | translate }}\n </button>\n </div>\n </div>\n\n <adf-comment-list *ngIf=\"comments?.length > 0\" [comments]=\"comments\" />\n</div>\n", styles: ["adf-comments .adf-comments-container{height:100%;width:100%;overflow:auto}adf-comments .adf-comments-container .adf-comments-input-container{width:100%;padding-bottom:8px}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field{width:100%}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-input-element::placeholder,adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-input-element:focus::placeholder{color:var(--theme-warn-color)}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-bottom:2px;padding-top:25px}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-text-field-wrapper .mat-mdc-input-element:focus::placeholder{color:var(--theme-primary-color);-webkit-font-smoothing:subpixel-antialiased}adf-comments .adf-comments-container .adf-comments-input-container textarea{resize:vertical;height:20px}adf-comments .adf-comments-divider{border-bottom:1px solid var(--adf-theme-foreground-divider-color)}adf-comments .adf-comments-header{padding:10px 0;font-size:var(--theme-body-1-font-size);font-weight:600}adf-comments .adf-comments-input-actions{padding-top:16px;display:flex;justify-content:flex-end}adf-comments .mat-mdc-list-item-unscoped-content{display:flex;padding:0 16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: CommentListComponent, selector: "adf-comment-list", inputs: ["comments"], outputs: ["clickRow"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentsComponent, isStandalone: true, selector: "adf-comments", inputs: { id: "id", readOnly: "readOnly" }, outputs: { error: "error", commentAdded: "commentAdded" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-comments-container\">\n <div id=\"comment-header\" class=\"adf-comments-header adf-comments-divider\">\n {{'COMMENTS.HEADER' | translate: { count: comments?.length } }}\n </div>\n <div *ngIf=\"!readOnly\" class=\"adf-comments-input-container adf-comments-divider\">\n <mat-form-field>\n <textarea\n matInput\n id=\"comment-input\"\n class=\"adf-text-text-area\"\n [placeholder]='(\"COMMENTS.ADD\" | translate) + \"*\"'\n [attr.aria-label]=\"'COMMENTS.ADD' | translate\"\n [formControl]=\"commentControl\"\n (keydown.escape)=\"clearMessage($event)\"\n >\n </textarea>\n <mat-error *ngIf=\"commentControl.invalid && commentControl.touched\">{{ 'COMMENTS.EMPTY_ERROR' | translate }}</mat-error>\n </mat-form-field>\n\n <div class=\"adf-comments-input-actions\">\n <button\n mat-button\n data-automation-id=\"comments-input-add\"\n color=\"primary\"\n (click)=\"addComment()\"\n [disabled]=\"commentControl.invalid\"\n >\n {{ 'COMMENTS.ADD' | translate }}\n </button>\n </div>\n </div>\n\n <adf-comment-list *ngIf=\"comments?.length > 0\" [comments]=\"comments\" />\n</div>\n", styles: ["adf-comments .adf-comments-container{height:100%;width:100%;overflow:auto}adf-comments .adf-comments-container .adf-comments-input-container{width:100%;padding-bottom:8px}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field{width:100%}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-input-element::placeholder,adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-input-element:focus::placeholder{color:var(--theme-warn-color)}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-bottom:2px;padding-top:25px}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-text-field-wrapper .mat-mdc-input-element:focus::placeholder{color:var(--theme-primary-color);-webkit-font-smoothing:subpixel-antialiased}adf-comments .adf-comments-container .adf-comments-input-container textarea{resize:vertical;height:20px}adf-comments .adf-comments-divider{border-bottom:1px solid var(--adf-theme-foreground-divider-color)}adf-comments .adf-comments-header{padding:10px 0;font-size:var(--theme-body-1-font-size);font-weight:600}adf-comments .adf-comments-input-actions{padding-top:16px;display:flex;justify-content:flex-end}adf-comments .mat-mdc-list-item-unscoped-content{display:flex;padding:0 16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: CommentListComponent, selector: "adf-comment-list", inputs: ["comments"], outputs: ["clickRow"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
107
110
  }
108
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentsComponent, decorators: [{
109
112
  type: Component,
@@ -123,5 +126,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
123
126
  type: Input
124
127
  }], error: [{
125
128
  type: Output
129
+ }], commentAdded: [{
130
+ type: Output
126
131
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9jb21tZW50cy9jb21tZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2NvbW1lbnRzL2NvbW1lbnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBbUJ0RCxNQUFNLE9BQU8saUJBQWlCO0lBakI5QjtRQXNCSSxrQ0FBa0M7UUFFbEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixzRUFBc0U7UUFFdEUsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFaEMsYUFBUSxHQUFtQixFQUFFLENBQUM7UUFDOUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUVwQixvQkFBZSxHQUFHLE1BQU0s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QWlCO2tCQWpCN0IsU0FBUzsrQkFDSSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3FCQUN0QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJOzhCQUtyQyxFQUFFO3NCQURELEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tbWVudE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2NvbW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQURGX0NPTU1FTlRTX1NFUlZJQ0UgfSBmcm9tICcuL2ludGVyZmFjZXMvY29tbWVudHMudG9rZW4nO1xuaW1wb3J0IHsgQ29tbWVudHNTZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbW1lbnRzLXNlcnZpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IENvbW1lbnRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50LWxpc3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jb21tZW50cycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQ29tbWVudExpc3RDb21wb25lbnQsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb21tZW50cy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29tbWVudHMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENvbW1lbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICAvKiogVGhlIG51bWVyaWMgSUQgb2YgdGhlIHRhc2suICovXG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgLyoqIEFyZSB0aGUgY29tbWVudHMgcmVhZCBvbmx5PyAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzIHdoaWxlIGRpc3BsYXlpbmcvYWRkaW5nIGEgY29tbWVudC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgY29tbWVudHM6IENvbW1lbnRNb2RlbFtdID0gW107XG4gICAgYmVpbmdBZGRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBjb21tZW50c1NlcnZpY2UgPSBpbmplY3Q8Q29tbWVudHNTZXJ2aWNlPihBREZfQ09NTUVOVFNfU0VSVklDRSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb21tZW50Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgW3RoaXMudmFsaWRhdGVFbXB0eUNvbW1lbnRdKTtcblxuICAgIGdldCBjb21tZW50Q29udHJvbCgpOiBGb3JtQ29udHJvbDxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbW1lbnRDb250cm9sO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pZCA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5pZCA9IGNoYW5nZXNbJ2lkJ10gPyBjaGFuZ2VzWydpZCddLmN1cnJlbnRWYWx1ZSA6IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZENvbW1lbnRzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0Q29tbWVudHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRDb21tZW50cygpIHtcbiAgICAgICAgdGhpcy5yZXNldENvbW1lbnRzKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc0lkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29tbWVudHNTZXJ2aWNlLmdldCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKGNvbW1lbnRzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzQXJyYXlJbnN0YW5jZShjb21tZW50cykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbW1lbnRzID0gdGhpcy5zb3J0ZWRDb21tZW50cyhjb21tZW50cyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tZW50cy5wdXNoKC4uLmNvbW1lbnRzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRDb21tZW50KCkge1xuICAgICAgICBpZiAoIXRoaXMuY2FuQWRkQ29tbWVudCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmJlaW5nQWRkZWQgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuY29tbWVudHNTZXJ2aWNlLmFkZCh0aGlzLmlkLCB0aGlzLmNvbW1lbnRDb250cm9sLnZhbHVlKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkVG9Db21tZW50cyhyZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuY29tbWVudENvbnRyb2wucmVzZXQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5iZWluZ0FkZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNsZWFyTWVzc2FnZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuY29tbWVudENvbnRyb2wucmVzZXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFRvQ29tbWVudHMoY29tbWVudDogQ29tbWVudE1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tbWVudHMudW5zaGlmdChjb21tZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbkFkZENvbW1lbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0lkKCkgJiYgdGhpcy5jb21tZW50Q29udHJvbC52YWx1ZT8udHJpbSgpICYmICF0aGlzLmJlaW5nQWRkZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNJZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5pZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQXJyYXlJbnN0YW5jZShlbnRpdHk6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZW50aXR5ICYmIGVudGl0eSBpbnN0YW5jZW9mIEFycmF5O1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydGVkQ29tbWVudHMoY29tbWVudHM6IENvbW1lbnRNb2RlbFtdKTogQ29tbWVudE1vZGVsW10ge1xuICAgICAgICByZXR1cm4gY29tbWVudHMuc29ydCgoY29tbWVudDEsIGNvbW1lbnQyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRlMSA9IG5ldyBEYXRlKGNvbW1lbnQxLmNyZWF0ZWQpO1xuICAgICAgICAgICAgY29uc3QgZGF0ZTIgPSBuZXcgRGF0ZShjb21tZW50Mi5jcmVhdGVkKTtcblxuICAgICAgICAgICAgcmV0dXJuIGRhdGUxID4gZGF0ZTIgPyAtMSA6IGRhdGUxIDwgZGF0ZTIgPyAxIDogMDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldENvbW1lbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbW1lbnRzID0gW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUVtcHR5Q29tbWVudChjb21tZW50Q29udHJvbDogRm9ybUNvbnRyb2w8c3RyaW5nPik6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgICAgICByZXR1cm4gY29tbWVudENvbnRyb2wudmFsdWU/LnRyaW0oKSA/IG51bGwgOiB7IGVtcHR5Q29tbWVudDogdHJ1ZSB9O1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtY29tbWVudHMtY29udGFpbmVyXCI+XG4gICAgPGRpdiBpZD1cImNvbW1lbnQtaGVhZGVyXCIgY2xhc3M9XCJhZGYtY29tbWVudHMtaGVhZGVyIGFkZi1jb21tZW50cy1kaXZpZGVyXCI+XG4gICAgICAgIHt7J0NPTU1FTlRTLkhFQURFUicgfCB0cmFuc2xhdGU6IHsgY291bnQ6IGNvbW1lbnRzPy5sZW5ndGggfSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhcmVhZE9ubHlcIiBjbGFzcz1cImFkZi1jb21tZW50cy1pbnB1dC1jb250YWluZXIgYWRmLWNvbW1lbnRzLWRpdmlkZXJcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJjb21tZW50LWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtdGV4dC10ZXh0LWFyZWFcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPScoXCJDT01NRU5UUy5BRERcIiB8IHRyYW5zbGF0ZSkgKyBcIipcIidcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ09NTUVOVFMuQUREJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb21tZW50Q29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJjbGVhck1lc3NhZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImNvbW1lbnRDb250cm9sLmludmFsaWQgJiYgY29tbWVudENvbnRyb2wudG91Y2hlZFwiPnt7ICdDT01NRU5UUy5FTVBUWV9FUlJPUicgfCB0cmFuc2xhdGUgfX08L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtY29tbWVudHMtaW5wdXQtYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJjb21tZW50cy1pbnB1dC1hZGRcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQ29tbWVudCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbW1lbnRDb250cm9sLmludmFsaWRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0NPTU1FTlRTLkFERCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGFkZi1jb21tZW50LWxpc3QgKm5nSWY9XCJjb21tZW50cz8ubGVuZ3RoID4gMFwiIFtjb21tZW50c109XCJjb21tZW50c1wiIC8+XG48L2Rpdj5cbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9jb21tZW50cy9jb21tZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2NvbW1lbnRzL2NvbW1lbnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBbUJ0RCxNQUFNLE9BQU8saUJBQWlCO0lBakI5QjtRQXNCSSxrQ0FBa0M7UUFFbEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixzRUFBc0U7UUFFdEUsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFaEMsd0NBQXdDO1FBRXhDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFFaEQsYUFBUSxHQUFtQixFQUFFLENB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RFEsWUFBWSw4SEFDWixhQUFhLGlEQUNiLGtCQUFrQixzVUFDbEIsY0FBYywwV0FDZCxXQUFXLHNaQUNYLGVBQWUsNE5BQ2Ysb0JBQW9CLHlHQUNwQixtQkFBbUI7OzRGQU1kLGlCQUFpQjtrQkFqQjdCLFNBQVM7K0JBQ0ksY0FBYyxjQUNaLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLG1CQUFtQjtxQkFDdEIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTs4QkFLckMsRUFBRTtzQkFERCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixLQUFLO3NCQURKLE1BQU07Z0JBS1AsWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21tZW50TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvY29tbWVudC5tb2RlbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBREZfQ09NTUVOVFNfU0VSVklDRSB9IGZyb20gJy4vaW50ZXJmYWNlcy9jb21tZW50cy50b2tlbic7XG5pbXBvcnQgeyBDb21tZW50c1NlcnZpY2UgfSBmcm9tICcuL2ludGVyZmFjZXMvY29tbWVudHMtc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgQ29tbWVudExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnQtbGlzdCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNvbW1lbnRzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVQaXBlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBDb21tZW50TGlzdENvbXBvbmVudCxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnRzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb21tZW50cy5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ29tbWVudHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIC8qKiBUaGUgbnVtZXJpYyBJRCBvZiB0aGUgdGFzay4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmc7XG5cbiAgICAvKiogQXJlIHRoZSBjb21tZW50cyByZWFkIG9ubHk/ICovXG4gICAgQElucHV0KClcbiAgICByZWFkT25seTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgZGlzcGxheWluZy9hZGRpbmcgYSBjb21tZW50LiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKiogRW1pdHMgd2hlbiBhIG5ldyBjb21tZW50IGlzIGFkZGVkICovXG4gICAgQE91dHB1dCgpXG4gICAgY29tbWVudEFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50TW9kZWw+KCk7XG5cbiAgICBjb21tZW50czogQ29tbWVudE1vZGVsW10gPSBbXTtcbiAgICBiZWluZ0FkZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGNvbW1lbnRzU2VydmljZSA9IGluamVjdDxDb21tZW50c1NlcnZpY2U+KEFERl9DT01NRU5UU19TRVJWSUNFKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbW1lbnRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCBbdGhpcy52YWxpZGF0ZUVtcHR5Q29tbWVudF0pO1xuXG4gICAgZ2V0IGNvbW1lbnRDb250cm9sKCk6IEZvcm1Db250cm9sPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29tbWVudENvbnRyb2w7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLmlkID0gbnVsbDtcblxuICAgICAgICB0aGlzLmlkID0gY2hhbmdlc1snaWQnXSA/IGNoYW5nZXNbJ2lkJ10uY3VycmVudFZhbHVlIDogbnVsbDtcblxuICAgICAgICBpZiAodGhpcy5pZCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkQ29tbWVudHMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRDb21tZW50cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbG9hZENvbW1lbnRzKCkge1xuICAgICAgICB0aGlzLnJlc2V0Q29tbWVudHMoKTtcblxuICAgICAgICBpZiAoIXRoaXMuaGFzSWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb21tZW50c1NlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAoY29tbWVudHMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNBcnJheUluc3RhbmNlKGNvbW1lbnRzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29tbWVudHMgPSB0aGlzLnNvcnRlZENvbW1lbnRzKGNvbW1lbnRzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbW1lbnRzLnB1c2goLi4uY29tbWVudHMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZENvbW1lbnQoKSB7XG4gICAgICAgIGlmICghdGhpcy5jYW5BZGRDb21tZW50KCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYmVpbmdBZGRlZCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5jb21tZW50c1NlcnZpY2UuYWRkKHRoaXMuaWQsIHRoaXMuY29tbWVudENvbnRyb2wudmFsdWUpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRUb0NvbW1lbnRzKHJlcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tZW50Q29udHJvbC5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY29tbWVudEFkZGVkLmVtaXQocmVzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5iZWluZ0FkZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNsZWFyTWVzc2FnZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuY29tbWVudENvbnRyb2wucmVzZXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFRvQ29tbWVudHMoY29tbWVudDogQ29tbWVudE1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tbWVudHMudW5zaGlmdChjb21tZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbkFkZENvbW1lbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0lkKCkgJiYgdGhpcy5jb21tZW50Q29udHJvbC52YWx1ZT8udHJpbSgpICYmICF0aGlzLmJlaW5nQWRkZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNJZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5pZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQXJyYXlJbnN0YW5jZShlbnRpdHk6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZW50aXR5ICYmIGVudGl0eSBpbnN0YW5jZW9mIEFycmF5O1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydGVkQ29tbWVudHMoY29tbWVudHM6IENvbW1lbnRNb2RlbFtdKTogQ29tbWVudE1vZGVsW10ge1xuICAgICAgICByZXR1cm4gY29tbWVudHMuc29ydCgoY29tbWVudDEsIGNvbW1lbnQyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRlMSA9IG5ldyBEYXRlKGNvbW1lbnQxLmNyZWF0ZWQpO1xuICAgICAgICAgICAgY29uc3QgZGF0ZTIgPSBuZXcgRGF0ZShjb21tZW50Mi5jcmVhdGVkKTtcblxuICAgICAgICAgICAgcmV0dXJuIGRhdGUxID4gZGF0ZTIgPyAtMSA6IGRhdGUxIDwgZGF0ZTIgPyAxIDogMDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldENvbW1lbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbW1lbnRzID0gW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUVtcHR5Q29tbWVudChjb21tZW50Q29udHJvbDogRm9ybUNvbnRyb2w8c3RyaW5nPik6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgICAgICByZXR1cm4gY29tbWVudENvbnRyb2wudmFsdWU/LnRyaW0oKSA/IG51bGwgOiB7IGVtcHR5Q29tbWVudDogdHJ1ZSB9O1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtY29tbWVudHMtY29udGFpbmVyXCI+XG4gICAgPGRpdiBpZD1cImNvbW1lbnQtaGVhZGVyXCIgY2xhc3M9XCJhZGYtY29tbWVudHMtaGVhZGVyIGFkZi1jb21tZW50cy1kaXZpZGVyXCI+XG4gICAgICAgIHt7J0NPTU1FTlRTLkhFQURFUicgfCB0cmFuc2xhdGU6IHsgY291bnQ6IGNvbW1lbnRzPy5sZW5ndGggfSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhcmVhZE9ubHlcIiBjbGFzcz1cImFkZi1jb21tZW50cy1pbnB1dC1jb250YWluZXIgYWRmLWNvbW1lbnRzLWRpdmlkZXJcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJjb21tZW50LWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtdGV4dC10ZXh0LWFyZWFcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPScoXCJDT01NRU5UUy5BRERcIiB8IHRyYW5zbGF0ZSkgKyBcIipcIidcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ09NTUVOVFMuQUREJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb21tZW50Q29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJjbGVhck1lc3NhZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImNvbW1lbnRDb250cm9sLmludmFsaWQgJiYgY29tbWVudENvbnRyb2wudG91Y2hlZFwiPnt7ICdDT01NRU5UUy5FTVBUWV9FUlJPUicgfCB0cmFuc2xhdGUgfX08L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtY29tbWVudHMtaW5wdXQtYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJjb21tZW50cy1pbnB1dC1hZGRcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQ29tbWVudCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbW1lbnRDb250cm9sLmludmFsaWRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0NPTU1FTlRTLkFERCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGFkZi1jb21tZW50LWxpc3QgKm5nSWY9XCJjb21tZW50cz8ubGVuZ3RoID4gMFwiIFtjb21tZW50c109XCJjb21tZW50c1wiIC8+XG48L2Rpdj5cbiJdfQ==
@@ -26032,6 +26032,8 @@ class CommentsComponent {
26032
26032
  this.readOnly = false;
26033
26033
  /** Emitted when an error occurs while displaying/adding a comment. */
26034
26034
  this.error = new EventEmitter();
26035
+ /** Emits when a new comment is added */
26036
+ this.commentAdded = new EventEmitter();
26035
26037
  this.comments = [];
26036
26038
  this.beingAdded = false;
26037
26039
  this.commentsService = inject(ADF_COMMENTS_SERVICE);
@@ -26077,6 +26079,7 @@ class CommentsComponent {
26077
26079
  next: (res) => {
26078
26080
  this.addToComments(res);
26079
26081
  this.commentControl.reset();
26082
+ this.commentAdded.emit(res);
26080
26083
  },
26081
26084
  error: (err) => {
26082
26085
  this.error.emit(err);
@@ -26116,7 +26119,7 @@ class CommentsComponent {
26116
26119
  return commentControl.value?.trim() ? null : { emptyComment: true };
26117
26120
  }
26118
26121
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26119
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentsComponent, isStandalone: true, selector: "adf-comments", inputs: { id: "id", readOnly: "readOnly" }, outputs: { error: "error" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-comments-container\">\n <div id=\"comment-header\" class=\"adf-comments-header adf-comments-divider\">\n {{'COMMENTS.HEADER' | translate: { count: comments?.length } }}\n </div>\n <div *ngIf=\"!readOnly\" class=\"adf-comments-input-container adf-comments-divider\">\n <mat-form-field>\n <textarea\n matInput\n id=\"comment-input\"\n class=\"adf-text-text-area\"\n [placeholder]='(\"COMMENTS.ADD\" | translate) + \"*\"'\n [attr.aria-label]=\"'COMMENTS.ADD' | translate\"\n [formControl]=\"commentControl\"\n (keydown.escape)=\"clearMessage($event)\"\n >\n </textarea>\n <mat-error *ngIf=\"commentControl.invalid && commentControl.touched\">{{ 'COMMENTS.EMPTY_ERROR' | translate }}</mat-error>\n </mat-form-field>\n\n <div class=\"adf-comments-input-actions\">\n <button\n mat-button\n data-automation-id=\"comments-input-add\"\n color=\"primary\"\n (click)=\"addComment()\"\n [disabled]=\"commentControl.invalid\"\n >\n {{ 'COMMENTS.ADD' | translate }}\n </button>\n </div>\n </div>\n\n <adf-comment-list *ngIf=\"comments?.length > 0\" [comments]=\"comments\" />\n</div>\n", styles: ["adf-comments .adf-comments-container{height:100%;width:100%;overflow:auto}adf-comments .adf-comments-container .adf-comments-input-container{width:100%;padding-bottom:8px}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field{width:100%}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-input-element::placeholder,adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-input-element:focus::placeholder{color:var(--theme-warn-color)}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-bottom:2px;padding-top:25px}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-text-field-wrapper .mat-mdc-input-element:focus::placeholder{color:var(--theme-primary-color);-webkit-font-smoothing:subpixel-antialiased}adf-comments .adf-comments-container .adf-comments-input-container textarea{resize:vertical;height:20px}adf-comments .adf-comments-divider{border-bottom:1px solid var(--adf-theme-foreground-divider-color)}adf-comments .adf-comments-header{padding:10px 0;font-size:var(--theme-body-1-font-size);font-weight:600}adf-comments .adf-comments-input-actions{padding-top:16px;display:flex;justify-content:flex-end}adf-comments .mat-mdc-list-item-unscoped-content{display:flex;padding:0 16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3$1.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: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: CommentListComponent, selector: "adf-comment-list", inputs: ["comments"], outputs: ["clickRow"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
26122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CommentsComponent, isStandalone: true, selector: "adf-comments", inputs: { id: "id", readOnly: "readOnly" }, outputs: { error: "error", commentAdded: "commentAdded" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"adf-comments-container\">\n <div id=\"comment-header\" class=\"adf-comments-header adf-comments-divider\">\n {{'COMMENTS.HEADER' | translate: { count: comments?.length } }}\n </div>\n <div *ngIf=\"!readOnly\" class=\"adf-comments-input-container adf-comments-divider\">\n <mat-form-field>\n <textarea\n matInput\n id=\"comment-input\"\n class=\"adf-text-text-area\"\n [placeholder]='(\"COMMENTS.ADD\" | translate) + \"*\"'\n [attr.aria-label]=\"'COMMENTS.ADD' | translate\"\n [formControl]=\"commentControl\"\n (keydown.escape)=\"clearMessage($event)\"\n >\n </textarea>\n <mat-error *ngIf=\"commentControl.invalid && commentControl.touched\">{{ 'COMMENTS.EMPTY_ERROR' | translate }}</mat-error>\n </mat-form-field>\n\n <div class=\"adf-comments-input-actions\">\n <button\n mat-button\n data-automation-id=\"comments-input-add\"\n color=\"primary\"\n (click)=\"addComment()\"\n [disabled]=\"commentControl.invalid\"\n >\n {{ 'COMMENTS.ADD' | translate }}\n </button>\n </div>\n </div>\n\n <adf-comment-list *ngIf=\"comments?.length > 0\" [comments]=\"comments\" />\n</div>\n", styles: ["adf-comments .adf-comments-container{height:100%;width:100%;overflow:auto}adf-comments .adf-comments-container .adf-comments-input-container{width:100%;padding-bottom:8px}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field{width:100%}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-input-element::placeholder,adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-input-element:focus::placeholder{color:var(--theme-warn-color)}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding-bottom:2px;padding-top:25px}adf-comments .adf-comments-container .adf-comments-input-container .mat-mdc-text-field-wrapper .mat-mdc-input-element:focus::placeholder{color:var(--theme-primary-color);-webkit-font-smoothing:subpixel-antialiased}adf-comments .adf-comments-container .adf-comments-input-container textarea{resize:vertical;height:20px}adf-comments .adf-comments-divider{border-bottom:1px solid var(--adf-theme-foreground-divider-color)}adf-comments .adf-comments-header{padding:10px 0;font-size:var(--theme-body-1-font-size);font-weight:600}adf-comments .adf-comments-input-actions{padding-top:16px;display:flex;justify-content:flex-end}adf-comments .mat-mdc-list-item-unscoped-content{display:flex;padding:0 16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3$1.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: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: CommentListComponent, selector: "adf-comment-list", inputs: ["comments"], outputs: ["clickRow"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
26120
26123
  }
26121
26124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommentsComponent, decorators: [{
26122
26125
  type: Component,
@@ -26136,6 +26139,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26136
26139
  type: Input
26137
26140
  }], error: [{
26138
26141
  type: Output
26142
+ }], commentAdded: [{
26143
+ type: Output
26139
26144
  }] } });
26140
26145
 
26141
26146
  /*!