@tilde-nlp/ngx-common 4.1.28 → 4.1.29

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.
@@ -2,15 +2,16 @@ import { Component, Inject } from '@angular/core';
2
2
  import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
3
  import { finalize } from 'rxjs';
4
4
  import { QuotaType } from '../../../services';
5
+ import { PlausibleHelper } from '../../../plausible';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../../services/llm.service";
7
8
  import * as i2 from "../../services/llm-helper.service";
8
9
  import * as i3 from "../../../services";
9
- import * as i4 from "../../services/plausible.service";
10
- import * as i5 from "@angular/common";
11
- import * as i6 from "@angular/material/button";
12
- import * as i7 from "@angular/material/dialog";
13
- import * as i8 from "../../../notification-message/notification-message.component";
10
+ import * as i4 from "@angular/common";
11
+ import * as i5 from "@angular/material/button";
12
+ import * as i6 from "@angular/material/dialog";
13
+ import * as i7 from "../../../notification-message/notification-message.component";
14
+ import * as i8 from "@angular/material/progress-spinner";
14
15
  import * as i9 from "../../shared/llm-textarea/llm-textarea.component";
15
16
  import * as i10 from "@ngx-translate/core";
16
17
  export class CreateSummaryComponent {
@@ -23,11 +24,10 @@ export class CreateSummaryComponent {
23
24
  get showMissingQuotaMessage() {
24
25
  return !this.summaryQuotaLeft && !this.missingQuotaMessageClosed;
25
26
  }
26
- constructor(llmService, llmHelperService, quotaService, plausibleService, data) {
27
+ constructor(llmService, llmHelperService, quotaService, data) {
27
28
  this.llmService = llmService;
28
29
  this.llmHelperService = llmHelperService;
29
30
  this.quotaService = quotaService;
30
- this.plausibleService = plausibleService;
31
31
  this.data = data;
32
32
  this.summarizedText = '';
33
33
  this.manuallyEditedText = '';
@@ -43,6 +43,7 @@ export class CreateSummaryComponent {
43
43
  }
44
44
  createSummary() {
45
45
  this.isLoading = true;
46
+ this.summaryPlausibleEvent();
46
47
  this.subscription = this.llmService
47
48
  .summarize({ text: this.manuallyEditedText !== '' ? this.manuallyEditedText : this.initialText, language: this.language })
48
49
  .pipe(finalize(() => (this.isLoading = false)))
@@ -62,16 +63,19 @@ export class CreateSummaryComponent {
62
63
  cancel() {
63
64
  this.subscription.unsubscribe();
64
65
  }
65
- copyEvent() {
66
- this.plausibleService.summaryCopyEvent();
67
- }
68
- dislikeEvent() {
69
- this.plausibleService.summaryDislikeEvent();
70
- }
71
66
  textEditEvent(text) {
72
67
  this.manuallyEditedText = text;
73
68
  this.initialText = text;
74
69
  }
70
+ copyPlausibleEvent() {
71
+ PlausibleHelper.customEvent('summary', { action: 'copy' });
72
+ }
73
+ dislikePlausibleEvent() {
74
+ PlausibleHelper.customEvent('summary', { action: 'dislike' });
75
+ }
76
+ summaryPlausibleEvent() {
77
+ PlausibleHelper.customEvent('summary', { action: 'summary' });
78
+ }
75
79
  refreshQuota(decrease) {
76
80
  this.quotaService.getQuotaUsage().pipe(finalize(() => this.setQuotaMessage())).subscribe({
77
81
  next: (response) => {
@@ -93,14 +97,14 @@ export class CreateSummaryComponent {
93
97
  setQuotaFromLocalStorage(decrease) {
94
98
  this.summaryQuotaLeft = this.llmHelperService.setQuotaLocalStorageUsage(decrease);
95
99
  }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateSummaryComponent, deps: [{ token: i1.LLMService }, { token: i2.LLMHelperService }, { token: i3.QuotaService }, { token: i4.PlausibleService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
97
- 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>{{ \"LLM.SUMMARY_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"showMissingQuotaMessage\" [message]=\"reachedQuotaMessage\" (closeClicked)=\"missingQuotaMessageClosed = true\"></lib-tld-notification-message>\r\n <lib-tld-notification-message *ngIf=\"showDefaultErrorMessage\" [message]=\"defaultErrorMessage\" (closeClicked)=\"showDefaultErrorMessage = false\"></lib-tld-notification-message>\r\n\r\n <lib-llm-textarea [text]=\"summarizedText !== '' ? summarizedText : initialText\" [disabled]=\"isLoading || !summaryQuotaLeft\" (textEditEvent)=\"textEditEvent($event)\" (copyEvent)=\"copyEvent()\" (dislikeEvent)=\"dislikeEvent()\"></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]=\"isCreatingDisabled\"\r\n >\r\n {{\r\n (!isSummarized\r\n ? \"LLM.SUMMARY_MODAL.CREATE\"\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:space-between;margin:0 1rem .5rem}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.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: i7.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i7.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i7.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i7.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i8.NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "component", type: i9.LLMTextareaComponent, selector: "lib-llm-textarea", inputs: ["text", "disabled"], outputs: ["textEditEvent", "dislikeEvent", "copyEvent"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateSummaryComponent, deps: [{ token: i1.LLMService }, { token: i2.LLMHelperService }, { token: i3.QuotaService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
101
+ 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>{{ \"LLM.SUMMARY_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"showMissingQuotaMessage\" [message]=\"reachedQuotaMessage\" (closeClicked)=\"missingQuotaMessageClosed = true\"></lib-tld-notification-message>\r\n <lib-tld-notification-message *ngIf=\"showDefaultErrorMessage\" [message]=\"defaultErrorMessage\" (closeClicked)=\"showDefaultErrorMessage = false\"></lib-tld-notification-message>\r\n\r\n <lib-llm-textarea [text]=\"summarizedText !== '' ? summarizedText : initialText\" [disabled]=\"isLoading || !summaryQuotaLeft\" (textEditEvent)=\"textEditEvent($event)\" (copyEvent)=\"copyPlausibleEvent()\" (dislikeEvent)=\"dislikePlausibleEvent()\"></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]=\"isCreatingDisabled\"\r\n >\r\n {{\r\n (!isSummarized\r\n ? \"LLM.SUMMARY_MODAL.CREATE\"\r\n : \"LLM.SUMMARY_MODAL.REGENERATE\"\r\n ) | translate\r\n }}\r\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"20\" color=\"accent\" class=\"ml-2\"></mat-spinner>\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:space-between;margin:0 1rem .5rem}:host ::ng-deep .mdc-button__label{display:flex!important;align-items:center!important}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.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: i6.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i7.NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i9.LLMTextareaComponent, selector: "lib-llm-textarea", inputs: ["text", "disabled"], outputs: ["textEditEvent", "dislikeEvent", "copyEvent"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
98
102
  }
99
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateSummaryComponent, decorators: [{
100
104
  type: Component,
101
- 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>{{ \"LLM.SUMMARY_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"showMissingQuotaMessage\" [message]=\"reachedQuotaMessage\" (closeClicked)=\"missingQuotaMessageClosed = true\"></lib-tld-notification-message>\r\n <lib-tld-notification-message *ngIf=\"showDefaultErrorMessage\" [message]=\"defaultErrorMessage\" (closeClicked)=\"showDefaultErrorMessage = false\"></lib-tld-notification-message>\r\n\r\n <lib-llm-textarea [text]=\"summarizedText !== '' ? summarizedText : initialText\" [disabled]=\"isLoading || !summaryQuotaLeft\" (textEditEvent)=\"textEditEvent($event)\" (copyEvent)=\"copyEvent()\" (dislikeEvent)=\"dislikeEvent()\"></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]=\"isCreatingDisabled\"\r\n >\r\n {{\r\n (!isSummarized\r\n ? \"LLM.SUMMARY_MODAL.CREATE\"\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:space-between;margin:0 1rem .5rem}\n"] }]
102
- }], ctorParameters: function () { return [{ type: i1.LLMService }, { type: i2.LLMHelperService }, { type: i3.QuotaService }, { type: i4.PlausibleService }, { type: undefined, decorators: [{
105
+ 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>{{ \"LLM.SUMMARY_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"showMissingQuotaMessage\" [message]=\"reachedQuotaMessage\" (closeClicked)=\"missingQuotaMessageClosed = true\"></lib-tld-notification-message>\r\n <lib-tld-notification-message *ngIf=\"showDefaultErrorMessage\" [message]=\"defaultErrorMessage\" (closeClicked)=\"showDefaultErrorMessage = false\"></lib-tld-notification-message>\r\n\r\n <lib-llm-textarea [text]=\"summarizedText !== '' ? summarizedText : initialText\" [disabled]=\"isLoading || !summaryQuotaLeft\" (textEditEvent)=\"textEditEvent($event)\" (copyEvent)=\"copyPlausibleEvent()\" (dislikeEvent)=\"dislikePlausibleEvent()\"></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]=\"isCreatingDisabled\"\r\n >\r\n {{\r\n (!isSummarized\r\n ? \"LLM.SUMMARY_MODAL.CREATE\"\r\n : \"LLM.SUMMARY_MODAL.REGENERATE\"\r\n ) | translate\r\n }}\r\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"20\" color=\"accent\" class=\"ml-2\"></mat-spinner>\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:space-between;margin:0 1rem .5rem}:host ::ng-deep .mdc-button__label{display:flex!important;align-items:center!important}\n"] }]
106
+ }], ctorParameters: function () { return [{ type: i1.LLMService }, { type: i2.LLMHelperService }, { type: i3.QuotaService }, { type: undefined, decorators: [{
103
107
  type: Inject,
104
108
  args: [MAT_DIALOG_DATA]
105
109
  }] }]; } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9jb21wb25lbnRzL2NyZWF0ZS1zdW1tYXJ5L2NyZWF0ZS1zdW1tYXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9jcmVhdGUtc3VtbWFyeS9jcmVhdGUtc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFnQixRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBVTVELE1BQU0sT0FBTyxzQkFBc0I7SUF1QmpDLElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDbkUsQ0FBQztJQUVELFlBQ21CLFVBQXNCLEVBQ3RCLGdCQUFrQyxFQUNsQyxZQUEwQixFQUMxQixnQkFBa0MsRUFDbEIsSUFBYTtRQUo3QixlQUFVLEdBQVYs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LEtBQUssU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUV2RixJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNWLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDeEMsT0FBTztpQkFDUjtnQkFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUMvQyxDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ25GLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxRQUFrQjtRQUNqRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7K0dBaEhVLHNCQUFzQix3SUF3Q3ZCLGVBQWU7bUdBeENkLHNCQUFzQiwwRENmbkMsMjJEQXNDQTs7NEZEdkJhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7OzBCQTRDM0IsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBMTE1EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xsbS1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgTExNU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xsbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBRdW90YVNlcnZpY2UsIFF1b3RhVHlwZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL25vdGlmaWNhdGlvbi1tZXNzYWdlJztcclxuaW1wb3J0IHsgTExNSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xsbS1oZWxwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFBsYXVzaWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wbGF1c2libGUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jcmVhdGUtc3VtbWFyeScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1zdW1tYXJ5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtc3VtbWFyeS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlU3VtbWFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaXNMb2FkaW5nITogYm9vbGVhbjtcclxuICBzaG93RGVmYXVsdEVycm9yTWVzc2FnZSE6IGJvb2xlYW47XHJcbiAgc2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZSE6IGJvb2xlYW47XHJcbiAgaXNTdW1tYXJpemluZ0NhbmNlbGVkITogYm9vbGVhbjtcclxuICBsYW5ndWFnZSE6IHN0cmluZztcclxuICBzdW1tYXJ5UXVvdGFMZWZ0ITogbnVtYmVyO1xyXG4gIHN1YnNjcmlwdGlvblVybCE6IHN0cmluZztcclxuXHJcbiAgcmVhY2hlZFF1b3RhTWVzc2FnZSE6IE5vdGlmaWNhdGlvbk1lc3NhZ2U7XHJcblxyXG4gIHN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgaXNTdW1tYXJpemVkITogYm9vbGVhbjtcclxuXHJcbiAgaW5pdGlhbFRleHQhOiBzdHJpbmc7XHJcbiAgc3VtbWFyaXplZFRleHQgPSAnJztcclxuICBtYW51YWxseUVkaXRlZFRleHQgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSB0cmlhbFJlcXVlc3RDb3VudCA9IDE1O1xyXG5cclxuICBtaXNzaW5nUXVvdGFNZXNzYWdlQ2xvc2VkID0gZmFsc2U7XHJcblxyXG4gIGdldCBpc0NyZWF0aW5nRGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0xvYWRpbmcgfHwgIXRoaXMuaW5pdGlhbFRleHQgfHwgIXRoaXMuc3VtbWFyeVF1b3RhTGVmdDtcclxuICB9XHJcblxyXG4gIGdldCBkZWZhdWx0RXJyb3JNZXNzYWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubGxtSGVscGVyU2VydmljZS5nZXREZWZhdWx0RXJyb3JNZXNzYWdlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd01pc3NpbmdRdW90YU1lc3NhZ2UoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMuc3VtbWFyeVF1b3RhTGVmdCAmJiAhdGhpcy5taXNzaW5nUXVvdGFNZXNzYWdlQ2xvc2VkO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxsbVNlcnZpY2U6IExMTVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxsbUhlbHBlclNlcnZpY2U6IExMTUhlbHBlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHF1b3RhU2VydmljZTogUXVvdGFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbGF1c2libGVTZXJ2aWNlOiBQbGF1c2libGVTZXJ2aWNlLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgZGF0YTogTExNRGF0YVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRpYWxUZXh0ID0gdGhpcy5kYXRhLnRleHQ7XHJcbiAgICB0aGlzLmxhbmd1YWdlID0gdGhpcy5kYXRhLmxhbmd1YWdlO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25VcmwgPSB0aGlzLmxsbVNlcnZpY2UubGxtQ29uZmlndXJhdGlvbi5zdWJzY3JpcHRpb25Vcmw7XHJcbiAgICB0aGlzLnJlYWNoZWRRdW90YU1lc3NhZ2UgPSB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0UmVhY2hlZFF1b3RhTWVzc2FnZSgpO1xyXG4gICAgdGhpcy5yZWZyZXNoUXVvdGEoKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZVN1bW1hcnkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmxsbVNlcnZpY2VcclxuICAgICAgLnN1bW1hcml6ZSh7IHRleHQ6IHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ICE9PSAnJyA/IHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0IDogdGhpcy5pbml0aWFsVGV4dCwgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UgfSlcclxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMuaXNMb2FkaW5nID0gZmFsc2UpKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzU3VtbWFyaXplZCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnN1bW1hcml6ZWRUZXh0ID0gcmVzcG9uc2U7XHJcbiAgICAgICAgICB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5zaG93RGVmYXVsdEVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoUXVvdGEodHJ1ZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaG93RGVmYXVsdEVycm9yTWVzc2FnZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBjb3B5RXZlbnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBsYXVzaWJsZVNlcnZpY2Uuc3VtbWFyeUNvcHlFdmVudCgpO1xyXG4gIH1cclxuICBcclxuICBkaXNsaWtlRXZlbnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBsYXVzaWJsZVNlcnZpY2Uuc3VtbWFyeURpc2xpa2VFdmVudCgpO1xyXG4gIH1cclxuXHJcbiAgdGV4dEVkaXRFdmVudCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID0gdGV4dDtcclxuICAgIHRoaXMuaW5pdGlhbFRleHQgPSB0ZXh0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoUXVvdGEoZGVjcmVhc2U/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnF1b3RhU2VydmljZS5nZXRRdW90YVVzYWdlKCkucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLnNldFF1b3RhTWVzc2FnZSgpKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcXVvdGEgPSByZXNwb25zZS51c2FnZS5maW5kKChpdGVtKSA9PiBpdGVtLnF1b3RhVHlwZSA9PT0gUXVvdGFUeXBlLkxMTV9SRVFVRVNUUyk7XHJcblxyXG4gICAgICAgIGlmICghcXVvdGEpIHtcclxuICAgICAgICAgIHRoaXMuc2V0UXVvdGFGcm9tTG9jYWxTdG9yYWdlKGRlY3JlYXNlKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5zdW1tYXJ5UXVvdGFMZWZ0ID0gcXVvdGEucXVvdGFSZW1haW5pbmc7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRRdW90YUZyb21Mb2NhbFN0b3JhZ2UoZGVjcmVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0UXVvdGFNZXNzYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93UmVtYWluaW5nUXVvdGFNZXNzYWdlID0gdGhpcy5zdW1tYXJ5UXVvdGFMZWZ0IDw9IHRoaXMudHJpYWxSZXF1ZXN0Q291bnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFF1b3RhRnJvbUxvY2FsU3RvcmFnZShkZWNyZWFzZT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3VtbWFyeVF1b3RhTGVmdCA9IHRoaXMubGxtSGVscGVyU2VydmljZS5zZXRRdW90YUxvY2FsU3RvcmFnZVVzYWdlKGRlY3JlYXNlKTsgICAgICAgICAgXHJcbiAgfVxyXG59XHJcbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7IFwiTExNLlNVTU1BUllfTU9EQUwuVElUTEVcIiB8IHRyYW5zbGF0ZSB9fTwvaDE+XHJcbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxwPnt7IFwiTExNLlNVTU1BUllfTU9EQUwuREVTQ1JJUFRJT05cIiB8IHRyYW5zbGF0ZSB9fTwvcD5cclxuXHJcbiAgPGxpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2UgKm5nSWY9XCJzaG93TWlzc2luZ1F1b3RhTWVzc2FnZVwiIFttZXNzYWdlXT1cInJlYWNoZWRRdW90YU1lc3NhZ2VcIiAoY2xvc2VDbGlja2VkKT1cIm1pc3NpbmdRdW90YU1lc3NhZ2VDbG9zZWQgPSB0cnVlXCI+PC9saWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlPlxyXG4gIDxsaWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvck1lc3NhZ2VcIiBbbWVzc2FnZV09XCJkZWZhdWx0RXJyb3JNZXNzYWdlXCIgKGNsb3NlQ2xpY2tlZCk9XCJzaG93RGVmYXVsdEVycm9yTWVzc2FnZSA9IGZhbHNlXCI+PC9saWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlPlxyXG5cclxuICA8bGliLWxsbS10ZXh0YXJlYSBbdGV4dF09XCJzdW1tYXJpemVkVGV4dCAhPT0gJycgPyBzdW1tYXJpemVkVGV4dCA6IGluaXRpYWxUZXh0XCIgW2Rpc2FibGVkXT1cImlzTG9hZGluZyB8fCAhc3VtbWFyeVF1b3RhTGVmdFwiICh0ZXh0RWRpdEV2ZW50KT1cInRleHRFZGl0RXZlbnQoJGV2ZW50KVwiIChjb3B5RXZlbnQpPVwiY29weUV2ZW50KClcIiAoZGlzbGlrZUV2ZW50KT1cImRpc2xpa2VFdmVudCgpXCI+PC9saWItbGxtLXRleHRhcmVhPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImxsbS1zdW1tYXJ5LWFjdGlvbnMtd3JhcHBlclwiIG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2ICpuZ0lmPVwic2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZVwiIFtpbm5lckhUTUxdPVwiJ0xMTS5TVU1NQVJZX01PREFMLkxJTUlUJyB8IHRyYW5zbGF0ZTogeyBsaW1pdDogc3VtbWFyeVF1b3RhTGVmdCwgc3Vic2NyaXB0aW9uVXJsOiBzdWJzY3JpcHRpb25VcmwgfVwiPjwvZGl2PlxyXG5cclxuICA8ZGl2IFtjbGFzcy53LWZ1bGxdPVwiIXNob3dSZW1haW5pbmdRdW90YU1lc3NhZ2VcIiBjbGFzcz1cImxsbS1zdW1tYXJ5LWFjdGlvbnNcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgY2xvc2VCdXR0b25cIiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIHt7IFwiTExNLlNVTU1BUllfTU9EQUwuQ0FOQ0VMXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY2xvc2VCdXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIj5cclxuICAgICAgICB7eyBcIkxMTS5TVU1NQVJZX01PREFMLkNMT1NFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgIChjbGljayk9XCJjcmVhdGVTdW1tYXJ5KClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNDcmVhdGluZ0Rpc2FibGVkXCJcclxuICAgID5cclxuICAgICAge3tcclxuICAgICAgICAoIWlzU3VtbWFyaXplZFxyXG4gICAgICAgICAgPyBcIkxMTS5TVU1NQVJZX01PREFMLkNSRUFURVwiXHJcbiAgICAgICAgICA6IFwiTExNLlNVTU1BUllfTU9EQUwuUkVHRU5FUkFURVwiXHJcbiAgICAgICAgKSB8IHRyYW5zbGF0ZVxyXG4gICAgICB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9jb21wb25lbnRzL2NyZWF0ZS1zdW1tYXJ5L2NyZWF0ZS1zdW1tYXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9jcmVhdGUtc3VtbWFyeS9jcmVhdGUtc3VtbWFyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFnQixRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7OztBQU9yRCxNQUFNLE9BQU8sc0JBQXNCO0lBdUJqQyxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLHVCQUF1QjtRQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDO0lBQ25FLENBQUM7SUFFRCxZQUNtQixVQUFzQixFQUN0QixnQkFBa0MsRUFDbEMsWUFB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QUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdkYsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFFdkYsSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFDVixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3hDLE9BQU87aUJBQ1I7Z0JBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDL0MsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNuRixDQUFDO0lBRU8sd0JBQXdCLENBQUMsUUFBa0I7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRixDQUFDOytHQXBIVSxzQkFBc0Isd0dBdUN2QixlQUFlO21HQXZDZCxzQkFBc0IsMERDZm5DLHcrREF1Q0E7OzRGRHhCYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzswQkEyQzNCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTExNRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9sbG0tZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IExMTVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sbG0uc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmluYWxpemUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUXVvdGFTZXJ2aWNlLCBRdW90YVR5cGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi9ub3RpZmljYXRpb24tbWVzc2FnZSc7XHJcbmltcG9ydCB7IExMTUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sbG0taGVscGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQbGF1c2libGVIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9wbGF1c2libGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3JlYXRlLXN1bW1hcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLXN1bW1hcnkuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZVN1bW1hcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGlzTG9hZGluZyE6IGJvb2xlYW47XHJcbiAgc2hvd0RlZmF1bHRFcnJvck1lc3NhZ2UhOiBib29sZWFuO1xyXG4gIHNob3dSZW1haW5pbmdRdW90YU1lc3NhZ2UhOiBib29sZWFuO1xyXG4gIGlzU3VtbWFyaXppbmdDYW5jZWxlZCE6IGJvb2xlYW47XHJcbiAgbGFuZ3VhZ2UhOiBzdHJpbmc7XHJcbiAgc3VtbWFyeVF1b3RhTGVmdCE6IG51bWJlcjtcclxuICBzdWJzY3JpcHRpb25VcmwhOiBzdHJpbmc7XHJcblxyXG4gIHJlYWNoZWRRdW90YU1lc3NhZ2UhOiBOb3RpZmljYXRpb25NZXNzYWdlO1xyXG5cclxuICBzdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGlzU3VtbWFyaXplZCE6IGJvb2xlYW47XHJcblxyXG4gIGluaXRpYWxUZXh0ITogc3RyaW5nO1xyXG4gIHN1bW1hcml6ZWRUZXh0ID0gJyc7XHJcbiAgbWFudWFsbHlFZGl0ZWRUZXh0ID0gJyc7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJpYWxSZXF1ZXN0Q291bnQgPSAxNTtcclxuXHJcbiAgbWlzc2luZ1F1b3RhTWVzc2FnZUNsb3NlZCA9IGZhbHNlO1xyXG5cclxuICBnZXQgaXNDcmVhdGluZ0Rpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNMb2FkaW5nIHx8ICF0aGlzLmluaXRpYWxUZXh0IHx8ICF0aGlzLnN1bW1hcnlRdW90YUxlZnQ7XHJcbiAgfVxyXG5cclxuICBnZXQgZGVmYXVsdEVycm9yTWVzc2FnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0RGVmYXVsdEVycm9yTWVzc2FnZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dNaXNzaW5nUXVvdGFNZXNzYWdlKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLnN1bW1hcnlRdW90YUxlZnQgJiYgIXRoaXMubWlzc2luZ1F1b3RhTWVzc2FnZUNsb3NlZDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsbG1TZXJ2aWNlOiBMTE1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsbG1IZWxwZXJTZXJ2aWNlOiBMTE1IZWxwZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBxdW90YVNlcnZpY2U6IFF1b3RhU2VydmljZSxcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIGRhdGE6IExMTURhdGFcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0aWFsVGV4dCA9IHRoaXMuZGF0YS50ZXh0O1xyXG4gICAgdGhpcy5sYW5ndWFnZSA9IHRoaXMuZGF0YS5sYW5ndWFnZTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uVXJsID0gdGhpcy5sbG1TZXJ2aWNlLmxsbUNvbmZpZ3VyYXRpb24uc3Vic2NyaXB0aW9uVXJsO1xyXG4gICAgdGhpcy5yZWFjaGVkUXVvdGFNZXNzYWdlID0gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldFJlYWNoZWRRdW90YU1lc3NhZ2UoKTtcclxuICAgIHRoaXMucmVmcmVzaFF1b3RhKCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTdW1tYXJ5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zdW1tYXJ5UGxhdXNpYmxlRXZlbnQoKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMubGxtU2VydmljZVxyXG4gICAgICAuc3VtbWFyaXplKHsgdGV4dDogdGhpcy5tYW51YWxseUVkaXRlZFRleHQgIT09ICcnID8gdGhpcy5tYW51YWxseUVkaXRlZFRleHQgOiB0aGlzLmluaXRpYWxUZXh0LCBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZSB9KVxyXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc0xvYWRpbmcgPSBmYWxzZSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNTdW1tYXJpemVkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc3VtbWFyaXplZFRleHQgPSByZXNwb25zZTtcclxuICAgICAgICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID0gJyc7XHJcbiAgICAgICAgICB0aGlzLnNob3dEZWZhdWx0RXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnJlZnJlc2hRdW90YSh0cnVlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNob3dEZWZhdWx0RXJyb3JNZXNzYWdlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHRleHRFZGl0RXZlbnQodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCA9IHRleHQ7XHJcbiAgICB0aGlzLmluaXRpYWxUZXh0ID0gdGV4dDtcclxuICB9XHJcblxyXG4gIGNvcHlQbGF1c2libGVFdmVudCgpOiB2b2lkIHtcclxuICAgIFBsYXVzaWJsZUhlbHBlci5jdXN0b21FdmVudCgnc3VtbWFyeScsIHsgYWN0aW9uOiAnY29weScgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGRpc2xpa2VQbGF1c2libGVFdmVudCgpOiB2b2lkIHtcclxuICAgIFBsYXVzaWJsZUhlbHBlci5jdXN0b21FdmVudCgnc3VtbWFyeScsIHsgYWN0aW9uOiAnZGlzbGlrZScgfSk7XHJcbiAgfVxyXG5cclxuICBzdW1tYXJ5UGxhdXNpYmxlRXZlbnQoKTogdm9pZCB7XHJcbiAgICBQbGF1c2libGVIZWxwZXIuY3VzdG9tRXZlbnQoJ3N1bW1hcnknLCB7IGFjdGlvbjogJ3N1bW1hcnknIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoUXVvdGEoZGVjcmVhc2U/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnF1b3RhU2VydmljZS5nZXRRdW90YVVzYWdlKCkucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLnNldFF1b3RhTWVzc2FnZSgpKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcXVvdGEgPSByZXNwb25zZS51c2FnZS5maW5kKChpdGVtKSA9PiBpdGVtLnF1b3RhVHlwZSA9PT0gUXVvdGFUeXBlLkxMTV9SRVFVRVNUUyk7XHJcblxyXG4gICAgICAgIGlmICghcXVvdGEpIHtcclxuICAgICAgICAgIHRoaXMuc2V0UXVvdGFGcm9tTG9jYWxTdG9yYWdlKGRlY3JlYXNlKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5zdW1tYXJ5UXVvdGFMZWZ0ID0gcXVvdGEucXVvdGFSZW1haW5pbmc7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRRdW90YUZyb21Mb2NhbFN0b3JhZ2UoZGVjcmVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0UXVvdGFNZXNzYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93UmVtYWluaW5nUXVvdGFNZXNzYWdlID0gdGhpcy5zdW1tYXJ5UXVvdGFMZWZ0IDw9IHRoaXMudHJpYWxSZXF1ZXN0Q291bnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFF1b3RhRnJvbUxvY2FsU3RvcmFnZShkZWNyZWFzZT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3VtbWFyeVF1b3RhTGVmdCA9IHRoaXMubGxtSGVscGVyU2VydmljZS5zZXRRdW90YUxvY2FsU3RvcmFnZVVzYWdlKGRlY3JlYXNlKTsgICAgICAgICAgXHJcbiAgfVxyXG59XHJcbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7IFwiTExNLlNVTU1BUllfTU9EQUwuVElUTEVcIiB8IHRyYW5zbGF0ZSB9fTwvaDE+XHJcbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxwPnt7IFwiTExNLlNVTU1BUllfTU9EQUwuREVTQ1JJUFRJT05cIiB8IHRyYW5zbGF0ZSB9fTwvcD5cclxuXHJcbiAgPGxpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2UgKm5nSWY9XCJzaG93TWlzc2luZ1F1b3RhTWVzc2FnZVwiIFttZXNzYWdlXT1cInJlYWNoZWRRdW90YU1lc3NhZ2VcIiAoY2xvc2VDbGlja2VkKT1cIm1pc3NpbmdRdW90YU1lc3NhZ2VDbG9zZWQgPSB0cnVlXCI+PC9saWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlPlxyXG4gIDxsaWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvck1lc3NhZ2VcIiBbbWVzc2FnZV09XCJkZWZhdWx0RXJyb3JNZXNzYWdlXCIgKGNsb3NlQ2xpY2tlZCk9XCJzaG93RGVmYXVsdEVycm9yTWVzc2FnZSA9IGZhbHNlXCI+PC9saWItdGxkLW5vdGlmaWNhdGlvbi1tZXNzYWdlPlxyXG5cclxuICA8bGliLWxsbS10ZXh0YXJlYSBbdGV4dF09XCJzdW1tYXJpemVkVGV4dCAhPT0gJycgPyBzdW1tYXJpemVkVGV4dCA6IGluaXRpYWxUZXh0XCIgW2Rpc2FibGVkXT1cImlzTG9hZGluZyB8fCAhc3VtbWFyeVF1b3RhTGVmdFwiICh0ZXh0RWRpdEV2ZW50KT1cInRleHRFZGl0RXZlbnQoJGV2ZW50KVwiIChjb3B5RXZlbnQpPVwiY29weVBsYXVzaWJsZUV2ZW50KClcIiAoZGlzbGlrZUV2ZW50KT1cImRpc2xpa2VQbGF1c2libGVFdmVudCgpXCI+PC9saWItbGxtLXRleHRhcmVhPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImxsbS1zdW1tYXJ5LWFjdGlvbnMtd3JhcHBlclwiIG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2ICpuZ0lmPVwic2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZVwiIFtpbm5lckhUTUxdPVwiJ0xMTS5TVU1NQVJZX01PREFMLkxJTUlUJyB8IHRyYW5zbGF0ZTogeyBsaW1pdDogc3VtbWFyeVF1b3RhTGVmdCwgc3Vic2NyaXB0aW9uVXJsOiBzdWJzY3JpcHRpb25VcmwgfVwiPjwvZGl2PlxyXG5cclxuICA8ZGl2IFtjbGFzcy53LWZ1bGxdPVwiIXNob3dSZW1haW5pbmdRdW90YU1lc3NhZ2VcIiBjbGFzcz1cImxsbS1zdW1tYXJ5LWFjdGlvbnNcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgY2xvc2VCdXR0b25cIiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIHt7IFwiTExNLlNVTU1BUllfTU9EQUwuQ0FOQ0VMXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY2xvc2VCdXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIj5cclxuICAgICAgICB7eyBcIkxMTS5TVU1NQVJZX01PREFMLkNMT1NFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgIChjbGljayk9XCJjcmVhdGVTdW1tYXJ5KClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNDcmVhdGluZ0Rpc2FibGVkXCJcclxuICAgID5cclxuICAgICAge3tcclxuICAgICAgICAoIWlzU3VtbWFyaXplZFxyXG4gICAgICAgICAgPyBcIkxMTS5TVU1NQVJZX01PREFMLkNSRUFURVwiXHJcbiAgICAgICAgICA6IFwiTExNLlNVTU1BUllfTU9EQUwuUkVHRU5FUkFURVwiXHJcbiAgICAgICAgKSB8IHRyYW5zbGF0ZVxyXG4gICAgICB9fVxyXG4gICAgICA8bWF0LXNwaW5uZXIgKm5nSWY9XCJpc0xvYWRpbmdcIiBbZGlhbWV0ZXJdPVwiMjBcIiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwibWwtMlwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,138 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { QuotaType } from '../../../services';
3
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
4
+ import { finalize } from 'rxjs';
5
+ import { LLMWritingStyle } from '../../models/llm-writing-style.enum';
6
+ import { PlausibleHelper } from '../../../plausible';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../services/llm.service";
9
+ import * as i2 from "../../../services";
10
+ import * as i3 from "../../services/llm-helper.service";
11
+ import * as i4 from "@angular/common";
12
+ import * as i5 from "@angular/material/button";
13
+ import * as i6 from "@angular/material/dialog";
14
+ import * as i7 from "@angular/material/form-field";
15
+ import * as i8 from "@angular/material/select";
16
+ import * as i9 from "@angular/material/core";
17
+ import * as i10 from "../../../notification-message/notification-message.component";
18
+ import * as i11 from "@angular/material/tooltip";
19
+ import * as i12 from "@angular/material/progress-spinner";
20
+ import * as i13 from "../../shared/llm-textarea/llm-textarea.component";
21
+ import * as i14 from "@ngx-translate/core";
22
+ export class RephraseComponent {
23
+ get isRephrasingDisabled() {
24
+ return this.isLoading || !this.initialText || !this.rephraseQuotaLeft;
25
+ }
26
+ get defaultErrorMessage() {
27
+ return this.llmHelperService.getDefaultErrorMessage();
28
+ }
29
+ get showMissingQuotaMessage() {
30
+ return !this.rephraseQuotaLeft && !this.missingQuotaMessageClosed;
31
+ }
32
+ constructor(llmService, quotaService, llmHelperService, data) {
33
+ this.llmService = llmService;
34
+ this.quotaService = quotaService;
35
+ this.llmHelperService = llmHelperService;
36
+ this.data = data;
37
+ this.selectedWritingStyle = LLMWritingStyle.GENERAL;
38
+ this.rephrasedText = '';
39
+ this.manuallyEditedText = '';
40
+ this.savedRephrasings = [];
41
+ this.writingStyles = Object.values(LLMWritingStyle);
42
+ this.trialRequestCount = 15;
43
+ this.missingQuotaMessageClosed = false;
44
+ }
45
+ ngOnInit() {
46
+ this.initialText = this.data.text;
47
+ this.subscriptionUrl = this.llmService.llmConfiguration.subscriptionUrl;
48
+ this.reachedQuotaMessage = this.llmHelperService.getReachedQuotaMessage();
49
+ this.refreshQuota();
50
+ }
51
+ checkRephrasedTextSaves() {
52
+ const selectedWritingStyleSave = this.savedRephrasings.find((rephrasing) => rephrasing.style === this.selectedWritingStyle);
53
+ const previousWritingStyleSave = this.savedRephrasings.find((save) => save.style === this.previousWritingStyle);
54
+ if (previousWritingStyleSave) {
55
+ const save = this.savedRephrasings.find((save) => save.style === this.previousWritingStyle);
56
+ if (save) {
57
+ save.text = this.rephrasedText !== '' ? this.rephrasedText : this.initialText;
58
+ }
59
+ }
60
+ else {
61
+ this.savedRephrasings.push({ style: this.previousWritingStyle, text: this.rephrasedText !== '' ? this.rephrasedText : this.initialText });
62
+ }
63
+ this.rephrasedText = selectedWritingStyleSave?.text ?? this.initialText;
64
+ this.manuallyEditedText = '';
65
+ }
66
+ saveWritingStyleBeforeChange(isOpened) {
67
+ if (!isOpened) {
68
+ return;
69
+ }
70
+ this.previousWritingStyle = this.selectedWritingStyle;
71
+ }
72
+ rephraseText() {
73
+ this.isLoading = true;
74
+ this.writingStylePlausibleEvent();
75
+ this.subscription = this.llmService
76
+ .rephrase({ text: this.manuallyEditedText !== '' ? this.manuallyEditedText : this.initialText, style: this.selectedWritingStyle })
77
+ .pipe(finalize(() => (this.isLoading = false)))
78
+ .subscribe({
79
+ next: (response) => {
80
+ this.rephrasedText = response;
81
+ this.manuallyEditedText = '';
82
+ this.showDefaultErrorMessage = false;
83
+ this.refreshQuota(true);
84
+ },
85
+ error: () => {
86
+ this.showDefaultErrorMessage = true;
87
+ }
88
+ });
89
+ }
90
+ cancel() {
91
+ this.subscription.unsubscribe();
92
+ }
93
+ textEditEvent(text) {
94
+ this.manuallyEditedText = text;
95
+ this.initialText = text;
96
+ this.rephrasedText = '';
97
+ }
98
+ copyPlausibleEvent() {
99
+ PlausibleHelper.customEvent('rephrase', { action: 'copy' });
100
+ }
101
+ dislikePlausibleEvent() {
102
+ PlausibleHelper.customEvent('rephrase', { action: 'dislike' });
103
+ }
104
+ writingStylePlausibleEvent() {
105
+ PlausibleHelper.customEvent('rephrase', { writingStyle: this.selectedWritingStyle });
106
+ }
107
+ refreshQuota(decrease) {
108
+ this.quotaService.getQuotaUsage().pipe(finalize(() => this.setQuotaMessage())).subscribe({
109
+ next: (response) => {
110
+ const quota = response.usage.find((item) => item.quotaType === QuotaType.LLM_CHARACTER_COUNT);
111
+ if (!quota) {
112
+ this.setQuotaFromLocalStorage(decrease);
113
+ return;
114
+ }
115
+ this.rephraseQuotaLeft = quota.quotaRemaining;
116
+ },
117
+ error: () => {
118
+ this.setQuotaFromLocalStorage(decrease);
119
+ }
120
+ });
121
+ }
122
+ setQuotaMessage() {
123
+ this.showRemainingQuotaMessage = this.rephraseQuotaLeft <= this.trialRequestCount;
124
+ }
125
+ setQuotaFromLocalStorage(decrease) {
126
+ this.rephraseQuotaLeft = this.llmHelperService.setQuotaLocalStorageUsage(decrease);
127
+ }
128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RephraseComponent, deps: [{ token: i1.LLMService }, { token: i2.QuotaService }, { token: i3.LLMHelperService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RephraseComponent, selector: "lib-rephrase", ngImport: i0, template: "<h1 mat-dialog-title>{{ \"LLM.REPHRASE_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ \"LLM.REPHRASE_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"showMissingQuotaMessage\" [message]=\"reachedQuotaMessage\" (closeClicked)=\"missingQuotaMessageClosed = true\"></lib-tld-notification-message>\r\n <lib-tld-notification-message *ngIf=\"showDefaultErrorMessage\" [message]=\"defaultErrorMessage\" (closeClicked)=\"showDefaultErrorMessage = false\"></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 (openedChange)=\"saveWritingStyleBeforeChange($event)\" (selectionChange)=\"checkRephrasedTextSaves()\" [(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_' + (selectedWritingStyle | uppercase) | translate\" \r\n >\r\n info\r\n </span>\r\n </p>\r\n\r\n <lib-llm-textarea [text]=\"rephrasedText !== '' ? rephrasedText : initialText\" [disabled]=\"isLoading || !rephraseQuotaLeft\" (textEditEvent)=\"textEditEvent($event)\" (copyEvent)=\"copyPlausibleEvent()\" (dislikeEvent)=\"dislikePlausibleEvent()\"></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]=\"isRephrasingDisabled\"\r\n >\r\n {{ \"LLM.REPHRASE_MODAL.REPHRASE\" | translate }}\r\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"20\" color=\"accent\" class=\"ml-2\"></mat-spinner>\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}:host ::ng-deep .llm-textarea{min-height:220px!important}:host ::ng-deep .desktop .llm-textarea{min-height:410px!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:space-between;margin:0 1rem .5rem}.llm-rephrase-actions{display:flex;justify-content:end}.w-full{width:100%}:host ::ng-deep .mdc-button__label{display:flex!important;align-items:center!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.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: i6.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i12.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i13.LLMTextareaComponent, selector: "lib-llm-textarea", inputs: ["text", "disabled"], outputs: ["textEditEvent", "dislikeEvent", "copyEvent"] }, { kind: "pipe", type: i4.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] }); }
130
+ }
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RephraseComponent, decorators: [{
132
+ type: Component,
133
+ args: [{ selector: 'lib-rephrase', template: "<h1 mat-dialog-title>{{ \"LLM.REPHRASE_MODAL.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ \"LLM.REPHRASE_MODAL.DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngIf=\"showMissingQuotaMessage\" [message]=\"reachedQuotaMessage\" (closeClicked)=\"missingQuotaMessageClosed = true\"></lib-tld-notification-message>\r\n <lib-tld-notification-message *ngIf=\"showDefaultErrorMessage\" [message]=\"defaultErrorMessage\" (closeClicked)=\"showDefaultErrorMessage = false\"></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 (openedChange)=\"saveWritingStyleBeforeChange($event)\" (selectionChange)=\"checkRephrasedTextSaves()\" [(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_' + (selectedWritingStyle | uppercase) | translate\" \r\n >\r\n info\r\n </span>\r\n </p>\r\n\r\n <lib-llm-textarea [text]=\"rephrasedText !== '' ? rephrasedText : initialText\" [disabled]=\"isLoading || !rephraseQuotaLeft\" (textEditEvent)=\"textEditEvent($event)\" (copyEvent)=\"copyPlausibleEvent()\" (dislikeEvent)=\"dislikePlausibleEvent()\"></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]=\"isRephrasingDisabled\"\r\n >\r\n {{ \"LLM.REPHRASE_MODAL.REPHRASE\" | translate }}\r\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"20\" color=\"accent\" class=\"ml-2\"></mat-spinner>\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}:host ::ng-deep .llm-textarea{min-height:220px!important}:host ::ng-deep .desktop .llm-textarea{min-height:410px!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:space-between;margin:0 1rem .5rem}.llm-rephrase-actions{display:flex;justify-content:end}.w-full{width:100%}:host ::ng-deep .mdc-button__label{display:flex!important;align-items:center!important}\n"] }]
134
+ }], ctorParameters: function () { return [{ type: i1.LLMService }, { type: i2.QuotaService }, { type: i3.LLMHelperService }, { type: undefined, decorators: [{
135
+ type: Inject,
136
+ args: [MAT_DIALOG_DATA]
137
+ }] }]; } });
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwaHJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9jb21wb25lbnRzL3JlcGhyYXNlL3JlcGhyYXNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9yZXBocmFzZS9yZXBocmFzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUxRCxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQWdCLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBT3JELE1BQU0sT0FBTyxpQkFBaUI7SUF5QjVCLElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDcEUsQ0FBQztJQUVELFlBQ21CLFVBQXNCLEVBQ3RC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aUIsb0RDaEI5QixpaEdBeURBOzs0RkR6Q2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGNBQWM7OzBCQTZDckIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMTE1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGxtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRdW90YVNlcnZpY2UsIFF1b3RhVHlwZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgTExNRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9sbG0tZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmluYWxpemUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTExNV3JpdGluZ1N0eWxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xsbS13cml0aW5nLXN0eWxlLmVudW0nO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vbm90aWZpY2F0aW9uLW1lc3NhZ2UnO1xyXG5pbXBvcnQgeyBMTE1IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGxtLWhlbHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGxhdXNpYmxlSGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vcGxhdXNpYmxlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXJlcGhyYXNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVwaHJhc2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JlcGhyYXNlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcGhyYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBpc0xvYWRpbmchOiBib29sZWFuO1xyXG4gIHNob3dEZWZhdWx0RXJyb3JNZXNzYWdlITogYm9vbGVhbjtcclxuICBzaG93UmVtYWluaW5nUXVvdGFNZXNzYWdlITogYm9vbGVhbjtcclxuICByZXBocmFzZVF1b3RhTGVmdCE6IG51bWJlcjtcclxuICBzdWJzY3JpcHRpb25VcmwhOiBzdHJpbmc7XHJcbiAgcHJldmlvdXNXcml0aW5nU3R5bGUhOiBMTE1Xcml0aW5nU3R5bGU7XHJcbiAgc2VsZWN0ZWRXcml0aW5nU3R5bGUgPSBMTE1Xcml0aW5nU3R5bGUuR0VORVJBTDtcclxuXHJcbiAgcmVhY2hlZFF1b3RhTWVzc2FnZSE6IE5vdGlmaWNhdGlvbk1lc3NhZ2U7XHJcblxyXG4gIHN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgaW5pdGlhbFRleHQhOiBzdHJpbmc7XHJcbiAgcmVwaHJhc2VkVGV4dCA9ICcnO1xyXG4gIG1hbnVhbGx5RWRpdGVkVGV4dCA9ICcnO1xyXG5cclxuICBwcml2YXRlIHNhdmVkUmVwaHJhc2luZ3M6IHtzdHlsZTogTExNV3JpdGluZ1N0eWxlLCB0ZXh0OiBzdHJpbmd9W10gPSBbXTtcclxuICBcclxuICByZWFkb25seSB3cml0aW5nU3R5bGVzID0gT2JqZWN0LnZhbHVlcyhMTE1Xcml0aW5nU3R5bGUpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHRyaWFsUmVxdWVzdENvdW50ID0gMTU7XHJcblxyXG4gIG1pc3NpbmdRdW90YU1lc3NhZ2VDbG9zZWQgPSBmYWxzZTtcclxuXHJcbiAgZ2V0IGlzUmVwaHJhc2luZ0Rpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNMb2FkaW5nIHx8ICF0aGlzLmluaXRpYWxUZXh0IHx8ICF0aGlzLnJlcGhyYXNlUXVvdGFMZWZ0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRlZmF1bHRFcnJvck1lc3NhZ2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldERlZmF1bHRFcnJvck1lc3NhZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldCBzaG93TWlzc2luZ1F1b3RhTWVzc2FnZSgpIHtcclxuICAgIHJldHVybiAhdGhpcy5yZXBocmFzZVF1b3RhTGVmdCAmJiAhdGhpcy5taXNzaW5nUXVvdGFNZXNzYWdlQ2xvc2VkO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxsbVNlcnZpY2U6IExMTVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHF1b3RhU2VydmljZTogUXVvdGFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsbG1IZWxwZXJTZXJ2aWNlOiBMTE1IZWxwZXJTZXJ2aWNlLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgZGF0YTogTExNRGF0YVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRpYWxUZXh0ID0gdGhpcy5kYXRhLnRleHQ7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvblVybCA9IHRoaXMubGxtU2VydmljZS5sbG1Db25maWd1cmF0aW9uLnN1YnNjcmlwdGlvblVybDtcclxuICAgIHRoaXMucmVhY2hlZFF1b3RhTWVzc2FnZSA9IHRoaXMubGxtSGVscGVyU2VydmljZS5nZXRSZWFjaGVkUXVvdGFNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnJlZnJlc2hRdW90YSgpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tSZXBocmFzZWRUZXh0U2F2ZXMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWxlY3RlZFdyaXRpbmdTdHlsZVNhdmUgPSB0aGlzLnNhdmVkUmVwaHJhc2luZ3MuZmluZCgocmVwaHJhc2luZykgPT4gcmVwaHJhc2luZy5zdHlsZSA9PT0gdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZSk7XHJcbiAgICBjb25zdCBwcmV2aW91c1dyaXRpbmdTdHlsZVNhdmUgPSB0aGlzLnNhdmVkUmVwaHJhc2luZ3MuZmluZCgoc2F2ZSkgPT4gc2F2ZS5zdHlsZSA9PT0gdGhpcy5wcmV2aW91c1dyaXRpbmdTdHlsZSk7XHJcbiAgICBcclxuICAgIGlmIChwcmV2aW91c1dyaXRpbmdTdHlsZVNhdmUpIHtcclxuICAgICAgY29uc3Qgc2F2ZSA9IHRoaXMuc2F2ZWRSZXBocmFzaW5ncy5maW5kKChzYXZlKSA9PiBzYXZlLnN0eWxlID09PSB0aGlzLnByZXZpb3VzV3JpdGluZ1N0eWxlKTtcclxuICAgICAgaWYgKHNhdmUpIHtcclxuICAgICAgICBzYXZlLnRleHQgPSB0aGlzLnJlcGhyYXNlZFRleHQgIT09ICcnID8gdGhpcy5yZXBocmFzZWRUZXh0IDogdGhpcy5pbml0aWFsVGV4dDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zYXZlZFJlcGhyYXNpbmdzLnB1c2goeyBzdHlsZTogdGhpcy5wcmV2aW91c1dyaXRpbmdTdHlsZSwgdGV4dDogdGhpcy5yZXBocmFzZWRUZXh0ICE9PSAnJyA/IHRoaXMucmVwaHJhc2VkVGV4dCA6IHRoaXMuaW5pdGlhbFRleHQgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHRoaXMucmVwaHJhc2VkVGV4dCA9IHNlbGVjdGVkV3JpdGluZ1N0eWxlU2F2ZT8udGV4dCA/PyB0aGlzLmluaXRpYWxUZXh0O1xyXG4gICAgdGhpcy5tYW51YWxseUVkaXRlZFRleHQgPSAnJztcclxuICB9XHJcblxyXG4gIHNhdmVXcml0aW5nU3R5bGVCZWZvcmVDaGFuZ2UoaXNPcGVuZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICghaXNPcGVuZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucHJldmlvdXNXcml0aW5nU3R5bGUgPSB0aGlzLnNlbGVjdGVkV3JpdGluZ1N0eWxlO1xyXG4gIH1cclxuXHJcbiAgcmVwaHJhc2VUZXh0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53cml0aW5nU3R5bGVQbGF1c2libGVFdmVudCgpO1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5sbG1TZXJ2aWNlXHJcbiAgICAgIC5yZXBocmFzZSh7IHRleHQ6IHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ICE9PSAnJyA/IHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0IDogdGhpcy5pbml0aWFsVGV4dCwgc3R5bGU6IHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGUgfSlcclxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMuaXNMb2FkaW5nID0gZmFsc2UpKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJlcGhyYXNlZFRleHQgPSByZXNwb25zZTtcclxuICAgICAgICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID0gJyc7XHJcbiAgICAgICAgICB0aGlzLnNob3dEZWZhdWx0RXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnJlZnJlc2hRdW90YSh0cnVlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNob3dEZWZhdWx0RXJyb3JNZXNzYWdlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHRleHRFZGl0RXZlbnQodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCA9IHRleHQ7XHJcbiAgICB0aGlzLmluaXRpYWxUZXh0ID0gdGV4dDtcclxuICAgIHRoaXMucmVwaHJhc2VkVGV4dCA9ICcnO1xyXG4gIH1cclxuXHJcbiAgY29weVBsYXVzaWJsZUV2ZW50KCk6IHZvaWQge1xyXG4gICAgUGxhdXNpYmxlSGVscGVyLmN1c3RvbUV2ZW50KCdyZXBocmFzZScsIHsgYWN0aW9uOiAnY29weScgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGRpc2xpa2VQbGF1c2libGVFdmVudCgpOiB2b2lkIHtcclxuICAgIFBsYXVzaWJsZUhlbHBlci5jdXN0b21FdmVudCgncmVwaHJhc2UnLCB7IGFjdGlvbjogJ2Rpc2xpa2UnIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3cml0aW5nU3R5bGVQbGF1c2libGVFdmVudCgpOiB2b2lkIHtcclxuICAgIFBsYXVzaWJsZUhlbHBlci5jdXN0b21FdmVudCgncmVwaHJhc2UnLCB7IHdyaXRpbmdTdHlsZTogdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZSB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVmcmVzaFF1b3RhKGRlY3JlYXNlPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5xdW90YVNlcnZpY2UuZ2V0UXVvdGFVc2FnZSgpLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5zZXRRdW90YU1lc3NhZ2UoKSkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHF1b3RhID0gcmVzcG9uc2UudXNhZ2UuZmluZCgoaXRlbSkgPT4gaXRlbS5xdW90YVR5cGUgPT09IFF1b3RhVHlwZS5MTE1fQ0hBUkFDVEVSX0NPVU5UKTtcclxuXHJcbiAgICAgICAgaWYgKCFxdW90YSkge1xyXG4gICAgICAgICAgdGhpcy5zZXRRdW90YUZyb21Mb2NhbFN0b3JhZ2UoZGVjcmVhc2UpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5yZXBocmFzZVF1b3RhTGVmdCA9IHF1b3RhLnF1b3RhUmVtYWluaW5nO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0UXVvdGFGcm9tTG9jYWxTdG9yYWdlKGRlY3JlYXNlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFF1b3RhTWVzc2FnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZSA9IHRoaXMucmVwaHJhc2VRdW90YUxlZnQgPD0gdGhpcy50cmlhbFJlcXVlc3RDb3VudDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0UXVvdGFGcm9tTG9jYWxTdG9yYWdlKGRlY3JlYXNlPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5yZXBocmFzZVF1b3RhTGVmdCA9IHRoaXMubGxtSGVscGVyU2VydmljZS5zZXRRdW90YUxvY2FsU3RvcmFnZVVzYWdlKGRlY3JlYXNlKTsgICAgICAgICAgXHJcbiAgfVxyXG59XHJcbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7IFwiTExNLlJFUEhSQVNFX01PREFMLlRJVExFXCIgfCB0cmFuc2xhdGUgfX08L2gxPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8cD57eyBcIkxMTS5SRVBIUkFTRV9NT0RBTC5ERVNDUklQVElPTlwiIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuICA8bGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZSAqbmdJZj1cInNob3dNaXNzaW5nUXVvdGFNZXNzYWdlXCIgW21lc3NhZ2VdPVwicmVhY2hlZFF1b3RhTWVzc2FnZVwiIChjbG9zZUNsaWNrZWQpPVwibWlzc2luZ1F1b3RhTWVzc2FnZUNsb3NlZCA9IHRydWVcIj48L2xpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2U+XHJcbiAgPGxpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2UgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yTWVzc2FnZVwiIFttZXNzYWdlXT1cImRlZmF1bHRFcnJvck1lc3NhZ2VcIiAoY2xvc2VDbGlja2VkKT1cInNob3dEZWZhdWx0RXJyb3JNZXNzYWdlID0gZmFsc2VcIj48L2xpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2U+XHJcblxyXG4gIDxtYXQtZm9ybS1maWVsZCBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwidy1mdWxsIGxsbS13cml0aW5nLXN0eWxlLXNlbGVjdFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICA8bWF0LWxhYmVsPnt7ICdMTE0uUkVQSFJBU0VfTU9EQUwuV1JJVElOR19TVFlMRVMuVElUTEUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCAob3BlbmVkQ2hhbmdlKT1cInNhdmVXcml0aW5nU3R5bGVCZWZvcmVDaGFuZ2UoJGV2ZW50KVwiIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hlY2tSZXBocmFzZWRUZXh0U2F2ZXMoKVwiIFsodmFsdWUpXT1cInNlbGVjdGVkV3JpdGluZ1N0eWxlXCI+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdHlsZSBvZiB3cml0aW5nU3R5bGVzXCIgW3ZhbHVlXT1cInN0eWxlXCI+XHJcbiAgICAgICAge3sgJ0xMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy4nICsgKHN0eWxlIHwgdXBwZXJjYXNlKSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgPHAgY2xhc3M9XCJsbG0td3JpdGluZy1zdHlsZSB0ZXh0LW0tc2VtaS1ib2xkXCI+e3tcclxuICAgICAgXCJMTE0uUkVQSFJBU0VfTU9EQUwuV1JJVElOR19TVFlMRVMuU1BFQ0lGSUNfU1RZTEVcIiB8IHRyYW5zbGF0ZSA6IFxyXG4gICAgICB7IHN0eWxlOiAnTExNLlJFUEhSQVNFX01PREFMLldSSVRJTkdfU1RZTEVTLicgKyAoc2VsZWN0ZWRXcml0aW5nU3R5bGUgfCB1cHBlcmNhc2UpIHwgdHJhbnNsYXRlIH0gXHJcbiAgICB9fVxyXG4gICAgPHNwYW5cclxuICAgICAgY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCBpbmZvLWljb25cIlxyXG4gICAgICBtYXRUb29sdGlwQ2xhc3M9XCJtdWx0aWxpbmUtdG9vbHRpcFwiXHJcbiAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgXHJcbiAgICAgIFttYXRUb29sdGlwXT1cIidMTE0uUkVQSFJBU0VfTU9EQUwuV1JJVElOR19TVFlMRVMuVE9PTFRJUF8nICsgKHNlbGVjdGVkV3JpdGluZ1N0eWxlIHwgdXBwZXJjYXNlKSB8IHRyYW5zbGF0ZVwiIFxyXG4gICAgPlxyXG4gICAgICBpbmZvXHJcbiAgICA8L3NwYW4+XHJcbiAgPC9wPlxyXG5cclxuICA8bGliLWxsbS10ZXh0YXJlYSBbdGV4dF09XCJyZXBocmFzZWRUZXh0ICE9PSAnJyA/IHJlcGhyYXNlZFRleHQgOiBpbml0aWFsVGV4dFwiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcgfHwgIXJlcGhyYXNlUXVvdGFMZWZ0XCIgKHRleHRFZGl0RXZlbnQpPVwidGV4dEVkaXRFdmVudCgkZXZlbnQpXCIgKGNvcHlFdmVudCk9XCJjb3B5UGxhdXNpYmxlRXZlbnQoKVwiIChkaXNsaWtlRXZlbnQpPVwiZGlzbGlrZVBsYXVzaWJsZUV2ZW50KClcIj48L2xpYi1sbG0tdGV4dGFyZWE+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibGxtLXJlcGhyYXNlLWFjdGlvbnMtd3JhcHBlclwiIG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2ICpuZ0lmPVwic2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZVwiIFtpbm5lckhUTUxdPVwiJ0xMTS5SRVBIUkFTRV9NT0RBTC5MSU1JVCcgfCB0cmFuc2xhdGU6IHsgbGltaXQ6IHJlcGhyYXNlUXVvdGFMZWZ0LCBzdWJzY3JpcHRpb25Vcmw6IHN1YnNjcmlwdGlvblVybCB9XCI+PC9kaXY+XHJcblxyXG4gIDxkaXYgW2NsYXNzLnctZnVsbF09XCIhc2hvd1JlbWFpbmluZ1F1b3RhTWVzc2FnZVwiIGNsYXNzPVwibGxtLXJlcGhyYXNlLWFjdGlvbnNcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgY2xvc2VCdXR0b25cIiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIHt7IFwiTExNLlJFUEhSQVNFX01PREFMLkNBTkNFTFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2Nsb3NlQnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJudWxsXCI+XHJcbiAgICAgICAge3sgXCJMTE0uUkVQSFJBU0VfTU9EQUwuQ0xPU0VcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICBcclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgKGNsaWNrKT1cInJlcGhyYXNlVGV4dCgpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzUmVwaHJhc2luZ0Rpc2FibGVkXCJcclxuICAgID5cclxuICAgICAge3sgXCJMTE0uUkVQSFJBU0VfTU9EQUwuUkVQSFJBU0VcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8bWF0LXNwaW5uZXIgKm5nSWY9XCJpc0xvYWRpbmdcIiBbZGlhbWV0ZXJdPVwiMjBcIiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwibWwtMlwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,27 +1,29 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { LLMActions } from './models/llm-actions.enum';
3
- import { RephraseTranslationComponent } from './components/rephrase-translation/rephrase-translation.component';
3
+ import { RephraseComponent } from './components/rephrase/rephrase.component';
4
4
  import { CreateSummaryComponent } from './components/create-summary/create-summary.component';
5
5
  import { ResolutionHelper } from '../helpers';
6
6
  import * as icons from './icons';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/material/dialog";
9
9
  import * as i2 from "../services";
10
- import * as i3 from "@angular/common";
11
- import * as i4 from "@angular/material/button";
12
- import * as i5 from "@angular/material/icon";
13
- import * as i6 from "@angular/material/menu";
14
- import * as i7 from "@angular/material/tooltip";
15
- import * as i8 from "@ngx-translate/core";
10
+ import * as i3 from "@angular/material/button";
11
+ import * as i4 from "@angular/material/icon";
12
+ import * as i5 from "@angular/material/menu";
13
+ import * as i6 from "@angular/material/tooltip";
14
+ import * as i7 from "@ngx-translate/core";
16
15
  export class LLMComponent {
17
16
  get isTextSummarizable() {
18
17
  return this.text.length > 100;
19
18
  }
20
- constructor(dialog, iconService) {
19
+ get isTargetLanguageRephrasable() {
20
+ return this.rephrasableLanguagesCodeList.includes(this.languageService.removeRegionFromLanguageCode(this.language));
21
+ }
22
+ constructor(dialog, iconService, languageService) {
21
23
  this.dialog = dialog;
22
24
  this.iconService = iconService;
25
+ this.languageService = languageService;
23
26
  this.rephrasableLanguagesCodeList = ['en'];
24
- this.llmActions = Object.values(LLMActions);
25
27
  this.llmAction = LLMActions;
26
28
  this.iconService.registerIcons(icons);
27
29
  }
@@ -37,18 +39,18 @@ export class LLMComponent {
37
39
  getComponentByLLMAction(action) {
38
40
  switch (action) {
39
41
  case LLMActions.REPHRASE:
40
- return RephraseTranslationComponent;
42
+ return RephraseComponent;
41
43
  case LLMActions.SUMMARY:
42
44
  return CreateSummaryComponent;
43
45
  }
44
46
  }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LLMComponent, deps: [{ token: i1.MatDialog }, { token: i2.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LLMComponent, selector: "lib-llm", inputs: { text: "text", language: "language", isMenuDisabled: "isMenuDisabled", rephrasableLanguagesCodeList: "rephrasableLanguagesCodeList", llmActions: "llmActions" }, ngImport: i0, template: "<button [disabled]=\"isMenuDisabled\" [matTooltip]=\"'LLM.MENU_TOOLTIP' | translate\" mat-icon-button [matMenuTriggerFor]=\"menu\">\r\n <mat-icon svgIcon=\"llm_menu\"></mat-icon>\r\n</button>\r\n\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let action of llmActions\">\r\n <div [matTooltip]=\"((action === llmAction.REPHRASE) && !rephrasableLanguagesCodeList.includes(language)) ? ('LLM.MENU_REPHRASE_DISABLED_TOOLTIP' | translate) : ''\">\r\n <button\r\n mat-menu-item\r\n [disabled]=\"((action === llmAction.SUMMARY) && !isTextSummarizable) || ((action === llmAction.REPHRASE) && !rephrasableLanguagesCodeList.includes(language))\"\r\n (click)=\"openLLMModal(action)\"\r\n >\r\n {{ \"LLM.\" + action | translate }}\r\n </button>\r\n </div>\r\n </ng-container>\r\n</mat-menu>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LLMComponent, deps: [{ token: i1.MatDialog }, { token: i2.IconService }, { token: i2.LanguageTranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LLMComponent, selector: "lib-llm", inputs: { text: "text", language: "language", isMenuDisabled: "isMenuDisabled", rephrasableLanguagesCodeList: "rephrasableLanguagesCodeList" }, ngImport: i0, template: "<button\r\n [disabled]=\"isMenuDisabled\"\r\n [matTooltip]=\"'LLM.MENU_TOOLTIP' | translate\"\r\n mat-icon-button\r\n [matMenuTriggerFor]=\"menu\"\r\n>\r\n <mat-icon svgIcon=\"llm_menu\"></mat-icon>\r\n</button>\r\n\r\n<mat-menu #menu=\"matMenu\">\r\n <div [matTooltip]=\"!isTextSummarizable ? ('LLM.MENU_SUMMARY_DISABLED_TOOLTIP' | translate) : ''\">\r\n <button\r\n mat-menu-item\r\n [disabled]=\"!isTextSummarizable\"\r\n (click)=\"openLLMModal(llmAction.SUMMARY)\"\r\n >\r\n {{ \"LLM.SUMMARY\" | translate }}\r\n </button>\r\n </div>\r\n\r\n <div [matTooltip]=\"!isTargetLanguageRephrasable ? ('LLM.MENU_REPHRASE_DISABLED_TOOLTIP' | translate) : ''\">\r\n <button\r\n mat-menu-item\r\n [disabled]=\"!isTargetLanguageRephrasable\"\r\n (click)=\"openLLMModal(llmAction.REPHRASE)\"\r\n >\r\n {{ \"LLM.REPHRASE\" | translate }}\r\n </button>\r\n </div>\r\n</mat-menu>\r\n", styles: [""], dependencies: [{ kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
47
49
  }
48
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LLMComponent, decorators: [{
49
51
  type: Component,
50
- args: [{ selector: 'lib-llm', template: "<button [disabled]=\"isMenuDisabled\" [matTooltip]=\"'LLM.MENU_TOOLTIP' | translate\" mat-icon-button [matMenuTriggerFor]=\"menu\">\r\n <mat-icon svgIcon=\"llm_menu\"></mat-icon>\r\n</button>\r\n\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let action of llmActions\">\r\n <div [matTooltip]=\"((action === llmAction.REPHRASE) && !rephrasableLanguagesCodeList.includes(language)) ? ('LLM.MENU_REPHRASE_DISABLED_TOOLTIP' | translate) : ''\">\r\n <button\r\n mat-menu-item\r\n [disabled]=\"((action === llmAction.SUMMARY) && !isTextSummarizable) || ((action === llmAction.REPHRASE) && !rephrasableLanguagesCodeList.includes(language))\"\r\n (click)=\"openLLMModal(action)\"\r\n >\r\n {{ \"LLM.\" + action | translate }}\r\n </button>\r\n </div>\r\n </ng-container>\r\n</mat-menu>\r\n" }]
51
- }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.IconService }]; }, propDecorators: { text: [{
52
+ args: [{ selector: 'lib-llm', template: "<button\r\n [disabled]=\"isMenuDisabled\"\r\n [matTooltip]=\"'LLM.MENU_TOOLTIP' | translate\"\r\n mat-icon-button\r\n [matMenuTriggerFor]=\"menu\"\r\n>\r\n <mat-icon svgIcon=\"llm_menu\"></mat-icon>\r\n</button>\r\n\r\n<mat-menu #menu=\"matMenu\">\r\n <div [matTooltip]=\"!isTextSummarizable ? ('LLM.MENU_SUMMARY_DISABLED_TOOLTIP' | translate) : ''\">\r\n <button\r\n mat-menu-item\r\n [disabled]=\"!isTextSummarizable\"\r\n (click)=\"openLLMModal(llmAction.SUMMARY)\"\r\n >\r\n {{ \"LLM.SUMMARY\" | translate }}\r\n </button>\r\n </div>\r\n\r\n <div [matTooltip]=\"!isTargetLanguageRephrasable ? ('LLM.MENU_REPHRASE_DISABLED_TOOLTIP' | translate) : ''\">\r\n <button\r\n mat-menu-item\r\n [disabled]=\"!isTargetLanguageRephrasable\"\r\n (click)=\"openLLMModal(llmAction.REPHRASE)\"\r\n >\r\n {{ \"LLM.REPHRASE\" | translate }}\r\n </button>\r\n </div>\r\n</mat-menu>\r\n" }]
53
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.IconService }, { type: i2.LanguageTranslateService }]; }, propDecorators: { text: [{
52
54
  type: Input
53
55
  }], language: [{
54
56
  type: Input
@@ -56,7 +58,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
56
58
  type: Input
57
59
  }], rephrasableLanguagesCodeList: [{
58
60
  type: Input
59
- }], llmActions: [{
60
- type: Input
61
61
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHOUMsT0FBTyxLQUFLLEtBQUssTUFBTSxTQUFTLENBQUM7Ozs7Ozs7Ozs7QUFPakMsTUFBTSxPQUFPLFlBQVk7SUFTdkIsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQW1CLE1BQWlCLEVBQW1CLFdBQXdCO1FBQTVELFdBQU0sR0FBTixNQUFNLENBQVc7UUFBbUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFUdEUsaUNBQTRCLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxlQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2QyxjQUFTLEdBQUcsVUFBVSxDQUFDO1FBTzlCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBa0I7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3JELFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPO1lBQzNELElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHVCQUF1QixDQUFDLE1BQWtCO1FBQ2hELFFBQVEsTUFBTSxFQUFFO1lBQ2QsS0FBSyxVQUFVLENBQUMsUUFBUTtnQkFDdEIsT0FBTyw0QkFBNEIsQ0FBQztZQUN0QyxLQUFLLFVBQVUsQ0FBQyxPQUFPO2dCQUNyQixPQUFPLHNCQUFzQixDQUFDO1NBQ2pDO0lBQ0gsQ0FBQzsrR0FsQ1UsWUFBWTttR0FBWixZQUFZLHlOQ2Z6QixnMUJBaUJBOzs0RkRGYSxZQUFZO2tCQUx4QixTQUFTOytCQUNFLFNBQVM7MEhBS1YsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTExNQWN0aW9ucyB9IGZyb20gJy4vbW9kZWxzL2xsbS1hY3Rpb25zLmVudW0nO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBSZXBocmFzZVRyYW5zbGF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlcGhyYXNlLXRyYW5zbGF0aW9uL3JlcGhyYXNlLXRyYW5zbGF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENyZWF0ZVN1bW1hcnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3JlYXRlLXN1bW1hcnkvY3JlYXRlLXN1bW1hcnkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzb2x1dGlvbkhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgKiBhcyBpY29ucyBmcm9tICcuL2ljb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxsbScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xsbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGxtLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMTE1Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHRleHQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGFuZ3VhZ2UhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNNZW51RGlzYWJsZWQhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHJlcGhyYXNhYmxlTGFuZ3VhZ2VzQ29kZUxpc3QgPSBbJ2VuJ107XHJcbiAgQElucHV0KCkgbGxtQWN0aW9ucyA9IE9iamVjdC52YWx1ZXMoTExNQWN0aW9ucyk7XHJcblxyXG4gIHJlYWRvbmx5IGxsbUFjdGlvbiA9IExMTUFjdGlvbnM7XHJcblxyXG4gIGdldCBpc1RleHRTdW1tYXJpemFibGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXh0Lmxlbmd0aCA+IDEwMDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZywgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2UpIHtcclxuICAgIHRoaXMuaWNvblNlcnZpY2UucmVnaXN0ZXJJY29ucyhpY29ucyk7XHJcbiAgfVxyXG5cclxuICBvcGVuTExNTW9kYWwoYWN0aW9uOiBMTE1BY3Rpb25zKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKHRoaXMuZ2V0Q29tcG9uZW50QnlMTE1BY3Rpb24oYWN0aW9uKSwge1xyXG4gICAgICBtaW5XaWR0aDogUmVzb2x1dGlvbkhlbHBlci5pc01vYmlsZVJlcygpID8gJzEwMCUnIDogJzgwMHB4JyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHRleHQ6IHRoaXMudGV4dCxcclxuICAgICAgICBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29tcG9uZW50QnlMTE1BY3Rpb24oYWN0aW9uOiBMTE1BY3Rpb25zKTogQ29tcG9uZW50VHlwZTxSZXBocmFzZVRyYW5zbGF0aW9uQ29tcG9uZW50IHwgQ3JlYXRlU3VtbWFyeUNvbXBvbmVudD4ge1xyXG4gICAgc3dpdGNoIChhY3Rpb24pIHtcclxuICAgICAgY2FzZSBMTE1BY3Rpb25zLlJFUEhSQVNFOlxyXG4gICAgICAgIHJldHVybiBSZXBocmFzZVRyYW5zbGF0aW9uQ29tcG9uZW50O1xyXG4gICAgICBjYXNlIExMTUFjdGlvbnMuU1VNTUFSWTpcclxuICAgICAgICByZXR1cm4gQ3JlYXRlU3VtbWFyeUNvbXBvbmVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNNZW51RGlzYWJsZWRcIiBbbWF0VG9vbHRpcF09XCInTExNLk1FTlVfVE9PTFRJUCcgfCB0cmFuc2xhdGVcIiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cclxuICA8bWF0LWljb24gc3ZnSWNvbj1cImxsbV9tZW51XCI+PC9tYXQtaWNvbj5cclxuPC9idXR0b24+XHJcblxyXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGxsbUFjdGlvbnNcIj5cclxuICAgIDxkaXYgW21hdFRvb2x0aXBdPVwiKChhY3Rpb24gPT09IGxsbUFjdGlvbi5SRVBIUkFTRSkgJiYgIXJlcGhyYXNhYmxlTGFuZ3VhZ2VzQ29kZUxpc3QuaW5jbHVkZXMobGFuZ3VhZ2UpKSA/ICgnTExNLk1FTlVfUkVQSFJBU0VfRElTQUJMRURfVE9PTFRJUCcgfCB0cmFuc2xhdGUpIDogJydcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICBbZGlzYWJsZWRdPVwiKChhY3Rpb24gPT09IGxsbUFjdGlvbi5TVU1NQVJZKSAmJiAhaXNUZXh0U3VtbWFyaXphYmxlKSB8fCAoKGFjdGlvbiA9PT0gbGxtQWN0aW9uLlJFUEhSQVNFKSAmJiAhcmVwaHJhc2FibGVMYW5ndWFnZXNDb2RlTGlzdC5pbmNsdWRlcyhsYW5ndWFnZSkpXCJcclxuICAgICAgICAoY2xpY2spPVwib3BlbkxMTU1vZGFsKGFjdGlvbilcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgXCJMTE0uXCIgKyBhY3Rpb24gfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9tYXQtbWVudT5cclxuIl19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHOUMsT0FBTyxLQUFLLEtBQUssTUFBTSxTQUFTLENBQUM7Ozs7Ozs7OztBQU9qQyxNQUFNLE9BQU8sWUFBWTtJQVF2QixJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSwyQkFBMkI7UUFDN0IsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEgsQ0FBQztJQUVELFlBQW1CLE1BQWlCLEVBQW1CLFdBQXdCLEVBQW1CLGVBQXlDO1FBQXhILFdBQU0sR0FBTixNQUFNLENBQVc7UUFBbUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBbUIsb0JBQWUsR0FBZixlQUFlLENBQTBCO1FBWmxJLGlDQUE0QixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsY0FBUyxHQUFHLFVBQVUsQ0FBQztRQVc5QixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWtCO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyRCxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztZQUMzRCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUN4QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxNQUFrQjtRQUNoRCxRQUFRLE1BQU0sRUFBRTtZQUNkLEtBQUssVUFBVSxDQUFDLFFBQVE7Z0JBQ3RCLE9BQU8saUJBQWlCLENBQUM7WUFDM0IsS0FBSyxVQUFVLENBQUMsT0FBTztnQkFDckIsT0FBTyxzQkFBc0IsQ0FBQztTQUNqQztJQUNILENBQUM7K0dBckNVLFlBQVk7bUdBQVosWUFBWSwrTENmekIsNDZCQThCQTs7NEZEZmEsWUFBWTtrQkFMeEIsU0FBUzsrQkFDRSxTQUFTO2lLQUtWLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMTE1BY3Rpb25zIH0gZnJvbSAnLi9tb2RlbHMvbGxtLWFjdGlvbnMuZW51bSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFJlcGhyYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlcGhyYXNlL3JlcGhyYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENyZWF0ZVN1bW1hcnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3JlYXRlLXN1bW1hcnkvY3JlYXRlLXN1bW1hcnkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzb2x1dGlvbkhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBJY29uU2VydmljZSwgTGFuZ3VhZ2VUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCAqIGFzIGljb25zIGZyb20gJy4vaWNvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbGxtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGxtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sbG0uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExMTUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdGV4dCE6IHN0cmluZztcclxuICBASW5wdXQoKSBsYW5ndWFnZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBpc01lbnVEaXNhYmxlZCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcmVwaHJhc2FibGVMYW5ndWFnZXNDb2RlTGlzdCA9IFsnZW4nXTtcclxuXHJcbiAgcmVhZG9ubHkgbGxtQWN0aW9uID0gTExNQWN0aW9ucztcclxuXHJcbiAgZ2V0IGlzVGV4dFN1bW1hcml6YWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRleHQubGVuZ3RoID4gMTAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzVGFyZ2V0TGFuZ3VhZ2VSZXBocmFzYWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJlcGhyYXNhYmxlTGFuZ3VhZ2VzQ29kZUxpc3QuaW5jbHVkZXModGhpcy5sYW5ndWFnZVNlcnZpY2UucmVtb3ZlUmVnaW9uRnJvbUxhbmd1YWdlQ29kZSh0aGlzLmxhbmd1YWdlKSk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csIHByaXZhdGUgcmVhZG9ubHkgaWNvblNlcnZpY2U6IEljb25TZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmljb25TZXJ2aWNlLnJlZ2lzdGVySWNvbnMoaWNvbnMpO1xyXG4gIH1cclxuXHJcbiAgb3BlbkxMTU1vZGFsKGFjdGlvbjogTExNQWN0aW9ucyk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2cub3Blbih0aGlzLmdldENvbXBvbmVudEJ5TExNQWN0aW9uKGFjdGlvbiksIHtcclxuICAgICAgbWluV2lkdGg6IFJlc29sdXRpb25IZWxwZXIuaXNNb2JpbGVSZXMoKSA/ICcxMDAlJyA6ICc4MDBweCcsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB0ZXh0OiB0aGlzLnRleHQsXHJcbiAgICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2VcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbXBvbmVudEJ5TExNQWN0aW9uKGFjdGlvbjogTExNQWN0aW9ucyk6IENvbXBvbmVudFR5cGU8UmVwaHJhc2VDb21wb25lbnQgfCBDcmVhdGVTdW1tYXJ5Q29tcG9uZW50PiB7XHJcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xyXG4gICAgICBjYXNlIExMTUFjdGlvbnMuUkVQSFJBU0U6XHJcbiAgICAgICAgcmV0dXJuIFJlcGhyYXNlQ29tcG9uZW50O1xyXG4gICAgICBjYXNlIExMTUFjdGlvbnMuU1VNTUFSWTpcclxuICAgICAgICByZXR1cm4gQ3JlYXRlU3VtbWFyeUNvbXBvbmVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGJ1dHRvblxyXG4gIFtkaXNhYmxlZF09XCJpc01lbnVEaXNhYmxlZFwiXHJcbiAgW21hdFRvb2x0aXBdPVwiJ0xMTS5NRU5VX1RPT0xUSVAnIHwgdHJhbnNsYXRlXCJcclxuICBtYXQtaWNvbi1idXR0b25cclxuICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXHJcbj5cclxuICA8bWF0LWljb24gc3ZnSWNvbj1cImxsbV9tZW51XCI+PC9tYXQtaWNvbj5cclxuPC9idXR0b24+XHJcblxyXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgPGRpdiBbbWF0VG9vbHRpcF09XCIhaXNUZXh0U3VtbWFyaXphYmxlID8gKCdMTE0uTUVOVV9TVU1NQVJZX0RJU0FCTEVEX1RPT0xUSVAnIHwgdHJhbnNsYXRlKSA6ICcnXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgW2Rpc2FibGVkXT1cIiFpc1RleHRTdW1tYXJpemFibGVcIlxyXG4gICAgICAoY2xpY2spPVwib3BlbkxMTU1vZGFsKGxsbUFjdGlvbi5TVU1NQVJZKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IFwiTExNLlNVTU1BUllcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW21hdFRvb2x0aXBdPVwiIWlzVGFyZ2V0TGFuZ3VhZ2VSZXBocmFzYWJsZSA/ICgnTExNLk1FTlVfUkVQSFJBU0VfRElTQUJMRURfVE9PTFRJUCcgfCB0cmFuc2xhdGUpIDogJydcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICBbZGlzYWJsZWRdPVwiIWlzVGFyZ2V0TGFuZ3VhZ2VSZXBocmFzYWJsZVwiXHJcbiAgICAgIChjbGljayk9XCJvcGVuTExNTW9kYWwobGxtQWN0aW9uLlJFUEhSQVNFKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IFwiTExNLlJFUEhSQVNFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L21hdC1tZW51PlxyXG4iXX0=
@@ -5,7 +5,7 @@ import { MatButtonModule } from '@angular/material/button';
5
5
  import { MatIconModule } from '@angular/material/icon';
6
6
  import { MatMenuModule } from '@angular/material/menu';
7
7
  import { TranslateModule } from '@ngx-translate/core';
8
- import { RephraseTranslationComponent } from './components/rephrase-translation/rephrase-translation.component';
8
+ import { RephraseComponent } from './components/rephrase/rephrase.component';
9
9
  import { CreateSummaryComponent } from './components/create-summary/create-summary.component';
10
10
  import { MatDialogModule } from '@angular/material/dialog';
11
11
  import { ClipboardModule } from '@angular/cdk/clipboard';
@@ -15,11 +15,12 @@ import { MatSelectModule } from '@angular/material/select';
15
15
  import { NotificationMessageModule } from '../notification-message';
16
16
  import { MatTooltipModule } from '@angular/material/tooltip';
17
17
  import { FlexLayoutModule } from '@angular/flex-layout';
18
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
18
19
  import * as i0 from "@angular/core";
19
20
  export class LLMModule {
20
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LLMModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
22
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: LLMModule, declarations: [LLMComponent,
22
- RephraseTranslationComponent,
23
+ RephraseComponent,
23
24
  CreateSummaryComponent,
24
25
  LLMTextareaComponent], imports: [CommonModule,
25
26
  MatButtonModule,
@@ -33,7 +34,8 @@ export class LLMModule {
33
34
  MatSelectModule,
34
35
  NotificationMessageModule,
35
36
  MatTooltipModule,
36
- FlexLayoutModule], exports: [LLMComponent] }); }
37
+ FlexLayoutModule,
38
+ MatProgressSpinnerModule], exports: [LLMComponent] }); }
37
39
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LLMModule, imports: [CommonModule,
38
40
  MatButtonModule,
39
41
  MatIconModule,
@@ -46,14 +48,15 @@ export class LLMModule {
46
48
  MatSelectModule,
47
49
  NotificationMessageModule,
48
50
  MatTooltipModule,
49
- FlexLayoutModule] }); }
51
+ FlexLayoutModule,
52
+ MatProgressSpinnerModule] }); }
50
53
  }
51
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LLMModule, decorators: [{
52
55
  type: NgModule,
53
56
  args: [{
54
57
  declarations: [
55
58
  LLMComponent,
56
- RephraseTranslationComponent,
59
+ RephraseComponent,
57
60
  CreateSummaryComponent,
58
61
  LLMTextareaComponent,
59
62
  ],
@@ -70,9 +73,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
70
73
  MatSelectModule,
71
74
  NotificationMessageModule,
72
75
  MatTooltipModule,
73
- FlexLayoutModule
76
+ FlexLayoutModule,
77
+ MatProgressSpinnerModule
74
78
  ],
75
79
  exports: [LLMComponent],
76
80
  }]
77
81
  }] });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUEwQnhELE1BQU0sT0FBTyxTQUFTOytHQUFULFNBQVM7Z0hBQVQsU0FBUyxpQkF0QmxCLFlBQVk7WUFDWiw0QkFBNEI7WUFDNUIsc0JBQXNCO1lBQ3RCLG9CQUFvQixhQUdwQixZQUFZO1lBQ1osZUFBZTtZQUNmLGFBQWE7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7WUFDZixlQUFlO1lBQ2YsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YseUJBQXlCO1lBQ3pCLGdCQUFnQjtZQUNoQixnQkFBZ0IsYUFFUixZQUFZO2dIQUVYLFNBQVMsWUFoQmxCLFlBQVk7WUFDWixlQUFlO1lBQ2YsYUFBYTtZQUNiLGFBQWE7WUFDYixlQUFlO1lBQ2YsZUFBZTtZQUNmLGVBQWU7WUFDZixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZix5QkFBeUI7WUFDekIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjs7NEZBSVAsU0FBUztrQkF4QnJCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLFlBQVk7d0JBQ1osNEJBQTRCO3dCQUM1QixzQkFBc0I7d0JBQ3RCLG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YseUJBQXlCO3dCQUN6QixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IExMTUNvbXBvbmVudCB9IGZyb20gJy4vbGxtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgUmVwaHJhc2VUcmFuc2xhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXBocmFzZS10cmFuc2xhdGlvbi9yZXBocmFzZS10cmFuc2xhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDcmVhdGVTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NyZWF0ZS1zdW1tYXJ5L2NyZWF0ZS1zdW1tYXJ5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IENsaXBib2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jbGlwYm9hcmQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTExNVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9sbG0tdGV4dGFyZWEvbGxtLXRleHRhcmVhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbk1lc3NhZ2VNb2R1bGUgfSBmcm9tICcuLi9ub3RpZmljYXRpb24tbWVzc2FnZSc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBMTE1Db21wb25lbnQsXHJcbiAgICBSZXBocmFzZVRyYW5zbGF0aW9uQ29tcG9uZW50LFxyXG4gICAgQ3JlYXRlU3VtbWFyeUNvbXBvbmVudCxcclxuICAgIExMTVRleHRhcmVhQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICBDbGlwYm9hcmRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBOb3RpZmljYXRpb25NZXNzYWdlTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIEZsZXhMYXlvdXRNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtMTE1Db21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTExNTW9kdWxlIHt9XHJcbiJdfQ==
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUEyQjlFLE1BQU0sT0FBTyxTQUFTOytHQUFULFNBQVM7Z0hBQVQsU0FBUyxpQkF2QmxCLFlBQVk7WUFDWixpQkFBaUI7WUFDakIsc0JBQXNCO1lBQ3RCLG9CQUFvQixhQUdwQixZQUFZO1lBQ1osZUFBZTtZQUNmLGFBQWE7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7WUFDZixlQUFlO1lBQ2YsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YseUJBQXlCO1lBQ3pCLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsd0JBQXdCLGFBRWhCLFlBQVk7Z0hBRVgsU0FBUyxZQWpCbEIsWUFBWTtZQUNaLGVBQWU7WUFDZixhQUFhO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlO1lBQ2YsZUFBZTtZQUNmLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLHlCQUF5QjtZQUN6QixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLHdCQUF3Qjs7NEZBSWYsU0FBUztrQkF6QnJCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YseUJBQXlCO3dCQUN6QixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsd0JBQXdCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTExNQ29tcG9uZW50IH0gZnJvbSAnLi9sbG0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXBocmFzZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXBocmFzZS9yZXBocmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDcmVhdGVTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NyZWF0ZS1zdW1tYXJ5L2NyZWF0ZS1zdW1tYXJ5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IENsaXBib2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jbGlwYm9hcmQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTExNVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9sbG0tdGV4dGFyZWEvbGxtLXRleHRhcmVhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbk1lc3NhZ2VNb2R1bGUgfSBmcm9tICcuLi9ub3RpZmljYXRpb24tbWVzc2FnZSc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgTExNQ29tcG9uZW50LFxyXG4gICAgUmVwaHJhc2VDb21wb25lbnQsXHJcbiAgICBDcmVhdGVTdW1tYXJ5Q29tcG9uZW50LFxyXG4gICAgTExNVGV4dGFyZWFDb21wb25lbnQsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgIENsaXBib2FyZE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIE5vdGlmaWNhdGlvbk1lc3NhZ2VNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgRmxleExheW91dE1vZHVsZSxcclxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW0xMTUNvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMTE1Nb2R1bGUge31cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLWNvbmZpZ3VyYXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL21vZGVscy9sbG0tY29uZmlndXJhdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBMTE1Db25maWd1cmF0aW9uIHtcclxuICBzZXJ2aWNlVXJsOiBzdHJpbmc7XHJcbiAgc3Vic2NyaXB0aW9uVXJsOiBzdHJpbmc7XHJcbiAgc3VwcG9ydEVtYWlsOiBzdHJpbmc7XHJcbiAgeEFwaUtleTogc3RyaW5nLFxyXG4gIGFwcElkOiBzdHJpbmcsXHJcbiAgcGxhdXNpYmxlRG9tYWluPzogc3RyaW5nXHJcbn0iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLWNvbmZpZ3VyYXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL21vZGVscy9sbG0tY29uZmlndXJhdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBMTE1Db25maWd1cmF0aW9uIHtcclxuICBzZXJ2aWNlVXJsOiBzdHJpbmc7XHJcbiAgc3Vic2NyaXB0aW9uVXJsOiBzdHJpbmc7XHJcbiAgc3VwcG9ydEVtYWlsOiBzdHJpbmc7XHJcbiAgeEFwaUtleTogc3RyaW5nLFxyXG4gIGFwcElkOiBzdHJpbmcsXHJcbn0iXX0=