@tilde-nlp/ngx-common 4.1.22 → 4.1.23

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.
@@ -38,6 +38,7 @@ export class CreateSummaryComponent {
38
38
  .subscribe({
39
39
  next: (response) => {
40
40
  this.text = response;
41
+ this.showErrorMessage = false;
41
42
  this.refreshQuota(true);
42
43
  },
43
44
  error: () => {
@@ -65,13 +66,13 @@ export class CreateSummaryComponent {
65
66
  });
66
67
  }
67
68
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateSummaryComponent, deps: [{ token: i1.LlmService }, { token: i2.QuotaService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateSummaryComponent, selector: "lib-create-summary", ngImport: i0, template: "<h1 mat-dialog-title>{{ \"LLM.SUMMARY_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.SUMMARY_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!summaryQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <lib-llm-textarea [showErrorMessage]=\"showErrorMessage\" [text]=\"text\" [disabled]=\"isLoading || !summaryQuotaLeft\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"d-flex justify-content-between mx-3 mb-2\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.SUMMARY_MODAL.LIMIT' | translate: { limit: summaryQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-100]=\"!showRemainingQuotaMessage\" class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.SUMMARY_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.SUMMARY_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"createSummary()\"\r\n [disabled]=\"isLoading || !text || !summaryQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.SUMMARY_MODAL.CREATING\"\r\n : \"LLM.SUMMARY_MODAL.REGENERATE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "component", type: i7.LlmTextareaComponent, selector: "lib-llm-textarea", inputs: ["text", "disabled", "showErrorMessage"], outputs: ["textEditEvent", "dislikeEvent"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateSummaryComponent, selector: "lib-create-summary", ngImport: i0, template: "<h1 mat-dialog-title>{{ \"LLM.SUMMARY_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.SUMMARY_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!summaryQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <lib-llm-textarea [showErrorMessage]=\"showErrorMessage\" [text]=\"text\" [disabled]=\"isLoading || !summaryQuotaLeft\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-summary-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.SUMMARY_MODAL.LIMIT' | translate: { limit: summaryQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!showRemainingQuotaMessage\" class=\"llm-summary-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.SUMMARY_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.SUMMARY_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"createSummary()\"\r\n [disabled]=\"isLoading || !text || !summaryQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.SUMMARY_MODAL.CREATING\"\r\n : \"LLM.SUMMARY_MODAL.REGENERATE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}.w-full{width:100%}.llm-summary-actions{display:flex;justify-content:end}.llm-summary-actions-wrapper{display:flex;justify-content:end;margin:0 1rem .5rem}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "component", type: i7.LlmTextareaComponent, selector: "lib-llm-textarea", inputs: ["text", "disabled", "showErrorMessage"], outputs: ["textEditEvent", "dislikeEvent"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
69
70
  }
70
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateSummaryComponent, decorators: [{
71
72
  type: Component,
72
- args: [{ selector: 'lib-create-summary', template: "<h1 mat-dialog-title>{{ \"LLM.SUMMARY_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.SUMMARY_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!summaryQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <lib-llm-textarea [showErrorMessage]=\"showErrorMessage\" [text]=\"text\" [disabled]=\"isLoading || !summaryQuotaLeft\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"d-flex justify-content-between mx-3 mb-2\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.SUMMARY_MODAL.LIMIT' | translate: { limit: summaryQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-100]=\"!showRemainingQuotaMessage\" class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.SUMMARY_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.SUMMARY_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"createSummary()\"\r\n [disabled]=\"isLoading || !text || !summaryQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.SUMMARY_MODAL.CREATING\"\r\n : \"LLM.SUMMARY_MODAL.REGENERATE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}\n"] }]
73
+ args: [{ selector: 'lib-create-summary', template: "<h1 mat-dialog-title>{{ \"LLM.SUMMARY_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.SUMMARY_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!summaryQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <lib-llm-textarea [showErrorMessage]=\"showErrorMessage\" [text]=\"text\" [disabled]=\"isLoading || !summaryQuotaLeft\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-summary-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.SUMMARY_MODAL.LIMIT' | translate: { limit: summaryQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!showRemainingQuotaMessage\" class=\"llm-summary-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.SUMMARY_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.SUMMARY_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"createSummary()\"\r\n [disabled]=\"isLoading || !text || !summaryQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.SUMMARY_MODAL.CREATING\"\r\n : \"LLM.SUMMARY_MODAL.REGENERATE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}.w-full{width:100%}.llm-summary-actions{display:flex;justify-content:end}.llm-summary-actions-wrapper{display:flex;justify-content:end;margin:0 1rem .5rem}\n"] }]
73
74
  }], ctorParameters: function () { return [{ type: i1.LlmService }, { type: i2.QuotaService }, { type: undefined, decorators: [{
74
75
  type: Inject,
75
76
  args: [MAT_DIALOG_DATA]
76
77
  }] }]; } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9jb21wb25lbnRzL2NyZWF0ZS1zdW1tYXJ5L2NyZWF0ZS1zdW1tYXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9jcmVhdGUtc3VtbWFyeS9jcmVhdGUtc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7O0FBUTVELE1BQU0sT0FBTyxzQkFBc0I7SUFhakMsSUFBSSx5QkFBeUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ3pELENBQUM7SUFFRCxZQUNtQixVQUFzQixFQUN0QixZQUEwQixFQUNWLElBQVM7UUFGekIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUNWLFNBQUksR0FBSixJQUFJLENBQUs7UUFWM0Isc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLGdDQUEyQixHQUFHLHVCQUF1QixDQUFDO0lBVXBFLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7UUFDeEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNwRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsSUFBSSxDQUFDLFVBQVU7YUFDWixTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDOUMsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO2dCQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDL0IsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU8sWUFBWSxDQUFDLFFBQWtCO1FBQ3JDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUU7WUFDbkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzlHLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQzFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNqQixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBRXZGLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQ1YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUM5RyxPQUFPO2lCQUNSO2dCQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQy9DLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOytHQXZFVSxzQkFBc0Isd0VBb0J2QixlQUFlO21HQXBCZCxzQkFBc0IsMERDYm5DLGdtREFxQ0E7OzRGRHhCYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzswQkF3QjNCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTGxtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xsbS5tb2RlbCc7XHJcbmltcG9ydCB7IExsbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sbG0uc2VydmljZSc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFF1b3RhU2VydmljZSwgUXVvdGFUeXBlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vbm90aWZpY2F0aW9uLW1lc3NhZ2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3JlYXRlLXN1bW1hcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLXN1bW1hcnkuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZVN1bW1hcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGlzTG9hZGluZyE6IGJvb2xlYW47XHJcbiAgc2hvd0Vycm9yTWVzc2FnZSE6IGJvb2xlYW47XHJcbiAgdGV4dCE6IHN0cmluZztcclxuICBsYW5ndWFnZSE6IHN0cmluZztcclxuICBzdW1tYXJ5UXVvdGFMZWZ0ITogbnVtYmVyO1xyXG4gIHN1YnNjcmlwdGlvblVybCE6IHN0cmluZztcclxuXHJcbiAgcmVhY2hlZFF1b3RhTWVzc2FnZSE6IE5vdGlmaWNhdGlvbk1lc3NhZ2U7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJpYWxSZXF1ZXN0Q291bnQgPSAxNTtcclxuICBwcml2YXRlIHJlYWRvbmx5IHN1bW1hcnlRdW90YUxvY2FsU3RvcmFnZUtleSA9ICdMTE1fU1VNTUFSWV9VU0FHRV9LRVknO1xyXG5cclxuICBnZXQgc2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN1bW1hcnlRdW90YUxlZnQgPD0gdGhpcy50cmlhbFJlcXVlc3RDb3VudDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsbG1TZXJ2aWNlOiBMbG1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBxdW90YVNlcnZpY2U6IFF1b3RhU2VydmljZSxcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIGRhdGE6IExsbVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRleHQgPSB0aGlzLmRhdGEudGV4dDtcclxuICAgIHRoaXMubGFuZ3VhZ2UgPSB0aGlzLmRhdGEubGFuZ3VhZ2U7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvblVybCA9IHRoaXMubGxtU2VydmljZS5sbG1Db25maWd1cmF0aW9uLnN1YnNjcmlwdGlvblVybDtcclxuICAgIHRoaXMucmVhY2hlZFF1b3RhTWVzc2FnZSA9IHRoaXMubGxtU2VydmljZS5nZXRSZWFjaGVkUXVvdGFNZXNzYWdlKCk7XHJcbiAgICB0aGlzLmNyZWF0ZVN1bW1hcnkoKTtcclxuICAgIHRoaXMucmVmcmVzaFF1b3RhKCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTdW1tYXJ5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMubGxtU2VydmljZVxyXG4gICAgICAuc3VtbWFyaXplKHsgdGV4dDogdGhpcy50ZXh0LCBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZSB9KVxyXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc0xvYWRpbmcgPSBmYWxzZSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMudGV4dCA9IHJlc3BvbnNlO1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoUXVvdGEodHJ1ZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaG93RXJyb3JNZXNzYWdlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5sbG1TZXJ2aWNlLmNhbmNlbFJlcXVlc3QoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVmcmVzaFF1b3RhKGRlY3JlYXNlPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubGxtU2VydmljZS5sbG1Db25maWd1cmF0aW9uLmlzV2ViQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMuc3VtbWFyeVF1b3RhTGVmdCA9IHRoaXMubGxtU2VydmljZS5zZXRRdW90YUxvY2FsU3RvcmFnZVVzYWdlKHRoaXMuc3VtbWFyeVF1b3RhTG9jYWxTdG9yYWdlS2V5LCBkZWNyZWFzZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnF1b3RhU2VydmljZS5nZXRRdW90YVVzYWdlKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcXVvdGEgPSByZXNwb25zZS51c2FnZS5maW5kKChpdGVtKSA9PiBpdGVtLnF1b3RhVHlwZSA9PT0gUXVvdGFUeXBlLkxMTV9SRVFVRVNUUyk7XHJcblxyXG4gICAgICAgIGlmICghcXVvdGEpIHtcclxuICAgICAgICAgIHRoaXMuc3VtbWFyeVF1b3RhTGVmdCA9IHRoaXMubGxtU2VydmljZS5zZXRRdW90YUxvY2FsU3RvcmFnZVVzYWdlKHRoaXMuc3VtbWFyeVF1b3RhTG9jYWxTdG9yYWdlS2V5LCBkZWNyZWFzZSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuc3VtbWFyeVF1b3RhTGVmdCA9IHF1b3RhLnF1b3RhUmVtYWluaW5nO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7IFwiTExNLlNVTU1BUllfTU9EQUwuVElUTEVcIiB8IHRyYW5zbGF0ZSB9fTwvaDE+XHJcbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxwIGNsYXNzPVwidGV4dC1tXCI+e3sgXCJMTE0uU1VNTUFSWV9NT0RBTC5ERVNDUklQVElPTlwiIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuICA8bGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZSAqbmdJZj1cIiFzdW1tYXJ5UXVvdGFMZWZ0XCIgW21lc3NhZ2VdPVwicmVhY2hlZFF1b3RhTWVzc2FnZVwiPjwvbGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZT5cclxuXHJcbiAgPGxpYi1sbG0tdGV4dGFyZWEgW3Nob3dFcnJvck1lc3NhZ2VdPVwic2hvd0Vycm9yTWVzc2FnZVwiIFt0ZXh0XT1cInRleHRcIiBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nIHx8ICFzdW1tYXJ5UXVvdGFMZWZ0XCIgKHRleHRFZGl0RXZlbnQpPVwidGV4dCA9ICRldmVudFwiPjwvbGliLWxsbS10ZXh0YXJlYT5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXgtMyBtYi0yXCIgbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxkaXYgKm5nSWY9XCJzaG93UmVtYWluaW5nUXVvdGFNZXNzYWdlXCIgW2lubmVySFRNTF09XCInTExNLlNVTU1BUllfTU9EQUwuTElNSVQnIHwgdHJhbnNsYXRlOiB7IGxpbWl0OiBzdW1tYXJ5UXVvdGFMZWZ0LCBzdWJzY3JpcHRpb25Vcmw6IHN1YnNjcmlwdGlvblVybCB9XCI+PC9kaXY+XHJcblxyXG4gIDxkaXYgW2NsYXNzLnctMTAwXT1cIiFzaG93UmVtYWluaW5nUXVvdGFNZXNzYWdlXCIgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgPGJ1dHRvbiAqbmdJZj1cImlzTG9hZGluZzsgZWxzZSBjbG9zZUJ1dHRvblwiIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cclxuICAgICAge3sgXCJMTE0uU1VNTUFSWV9NT0RBTC5DQU5DRUxcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNjbG9zZUJ1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgW21hdC1kaWFsb2ctY2xvc2VdPVwibnVsbFwiPlxyXG4gICAgICAgIHt7IFwiTExNLlNVTU1BUllfTU9EQUwuQ0xPU0VcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICBcclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgKGNsaWNrKT1cImNyZWF0ZVN1bW1hcnkoKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcgfHwgIXRleHQgfHwgIXN1bW1hcnlRdW90YUxlZnRcIlxyXG4gICAgPlxyXG4gICAgICB7e1xyXG4gICAgICAgIChpc0xvYWRpbmdcclxuICAgICAgICAgID8gXCJMTE0uU1VNTUFSWV9NT0RBTC5DUkVBVElOR1wiXHJcbiAgICAgICAgICA6IFwiTExNLlNVTU1BUllfTU9EQUwuUkVHRU5FUkFURVwiXHJcbiAgICAgICAgKSB8IHRyYW5zbGF0ZVxyXG4gICAgICB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9jb21wb25lbnRzL2NyZWF0ZS1zdW1tYXJ5L2NyZWF0ZS1zdW1tYXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9jcmVhdGUtc3VtbWFyeS9jcmVhdGUtc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7O0FBUTVELE1BQU0sT0FBTyxzQkFBc0I7SUFhakMsSUFBSSx5QkFBeUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ3pELENBQUM7SUFFRCxZQUNtQixVQUFzQixFQUN0QixZQUEwQixFQUNWLElBQVM7UUFGekIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUNWLFNBQUksR0FBSixJQUFJLENBQUs7UUFWM0Isc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLGdDQUEyQixHQUFHLHVCQUF1QixDQUFDO0lBVXBFLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7UUFDeEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNwRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsSUFBSSxDQUFDLFVBQVU7YUFDWixTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDOUMsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO2dCQUNyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO2dCQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDL0IsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU8sWUFBWSxDQUFDLFFBQWtCO1FBQ3JDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUU7WUFDbkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzlHLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQzFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNqQixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBRXZGLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQ1YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUM5RyxPQUFPO2lCQUNSO2dCQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQy9DLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOytHQXhFVSxzQkFBc0Isd0VBb0J2QixlQUFlO21HQXBCZCxzQkFBc0IsMERDYm5DLDZrREFxQ0E7OzRGRHhCYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzswQkF3QjNCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTGxtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xsbS5tb2RlbCc7XHJcbmltcG9ydCB7IExsbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sbG0uc2VydmljZSc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFF1b3RhU2VydmljZSwgUXVvdGFUeXBlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vbm90aWZpY2F0aW9uLW1lc3NhZ2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3JlYXRlLXN1bW1hcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLXN1bW1hcnkuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZVN1bW1hcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGlzTG9hZGluZyE6IGJvb2xlYW47XHJcbiAgc2hvd0Vycm9yTWVzc2FnZSE6IGJvb2xlYW47XHJcbiAgdGV4dCE6IHN0cmluZztcclxuICBsYW5ndWFnZSE6IHN0cmluZztcclxuICBzdW1tYXJ5UXVvdGFMZWZ0ITogbnVtYmVyO1xyXG4gIHN1YnNjcmlwdGlvblVybCE6IHN0cmluZztcclxuXHJcbiAgcmVhY2hlZFF1b3RhTWVzc2FnZSE6IE5vdGlmaWNhdGlvbk1lc3NhZ2U7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJpYWxSZXF1ZXN0Q291bnQgPSAxNTtcclxuICBwcml2YXRlIHJlYWRvbmx5IHN1bW1hcnlRdW90YUxvY2FsU3RvcmFnZUtleSA9ICdMTE1fU1VNTUFSWV9VU0FHRV9LRVknO1xyXG5cclxuICBnZXQgc2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN1bW1hcnlRdW90YUxlZnQgPD0gdGhpcy50cmlhbFJlcXVlc3RDb3VudDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsbG1TZXJ2aWNlOiBMbG1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBxdW90YVNlcnZpY2U6IFF1b3RhU2VydmljZSxcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIGRhdGE6IExsbVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRleHQgPSB0aGlzLmRhdGEudGV4dDtcclxuICAgIHRoaXMubGFuZ3VhZ2UgPSB0aGlzLmRhdGEubGFuZ3VhZ2U7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvblVybCA9IHRoaXMubGxtU2VydmljZS5sbG1Db25maWd1cmF0aW9uLnN1YnNjcmlwdGlvblVybDtcclxuICAgIHRoaXMucmVhY2hlZFF1b3RhTWVzc2FnZSA9IHRoaXMubGxtU2VydmljZS5nZXRSZWFjaGVkUXVvdGFNZXNzYWdlKCk7XHJcbiAgICB0aGlzLmNyZWF0ZVN1bW1hcnkoKTtcclxuICAgIHRoaXMucmVmcmVzaFF1b3RhKCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTdW1tYXJ5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMubGxtU2VydmljZVxyXG4gICAgICAuc3VtbWFyaXplKHsgdGV4dDogdGhpcy50ZXh0LCBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZSB9KVxyXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc0xvYWRpbmcgPSBmYWxzZSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMudGV4dCA9IHJlc3BvbnNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93RXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnJlZnJlc2hRdW90YSh0cnVlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNob3dFcnJvck1lc3NhZ2UgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxsbVNlcnZpY2UuY2FuY2VsUmVxdWVzdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoUXVvdGEoZGVjcmVhc2U/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5sbG1TZXJ2aWNlLmxsbUNvbmZpZ3VyYXRpb24uaXNXZWJDb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5zdW1tYXJ5UXVvdGFMZWZ0ID0gdGhpcy5sbG1TZXJ2aWNlLnNldFF1b3RhTG9jYWxTdG9yYWdlVXNhZ2UodGhpcy5zdW1tYXJ5UXVvdGFMb2NhbFN0b3JhZ2VLZXksIGRlY3JlYXNlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucXVvdGFTZXJ2aWNlLmdldFF1b3RhVXNhZ2UoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBjb25zdCBxdW90YSA9IHJlc3BvbnNlLnVzYWdlLmZpbmQoKGl0ZW0pID0+IGl0ZW0ucXVvdGFUeXBlID09PSBRdW90YVR5cGUuTExNX1JFUVVFU1RTKTtcclxuXHJcbiAgICAgICAgaWYgKCFxdW90YSkge1xyXG4gICAgICAgICAgdGhpcy5zdW1tYXJ5UXVvdGFMZWZ0ID0gdGhpcy5sbG1TZXJ2aWNlLnNldFF1b3RhTG9jYWxTdG9yYWdlVXNhZ2UodGhpcy5zdW1tYXJ5UXVvdGFMb2NhbFN0b3JhZ2VLZXksIGRlY3JlYXNlKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5zdW1tYXJ5UXVvdGFMZWZ0ID0gcXVvdGEucXVvdGFSZW1haW5pbmc7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3sgXCJMTE0uU1VNTUFSWV9NT0RBTC5USVRMRVwiIHwgdHJhbnNsYXRlIH19PC9oMT5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPHAgY2xhc3M9XCJ0ZXh0LW1cIj57eyBcIkxMTS5TVU1NQVJZX01PREFMLkRFU0NSSVBUSU9OXCIgfCB0cmFuc2xhdGUgfX08L3A+XHJcblxyXG4gIDxsaWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlICpuZ0lmPVwiIXN1bW1hcnlRdW90YUxlZnRcIiBbbWVzc2FnZV09XCJyZWFjaGVkUXVvdGFNZXNzYWdlXCI+PC9saWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlPlxyXG5cclxuICA8bGliLWxsbS10ZXh0YXJlYSBbc2hvd0Vycm9yTWVzc2FnZV09XCJzaG93RXJyb3JNZXNzYWdlXCIgW3RleHRdPVwidGV4dFwiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcgfHwgIXN1bW1hcnlRdW90YUxlZnRcIiAodGV4dEVkaXRFdmVudCk9XCJ0ZXh0ID0gJGV2ZW50XCI+PC9saWItbGxtLXRleHRhcmVhPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImxsbS1zdW1tYXJ5LWFjdGlvbnMtd3JhcHBlclwiIG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2ICpuZ0lmPVwic2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZVwiIFtpbm5lckhUTUxdPVwiJ0xMTS5TVU1NQVJZX01PREFMLkxJTUlUJyB8IHRyYW5zbGF0ZTogeyBsaW1pdDogc3VtbWFyeVF1b3RhTGVmdCwgc3Vic2NyaXB0aW9uVXJsOiBzdWJzY3JpcHRpb25VcmwgfVwiPjwvZGl2PlxyXG5cclxuICA8ZGl2IFtjbGFzcy53LWZ1bGxdPVwiIXNob3dSZW1haW5pbmdRdW90YU1lc3NhZ2VcIiBjbGFzcz1cImxsbS1zdW1tYXJ5LWFjdGlvbnNcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgY2xvc2VCdXR0b25cIiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIHt7IFwiTExNLlNVTU1BUllfTU9EQUwuQ0FOQ0VMXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY2xvc2VCdXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIj5cclxuICAgICAgICB7eyBcIkxMTS5TVU1NQVJZX01PREFMLkNMT1NFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgIChjbGljayk9XCJjcmVhdGVTdW1tYXJ5KClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nIHx8ICF0ZXh0IHx8ICFzdW1tYXJ5UXVvdGFMZWZ0XCJcclxuICAgID5cclxuICAgICAge3tcclxuICAgICAgICAoaXNMb2FkaW5nXHJcbiAgICAgICAgICA/IFwiTExNLlNVTU1BUllfTU9EQUwuQ1JFQVRJTkdcIlxyXG4gICAgICAgICAgOiBcIkxMTS5TVU1NQVJZX01PREFMLlJFR0VORVJBVEVcIlxyXG4gICAgICAgICkgfCB0cmFuc2xhdGVcclxuICAgICAgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -43,6 +43,7 @@ export class RephraseTranslationComponent {
43
43
  .subscribe({
44
44
  next: (response) => {
45
45
  this.text = response;
46
+ this.showErrorMessage = false;
46
47
  this.refreshQuota(true);
47
48
  },
48
49
  error: () => {
@@ -70,13 +71,13 @@ export class RephraseTranslationComponent {
70
71
  });
71
72
  }
72
73
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RephraseTranslationComponent, deps: [{ token: i1.LlmService }, { token: i2.QuotaService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RephraseTranslationComponent, selector: "lib-rephrase-translation", ngImport: i0, template: "<h1 mat-dialog-title>{{ \"LLM.REPHRASE_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.REPHRASE_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!rephraseQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <mat-form-field color=\"accent\" class=\"w-100 mt-3\" appearance=\"outline\">\r\n <mat-label>{{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.TITLE' | translate }}</mat-label>\r\n <mat-select [(value)]=\"selectedWritingStyle\">\r\n <mat-option *ngFor=\"let style of writingStyles\" [value]=\"style\">\r\n {{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (style | uppercase) | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <p class=\"d-flex align-items-center text-m-semi-bold\">{{\r\n \"LLM.REPHRASE_MODAL.WRITING_STYLES.SPECIFIC_STYLE\" | translate : \r\n { style: 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (selectedWritingStyle | uppercase) | translate } \r\n }}\r\n <span\r\n class=\"material-icons-outlined ml-1 info-icon\"\r\n matTooltipClass=\"multiline-tooltip\"\r\n matTooltipPosition=\"above\" \r\n [matTooltip]=\"'LLM.REPHRASE_MODAL.WRITING_STYLES.TOOLTIP' | translate\" \r\n >\r\n info\r\n </span>\r\n </p>\r\n\r\n <lib-llm-textarea [text]=\"text\" [disabled]=\"isLoading || !rephraseQuotaLeft\" [showErrorMessage]=\"showErrorMessage\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"d-flex justify-content-between mx-3 mb-2\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.REPHRASE_MODAL.LIMIT' | translate: { limit: rephraseQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-100]=\"!showRemainingQuotaMessage\" class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.REPHRASE_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.REPHRASE_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"rephraseText()\"\r\n [disabled]=\"isLoading || !text || !rephraseQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.REPHRASE_MODAL.REPHRASING\"\r\n : \"LLM.REPHRASE_MODAL.REPHRASE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".info-icon{font-size:1rem}:host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}::ng-deep .multiline-tooltip{white-space:pre;min-width:-moz-fit-content;min-width:fit-content}::ng-deep .multiline-tooltip .mdc-tooltip__surface{max-width:none!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i9.NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.LlmTextareaComponent, selector: "lib-llm-textarea", inputs: ["text", "disabled", "showErrorMessage"], outputs: ["textEditEvent", "dislikeEvent"] }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] }); }
74
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RephraseTranslationComponent, selector: "lib-rephrase-translation", ngImport: i0, template: "<h1 mat-dialog-title>{{ \"LLM.REPHRASE_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.REPHRASE_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!rephraseQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <mat-form-field color=\"accent\" class=\"w-full llm-writing-style-select\" appearance=\"outline\">\r\n <mat-label>{{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.TITLE' | translate }}</mat-label>\r\n <mat-select [(value)]=\"selectedWritingStyle\">\r\n <mat-option *ngFor=\"let style of writingStyles\" [value]=\"style\">\r\n {{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (style | uppercase) | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <p class=\"llm-writing-style text-m-semi-bold\">{{\r\n \"LLM.REPHRASE_MODAL.WRITING_STYLES.SPECIFIC_STYLE\" | translate : \r\n { style: 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (selectedWritingStyle | uppercase) | translate } \r\n }}\r\n <span\r\n class=\"material-icons-outlined info-icon\"\r\n matTooltipClass=\"multiline-tooltip\"\r\n matTooltipPosition=\"above\" \r\n [matTooltip]=\"'LLM.REPHRASE_MODAL.WRITING_STYLES.TOOLTIP' | translate\" \r\n >\r\n info\r\n </span>\r\n </p>\r\n\r\n <lib-llm-textarea [text]=\"text\" [disabled]=\"isLoading || !rephraseQuotaLeft\" [showErrorMessage]=\"showErrorMessage\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-rephrase-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.REPHRASE_MODAL.LIMIT' | translate: { limit: rephraseQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!showRemainingQuotaMessage\" class=\"llm-rephrase-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.REPHRASE_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.REPHRASE_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"rephraseText()\"\r\n [disabled]=\"isLoading || !text || !rephraseQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.REPHRASE_MODAL.REPHRASING\"\r\n : \"LLM.REPHRASE_MODAL.REPHRASE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".info-icon{font-size:1rem;margin-left:5px}:host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}::ng-deep .multiline-tooltip{white-space:pre;min-width:-moz-fit-content;min-width:fit-content}::ng-deep .multiline-tooltip .mdc-tooltip__surface{max-width:none!important}.llm-writing-style-select{margin-top:1.25rem}.llm-writing-style{display:flex;align-items:center;margin-bottom:.25rem}.llm-rephrase-actions-wrapper{display:flex;justify-content:end;margin:0 1rem .5rem}.llm-rephrase-actions{display:flex;justify-content:end}.w-full{width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i9.NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.LlmTextareaComponent, selector: "lib-llm-textarea", inputs: ["text", "disabled", "showErrorMessage"], outputs: ["textEditEvent", "dislikeEvent"] }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] }); }
74
75
  }
75
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RephraseTranslationComponent, decorators: [{
76
77
  type: Component,
77
- args: [{ selector: 'lib-rephrase-translation', template: "<h1 mat-dialog-title>{{ \"LLM.REPHRASE_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.REPHRASE_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!rephraseQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <mat-form-field color=\"accent\" class=\"w-100 mt-3\" appearance=\"outline\">\r\n <mat-label>{{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.TITLE' | translate }}</mat-label>\r\n <mat-select [(value)]=\"selectedWritingStyle\">\r\n <mat-option *ngFor=\"let style of writingStyles\" [value]=\"style\">\r\n {{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (style | uppercase) | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <p class=\"d-flex align-items-center text-m-semi-bold\">{{\r\n \"LLM.REPHRASE_MODAL.WRITING_STYLES.SPECIFIC_STYLE\" | translate : \r\n { style: 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (selectedWritingStyle | uppercase) | translate } \r\n }}\r\n <span\r\n class=\"material-icons-outlined ml-1 info-icon\"\r\n matTooltipClass=\"multiline-tooltip\"\r\n matTooltipPosition=\"above\" \r\n [matTooltip]=\"'LLM.REPHRASE_MODAL.WRITING_STYLES.TOOLTIP' | translate\" \r\n >\r\n info\r\n </span>\r\n </p>\r\n\r\n <lib-llm-textarea [text]=\"text\" [disabled]=\"isLoading || !rephraseQuotaLeft\" [showErrorMessage]=\"showErrorMessage\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"d-flex justify-content-between mx-3 mb-2\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.REPHRASE_MODAL.LIMIT' | translate: { limit: rephraseQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-100]=\"!showRemainingQuotaMessage\" class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.REPHRASE_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.REPHRASE_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"rephraseText()\"\r\n [disabled]=\"isLoading || !text || !rephraseQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.REPHRASE_MODAL.REPHRASING\"\r\n : \"LLM.REPHRASE_MODAL.REPHRASE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".info-icon{font-size:1rem}:host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}::ng-deep .multiline-tooltip{white-space:pre;min-width:-moz-fit-content;min-width:fit-content}::ng-deep .multiline-tooltip .mdc-tooltip__surface{max-width:none!important}\n"] }]
78
+ args: [{ selector: 'lib-rephrase-translation', template: "<h1 mat-dialog-title>{{ \"LLM.REPHRASE_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.REPHRASE_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!rephraseQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <mat-form-field color=\"accent\" class=\"w-full llm-writing-style-select\" appearance=\"outline\">\r\n <mat-label>{{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.TITLE' | translate }}</mat-label>\r\n <mat-select [(value)]=\"selectedWritingStyle\">\r\n <mat-option *ngFor=\"let style of writingStyles\" [value]=\"style\">\r\n {{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (style | uppercase) | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <p class=\"llm-writing-style text-m-semi-bold\">{{\r\n \"LLM.REPHRASE_MODAL.WRITING_STYLES.SPECIFIC_STYLE\" | translate : \r\n { style: 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (selectedWritingStyle | uppercase) | translate } \r\n }}\r\n <span\r\n class=\"material-icons-outlined info-icon\"\r\n matTooltipClass=\"multiline-tooltip\"\r\n matTooltipPosition=\"above\" \r\n [matTooltip]=\"'LLM.REPHRASE_MODAL.WRITING_STYLES.TOOLTIP' | translate\" \r\n >\r\n info\r\n </span>\r\n </p>\r\n\r\n <lib-llm-textarea [text]=\"text\" [disabled]=\"isLoading || !rephraseQuotaLeft\" [showErrorMessage]=\"showErrorMessage\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-rephrase-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.REPHRASE_MODAL.LIMIT' | translate: { limit: rephraseQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!showRemainingQuotaMessage\" class=\"llm-rephrase-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.REPHRASE_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.REPHRASE_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"rephraseText()\"\r\n [disabled]=\"isLoading || !text || !rephraseQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.REPHRASE_MODAL.REPHRASING\"\r\n : \"LLM.REPHRASE_MODAL.REPHRASE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".info-icon{font-size:1rem;margin-left:5px}:host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}::ng-deep .multiline-tooltip{white-space:pre;min-width:-moz-fit-content;min-width:fit-content}::ng-deep .multiline-tooltip .mdc-tooltip__surface{max-width:none!important}.llm-writing-style-select{margin-top:1.25rem}.llm-writing-style{display:flex;align-items:center;margin-bottom:.25rem}.llm-rephrase-actions-wrapper{display:flex;justify-content:end;margin:0 1rem .5rem}.llm-rephrase-actions{display:flex;justify-content:end}.w-full{width:100%}\n"] }]
78
79
  }], ctorParameters: function () { return [{ type: i1.LlmService }, { type: i2.QuotaService }, { type: undefined, decorators: [{
79
80
  type: Inject,
80
81
  args: [MAT_DIALOG_DATA]
81
82
  }] }]; } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwaHJhc2UtdHJhbnNsYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9jb21wb25lbnRzL3JlcGhyYXNlLXRyYW5zbGF0aW9uL3JlcGhyYXNlLXRyYW5zbGF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9yZXBocmFzZS10cmFuc2xhdGlvbi9yZXBocmFzZS10cmFuc2xhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUxRCxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRdEUsTUFBTSxPQUFPLDRCQUE0QjtJQWV2QyxJQUFJLHlCQUF5QjtRQUMzQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDMUQsQ0FBQztJQUVELFlBQ21CLFVBQXNCLEVBQ3RCLFlBQTBCLEVBQ1YsSUFBUztRQUZ6QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ1YsU0FBSSxHQUFKLElBQUksQ0FBSztRQWhCNUMseUJBQW9CLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQUl0QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFdkMsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLGlDQUE0QixHQUFHLHdCQUF3QixDQUFDO0lBVXRFLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO1FBQ3hFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDcEUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsSUFBSSxDQUFDLFVBQVU7YUFDWixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUM5QyxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUMvQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTyxZQUFZLENBQUMsUUFBa0I7UUFDckMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRTtZQUNuRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDaEgsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDMUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUU5RixJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNWLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDaEgsT0FBTztpQkFDUjtnQkFFRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUNoRCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F2RVUsNEJBQTRCLHdFQXNCN0IsZUFBZTttR0F0QmQsNEJBQTRCLGdFQ2R6QyxpbUZBNERBOzs0RkQ5Q2EsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDBCQUEwQjs7MEJBMEJqQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExsbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sbG0uc2VydmljZSc7XHJcbmltcG9ydCB7IFF1b3RhU2VydmljZSwgUXVvdGFUeXBlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBMbG0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbGxtLm1vZGVsJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTGxtV3JpdGluZ1N0eWxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xsbS13cml0aW5nLXN0eWxlLmVudW0nO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vbm90aWZpY2F0aW9uLW1lc3NhZ2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcmVwaHJhc2UtdHJhbnNsYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBocmFzZS10cmFuc2xhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVwaHJhc2UtdHJhbnNsYXRpb24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwaHJhc2VUcmFuc2xhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaXNMb2FkaW5nITogYm9vbGVhbjtcclxuICBzaG93RXJyb3JNZXNzYWdlITogYm9vbGVhbjtcclxuICB0ZXh0ITogc3RyaW5nO1xyXG4gIHJlcGhyYXNlUXVvdGFMZWZ0ITogbnVtYmVyO1xyXG4gIHN1YnNjcmlwdGlvblVybCE6IHN0cmluZztcclxuICBzZWxlY3RlZFdyaXRpbmdTdHlsZSA9IExsbVdyaXRpbmdTdHlsZS5HRU5FUkFMO1xyXG5cclxuICByZWFjaGVkUXVvdGFNZXNzYWdlITogTm90aWZpY2F0aW9uTWVzc2FnZTtcclxuICBcclxuICByZWFkb25seSB3cml0aW5nU3R5bGVzID0gT2JqZWN0LnZhbHVlcyhMbG1Xcml0aW5nU3R5bGUpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHRyaWFsUmVxdWVzdENvdW50ID0gMTU7XHJcbiAgcHJpdmF0ZSByZWFkb25seSByZXBocmFzZVF1b3RhTG9jYWxTdG9yYWdlS2V5ID0gJ0xMTV9SRVBIUkFTRV9VU0FHRV9LRVknO1xyXG5cclxuICBnZXQgc2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJlcGhyYXNlUXVvdGFMZWZ0IDw9IHRoaXMudHJpYWxSZXF1ZXN0Q291bnQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGxtU2VydmljZTogTGxtU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcXVvdGFTZXJ2aWNlOiBRdW90YVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBkYXRhOiBMbG1cclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZXh0ID0gdGhpcy5kYXRhLnRleHQ7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvblVybCA9IHRoaXMubGxtU2VydmljZS5sbG1Db25maWd1cmF0aW9uLnN1YnNjcmlwdGlvblVybDtcclxuICAgIHRoaXMucmVhY2hlZFF1b3RhTWVzc2FnZSA9IHRoaXMubGxtU2VydmljZS5nZXRSZWFjaGVkUXVvdGFNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnJlZnJlc2hRdW90YSgpO1xyXG4gIH1cclxuXHJcbiAgcmVwaHJhc2VUZXh0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMubGxtU2VydmljZVxyXG4gICAgICAucmVwaHJhc2UoeyB0ZXh0OiB0aGlzLnRleHQsIHN0eWxlOiB0aGlzLnNlbGVjdGVkV3JpdGluZ1N0eWxlIH0pXHJcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50ZXh0ID0gcmVzcG9uc2U7XHJcbiAgICAgICAgICB0aGlzLnJlZnJlc2hRdW90YSh0cnVlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNob3dFcnJvck1lc3NhZ2UgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxsbVNlcnZpY2UuY2FuY2VsUmVxdWVzdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoUXVvdGEoZGVjcmVhc2U/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5sbG1TZXJ2aWNlLmxsbUNvbmZpZ3VyYXRpb24uaXNXZWJDb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5yZXBocmFzZVF1b3RhTGVmdCA9IHRoaXMubGxtU2VydmljZS5zZXRRdW90YUxvY2FsU3RvcmFnZVVzYWdlKHRoaXMucmVwaHJhc2VRdW90YUxvY2FsU3RvcmFnZUtleSwgZGVjcmVhc2UpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5xdW90YVNlcnZpY2UuZ2V0UXVvdGFVc2FnZSgpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHF1b3RhID0gcmVzcG9uc2UudXNhZ2UuZmluZCgoaXRlbSkgPT4gaXRlbS5xdW90YVR5cGUgPT09IFF1b3RhVHlwZS5MTE1fQ0hBUkFDVEVSX0NPVU5UKTtcclxuXHJcbiAgICAgICAgaWYgKCFxdW90YSkge1xyXG4gICAgICAgICAgdGhpcy5yZXBocmFzZVF1b3RhTGVmdCA9IHRoaXMubGxtU2VydmljZS5zZXRRdW90YUxvY2FsU3RvcmFnZVVzYWdlKHRoaXMucmVwaHJhc2VRdW90YUxvY2FsU3RvcmFnZUtleSwgZGVjcmVhc2UpOyAgICAgICAgICBcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucmVwaHJhc2VRdW90YUxlZnQgPSBxdW90YS5xdW90YVJlbWFpbmluZztcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8aDEgbWF0LWRpYWxvZy10aXRsZT57eyBcIkxMTS5SRVBIUkFTRV9NT0RBTC5USVRMRVwiIHwgdHJhbnNsYXRlIH19PC9oMT5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPHAgY2xhc3M9XCJ0ZXh0LW1cIj57eyBcIkxMTS5SRVBIUkFTRV9NT0RBTC5ERVNDUklQVElPTlwiIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuICA8bGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZSAqbmdJZj1cIiFyZXBocmFzZVF1b3RhTGVmdFwiIFttZXNzYWdlXT1cInJlYWNoZWRRdW90YU1lc3NhZ2VcIj48L2xpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2U+XHJcblxyXG4gIDxtYXQtZm9ybS1maWVsZCBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwidy0xMDAgbXQtM1wiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICA8bWF0LWxhYmVsPnt7ICdMTE0uUkVQSFJBU0VfTU9EQUwuV1JJVElOR19TVFlMRVMuVElUTEUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCBbKHZhbHVlKV09XCJzZWxlY3RlZFdyaXRpbmdTdHlsZVwiPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgc3R5bGUgb2Ygd3JpdGluZ1N0eWxlc1wiIFt2YWx1ZV09XCJzdHlsZVwiPlxyXG4gICAgICAgIHt7ICdMTE0uUkVQSFJBU0VfTU9EQUwuV1JJVElOR19TVFlMRVMuJyArIChzdHlsZSB8IHVwcGVyY2FzZSkgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gIDxwIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB0ZXh0LW0tc2VtaS1ib2xkXCI+e3tcclxuICAgICAgXCJMTE0uUkVQSFJBU0VfTU9EQUwuV1JJVElOR19TVFlMRVMuU1BFQ0lGSUNfU1RZTEVcIiB8IHRyYW5zbGF0ZSA6IFxyXG4gICAgICB7IHN0eWxlOiAnTExNLlJFUEhSQVNFX01PREFMLldSSVRJTkdfU1RZTEVTLicgKyAoc2VsZWN0ZWRXcml0aW5nU3R5bGUgfCB1cHBlcmNhc2UpIHwgdHJhbnNsYXRlIH0gXHJcbiAgICB9fVxyXG4gICAgPHNwYW5cclxuICAgICAgY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCBtbC0xIGluZm8taWNvblwiXHJcbiAgICAgIG1hdFRvb2x0aXBDbGFzcz1cIm11bHRpbGluZS10b29sdGlwXCJcclxuICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBcclxuICAgICAgW21hdFRvb2x0aXBdPVwiJ0xMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy5UT09MVElQJyB8IHRyYW5zbGF0ZVwiIFxyXG4gICAgPlxyXG4gICAgICBpbmZvXHJcbiAgICA8L3NwYW4+XHJcbiAgPC9wPlxyXG5cclxuICA8bGliLWxsbS10ZXh0YXJlYSBbdGV4dF09XCJ0ZXh0XCIgW2Rpc2FibGVkXT1cImlzTG9hZGluZyB8fCAhcmVwaHJhc2VRdW90YUxlZnRcIiBbc2hvd0Vycm9yTWVzc2FnZV09XCJzaG93RXJyb3JNZXNzYWdlXCIgKHRleHRFZGl0RXZlbnQpPVwidGV4dCA9ICRldmVudFwiPjwvbGliLWxsbS10ZXh0YXJlYT5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXgtMyBtYi0yXCIgbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxkaXYgKm5nSWY9XCJzaG93UmVtYWluaW5nUXVvdGFNZXNzYWdlXCIgW2lubmVySFRNTF09XCInTExNLlJFUEhSQVNFX01PREFMLkxJTUlUJyB8IHRyYW5zbGF0ZTogeyBsaW1pdDogcmVwaHJhc2VRdW90YUxlZnQsIHN1YnNjcmlwdGlvblVybDogc3Vic2NyaXB0aW9uVXJsIH1cIj48L2Rpdj5cclxuXHJcbiAgPGRpdiBbY2xhc3Mudy0xMDBdPVwiIXNob3dSZW1haW5pbmdRdW90YU1lc3NhZ2VcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8YnV0dG9uICpuZ0lmPVwiaXNMb2FkaW5nOyBlbHNlIGNsb3NlQnV0dG9uXCIgbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxyXG4gICAgICB7eyBcIkxMTS5SRVBIUkFTRV9NT0RBTC5DQU5DRUxcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNjbG9zZUJ1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgW21hdC1kaWFsb2ctY2xvc2VdPVwibnVsbFwiPlxyXG4gICAgICAgIHt7IFwiTExNLlJFUEhSQVNFX01PREFMLkNMT1NFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgIChjbGljayk9XCJyZXBocmFzZVRleHQoKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcgfHwgIXRleHQgfHwgIXJlcGhyYXNlUXVvdGFMZWZ0XCJcclxuICAgID5cclxuICAgICAge3tcclxuICAgICAgICAoaXNMb2FkaW5nXHJcbiAgICAgICAgICA/IFwiTExNLlJFUEhSQVNFX01PREFMLlJFUEhSQVNJTkdcIlxyXG4gICAgICAgICAgOiBcIkxMTS5SRVBIUkFTRV9NT0RBTC5SRVBIUkFTRVwiXHJcbiAgICAgICAgKSB8IHRyYW5zbGF0ZVxyXG4gICAgICB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwaHJhc2UtdHJhbnNsYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9jb21wb25lbnRzL3JlcGhyYXNlLXRyYW5zbGF0aW9uL3JlcGhyYXNlLXRyYW5zbGF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9yZXBocmFzZS10cmFuc2xhdGlvbi9yZXBocmFzZS10cmFuc2xhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUxRCxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRdEUsTUFBTSxPQUFPLDRCQUE0QjtJQWV2QyxJQUFJLHlCQUF5QjtRQUMzQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDMUQsQ0FBQztJQUVELFlBQ21CLFVBQXNCLEVBQ3RCLFlBQTBCLEVBQ1YsSUFBUztRQUZ6QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ1YsU0FBSSxHQUFKLElBQUksQ0FBSztRQWhCNUMseUJBQW9CLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQUl0QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFdkMsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLGlDQUE0QixHQUFHLHdCQUF3QixDQUFDO0lBVXRFLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO1FBQ3hFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDcEUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsSUFBSSxDQUFDLFVBQVU7YUFDWixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUM5QyxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUMvQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTyxZQUFZLENBQUMsUUFBa0I7UUFDckMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRTtZQUNuRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDaEgsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDMUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUU5RixJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNWLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDaEgsT0FBTztpQkFDUjtnQkFFRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUNoRCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F4RVUsNEJBQTRCLHdFQXNCN0IsZUFBZTttR0F0QmQsNEJBQTRCLGdFQ2R6Qyx3bEZBNERBOzs0RkQ5Q2EsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDBCQUEwQjs7MEJBMEJqQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExsbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sbG0uc2VydmljZSc7XHJcbmltcG9ydCB7IFF1b3RhU2VydmljZSwgUXVvdGFUeXBlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBMbG0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbGxtLm1vZGVsJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTGxtV3JpdGluZ1N0eWxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xsbS13cml0aW5nLXN0eWxlLmVudW0nO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vbm90aWZpY2F0aW9uLW1lc3NhZ2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcmVwaHJhc2UtdHJhbnNsYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBocmFzZS10cmFuc2xhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVwaHJhc2UtdHJhbnNsYXRpb24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwaHJhc2VUcmFuc2xhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaXNMb2FkaW5nITogYm9vbGVhbjtcclxuICBzaG93RXJyb3JNZXNzYWdlITogYm9vbGVhbjtcclxuICB0ZXh0ITogc3RyaW5nO1xyXG4gIHJlcGhyYXNlUXVvdGFMZWZ0ITogbnVtYmVyO1xyXG4gIHN1YnNjcmlwdGlvblVybCE6IHN0cmluZztcclxuICBzZWxlY3RlZFdyaXRpbmdTdHlsZSA9IExsbVdyaXRpbmdTdHlsZS5HRU5FUkFMO1xyXG5cclxuICByZWFjaGVkUXVvdGFNZXNzYWdlITogTm90aWZpY2F0aW9uTWVzc2FnZTtcclxuICBcclxuICByZWFkb25seSB3cml0aW5nU3R5bGVzID0gT2JqZWN0LnZhbHVlcyhMbG1Xcml0aW5nU3R5bGUpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHRyaWFsUmVxdWVzdENvdW50ID0gMTU7XHJcbiAgcHJpdmF0ZSByZWFkb25seSByZXBocmFzZVF1b3RhTG9jYWxTdG9yYWdlS2V5ID0gJ0xMTV9SRVBIUkFTRV9VU0FHRV9LRVknO1xyXG5cclxuICBnZXQgc2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJlcGhyYXNlUXVvdGFMZWZ0IDw9IHRoaXMudHJpYWxSZXF1ZXN0Q291bnQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGxtU2VydmljZTogTGxtU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcXVvdGFTZXJ2aWNlOiBRdW90YVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBkYXRhOiBMbG1cclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZXh0ID0gdGhpcy5kYXRhLnRleHQ7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvblVybCA9IHRoaXMubGxtU2VydmljZS5sbG1Db25maWd1cmF0aW9uLnN1YnNjcmlwdGlvblVybDtcclxuICAgIHRoaXMucmVhY2hlZFF1b3RhTWVzc2FnZSA9IHRoaXMubGxtU2VydmljZS5nZXRSZWFjaGVkUXVvdGFNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnJlZnJlc2hRdW90YSgpO1xyXG4gIH1cclxuXHJcbiAgcmVwaHJhc2VUZXh0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMubGxtU2VydmljZVxyXG4gICAgICAucmVwaHJhc2UoeyB0ZXh0OiB0aGlzLnRleHQsIHN0eWxlOiB0aGlzLnNlbGVjdGVkV3JpdGluZ1N0eWxlIH0pXHJcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50ZXh0ID0gcmVzcG9uc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dFcnJvck1lc3NhZ2UgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMucmVmcmVzaFF1b3RhKHRydWUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hvd0Vycm9yTWVzc2FnZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMubGxtU2VydmljZS5jYW5jZWxSZXF1ZXN0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlZnJlc2hRdW90YShkZWNyZWFzZT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmxsbVNlcnZpY2UubGxtQ29uZmlndXJhdGlvbi5pc1dlYkNvbXBvbmVudCkge1xyXG4gICAgICB0aGlzLnJlcGhyYXNlUXVvdGFMZWZ0ID0gdGhpcy5sbG1TZXJ2aWNlLnNldFF1b3RhTG9jYWxTdG9yYWdlVXNhZ2UodGhpcy5yZXBocmFzZVF1b3RhTG9jYWxTdG9yYWdlS2V5LCBkZWNyZWFzZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnF1b3RhU2VydmljZS5nZXRRdW90YVVzYWdlKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcXVvdGEgPSByZXNwb25zZS51c2FnZS5maW5kKChpdGVtKSA9PiBpdGVtLnF1b3RhVHlwZSA9PT0gUXVvdGFUeXBlLkxMTV9DSEFSQUNURVJfQ09VTlQpO1xyXG5cclxuICAgICAgICBpZiAoIXF1b3RhKSB7XHJcbiAgICAgICAgICB0aGlzLnJlcGhyYXNlUXVvdGFMZWZ0ID0gdGhpcy5sbG1TZXJ2aWNlLnNldFF1b3RhTG9jYWxTdG9yYWdlVXNhZ2UodGhpcy5yZXBocmFzZVF1b3RhTG9jYWxTdG9yYWdlS2V5LCBkZWNyZWFzZSk7ICAgICAgICAgIFxyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5yZXBocmFzZVF1b3RhTGVmdCA9IHF1b3RhLnF1b3RhUmVtYWluaW5nO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7IFwiTExNLlJFUEhSQVNFX01PREFMLlRJVExFXCIgfCB0cmFuc2xhdGUgfX08L2gxPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8cCBjbGFzcz1cInRleHQtbVwiPnt7IFwiTExNLlJFUEhSQVNFX01PREFMLkRFU0NSSVBUSU9OXCIgfCB0cmFuc2xhdGUgfX08L3A+XHJcblxyXG4gIDxsaWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlICpuZ0lmPVwiIXJlcGhyYXNlUXVvdGFMZWZ0XCIgW21lc3NhZ2VdPVwicmVhY2hlZFF1b3RhTWVzc2FnZVwiPjwvbGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZT5cclxuXHJcbiAgPG1hdC1mb3JtLWZpZWxkIGNvbG9yPVwiYWNjZW50XCIgY2xhc3M9XCJ3LWZ1bGwgbGxtLXdyaXRpbmctc3R5bGUtc2VsZWN0XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgIDxtYXQtbGFiZWw+e3sgJ0xMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy5USVRMRScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgIDxtYXQtc2VsZWN0IFsodmFsdWUpXT1cInNlbGVjdGVkV3JpdGluZ1N0eWxlXCI+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdHlsZSBvZiB3cml0aW5nU3R5bGVzXCIgW3ZhbHVlXT1cInN0eWxlXCI+XHJcbiAgICAgICAge3sgJ0xMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy4nICsgKHN0eWxlIHwgdXBwZXJjYXNlKSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgPHAgY2xhc3M9XCJsbG0td3JpdGluZy1zdHlsZSB0ZXh0LW0tc2VtaS1ib2xkXCI+e3tcclxuICAgICAgXCJMTE0uUkVQSFJBU0VfTU9EQUwuV1JJVElOR19TVFlMRVMuU1BFQ0lGSUNfU1RZTEVcIiB8IHRyYW5zbGF0ZSA6IFxyXG4gICAgICB7IHN0eWxlOiAnTExNLlJFUEhSQVNFX01PREFMLldSSVRJTkdfU1RZTEVTLicgKyAoc2VsZWN0ZWRXcml0aW5nU3R5bGUgfCB1cHBlcmNhc2UpIHwgdHJhbnNsYXRlIH0gXHJcbiAgICB9fVxyXG4gICAgPHNwYW5cclxuICAgICAgY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCBpbmZvLWljb25cIlxyXG4gICAgICBtYXRUb29sdGlwQ2xhc3M9XCJtdWx0aWxpbmUtdG9vbHRpcFwiXHJcbiAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgXHJcbiAgICAgIFttYXRUb29sdGlwXT1cIidMTE0uUkVQSFJBU0VfTU9EQUwuV1JJVElOR19TVFlMRVMuVE9PTFRJUCcgfCB0cmFuc2xhdGVcIiBcclxuICAgID5cclxuICAgICAgaW5mb1xyXG4gICAgPC9zcGFuPlxyXG4gIDwvcD5cclxuXHJcbiAgPGxpYi1sbG0tdGV4dGFyZWEgW3RleHRdPVwidGV4dFwiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcgfHwgIXJlcGhyYXNlUXVvdGFMZWZ0XCIgW3Nob3dFcnJvck1lc3NhZ2VdPVwic2hvd0Vycm9yTWVzc2FnZVwiICh0ZXh0RWRpdEV2ZW50KT1cInRleHQgPSAkZXZlbnRcIj48L2xpYi1sbG0tdGV4dGFyZWE+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibGxtLXJlcGhyYXNlLWFjdGlvbnMtd3JhcHBlclwiIG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2ICpuZ0lmPVwic2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZVwiIFtpbm5lckhUTUxdPVwiJ0xMTS5SRVBIUkFTRV9NT0RBTC5MSU1JVCcgfCB0cmFuc2xhdGU6IHsgbGltaXQ6IHJlcGhyYXNlUXVvdGFMZWZ0LCBzdWJzY3JpcHRpb25Vcmw6IHN1YnNjcmlwdGlvblVybCB9XCI+PC9kaXY+XHJcblxyXG4gIDxkaXYgW2NsYXNzLnctZnVsbF09XCIhc2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZVwiIGNsYXNzPVwibGxtLXJlcGhyYXNlLWFjdGlvbnNcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgY2xvc2VCdXR0b25cIiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIHt7IFwiTExNLlJFUEhSQVNFX01PREFMLkNBTkNFTFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2Nsb3NlQnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJudWxsXCI+XHJcbiAgICAgICAge3sgXCJMTE0uUkVQSFJBU0VfTU9EQUwuQ0xPU0VcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICBcclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgKGNsaWNrKT1cInJlcGhyYXNlVGV4dCgpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzTG9hZGluZyB8fCAhdGV4dCB8fCAhcmVwaHJhc2VRdW90YUxlZnRcIlxyXG4gICAgPlxyXG4gICAgICB7e1xyXG4gICAgICAgIChpc0xvYWRpbmdcclxuICAgICAgICAgID8gXCJMTE0uUkVQSFJBU0VfTU9EQUwuUkVQSFJBU0lOR1wiXHJcbiAgICAgICAgICA6IFwiTExNLlJFUEhSQVNFX01PREFMLlJFUEhSQVNFXCJcclxuICAgICAgICApIHwgdHJhbnNsYXRlXHJcbiAgICAgIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -4416,6 +4416,7 @@ class RephraseTranslationComponent {
4416
4416
  .subscribe({
4417
4417
  next: (response) => {
4418
4418
  this.text = response;
4419
+ this.showErrorMessage = false;
4419
4420
  this.refreshQuota(true);
4420
4421
  },
4421
4422
  error: () => {
@@ -4443,11 +4444,11 @@ class RephraseTranslationComponent {
4443
4444
  });
4444
4445
  }
4445
4446
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RephraseTranslationComponent, deps: [{ token: LlmService }, { token: QuotaService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
4446
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RephraseTranslationComponent, selector: "lib-rephrase-translation", ngImport: i0, template: "<h1 mat-dialog-title>{{ \"LLM.REPHRASE_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.REPHRASE_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!rephraseQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <mat-form-field color=\"accent\" class=\"w-100 mt-3\" appearance=\"outline\">\r\n <mat-label>{{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.TITLE' | translate }}</mat-label>\r\n <mat-select [(value)]=\"selectedWritingStyle\">\r\n <mat-option *ngFor=\"let style of writingStyles\" [value]=\"style\">\r\n {{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (style | uppercase) | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <p class=\"d-flex align-items-center text-m-semi-bold\">{{\r\n \"LLM.REPHRASE_MODAL.WRITING_STYLES.SPECIFIC_STYLE\" | translate : \r\n { style: 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (selectedWritingStyle | uppercase) | translate } \r\n }}\r\n <span\r\n class=\"material-icons-outlined ml-1 info-icon\"\r\n matTooltipClass=\"multiline-tooltip\"\r\n matTooltipPosition=\"above\" \r\n [matTooltip]=\"'LLM.REPHRASE_MODAL.WRITING_STYLES.TOOLTIP' | translate\" \r\n >\r\n info\r\n </span>\r\n </p>\r\n\r\n <lib-llm-textarea [text]=\"text\" [disabled]=\"isLoading || !rephraseQuotaLeft\" [showErrorMessage]=\"showErrorMessage\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"d-flex justify-content-between mx-3 mb-2\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.REPHRASE_MODAL.LIMIT' | translate: { limit: rephraseQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-100]=\"!showRemainingQuotaMessage\" class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.REPHRASE_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.REPHRASE_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"rephraseText()\"\r\n [disabled]=\"isLoading || !text || !rephraseQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.REPHRASE_MODAL.REPHRASING\"\r\n : \"LLM.REPHRASE_MODAL.REPHRASE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".info-icon{font-size:1rem}:host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}::ng-deep .multiline-tooltip{white-space:pre;min-width:-moz-fit-content;min-width:fit-content}::ng-deep .multiline-tooltip .mdc-tooltip__surface{max-width:none!important}\n"], dependencies: [{ 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: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1$3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: LlmTextareaComponent, selector: "lib-llm-textarea", inputs: ["text", "disabled", "showErrorMessage"], outputs: ["textEditEvent", "dislikeEvent"] }, { kind: "pipe", type: i2$2.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
4447
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RephraseTranslationComponent, selector: "lib-rephrase-translation", ngImport: i0, template: "<h1 mat-dialog-title>{{ \"LLM.REPHRASE_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.REPHRASE_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!rephraseQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <mat-form-field color=\"accent\" class=\"w-full llm-writing-style-select\" appearance=\"outline\">\r\n <mat-label>{{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.TITLE' | translate }}</mat-label>\r\n <mat-select [(value)]=\"selectedWritingStyle\">\r\n <mat-option *ngFor=\"let style of writingStyles\" [value]=\"style\">\r\n {{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (style | uppercase) | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <p class=\"llm-writing-style text-m-semi-bold\">{{\r\n \"LLM.REPHRASE_MODAL.WRITING_STYLES.SPECIFIC_STYLE\" | translate : \r\n { style: 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (selectedWritingStyle | uppercase) | translate } \r\n }}\r\n <span\r\n class=\"material-icons-outlined info-icon\"\r\n matTooltipClass=\"multiline-tooltip\"\r\n matTooltipPosition=\"above\" \r\n [matTooltip]=\"'LLM.REPHRASE_MODAL.WRITING_STYLES.TOOLTIP' | translate\" \r\n >\r\n info\r\n </span>\r\n </p>\r\n\r\n <lib-llm-textarea [text]=\"text\" [disabled]=\"isLoading || !rephraseQuotaLeft\" [showErrorMessage]=\"showErrorMessage\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-rephrase-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.REPHRASE_MODAL.LIMIT' | translate: { limit: rephraseQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!showRemainingQuotaMessage\" class=\"llm-rephrase-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.REPHRASE_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.REPHRASE_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"rephraseText()\"\r\n [disabled]=\"isLoading || !text || !rephraseQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.REPHRASE_MODAL.REPHRASING\"\r\n : \"LLM.REPHRASE_MODAL.REPHRASE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".info-icon{font-size:1rem;margin-left:5px}:host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}::ng-deep .multiline-tooltip{white-space:pre;min-width:-moz-fit-content;min-width:fit-content}::ng-deep .multiline-tooltip .mdc-tooltip__surface{max-width:none!important}.llm-writing-style-select{margin-top:1.25rem}.llm-writing-style{display:flex;align-items:center;margin-bottom:.25rem}.llm-rephrase-actions-wrapper{display:flex;justify-content:end;margin:0 1rem .5rem}.llm-rephrase-actions{display:flex;justify-content:end}.w-full{width:100%}\n"], dependencies: [{ 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: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1$3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "directive", type: i2$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: LlmTextareaComponent, selector: "lib-llm-textarea", inputs: ["text", "disabled", "showErrorMessage"], outputs: ["textEditEvent", "dislikeEvent"] }, { kind: "pipe", type: i2$2.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
4447
4448
  }
4448
4449
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RephraseTranslationComponent, decorators: [{
4449
4450
  type: Component,
4450
- args: [{ selector: 'lib-rephrase-translation', template: "<h1 mat-dialog-title>{{ \"LLM.REPHRASE_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.REPHRASE_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!rephraseQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <mat-form-field color=\"accent\" class=\"w-100 mt-3\" appearance=\"outline\">\r\n <mat-label>{{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.TITLE' | translate }}</mat-label>\r\n <mat-select [(value)]=\"selectedWritingStyle\">\r\n <mat-option *ngFor=\"let style of writingStyles\" [value]=\"style\">\r\n {{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (style | uppercase) | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <p class=\"d-flex align-items-center text-m-semi-bold\">{{\r\n \"LLM.REPHRASE_MODAL.WRITING_STYLES.SPECIFIC_STYLE\" | translate : \r\n { style: 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (selectedWritingStyle | uppercase) | translate } \r\n }}\r\n <span\r\n class=\"material-icons-outlined ml-1 info-icon\"\r\n matTooltipClass=\"multiline-tooltip\"\r\n matTooltipPosition=\"above\" \r\n [matTooltip]=\"'LLM.REPHRASE_MODAL.WRITING_STYLES.TOOLTIP' | translate\" \r\n >\r\n info\r\n </span>\r\n </p>\r\n\r\n <lib-llm-textarea [text]=\"text\" [disabled]=\"isLoading || !rephraseQuotaLeft\" [showErrorMessage]=\"showErrorMessage\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"d-flex justify-content-between mx-3 mb-2\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.REPHRASE_MODAL.LIMIT' | translate: { limit: rephraseQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-100]=\"!showRemainingQuotaMessage\" class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.REPHRASE_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.REPHRASE_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"rephraseText()\"\r\n [disabled]=\"isLoading || !text || !rephraseQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.REPHRASE_MODAL.REPHRASING\"\r\n : \"LLM.REPHRASE_MODAL.REPHRASE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".info-icon{font-size:1rem}:host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}::ng-deep .multiline-tooltip{white-space:pre;min-width:-moz-fit-content;min-width:fit-content}::ng-deep .multiline-tooltip .mdc-tooltip__surface{max-width:none!important}\n"] }]
4451
+ args: [{ selector: 'lib-rephrase-translation', template: "<h1 mat-dialog-title>{{ \"LLM.REPHRASE_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.REPHRASE_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!rephraseQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <mat-form-field color=\"accent\" class=\"w-full llm-writing-style-select\" appearance=\"outline\">\r\n <mat-label>{{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.TITLE' | translate }}</mat-label>\r\n <mat-select [(value)]=\"selectedWritingStyle\">\r\n <mat-option *ngFor=\"let style of writingStyles\" [value]=\"style\">\r\n {{ 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (style | uppercase) | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <p class=\"llm-writing-style text-m-semi-bold\">{{\r\n \"LLM.REPHRASE_MODAL.WRITING_STYLES.SPECIFIC_STYLE\" | translate : \r\n { style: 'LLM.REPHRASE_MODAL.WRITING_STYLES.' + (selectedWritingStyle | uppercase) | translate } \r\n }}\r\n <span\r\n class=\"material-icons-outlined info-icon\"\r\n matTooltipClass=\"multiline-tooltip\"\r\n matTooltipPosition=\"above\" \r\n [matTooltip]=\"'LLM.REPHRASE_MODAL.WRITING_STYLES.TOOLTIP' | translate\" \r\n >\r\n info\r\n </span>\r\n </p>\r\n\r\n <lib-llm-textarea [text]=\"text\" [disabled]=\"isLoading || !rephraseQuotaLeft\" [showErrorMessage]=\"showErrorMessage\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-rephrase-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.REPHRASE_MODAL.LIMIT' | translate: { limit: rephraseQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!showRemainingQuotaMessage\" class=\"llm-rephrase-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.REPHRASE_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.REPHRASE_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"rephraseText()\"\r\n [disabled]=\"isLoading || !text || !rephraseQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.REPHRASE_MODAL.REPHRASING\"\r\n : \"LLM.REPHRASE_MODAL.REPHRASE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".info-icon{font-size:1rem;margin-left:5px}:host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}::ng-deep .multiline-tooltip{white-space:pre;min-width:-moz-fit-content;min-width:fit-content}::ng-deep .multiline-tooltip .mdc-tooltip__surface{max-width:none!important}.llm-writing-style-select{margin-top:1.25rem}.llm-writing-style{display:flex;align-items:center;margin-bottom:.25rem}.llm-rephrase-actions-wrapper{display:flex;justify-content:end;margin:0 1rem .5rem}.llm-rephrase-actions{display:flex;justify-content:end}.w-full{width:100%}\n"] }]
4451
4452
  }], ctorParameters: function () { return [{ type: LlmService }, { type: QuotaService }, { type: undefined, decorators: [{
4452
4453
  type: Inject,
4453
4454
  args: [MAT_DIALOG_DATA]
@@ -4480,6 +4481,7 @@ class CreateSummaryComponent {
4480
4481
  .subscribe({
4481
4482
  next: (response) => {
4482
4483
  this.text = response;
4484
+ this.showErrorMessage = false;
4483
4485
  this.refreshQuota(true);
4484
4486
  },
4485
4487
  error: () => {
@@ -4507,11 +4509,11 @@ class CreateSummaryComponent {
4507
4509
  });
4508
4510
  }
4509
4511
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateSummaryComponent, deps: [{ token: LlmService }, { token: QuotaService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
4510
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateSummaryComponent, selector: "lib-create-summary", ngImport: i0, template: "<h1 mat-dialog-title>{{ \"LLM.SUMMARY_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.SUMMARY_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!summaryQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <lib-llm-textarea [showErrorMessage]=\"showErrorMessage\" [text]=\"text\" [disabled]=\"isLoading || !summaryQuotaLeft\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"d-flex justify-content-between mx-3 mb-2\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.SUMMARY_MODAL.LIMIT' | translate: { limit: summaryQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-100]=\"!showRemainingQuotaMessage\" class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.SUMMARY_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.SUMMARY_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"createSummary()\"\r\n [disabled]=\"isLoading || !text || !summaryQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.SUMMARY_MODAL.CREATING\"\r\n : \"LLM.SUMMARY_MODAL.REGENERATE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}\n"], dependencies: [{ kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1$3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "component", type: LlmTextareaComponent, selector: "lib-llm-textarea", inputs: ["text", "disabled", "showErrorMessage"], outputs: ["textEditEvent", "dislikeEvent"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
4512
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateSummaryComponent, selector: "lib-create-summary", ngImport: i0, template: "<h1 mat-dialog-title>{{ \"LLM.SUMMARY_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.SUMMARY_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!summaryQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <lib-llm-textarea [showErrorMessage]=\"showErrorMessage\" [text]=\"text\" [disabled]=\"isLoading || !summaryQuotaLeft\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-summary-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.SUMMARY_MODAL.LIMIT' | translate: { limit: summaryQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!showRemainingQuotaMessage\" class=\"llm-summary-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.SUMMARY_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.SUMMARY_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"createSummary()\"\r\n [disabled]=\"isLoading || !text || !summaryQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.SUMMARY_MODAL.CREATING\"\r\n : \"LLM.SUMMARY_MODAL.REGENERATE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}.w-full{width:100%}.llm-summary-actions{display:flex;justify-content:end}.llm-summary-actions-wrapper{display:flex;justify-content:end;margin:0 1rem .5rem}\n"], dependencies: [{ kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1$3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "component", type: LlmTextareaComponent, selector: "lib-llm-textarea", inputs: ["text", "disabled", "showErrorMessage"], outputs: ["textEditEvent", "dislikeEvent"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
4511
4513
  }
4512
4514
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateSummaryComponent, decorators: [{
4513
4515
  type: Component,
4514
- args: [{ selector: 'lib-create-summary', template: "<h1 mat-dialog-title>{{ \"LLM.SUMMARY_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.SUMMARY_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!summaryQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <lib-llm-textarea [showErrorMessage]=\"showErrorMessage\" [text]=\"text\" [disabled]=\"isLoading || !summaryQuotaLeft\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"d-flex justify-content-between mx-3 mb-2\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.SUMMARY_MODAL.LIMIT' | translate: { limit: summaryQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-100]=\"!showRemainingQuotaMessage\" class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.SUMMARY_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.SUMMARY_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"createSummary()\"\r\n [disabled]=\"isLoading || !text || !summaryQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.SUMMARY_MODAL.CREATING\"\r\n : \"LLM.SUMMARY_MODAL.REGENERATE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}\n"] }]
4516
+ args: [{ selector: 'lib-create-summary', template: "<h1 mat-dialog-title>{{ \"LLM.SUMMARY_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"text-m\">{{ \"LLM.SUMMARY_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"!summaryQuotaLeft\" [message]=\"reachedQuotaMessage\"></lib-tld-notification-message>\r\n\r\n <lib-llm-textarea [showErrorMessage]=\"showErrorMessage\" [text]=\"text\" [disabled]=\"isLoading || !summaryQuotaLeft\" (textEditEvent)=\"text = $event\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-summary-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"showRemainingQuotaMessage\" [innerHTML]=\"'LLM.SUMMARY_MODAL.LIMIT' | translate: { limit: summaryQuotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!showRemainingQuotaMessage\" class=\"llm-summary-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ \"LLM.SUMMARY_MODAL.CANCEL\" | translate }}\r\n </button>\r\n\r\n <ng-template #closeButton>\r\n <button mat-button color=\"accent\" [mat-dialog-close]=\"null\">\r\n {{ \"LLM.SUMMARY_MODAL.CLOSE\" | translate }}\r\n </button>\r\n </ng-template>\r\n \r\n <button\r\n mat-flat-button\r\n color=\"accent\"\r\n (click)=\"createSummary()\"\r\n [disabled]=\"isLoading || !text || !summaryQuotaLeft\"\r\n >\r\n {{\r\n (isLoading\r\n ? \"LLM.SUMMARY_MODAL.CREATING\"\r\n : \"LLM.SUMMARY_MODAL.REGENERATE\"\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep .message-body{font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px}:host ::ng-deep .items-container{margin-left:0!important}:host ::ng-deep .text-container{margin-right:0!important}.w-full{width:100%}.llm-summary-actions{display:flex;justify-content:end}.llm-summary-actions-wrapper{display:flex;justify-content:end;margin:0 1rem .5rem}\n"] }]
4515
4517
  }], ctorParameters: function () { return [{ type: LlmService }, { type: QuotaService }, { type: undefined, decorators: [{
4516
4518
  type: Inject,
4517
4519
  args: [MAT_DIALOG_DATA]