@tilde-nlp/ngx-common 4.1.37 → 4.1.38

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.
Files changed (28) hide show
  1. package/esm2022/lib/constants/error-codes.const.mjs +5 -0
  2. package/esm2022/lib/constants/index.mjs +2 -1
  3. package/esm2022/lib/llm/components/llm-textarea-with-actions/llm-textarea-with-actions.component.mjs +181 -0
  4. package/esm2022/lib/llm/llm.component.mjs +7 -15
  5. package/esm2022/lib/llm/llm.module.mjs +5 -8
  6. package/esm2022/lib/llm/models/llm-data.model.mjs +1 -1
  7. package/esm2022/lib/llm/models/llm-summarize-request.model.mjs +2 -0
  8. package/esm2022/lib/llm/services/llm-helper.service.mjs +10 -1
  9. package/esm2022/lib/llm/services/llm.service.mjs +1 -1
  10. package/esm2022/lib/llm/shared/llm-textarea/llm-textarea.component.mjs +8 -4
  11. package/esm2022/lib/terminology/services/terminology/terminology.service.mjs +2 -3
  12. package/fesm2022/tilde-nlp-ngx-common.mjs +106 -160
  13. package/fesm2022/tilde-nlp-ngx-common.mjs.map +1 -1
  14. package/lib/constants/error-codes.const.d.ts +3 -0
  15. package/lib/constants/index.d.ts +1 -0
  16. package/lib/llm/components/{rephrase/rephrase.component.d.ts → llm-textarea-with-actions/llm-textarea-with-actions.component.d.ts} +25 -16
  17. package/lib/llm/llm.component.d.ts +0 -1
  18. package/lib/llm/llm.module.d.ts +16 -17
  19. package/lib/llm/models/llm-data.model.d.ts +2 -0
  20. package/lib/llm/models/llm-summarize-request.model.d.ts +4 -0
  21. package/lib/llm/services/llm-helper.service.d.ts +2 -0
  22. package/lib/llm/services/llm.service.d.ts +2 -2
  23. package/lib/llm/shared/llm-textarea/llm-textarea.component.d.ts +2 -1
  24. package/package.json +1 -1
  25. package/styles/components/icons.scss +1 -1
  26. package/esm2022/lib/llm/components/create-summary/create-summary.component.mjs +0 -115
  27. package/esm2022/lib/llm/components/rephrase/rephrase.component.mjs +0 -139
  28. package/lib/llm/components/create-summary/create-summary.component.d.ts +0 -46
@@ -0,0 +1,5 @@
1
+ export var ERROR_CODES;
2
+ (function (ERROR_CODES) {
3
+ ERROR_CODES[ERROR_CODES["TIMEOUT"] = 504] = "TIMEOUT";
4
+ })(ERROR_CODES || (ERROR_CODES = {}));
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItY29kZXMuY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvY29uc3RhbnRzL2Vycm9yLWNvZGVzLmNvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFdBRVg7QUFGRCxXQUFZLFdBQVc7SUFDckIscURBQWEsQ0FBQTtBQUNmLENBQUMsRUFGVyxXQUFXLEtBQVgsV0FBVyxRQUV0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEVSUk9SX0NPREVTIHtcclxuICBUSU1FT1VUID0gNTA0XHJcbn0iXX0=
@@ -1,3 +1,4 @@
1
1
  export * from './screen-size.const';
2
2
  export * from './last-used-system-local-storage-key.const';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvY29uc3RhbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw0Q0FBNEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2NyZWVuLXNpemUuY29uc3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xhc3QtdXNlZC1zeXN0ZW0tbG9jYWwtc3RvcmFnZS1rZXkuY29uc3QnOyJdfQ==
3
+ export * from './error-codes.const';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvY29uc3RhbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zY3JlZW4tc2l6ZS5jb25zdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGFzdC11c2VkLXN5c3RlbS1sb2NhbC1zdG9yYWdlLWtleS5jb25zdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3ItY29kZXMuY29uc3QnOyJdfQ==
@@ -0,0 +1,181 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import { finalize } from 'rxjs';
4
+ import { LLMActions } from '../../models/llm-actions.enum';
5
+ import { LLMWritingStyle } from '../../models/llm-writing-style.enum';
6
+ import { PlausibleHelper } from '../../../plausible';
7
+ import { ERROR_CODES } from '../../../constants';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../services/llm.service";
10
+ import * as i2 from "../../services/llm-helper.service";
11
+ import * as i3 from "@angular/common";
12
+ import * as i4 from "@angular/material/button";
13
+ import * as i5 from "@angular/material/dialog";
14
+ import * as i6 from "@angular/material/form-field";
15
+ import * as i7 from "@angular/material/select";
16
+ import * as i8 from "@angular/material/core";
17
+ import * as i9 from "../../../notification-message/notification-message.component";
18
+ import * as i10 from "@angular/material/tooltip";
19
+ import * as i11 from "@angular/material/progress-spinner";
20
+ import * as i12 from "../../shared/llm-textarea/llm-textarea.component";
21
+ import * as i13 from "@ngx-translate/core";
22
+ export class LLMTextareaWithActionsComponent {
23
+ get isDisabled() {
24
+ return this.isLoading || !this.initialText || this.quotaLeft < 1;
25
+ }
26
+ get showMissingQuotaMessage() {
27
+ return !this.quotaLeft && !this.missingQuotaMessageClosed && this.isQuotaLoaded;
28
+ }
29
+ constructor(llmService, llmHelperService, data) {
30
+ this.llmService = llmService;
31
+ this.llmHelperService = llmHelperService;
32
+ this.data = data;
33
+ this.selectedWritingStyle = LLMWritingStyle.GENERAL;
34
+ this.editedText = '';
35
+ this.manuallyEditedText = '';
36
+ this.savedRephrasings = [];
37
+ this.llmActions = LLMActions;
38
+ this.writingStyles = Object.values(LLMWritingStyle);
39
+ this.messages = [];
40
+ this.missingQuotaMessageClosed = false;
41
+ }
42
+ ngOnInit() {
43
+ this.llmActionType = this.data.action;
44
+ this.localizationKey = `LLM.${this.llmActionType}_MODAL.`;
45
+ this.initialText = this.data.text;
46
+ this.subscriptionUrl = this.llmService.llmConfiguration.subscriptionUrl;
47
+ this.maxCharLength = this.llmService.llmConfiguration.maxCharLength;
48
+ this.refreshQuota();
49
+ }
50
+ closeMessage(msg) {
51
+ const index = this.messages?.findIndex((message) => JSON.stringify(message) === JSON.stringify(msg));
52
+ if (index || index === 0) {
53
+ this.messages.splice(index, 1);
54
+ }
55
+ }
56
+ checkRephrasedTextSaves(event) {
57
+ if (event.value !== this.selectedWritingStyle) {
58
+ this.previousWritingStyle = this.selectedWritingStyle;
59
+ this.selectedWritingStyle = event.value;
60
+ }
61
+ const selectedWritingStyleSave = this.savedRephrasings.find((rephrasing) => rephrasing.style === this.selectedWritingStyle);
62
+ const previousWritingStyleSave = this.savedRephrasings.find((save) => save.style === this.previousWritingStyle);
63
+ if (previousWritingStyleSave) {
64
+ previousWritingStyleSave.text = this.editedText !== '' ? this.editedText : this.initialText;
65
+ }
66
+ else {
67
+ this.savedRephrasings.push({ style: this.previousWritingStyle, text: this.editedText !== '' ? this.editedText : this.initialText });
68
+ }
69
+ this.editedText = selectedWritingStyleSave?.text ?? this.initialText;
70
+ this.manuallyEditedText = '';
71
+ this.checkTextLimit();
72
+ }
73
+ getEditedText() {
74
+ this.isLoading = true;
75
+ if (this.llmActionType === LLMActions.REPHRASE) {
76
+ this.writingStylePlausibleEvent();
77
+ }
78
+ else {
79
+ this.summaryPlausibleEvent();
80
+ }
81
+ this.subscription = this.getRequest();
82
+ }
83
+ cancel() {
84
+ this.subscription.unsubscribe();
85
+ }
86
+ textEditEvent(text) {
87
+ this.manuallyEditedText = text;
88
+ this.initialText = text;
89
+ this.editedText = '';
90
+ this.checkTextLimit();
91
+ }
92
+ copyPlausibleEvent() {
93
+ PlausibleHelper.customEvent(this.llmActionType.toLowerCase(), { action: 'copy' });
94
+ }
95
+ dislikePlausibleEvent() {
96
+ PlausibleHelper.customEvent(this.llmActionType.toLowerCase(), { action: 'dislike' });
97
+ }
98
+ checkTextLimit() {
99
+ const limit = this.maxCharLength;
100
+ const texts = [this.initialText, this.manuallyEditedText, this.editedText];
101
+ const longestText = this.editedText && !this.manuallyEditedText ? this.editedText : texts.reduce((a, b) => a.length > b.length ? a : b);
102
+ if (longestText.length > limit) {
103
+ if (this.exceededLimitMessage) {
104
+ this.closeMessage(this.exceededLimitMessage);
105
+ }
106
+ this.exceededLimitMessage = this.llmHelperService.getExceededLimitMessage(longestText.length);
107
+ this.messages.push(this.exceededLimitMessage);
108
+ return;
109
+ }
110
+ this.closeMessage(this.exceededLimitMessage);
111
+ }
112
+ writingStylePlausibleEvent() {
113
+ PlausibleHelper.customEvent(this.llmActionType.toLowerCase(), { writingStyle: this.selectedWritingStyle });
114
+ }
115
+ summaryPlausibleEvent() {
116
+ PlausibleHelper.customEvent(this.llmActionType.toLowerCase(), { action: 'summary' });
117
+ }
118
+ refreshQuota(decrease) {
119
+ this.llmHelperService.getRemainingQuota(decrease).subscribe((remainingQuota) => {
120
+ this.quotaLeft = remainingQuota;
121
+ this.isQuotaLoaded = true;
122
+ this.setQuotaMessage();
123
+ });
124
+ }
125
+ setQuotaMessage() {
126
+ if (this.quotaLeft <= this.llmHelperService.trialRequestCount) {
127
+ this.remainingQuotaMessageVisible = true;
128
+ this.reachedQuotaMessage = this.llmHelperService.getReachedQuotaMessage();
129
+ this.messages.push(this.reachedQuotaMessage);
130
+ }
131
+ }
132
+ getRequest() {
133
+ let text = this.manuallyEditedText !== ''
134
+ ? this.manuallyEditedText
135
+ : this.initialText;
136
+ if (text.length > this.maxCharLength) {
137
+ text = text.substring(0, this.maxCharLength);
138
+ }
139
+ const method = this.llmActionType === LLMActions.REPHRASE
140
+ ? this.llmService.rephrase({ text: text, style: this.selectedWritingStyle })
141
+ : this.llmService.summarize({ text: text, language: this.data.language });
142
+ return method
143
+ .pipe(finalize(() => (this.isLoading = false)))
144
+ .subscribe(this.getRequestCallback());
145
+ }
146
+ getRequestCallback() {
147
+ return {
148
+ next: (response) => {
149
+ if (this.llmActionType === this.llmActions.SUMMARY) {
150
+ this.isSummarized = true;
151
+ }
152
+ this.editedText = response;
153
+ this.manuallyEditedText = '';
154
+ this.defaultErrorMessage = this.llmHelperService.getDefaultErrorMessage();
155
+ this.closeMessage(this.defaultErrorMessage);
156
+ this.closeMessage(this.requestTimeoutMessage);
157
+ this.isEdited = true;
158
+ this.refreshQuota(true);
159
+ this.checkTextLimit();
160
+ },
161
+ error: (error) => {
162
+ if (error.status === ERROR_CODES.TIMEOUT) {
163
+ this.requestTimeoutMessage = this.llmHelperService.getRequestTimeoutMessage(this.llmActionType);
164
+ this.messages.push(this.requestTimeoutMessage);
165
+ return;
166
+ }
167
+ this.messages.push(this.defaultErrorMessage);
168
+ }
169
+ };
170
+ }
171
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LLMTextareaWithActionsComponent, deps: [{ token: i1.LLMService }, { token: i2.LLMHelperService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
172
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LLMTextareaWithActionsComponent, selector: "lib-llm-textarea-with-actions", ngImport: i0, template: "<h1 mat-dialog-title>{{ localizationKey + \"TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ localizationKey + \"DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngFor=\"let message of messages\" [message]=\"message\" (closeClicked)=\"closeMessage(message)\"></lib-tld-notification-message>\r\n\r\n <ng-container *ngIf=\"llmActionType === llmActions.REPHRASE\">\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 [disabled]=\"isLoading\" (selectionChange)=\"checkRephrasedTextSaves($event)\" [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 </ng-container>\r\n\r\n <lib-llm-textarea [text]=\"editedText !== '' ? editedText : initialText\" [disabled]=\"isLoading || !quotaLeft\" [actionButtonsDisabled]=\"!isEdited\" (textEditEvent)=\"textEditEvent($event)\" (copyEvent)=\"copyPlausibleEvent()\" (dislikeEvent)=\"dislikePlausibleEvent()\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"remainingQuotaMessageVisible\" [innerHTML]=\"localizationKey + 'LIMIT' | translate: { limit: quotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!remainingQuotaMessageVisible\" class=\"llm-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ localizationKey + \"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 {{ localizationKey + \"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)=\"getEditedText()\"\r\n [disabled]=\"isDisabled\"\r\n >\r\n <span *ngIf=\"llmActionType === llmActions.SUMMARY; else rephraseAction\">\r\n {{\r\n (!isSummarized\r\n ? \"LLM.SUMMARY_MODAL.ACTION\"\r\n : \"LLM.SUMMARY_MODAL.REGENERATE\"\r\n ) | translate\r\n }}\r\n </span>\r\n\r\n <ng-template #rephraseAction>\r\n {{ localizationKey + \"ACTION\" | translate }}\r\n </ng-template>\r\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"20\" color=\"accent\"></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{margin:0 2.25rem 0 0!important;font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px;padding:.9em 1em!important;align-items:center!important}:host ::ng-deep .text-container{margin-right:0!important}:host ::ng-deep tld-close-button{top:1px!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:180px!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-actions-wrapper{display:flex;justify-content:space-between;margin:0 1rem .5rem}.llm-actions{display:flex;justify-content:end}.w-full{width:100%}:host ::ng-deep .mdc-button__label{display:flex!important;align-items:center!important}mat-spinner{margin-left:.5rem}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i9.NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i12.LLMTextareaComponent, selector: "lib-llm-textarea", inputs: ["text", "disabled", "actionButtonsDisabled"], outputs: ["textEditEvent", "dislikeEvent", "copyEvent"] }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] }); }
173
+ }
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LLMTextareaWithActionsComponent, decorators: [{
175
+ type: Component,
176
+ args: [{ selector: 'lib-llm-textarea-with-actions', template: "<h1 mat-dialog-title>{{ localizationKey + \"TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p>{{ localizationKey + \"DESCRIPTION\" | translate }}</p>\r\n\r\n <lib-tld-notification-message *ngFor=\"let message of messages\" [message]=\"message\" (closeClicked)=\"closeMessage(message)\"></lib-tld-notification-message>\r\n\r\n <ng-container *ngIf=\"llmActionType === llmActions.REPHRASE\">\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 [disabled]=\"isLoading\" (selectionChange)=\"checkRephrasedTextSaves($event)\" [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 </ng-container>\r\n\r\n <lib-llm-textarea [text]=\"editedText !== '' ? editedText : initialText\" [disabled]=\"isLoading || !quotaLeft\" [actionButtonsDisabled]=\"!isEdited\" (textEditEvent)=\"textEditEvent($event)\" (copyEvent)=\"copyPlausibleEvent()\" (dislikeEvent)=\"dislikePlausibleEvent()\"></lib-llm-textarea>\r\n</div>\r\n<div class=\"llm-actions-wrapper\" mat-dialog-actions>\r\n <div *ngIf=\"remainingQuotaMessageVisible\" [innerHTML]=\"localizationKey + 'LIMIT' | translate: { limit: quotaLeft, subscriptionUrl: subscriptionUrl }\"></div>\r\n\r\n <div [class.w-full]=\"!remainingQuotaMessageVisible\" class=\"llm-actions\">\r\n <button *ngIf=\"isLoading; else closeButton\" mat-button color=\"accent\" (click)=\"cancel()\">\r\n {{ localizationKey + \"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 {{ localizationKey + \"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)=\"getEditedText()\"\r\n [disabled]=\"isDisabled\"\r\n >\r\n <span *ngIf=\"llmActionType === llmActions.SUMMARY; else rephraseAction\">\r\n {{\r\n (!isSummarized\r\n ? \"LLM.SUMMARY_MODAL.ACTION\"\r\n : \"LLM.SUMMARY_MODAL.REGENERATE\"\r\n ) | translate\r\n }}\r\n </span>\r\n\r\n <ng-template #rephraseAction>\r\n {{ localizationKey + \"ACTION\" | translate }}\r\n </ng-template>\r\n <mat-spinner *ngIf=\"isLoading\" [diameter]=\"20\" color=\"accent\"></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{margin:0 2.25rem 0 0!important;font-size:14px}:host ::ng-deep .notification-message-container{margin:0 0 16px;padding:.9em 1em!important;align-items:center!important}:host ::ng-deep .text-container{margin-right:0!important}:host ::ng-deep tld-close-button{top:1px!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:180px!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-actions-wrapper{display:flex;justify-content:space-between;margin:0 1rem .5rem}.llm-actions{display:flex;justify-content:end}.w-full{width:100%}:host ::ng-deep .mdc-button__label{display:flex!important;align-items:center!important}mat-spinner{margin-left:.5rem}\n"] }]
177
+ }], ctorParameters: function () { return [{ type: i1.LLMService }, { type: i2.LLMHelperService }, { type: undefined, decorators: [{
178
+ type: Inject,
179
+ args: [MAT_DIALOG_DATA]
180
+ }] }]; } });
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL2NvbXBvbmVudHMvbGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zL2xsbS10ZXh0YXJlYS13aXRoLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBZ0IsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFJdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBUWpELE1BQU0sT0FBTywrQkFBK0I7SUFvQzFDLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFD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QUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBd0IsRUFBRSxFQUFFO2dCQUNsQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLE9BQU8sRUFBRTtvQkFDeEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQ2hHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO29CQUMvQyxPQUFPO2lCQUNSO2dCQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQy9DLENBQUM7U0FDRixDQUFBO0lBQ0gsQ0FBQzsrR0FqTlUsK0JBQStCLDRFQStDaEMsZUFBZTttR0EvQ2QsK0JBQStCLHFFQ25CNUMsNHVHQXFFQTs7NEZEbERhLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSwrQkFBK0I7OzBCQW1EdEMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExMTUFjdGlvbnMgfSBmcm9tICcuLi8uLi9tb2RlbHMvbGxtLWFjdGlvbnMuZW51bSc7XHJcbmltcG9ydCB7IExMTURhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvbGxtLWRhdGEubW9kZWwnO1xyXG5pbXBvcnQgeyBMTE1Xcml0aW5nU3R5bGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbGxtLXdyaXRpbmctc3R5bGUuZW51bSc7XHJcbmltcG9ydCB7IExMTUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sbG0taGVscGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMTE1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGxtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vbm90aWZpY2F0aW9uLW1lc3NhZ2UnO1xyXG5pbXBvcnQgeyBQbGF1c2libGVIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9wbGF1c2libGUnO1xyXG5pbXBvcnQgeyBFUlJPUl9DT0RFUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xsbS10ZXh0YXJlYS13aXRoLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xsbS10ZXh0YXJlYS13aXRoLWFjdGlvbnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTExNVGV4dGFyZWFXaXRoQWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaXNMb2FkaW5nITogYm9vbGVhbjtcclxuICBpc1N1bW1hcml6ZWQhOiBib29sZWFuO1xyXG4gIGlzRWRpdGVkITogYm9vbGVhbjtcclxuICBpc1F1b3RhTG9hZGVkITogYm9vbGVhbjtcclxuICByZW1haW5pbmdRdW90YU1lc3NhZ2VWaXNpYmxlITogYm9vbGVhbjtcclxuICBxdW90YUxlZnQhOiBudW1iZXI7XHJcbiAgbWF4Q2hhckxlbmd0aCE6IG51bWJlcjtcclxuICBzdWJzY3JpcHRpb25VcmwhOiBzdHJpbmc7XHJcbiAgcHJldmlvdXNXcml0aW5nU3R5bGUhOiBMTE1Xcml0aW5nU3R5bGU7XHJcbiAgc2VsZWN0ZWRXcml0aW5nU3R5bGUgPSBMTE1Xcml0aW5nU3R5bGUuR0VORVJBTDtcclxuXHJcbiAgcmVhY2hlZFF1b3RhTWVzc2FnZSE6IE5vdGlmaWNhdGlvbk1lc3NhZ2U7XHJcbiAgZXhjZWVkZWRMaW1pdE1lc3NhZ2UhOiBOb3RpZmljYXRpb25NZXNzYWdlO1xyXG4gIHJlcXVlc3RUaW1lb3V0TWVzc2FnZSE6IE5vdGlmaWNhdGlvbk1lc3NhZ2U7XHJcbiAgZGVmYXVsdEVycm9yTWVzc2FnZSE6IE5vdGlmaWNhdGlvbk1lc3NhZ2U7XHJcblxyXG4gIHN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgaW5pdGlhbFRleHQhOiBzdHJpbmc7XHJcbiAgZWRpdGVkVGV4dCA9ICcnO1xyXG4gIG1hbnVhbGx5RWRpdGVkVGV4dCA9ICcnO1xyXG5cclxuICBsb2NhbGl6YXRpb25LZXkhOiBzdHJpbmc7XHJcblxyXG4gIGxsbUFjdGlvblR5cGUhOiBMTE1BY3Rpb25zO1xyXG5cclxuICBwcml2YXRlIHNhdmVkUmVwaHJhc2luZ3M6IHsgc3R5bGU6IExMTVdyaXRpbmdTdHlsZSwgdGV4dDogc3RyaW5nIH1bXSA9IFtdO1xyXG5cclxuICByZWFkb25seSBsbG1BY3Rpb25zID0gTExNQWN0aW9ucztcclxuICByZWFkb25seSB3cml0aW5nU3R5bGVzID0gT2JqZWN0LnZhbHVlcyhMTE1Xcml0aW5nU3R5bGUpO1xyXG5cclxuICByZWFkb25seSBtZXNzYWdlczogTm90aWZpY2F0aW9uTWVzc2FnZVtdID0gW107XHJcblxyXG4gIG1pc3NpbmdRdW90YU1lc3NhZ2VDbG9zZWQgPSBmYWxzZTtcclxuXHJcbiAgZ2V0IGlzRGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0xvYWRpbmcgfHwgIXRoaXMuaW5pdGlhbFRleHQgfHwgdGhpcy5xdW90YUxlZnQgPCAxO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dNaXNzaW5nUXVvdGFNZXNzYWdlKCkge1xyXG4gICAgcmV0dXJuICF0aGlzLnF1b3RhTGVmdCAmJiAhdGhpcy5taXNzaW5nUXVvdGFNZXNzYWdlQ2xvc2VkICYmIHRoaXMuaXNRdW90YUxvYWRlZDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsbG1TZXJ2aWNlOiBMTE1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsbG1IZWxwZXJTZXJ2aWNlOiBMTE1IZWxwZXJTZXJ2aWNlLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgZGF0YTogTExNRGF0YVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxsbUFjdGlvblR5cGUgPSB0aGlzLmRhdGEuYWN0aW9uO1xyXG4gICAgdGhpcy5sb2NhbGl6YXRpb25LZXkgPSBgTExNLiR7dGhpcy5sbG1BY3Rpb25UeXBlfV9NT0RBTC5gXHJcbiAgICB0aGlzLmluaXRpYWxUZXh0ID0gdGhpcy5kYXRhLnRleHQ7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvblVybCA9IHRoaXMubGxtU2VydmljZS5sbG1Db25maWd1cmF0aW9uLnN1YnNjcmlwdGlvblVybDtcclxuICAgIHRoaXMubWF4Q2hhckxlbmd0aCA9IHRoaXMubGxtU2VydmljZS5sbG1Db25maWd1cmF0aW9uLm1heENoYXJMZW5ndGg7XHJcblxyXG4gICAgdGhpcy5yZWZyZXNoUXVvdGEoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlTWVzc2FnZShtc2c6IE5vdGlmaWNhdGlvbk1lc3NhZ2UpOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tZXNzYWdlcz8uZmluZEluZGV4KChtZXNzYWdlKSA9PiBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSA9PT0gSlNPTi5zdHJpbmdpZnkobXNnKSk7XHJcbiAgICBcclxuICAgIGlmIChpbmRleCB8fCBpbmRleCA9PT0gMCkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja1JlcGhyYXNlZFRleHRTYXZlcyhldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQudmFsdWUgIT09IHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGUpIHtcclxuICAgICAgdGhpcy5wcmV2aW91c1dyaXRpbmdTdHlsZSA9IHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGU7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGUgPSBldmVudC52YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3RlZFdyaXRpbmdTdHlsZVNhdmUgPSB0aGlzLnNhdmVkUmVwaHJhc2luZ3MuZmluZCgocmVwaHJhc2luZykgPT4gcmVwaHJhc2luZy5zdHlsZSA9PT0gdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZSk7XHJcbiAgICBjb25zdCBwcmV2aW91c1dyaXRpbmdTdHlsZVNhdmUgPSB0aGlzLnNhdmVkUmVwaHJhc2luZ3MuZmluZCgoc2F2ZSkgPT4gc2F2ZS5zdHlsZSA9PT0gdGhpcy5wcmV2aW91c1dyaXRpbmdTdHlsZSk7XHJcbiAgICBcclxuICAgIGlmIChwcmV2aW91c1dyaXRpbmdTdHlsZVNhdmUpIHtcclxuICAgICAgcHJldmlvdXNXcml0aW5nU3R5bGVTYXZlLnRleHQgPSB0aGlzLmVkaXRlZFRleHQgIT09ICcnID8gdGhpcy5lZGl0ZWRUZXh0IDogdGhpcy5pbml0aWFsVGV4dDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2F2ZWRSZXBocmFzaW5ncy5wdXNoKHsgc3R5bGU6IHRoaXMucHJldmlvdXNXcml0aW5nU3R5bGUsIHRleHQ6IHRoaXMuZWRpdGVkVGV4dCAhPT0gJycgPyB0aGlzLmVkaXRlZFRleHQgOiB0aGlzLmluaXRpYWxUZXh0IH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLmVkaXRlZFRleHQgPSBzZWxlY3RlZFdyaXRpbmdTdHlsZVNhdmU/LnRleHQgPz8gdGhpcy5pbml0aWFsVGV4dDtcclxuICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID0gJyc7XHJcblxyXG4gICAgdGhpcy5jaGVja1RleHRMaW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdGVkVGV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAodGhpcy5sbG1BY3Rpb25UeXBlID09PSBMTE1BY3Rpb25zLlJFUEhSQVNFKSB7XHJcbiAgICAgIHRoaXMud3JpdGluZ1N0eWxlUGxhdXNpYmxlRXZlbnQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3VtbWFyeVBsYXVzaWJsZUV2ZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmdldFJlcXVlc3QoKTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICB0ZXh0RWRpdEV2ZW50KHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tYW51YWxseUVkaXRlZFRleHQgPSB0ZXh0O1xyXG4gICAgdGhpcy5pbml0aWFsVGV4dCA9IHRleHQ7XHJcbiAgICB0aGlzLmVkaXRlZFRleHQgPSAnJztcclxuXHJcbiAgICB0aGlzLmNoZWNrVGV4dExpbWl0KCk7XHJcbiAgfVxyXG5cclxuICBjb3B5UGxhdXNpYmxlRXZlbnQoKTogdm9pZCB7XHJcbiAgICBQbGF1c2libGVIZWxwZXIuY3VzdG9tRXZlbnQodGhpcy5sbG1BY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCksIHsgYWN0aW9uOiAnY29weScgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGRpc2xpa2VQbGF1c2libGVFdmVudCgpOiB2b2lkIHtcclxuICAgIFBsYXVzaWJsZUhlbHBlci5jdXN0b21FdmVudCh0aGlzLmxsbUFjdGlvblR5cGUudG9Mb3dlckNhc2UoKSwgeyBhY3Rpb246ICdkaXNsaWtlJyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tUZXh0TGltaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBsaW1pdCA9IHRoaXMubWF4Q2hhckxlbmd0aDtcclxuICAgIGNvbnN0IHRleHRzID0gW3RoaXMuaW5pdGlhbFRleHQsIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0LCB0aGlzLmVkaXRlZFRleHRdO1xyXG4gICAgY29uc3QgbG9uZ2VzdFRleHQgPSB0aGlzLmVkaXRlZFRleHQgJiYgIXRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID8gdGhpcy5lZGl0ZWRUZXh0IDogdGV4dHMucmVkdWNlKChhLCBiKSA9PiBhLmxlbmd0aCA+IGIubGVuZ3RoID8gYSA6IGIpO1xyXG4gIFxyXG4gICAgaWYgKGxvbmdlc3RUZXh0Lmxlbmd0aCA+IGxpbWl0KSB7XHJcbiAgICAgIGlmICh0aGlzLmV4Y2VlZGVkTGltaXRNZXNzYWdlKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZU1lc3NhZ2UodGhpcy5leGNlZWRlZExpbWl0TWVzc2FnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZXhjZWVkZWRMaW1pdE1lc3NhZ2UgPSB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0RXhjZWVkZWRMaW1pdE1lc3NhZ2UobG9uZ2VzdFRleHQubGVuZ3RoKTtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKHRoaXMuZXhjZWVkZWRMaW1pdE1lc3NhZ2UpXHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gIFxyXG5cclxuICAgIHRoaXMuY2xvc2VNZXNzYWdlKHRoaXMuZXhjZWVkZWRMaW1pdE1lc3NhZ2UpO1xyXG4gIH0gIFxyXG5cclxuICBwcml2YXRlIHdyaXRpbmdTdHlsZVBsYXVzaWJsZUV2ZW50KCk6IHZvaWQge1xyXG4gICAgUGxhdXNpYmxlSGVscGVyLmN1c3RvbUV2ZW50KHRoaXMubGxtQWN0aW9uVHlwZS50b0xvd2VyQ2FzZSgpLCB7IHdyaXRpbmdTdHlsZTogdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZSB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3VtbWFyeVBsYXVzaWJsZUV2ZW50KCk6IHZvaWQge1xyXG4gICAgUGxhdXNpYmxlSGVscGVyLmN1c3RvbUV2ZW50KHRoaXMubGxtQWN0aW9uVHlwZS50b0xvd2VyQ2FzZSgpLCB7IGFjdGlvbjogJ3N1bW1hcnknIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoUXVvdGEoZGVjcmVhc2U/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0UmVtYWluaW5nUXVvdGEoZGVjcmVhc2UpLnN1YnNjcmliZSgocmVtYWluaW5nUXVvdGEpID0+IHtcclxuICAgICAgdGhpcy5xdW90YUxlZnQgPSByZW1haW5pbmdRdW90YTtcclxuICAgICAgdGhpcy5pc1F1b3RhTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zZXRRdW90YU1lc3NhZ2UoKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFF1b3RhTWVzc2FnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnF1b3RhTGVmdCA8PSB0aGlzLmxsbUhlbHBlclNlcnZpY2UudHJpYWxSZXF1ZXN0Q291bnQpIHtcclxuICAgICAgdGhpcy5yZW1haW5pbmdRdW90YU1lc3NhZ2VWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yZWFjaGVkUXVvdGFNZXNzYWdlID0gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldFJlYWNoZWRRdW90YU1lc3NhZ2UoKTtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKHRoaXMucmVhY2hlZFF1b3RhTWVzc2FnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJlcXVlc3QoKTogU3Vic2NyaXB0aW9uIHtcclxuICAgIGxldCB0ZXh0ID1cclxuICAgICAgdGhpcy5tYW51YWxseUVkaXRlZFRleHQgIT09ICcnXHJcbiAgICAgICAgPyB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dFxyXG4gICAgICAgIDogdGhpcy5pbml0aWFsVGV4dDtcclxuXHJcbiAgICBpZiAodGV4dC5sZW5ndGggPiB0aGlzLm1heENoYXJMZW5ndGgpIHtcclxuICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIHRoaXMubWF4Q2hhckxlbmd0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWV0aG9kID1cclxuICAgICAgdGhpcy5sbG1BY3Rpb25UeXBlID09PSBMTE1BY3Rpb25zLlJFUEhSQVNFXHJcbiAgICAgICAgPyB0aGlzLmxsbVNlcnZpY2UucmVwaHJhc2UoeyB0ZXh0OiB0ZXh0LCBzdHlsZTogdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZSB9KVxyXG4gICAgICAgIDogdGhpcy5sbG1TZXJ2aWNlLnN1bW1hcml6ZSh7IHRleHQ6IHRleHQsIGxhbmd1YWdlOiB0aGlzLmRhdGEubGFuZ3VhZ2UgfSk7XHJcblxyXG4gICAgcmV0dXJuIG1ldGhvZFxyXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc0xvYWRpbmcgPSBmYWxzZSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuZ2V0UmVxdWVzdENhbGxiYWNrKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSZXF1ZXN0Q2FsbGJhY2soKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2U6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmxsbUFjdGlvblR5cGUgPT09IHRoaXMubGxtQWN0aW9ucy5TVU1NQVJZKSB7XHJcbiAgICAgICAgICB0aGlzLmlzU3VtbWFyaXplZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuZWRpdGVkVGV4dCA9IHJlc3BvbnNlO1xyXG4gICAgICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID0gJyc7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0RXJyb3JNZXNzYWdlID0gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldERlZmF1bHRFcnJvck1lc3NhZ2UoKTtcclxuICAgICAgICB0aGlzLmNsb3NlTWVzc2FnZSh0aGlzLmRlZmF1bHRFcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VNZXNzYWdlKHRoaXMucmVxdWVzdFRpbWVvdXRNZXNzYWdlKTtcclxuICAgICAgICB0aGlzLmlzRWRpdGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hRdW90YSh0cnVlKTtcclxuICAgICAgICB0aGlzLmNoZWNrVGV4dExpbWl0KCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gRVJST1JfQ09ERVMuVElNRU9VVCkge1xyXG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VGltZW91dE1lc3NhZ2UgPSB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0UmVxdWVzdFRpbWVvdXRNZXNzYWdlKHRoaXMubGxtQWN0aW9uVHlwZSk7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2godGhpcy5yZXF1ZXN0VGltZW91dE1lc3NhZ2UpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKHRoaXMuZGVmYXVsdEVycm9yTWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3sgbG9jYWxpemF0aW9uS2V5ICsgXCJUSVRMRVwiIHwgdHJhbnNsYXRlIH19PC9oMT5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPHA+e3sgbG9jYWxpemF0aW9uS2V5ICsgXCJERVNDUklQVElPTlwiIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuICA8bGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZSAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtZXNzYWdlc1wiIFttZXNzYWdlXT1cIm1lc3NhZ2VcIiAoY2xvc2VDbGlja2VkKT1cImNsb3NlTWVzc2FnZShtZXNzYWdlKVwiPjwvbGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZT5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxsbUFjdGlvblR5cGUgPT09IGxsbUFjdGlvbnMuUkVQSFJBU0VcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwidy1mdWxsIGxsbS13cml0aW5nLXN0eWxlLXNlbGVjdFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgJ0xMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy5USVRMRScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgW2Rpc2FibGVkXT1cImlzTG9hZGluZ1wiIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hlY2tSZXBocmFzZWRUZXh0U2F2ZXMoJGV2ZW50KVwiIFt2YWx1ZV09XCJzZWxlY3RlZFdyaXRpbmdTdHlsZVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdHlsZSBvZiB3cml0aW5nU3R5bGVzXCIgW3ZhbHVlXT1cInN0eWxlXCI+XHJcbiAgICAgICAgICB7eyAnTExNLlJFUEhSQVNFX01PREFMLldSSVRJTkdfU1RZTEVTLicgKyAoc3R5bGUgfCB1cHBlcmNhc2UpIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIFxyXG4gICAgPHAgY2xhc3M9XCJsbG0td3JpdGluZy1zdHlsZSB0ZXh0LW0tc2VtaS1ib2xkXCI+e3tcclxuICAgICAgICBcIkxMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy5TUEVDSUZJQ19TVFlMRVwiIHwgdHJhbnNsYXRlIDogXHJcbiAgICAgICAgeyBzdHlsZTogJ0xMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy4nICsgKHNlbGVjdGVkV3JpdGluZ1N0eWxlIHwgdXBwZXJjYXNlKSB8IHRyYW5zbGF0ZSB9IFxyXG4gICAgICB9fVxyXG4gICAgICA8c3BhblxyXG4gICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgaW5mby1pY29uXCJcclxuICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJtdWx0aWxpbmUtdG9vbHRpcFwiXHJcbiAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBcclxuICAgICAgICBbbWF0VG9vbHRpcF09XCInTExNLlJFUEhSQVNFX01PREFMLldSSVRJTkdfU1RZTEVTLlRPT0xUSVBfJyArIChzZWxlY3RlZFdyaXRpbmdTdHlsZSB8IHVwcGVyY2FzZSkgfCB0cmFuc2xhdGVcIiBcclxuICAgICAgPlxyXG4gICAgICAgIGluZm9cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bGliLWxsbS10ZXh0YXJlYSBbdGV4dF09XCJlZGl0ZWRUZXh0ICE9PSAnJyA/IGVkaXRlZFRleHQgOiBpbml0aWFsVGV4dFwiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcgfHwgIXF1b3RhTGVmdFwiIFthY3Rpb25CdXR0b25zRGlzYWJsZWRdPVwiIWlzRWRpdGVkXCIgKHRleHRFZGl0RXZlbnQpPVwidGV4dEVkaXRFdmVudCgkZXZlbnQpXCIgKGNvcHlFdmVudCk9XCJjb3B5UGxhdXNpYmxlRXZlbnQoKVwiIChkaXNsaWtlRXZlbnQpPVwiZGlzbGlrZVBsYXVzaWJsZUV2ZW50KClcIj48L2xpYi1sbG0tdGV4dGFyZWE+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibGxtLWFjdGlvbnMtd3JhcHBlclwiIG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2ICpuZ0lmPVwicmVtYWluaW5nUXVvdGFNZXNzYWdlVmlzaWJsZVwiIFtpbm5lckhUTUxdPVwibG9jYWxpemF0aW9uS2V5ICsgJ0xJTUlUJyB8IHRyYW5zbGF0ZTogeyBsaW1pdDogcXVvdGFMZWZ0LCBzdWJzY3JpcHRpb25Vcmw6IHN1YnNjcmlwdGlvblVybCB9XCI+PC9kaXY+XHJcblxyXG4gIDxkaXYgW2NsYXNzLnctZnVsbF09XCIhcmVtYWluaW5nUXVvdGFNZXNzYWdlVmlzaWJsZVwiIGNsYXNzPVwibGxtLWFjdGlvbnNcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgY2xvc2VCdXR0b25cIiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIHt7IGxvY2FsaXphdGlvbktleSArIFwiQ0FOQ0VMXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY2xvc2VCdXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIj5cclxuICAgICAgICB7eyBsb2NhbGl6YXRpb25LZXkgKyBcIkNMT1NFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgIChjbGljayk9XCJnZXRFZGl0ZWRUZXh0KClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwibGxtQWN0aW9uVHlwZSA9PT0gbGxtQWN0aW9ucy5TVU1NQVJZOyBlbHNlIHJlcGhyYXNlQWN0aW9uXCI+XHJcbiAgICAgICAge3tcclxuICAgICAgICAgICghaXNTdW1tYXJpemVkXHJcbiAgICAgICAgICAgID8gXCJMTE0uU1VNTUFSWV9NT0RBTC5BQ1RJT05cIlxyXG4gICAgICAgICAgICA6IFwiTExNLlNVTU1BUllfTU9EQUwuUkVHRU5FUkFURVwiXHJcbiAgICAgICAgICApIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgfX1cclxuICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNyZXBocmFzZUFjdGlvbj5cclxuICAgICAgICB7eyBsb2NhbGl6YXRpb25LZXkgKyBcIkFDVElPTlwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciAqbmdJZj1cImlzTG9hZGluZ1wiIFtkaWFtZXRlcl09XCIyMFwiIGNvbG9yPVwiYWNjZW50XCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,8 +1,6 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { LLMActions } from './models/llm-actions.enum';
3
- import { RephraseComponent } from './components/rephrase/rephrase.component';
4
- import { CreateSummaryComponent } from './components/create-summary/create-summary.component';
5
- import { ResolutionHelper } from '../helpers';
3
+ import { LLMTextareaWithActionsComponent } from './components/llm-textarea-with-actions/llm-textarea-with-actions.component';
6
4
  import * as icons from './icons';
7
5
  import * as i0 from "@angular/core";
8
6
  import * as i1 from "@angular/material/dialog";
@@ -28,22 +26,16 @@ export class LLMComponent {
28
26
  this.iconService.registerIcons(icons);
29
27
  }
30
28
  openLLMModal(action) {
31
- this.dialog.open(this.getComponentByLLMAction(action), {
32
- minWidth: ResolutionHelper.isMobileRes() ? '100%' : '800px',
29
+ this.dialog.open(LLMTextareaWithActionsComponent, {
30
+ panelClass: 'responsive-dialog',
31
+ maxWidth: '850px',
33
32
  data: {
34
33
  text: this.text,
35
- language: this.language
34
+ language: this.language,
35
+ action: action
36
36
  }
37
37
  });
38
38
  }
39
- getComponentByLLMAction(action) {
40
- switch (action) {
41
- case LLMActions.REPHRASE:
42
- return RephraseComponent;
43
- case LLMActions.SUMMARY:
44
- return CreateSummaryComponent;
45
- }
46
- }
47
39
  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
40
  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" }] }); }
49
41
  }
@@ -59,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
59
51
  }], rephrasableLanguagesCodeList: [{
60
52
  type: Input
61
53
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHOUMsT0FBTyxLQUFLLEtBQUssTUFBTSxTQUFTLENBQUM7Ozs7Ozs7OztBQU9qQyxNQUFNLE9BQU8sWUFBWTtJQVF2QixJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSwyQkFBMkI7UUFDN0IsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEgsQ0FBQztJQUVELFlBQW1CLE1BQWlCLEVBQW1CLFdBQXdCLEVBQW1CLGVBQXlDO1FBQXhILFdBQU0sR0FBTixNQUFNLENBQVc7UUFBbUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBbUIsb0JBQWUsR0FBZixlQUFlLENBQTBCO1FBWmxJLGlDQUE0QixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsY0FBUyxHQUFHLFVBQVUsQ0FBQztRQVc5QixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWtCO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyRCxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztZQUMzRCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUN4QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxNQUFrQjtRQUNoRCxRQUFRLE1BQU0sRUFBRTtZQUNkLEtBQUssVUFBVSxDQUFDLFFBQVE7Z0JBQ3RCLE9BQU8saUJBQWlCLENBQUM7WUFDM0IsS0FBSyxVQUFVLENBQUMsT0FBTztnQkFDckIsT0FBTyxzQkFBc0IsQ0FBQztTQUNqQztJQUNILENBQUM7K0dBckNVLFlBQVk7bUdBQVosWUFBWSwrTENmekIsNDZCQThCQTs7NEZEZmEsWUFBWTtrQkFMeEIsU0FBUzsrQkFDRSxTQUFTO2lLQUtWLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMTE1BY3Rpb25zIH0gZnJvbSAnLi9tb2RlbHMvbGxtLWFjdGlvbnMuZW51bSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFJlcGhyYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlcGhyYXNlL3JlcGhyYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENyZWF0ZVN1bW1hcnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3JlYXRlLXN1bW1hcnkvY3JlYXRlLXN1bW1hcnkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzb2x1dGlvbkhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBJY29uU2VydmljZSwgTGFuZ3VhZ2VUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCAqIGFzIGljb25zIGZyb20gJy4vaWNvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbGxtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGxtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sbG0uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExMTUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdGV4dCE6IHN0cmluZztcclxuICBASW5wdXQoKSBsYW5ndWFnZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBpc01lbnVEaXNhYmxlZCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcmVwaHJhc2FibGVMYW5ndWFnZXNDb2RlTGlzdCA9IFsnZW4nXTtcclxuXHJcbiAgcmVhZG9ubHkgbGxtQWN0aW9uID0gTExNQWN0aW9ucztcclxuXHJcbiAgZ2V0IGlzVGV4dFN1bW1hcml6YWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRleHQubGVuZ3RoID4gMTAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzVGFyZ2V0TGFuZ3VhZ2VSZXBocmFzYWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJlcGhyYXNhYmxlTGFuZ3VhZ2VzQ29kZUxpc3QuaW5jbHVkZXModGhpcy5sYW5ndWFnZVNlcnZpY2UucmVtb3ZlUmVnaW9uRnJvbUxhbmd1YWdlQ29kZSh0aGlzLmxhbmd1YWdlKSk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csIHByaXZhdGUgcmVhZG9ubHkgaWNvblNlcnZpY2U6IEljb25TZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmljb25TZXJ2aWNlLnJlZ2lzdGVySWNvbnMoaWNvbnMpO1xyXG4gIH1cclxuXHJcbiAgb3BlbkxMTU1vZGFsKGFjdGlvbjogTExNQWN0aW9ucyk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2cub3Blbih0aGlzLmdldENvbXBvbmVudEJ5TExNQWN0aW9uKGFjdGlvbiksIHtcclxuICAgICAgbWluV2lkdGg6IFJlc29sdXRpb25IZWxwZXIuaXNNb2JpbGVSZXMoKSA/ICcxMDAlJyA6ICc4MDBweCcsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB0ZXh0OiB0aGlzLnRleHQsXHJcbiAgICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2VcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbXBvbmVudEJ5TExNQWN0aW9uKGFjdGlvbjogTExNQWN0aW9ucyk6IENvbXBvbmVudFR5cGU8UmVwaHJhc2VDb21wb25lbnQgfCBDcmVhdGVTdW1tYXJ5Q29tcG9uZW50PiB7XHJcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xyXG4gICAgICBjYXNlIExMTUFjdGlvbnMuUkVQSFJBU0U6XHJcbiAgICAgICAgcmV0dXJuIFJlcGhyYXNlQ29tcG9uZW50O1xyXG4gICAgICBjYXNlIExMTUFjdGlvbnMuU1VNTUFSWTpcclxuICAgICAgICByZXR1cm4gQ3JlYXRlU3VtbWFyeUNvbXBvbmVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGJ1dHRvblxyXG4gIFtkaXNhYmxlZF09XCJpc01lbnVEaXNhYmxlZFwiXHJcbiAgW21hdFRvb2x0aXBdPVwiJ0xMTS5NRU5VX1RPT0xUSVAnIHwgdHJhbnNsYXRlXCJcclxuICBtYXQtaWNvbi1idXR0b25cclxuICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXHJcbj5cclxuICA8bWF0LWljb24gc3ZnSWNvbj1cImxsbV9tZW51XCI+PC9tYXQtaWNvbj5cclxuPC9idXR0b24+XHJcblxyXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgPGRpdiBbbWF0VG9vbHRpcF09XCIhaXNUZXh0U3VtbWFyaXphYmxlID8gKCdMTE0uTUVOVV9TVU1NQVJZX0RJU0FCTEVEX1RPT0xUSVAnIHwgdHJhbnNsYXRlKSA6ICcnXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgW2Rpc2FibGVkXT1cIiFpc1RleHRTdW1tYXJpemFibGVcIlxyXG4gICAgICAoY2xpY2spPVwib3BlbkxMTU1vZGFsKGxsbUFjdGlvbi5TVU1NQVJZKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IFwiTExNLlNVTU1BUllcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW21hdFRvb2x0aXBdPVwiIWlzVGFyZ2V0TGFuZ3VhZ2VSZXBocmFzYWJsZSA/ICgnTExNLk1FTlVfUkVQSFJBU0VfRElTQUJMRURfVE9PTFRJUCcgfCB0cmFuc2xhdGUpIDogJydcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICBbZGlzYWJsZWRdPVwiIWlzVGFyZ2V0TGFuZ3VhZ2VSZXBocmFzYWJsZVwiXHJcbiAgICAgIChjbGljayk9XCJvcGVuTExNTW9kYWwobGxtQWN0aW9uLlJFUEhSQVNFKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IFwiTExNLlJFUEhSQVNFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L21hdC1tZW51PlxyXG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUd2RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQztBQUM3SCxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQzs7Ozs7Ozs7O0FBT2pDLE1BQU0sT0FBTyxZQUFZO0lBUXZCLElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLDJCQUEyQjtRQUM3QixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0SCxDQUFDO0lBRUQsWUFDUyxNQUFpQixFQUNQLFdBQXdCLEVBQ3hCLGVBQXlDO1FBRm5ELFdBQU0sR0FBTixNQUFNLENBQVc7UUFDUCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBMEI7UUFmbkQsaUNBQTRCLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QyxjQUFTLEdBQUcsVUFBVSxDQUFDO1FBZTlCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBa0I7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUU7WUFDaEQsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixRQUFRLEVBQUUsT0FBTztZQUNqQixJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsTUFBTSxFQUFFLE1BQU07YUFDZjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBbENVLFlBQVk7bUdBQVosWUFBWSwrTENaekIsNDZCQThCQTs7NEZEbEJhLFlBQVk7a0JBTHhCLFNBQVM7K0JBQ0UsU0FBUztpS0FLVixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLDRCQUE0QjtzQkFBcEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTExNQWN0aW9ucyB9IGZyb20gJy4vbW9kZWxzL2xsbS1hY3Rpb25zLmVudW0nO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBJY29uU2VydmljZSwgTGFuZ3VhZ2VUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBMTE1UZXh0YXJlYVdpdGhBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xsbS10ZXh0YXJlYS13aXRoLWFjdGlvbnMvbGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgKiBhcyBpY29ucyBmcm9tICcuL2ljb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxsbScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xsbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGxtLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMTE1Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHRleHQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGFuZ3VhZ2UhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNNZW51RGlzYWJsZWQhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHJlcGhyYXNhYmxlTGFuZ3VhZ2VzQ29kZUxpc3QgPSBbJ2VuJ107XHJcblxyXG4gIHJlYWRvbmx5IGxsbUFjdGlvbiA9IExMTUFjdGlvbnM7XHJcblxyXG4gIGdldCBpc1RleHRTdW1tYXJpemFibGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXh0Lmxlbmd0aCA+IDEwMDtcclxuICB9XHJcblxyXG4gIGdldCBpc1RhcmdldExhbmd1YWdlUmVwaHJhc2FibGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXBocmFzYWJsZUxhbmd1YWdlc0NvZGVMaXN0LmluY2x1ZGVzKHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnJlbW92ZVJlZ2lvbkZyb21MYW5ndWFnZUNvZGUodGhpcy5sYW5ndWFnZSkpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csIFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uU2VydmljZTogSWNvblNlcnZpY2UsIFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlVHJhbnNsYXRlU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5pY29uU2VydmljZS5yZWdpc3Rlckljb25zKGljb25zKTtcclxuICB9XHJcblxyXG4gIG9wZW5MTE1Nb2RhbChhY3Rpb246IExMTUFjdGlvbnMpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nLm9wZW4oTExNVGV4dGFyZWFXaXRoQWN0aW9uc0NvbXBvbmVudCwge1xyXG4gICAgICBwYW5lbENsYXNzOiAncmVzcG9uc2l2ZS1kaWFsb2cnLFxyXG4gICAgICBtYXhXaWR0aDogJzg1MHB4JyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHRleHQ6IHRoaXMudGV4dCxcclxuICAgICAgICBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZSxcclxuICAgICAgICBhY3Rpb246IGFjdGlvblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGJ1dHRvblxyXG4gIFtkaXNhYmxlZF09XCJpc01lbnVEaXNhYmxlZFwiXHJcbiAgW21hdFRvb2x0aXBdPVwiJ0xMTS5NRU5VX1RPT0xUSVAnIHwgdHJhbnNsYXRlXCJcclxuICBtYXQtaWNvbi1idXR0b25cclxuICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXHJcbj5cclxuICA8bWF0LWljb24gc3ZnSWNvbj1cImxsbV9tZW51XCI+PC9tYXQtaWNvbj5cclxuPC9idXR0b24+XHJcblxyXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgPGRpdiBbbWF0VG9vbHRpcF09XCIhaXNUZXh0U3VtbWFyaXphYmxlID8gKCdMTE0uTUVOVV9TVU1NQVJZX0RJU0FCTEVEX1RPT0xUSVAnIHwgdHJhbnNsYXRlKSA6ICcnXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgW2Rpc2FibGVkXT1cIiFpc1RleHRTdW1tYXJpemFibGVcIlxyXG4gICAgICAoY2xpY2spPVwib3BlbkxMTU1vZGFsKGxsbUFjdGlvbi5TVU1NQVJZKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IFwiTExNLlNVTU1BUllcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW21hdFRvb2x0aXBdPVwiIWlzVGFyZ2V0TGFuZ3VhZ2VSZXBocmFzYWJsZSA/ICgnTExNLk1FTlVfUkVQSFJBU0VfRElTQUJMRURfVE9PTFRJUCcgfCB0cmFuc2xhdGUpIDogJydcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICBbZGlzYWJsZWRdPVwiIWlzVGFyZ2V0TGFuZ3VhZ2VSZXBocmFzYWJsZVwiXHJcbiAgICAgIChjbGljayk9XCJvcGVuTExNTW9kYWwobGxtQWN0aW9uLlJFUEhSQVNFKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IFwiTExNLlJFUEhSQVNFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L21hdC1tZW51PlxyXG4iXX0=
@@ -5,8 +5,6 @@ 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 { RephraseComponent } from './components/rephrase/rephrase.component';
9
- import { CreateSummaryComponent } from './components/create-summary/create-summary.component';
10
8
  import { MatDialogModule } from '@angular/material/dialog';
11
9
  import { ClipboardModule } from '@angular/cdk/clipboard';
12
10
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
@@ -16,13 +14,13 @@ import { NotificationMessageModule } from '../notification-message';
16
14
  import { MatTooltipModule } from '@angular/material/tooltip';
17
15
  import { FlexLayoutModule } from '@angular/flex-layout';
18
16
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
17
+ import { LLMTextareaWithActionsComponent } from './components/llm-textarea-with-actions/llm-textarea-with-actions.component';
19
18
  import * as i0 from "@angular/core";
20
19
  export class LLMModule {
21
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LLMModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22
21
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: LLMModule, declarations: [LLMComponent,
23
- RephraseComponent,
24
- CreateSummaryComponent,
25
- LLMTextareaComponent], imports: [CommonModule,
22
+ LLMTextareaComponent,
23
+ LLMTextareaWithActionsComponent], imports: [CommonModule,
26
24
  MatButtonModule,
27
25
  MatIconModule,
28
26
  MatMenuModule,
@@ -56,9 +54,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
56
54
  args: [{
57
55
  declarations: [
58
56
  LLMComponent,
59
- RephraseComponent,
60
- CreateSummaryComponent,
61
57
  LLMTextareaComponent,
58
+ LLMTextareaWithActionsComponent,
62
59
  ],
63
60
  imports: [
64
61
  CommonModule,
@@ -79,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
79
76
  exports: [LLMComponent],
80
77
  }]
81
78
  }] });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUEyQjlFLE1BQU0sT0FBTyxTQUFTOytHQUFULFNBQVM7Z0hBQVQsU0FBUyxpQkF2QmxCLFlBQVk7WUFDWixpQkFBaUI7WUFDakIsc0JBQXNCO1lBQ3RCLG9CQUFvQixhQUdwQixZQUFZO1lBQ1osZUFBZTtZQUNmLGFBQWE7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7WUFDZixlQUFlO1lBQ2YsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YseUJBQXlCO1lBQ3pCLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsd0JBQXdCLGFBRWhCLFlBQVk7Z0hBRVgsU0FBUyxZQWpCbEIsWUFBWTtZQUNaLGVBQWU7WUFDZixhQUFhO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlO1lBQ2YsZUFBZTtZQUNmLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLHlCQUF5QjtZQUN6QixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLHdCQUF3Qjs7NEZBSWYsU0FBUztrQkF6QnJCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YseUJBQXlCO3dCQUN6QixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsd0JBQXdCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTExNQ29tcG9uZW50IH0gZnJvbSAnLi9sbG0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXBocmFzZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXBocmFzZS9yZXBocmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDcmVhdGVTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NyZWF0ZS1zdW1tYXJ5L2NyZWF0ZS1zdW1tYXJ5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IENsaXBib2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jbGlwYm9hcmQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTExNVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9sbG0tdGV4dGFyZWEvbGxtLXRleHRhcmVhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbk1lc3NhZ2VNb2R1bGUgfSBmcm9tICcuLi9ub3RpZmljYXRpb24tbWVzc2FnZSc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgTExNQ29tcG9uZW50LFxyXG4gICAgUmVwaHJhc2VDb21wb25lbnQsXHJcbiAgICBDcmVhdGVTdW1tYXJ5Q29tcG9uZW50LFxyXG4gICAgTExNVGV4dGFyZWFDb21wb25lbnQsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgIENsaXBib2FyZE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIE5vdGlmaWNhdGlvbk1lc3NhZ2VNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgRmxleExheW91dE1vZHVsZSxcclxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW0xMTUNvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMTE1Nb2R1bGUge31cclxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQzs7QUEwQjdILE1BQU0sT0FBTyxTQUFTOytHQUFULFNBQVM7Z0hBQVQsU0FBUyxpQkF0QmxCLFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsK0JBQStCLGFBRy9CLFlBQVk7WUFDWixlQUFlO1lBQ2YsYUFBYTtZQUNiLGFBQWE7WUFDYixlQUFlO1lBQ2YsZUFBZTtZQUNmLGVBQWU7WUFDZixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZix5QkFBeUI7WUFDekIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQix3QkFBd0IsYUFFaEIsWUFBWTtnSEFFWCxTQUFTLFlBakJsQixZQUFZO1lBQ1osZUFBZTtZQUNmLGFBQWE7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7WUFDZixlQUFlO1lBQ2YsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YseUJBQXlCO1lBQ3pCLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsd0JBQXdCOzs0RkFJZixTQUFTO2tCQXhCckIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLCtCQUErQjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YseUJBQXlCO3dCQUN6QixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsd0JBQXdCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTExNQ29tcG9uZW50IH0gZnJvbSAnLi9sbG0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExMTVRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvbGxtLXRleHRhcmVhL2xsbS10ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlTW9kdWxlIH0gZnJvbSAnLi4vbm90aWZpY2F0aW9uLW1lc3NhZ2UnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBMTE1UZXh0YXJlYVdpdGhBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xsbS10ZXh0YXJlYS13aXRoLWFjdGlvbnMvbGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIExMTUNvbXBvbmVudCxcclxuICAgIExMTVRleHRhcmVhQ29tcG9uZW50LFxyXG4gICAgTExNVGV4dGFyZWFXaXRoQWN0aW9uc0NvbXBvbmVudCxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgQ2xpcGJvYXJkTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTm90aWZpY2F0aW9uTWVzc2FnZU1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbTExNQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExMTU1vZHVsZSB7fVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL21vZGVscy9sbG0tZGF0YS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBMTE1EYXRhIHtcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgbGFuZ3VhZ2U6IHN0cmluZztcclxufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL21vZGVscy9sbG0tZGF0YS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTExNQWN0aW9ucyB9IGZyb20gXCIuL2xsbS1hY3Rpb25zLmVudW1cIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTExNRGF0YSB7XHJcbiAgdGV4dDogc3RyaW5nO1xyXG4gIGxhbmd1YWdlOiBzdHJpbmc7XHJcbiAgYWN0aW9uOiBMTE1BY3Rpb25zO1xyXG59Il19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLXN1bW1hcml6ZS1yZXF1ZXN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9tb2RlbHMvbGxtLXN1bW1hcml6ZS1yZXF1ZXN0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIExMTVN1bW1hcml6ZVJlcXVlc3Qge1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBsYW5ndWFnZTogc3RyaW5nO1xyXG59Il19
@@ -54,6 +54,15 @@ export class LLMHelperService {
54
54
  }
55
55
  };
56
56
  }
57
+ getRequestTimeoutMessage(action) {
58
+ return {
59
+ type: NotificationMessageType.ERROR,
60
+ body: `LLM.ERRORS.${action}_REQUEST_TIMEOUT`,
61
+ localizationParams: {
62
+ supportEmail: this.llmService.llmConfiguration.supportEmail
63
+ }
64
+ };
65
+ }
57
66
  setQuotaLocalStorageUsage(decrease) {
58
67
  const localStorageObj = localStorage.getItem(this.LLMQuotaLocalStorageKey);
59
68
  const currentDate = new Date();
@@ -87,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
87
96
  providedIn: 'root'
88
97
  }]
89
98
  }], ctorParameters: function () { return [{ type: i1.LLMService }, { type: i2.QuotaService }]; } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9zZXJ2aWNlcy9sbG0taGVscGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVCLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUYsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQWMsVUFBVSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFLdkQsTUFBTSxPQUFPLGdCQUFnQjtJQUszQixZQUE4QixVQUFzQixFQUFtQixZQUEwQjtRQUFuRSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQW1CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBSnhGLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUVmLDRCQUF1QixHQUFHLFdBQVcsQ0FBQztJQUU2QyxDQUFDO0lBRXJHOztPQUVHO0lBQ0gsaUJBQWlCLENBQUMsUUFBa0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FDM0MsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDZixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFdkYsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDVixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNqRDtZQUVELE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUM5QixDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQ3JELENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRUQsdUJBQXVCLENBQUMsWUFBb0I7UUFDMUMsT0FBTztZQUNMLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxPQUFPO1lBQ3JDLElBQUksRUFBRSx3QkFBd0I7WUFDOUIsa0JBQWtCLEVBQUU7Z0JBQ2xCLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWE7Z0JBQzdELFlBQVksRUFBRSxZQUFZO2FBQzNCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTztZQUNMLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxLQUFLO1lBQ25DLElBQUksRUFBRSxnQ0FBZ0M7WUFDdEMsa0JBQWtCLEVBQUU7Z0JBQ2xCLGVBQWUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGVBQWU7YUFDbEU7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPO1lBQ0wsSUFBSSxFQUFFLHVCQUF1QixDQUFDLEtBQUs7WUFDbkMsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixrQkFBa0IsRUFBRTtnQkFDbEIsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsWUFBWTthQUM1RDtTQUNGLENBQUE7SUFDSCxDQUFDO0lBRU8seUJBQXlCLENBQUMsUUFBa0I7UUFDbEQsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzRSxNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksVUFBVSxHQUFHO1lBQ2YsY0FBYyxFQUFFLElBQUksQ0FBQyxpQkFBaUI7WUFDdEMsVUFBVSxFQUFFLFdBQVc7U0FDeEIsQ0FBQztRQUVGLElBQUksZUFBZSxFQUFFO1lBQ25CLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDOUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUV2QixNQUFNLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFckQsb0VBQW9FO1lBQ3BFLElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRSxLQUFLLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxZQUFZLENBQUMsUUFBUSxFQUFFLEtBQUssV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsS0FBSyxXQUFXLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQ3RLLGlDQUFpQztnQkFDakMsVUFBVSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7YUFDcEQ7WUFFRCxJQUFJLFFBQVEsRUFBRTtnQkFDWixVQUFVLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQzthQUNoQztTQUNGO1FBRUQsVUFBVSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7UUFFcEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBRS9FLE9BQU8sVUFBVSxDQUFDLGNBQWMsQ0FBQztJQUNuQyxDQUFDOytHQXZGVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbk1lc3NhZ2UsIE5vdGlmaWNhdGlvbk1lc3NhZ2VUeXBlIH0gZnJvbSAnLi4vLi4vbm90aWZpY2F0aW9uLW1lc3NhZ2UnO1xyXG5pbXBvcnQgeyBMTE1TZXJ2aWNlIH0gZnJvbSAnLi9sbG0uc2VydmljZSc7XHJcbmltcG9ydCB7IFF1b3RhU2VydmljZSwgUXVvdGFUeXBlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCBtYXAsIG9mIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMTE1IZWxwZXJTZXJ2aWNlIHtcclxuICByZWFkb25seSB0cmlhbFJlcXVlc3RDb3VudCA9IDE1O1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IExMTVF1b3RhTG9jYWxTdG9yYWdlS2V5ID0gJ0xMTV9RVU9UQSc7XHJcblxyXG4gIGNvbnN0cnVjdG9yIChwcml2YXRlIHJlYWRvbmx5IGxsbVNlcnZpY2U6IExMTVNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgcXVvdGFTZXJ2aWNlOiBRdW90YVNlcnZpY2UpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgcmVtYWluaW5nIHF1b3RhIGZyb20gQVBJLiBJZiBxdW90YSBpcyBtaXNzaW5nLCBkYWlseSBsaW1pdCBpcyBiZWluZyB1c2VkIGZyb20gbG9jYWwgc3RvcmFnZS5cclxuICAgKi9cclxuICBnZXRSZW1haW5pbmdRdW90YShkZWNyZWFzZT86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMucXVvdGFTZXJ2aWNlLmdldFF1b3RhVXNhZ2UoKS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcXVvdGEgPSByZXNwb25zZS51c2FnZS5maW5kKChpdGVtKSA9PiBpdGVtLnF1b3RhVHlwZSA9PT0gUXVvdGFUeXBlLkxMTV9SRVFVRVNUUyk7XHJcblxyXG4gICAgICAgIGlmICghcXVvdGEpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnNldFF1b3RhTG9jYWxTdG9yYWdlVXNhZ2UoZGVjcmVhc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICByZXR1cm4gcXVvdGEucXVvdGFSZW1haW5pbmc7XHJcbiAgICAgIH0pLCBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YodGhpcy5zZXRRdW90YUxvY2FsU3RvcmFnZVVzYWdlKGRlY3JlYXNlKSlcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldEV4Y2VlZGVkTGltaXRNZXNzYWdlKHRvdGFsU3ltYm9sczogbnVtYmVyKTogTm90aWZpY2F0aW9uTWVzc2FnZSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiBOb3RpZmljYXRpb25NZXNzYWdlVHlwZS5XQVJOSU5HLFxyXG4gICAgICBib2R5OiAnRVJST1JTLk1BWF9DSEFSX0xFTkdUSCcsXHJcbiAgICAgIGxvY2FsaXphdGlvblBhcmFtczoge1xyXG4gICAgICAgIG1heENoYXJMZW5ndGg6IHRoaXMubGxtU2VydmljZS5sbG1Db25maWd1cmF0aW9uLm1heENoYXJMZW5ndGgsXHJcbiAgICAgICAgdG90YWxTeW1ib2xzOiB0b3RhbFN5bWJvbHNcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRSZWFjaGVkUXVvdGFNZXNzYWdlKCk6IE5vdGlmaWNhdGlvbk1lc3NhZ2Uge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogTm90aWZpY2F0aW9uTWVzc2FnZVR5cGUuRVJST1IsXHJcbiAgICAgIGJvZHk6ICdMTE0uRVJST1JTLlFVT1RBX0xJTUlUX1JFQUNIRUQnLFxyXG4gICAgICBsb2NhbGl6YXRpb25QYXJhbXM6IHtcclxuICAgICAgICBzdWJzY3JpcHRpb25Vcmw6IHRoaXMubGxtU2VydmljZS5sbG1Db25maWd1cmF0aW9uLnN1YnNjcmlwdGlvblVybCxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXREZWZhdWx0RXJyb3JNZXNzYWdlKCk6IE5vdGlmaWNhdGlvbk1lc3NhZ2Uge1xyXG4gICAgcmV0dXJuIHsgXHJcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvbk1lc3NhZ2VUeXBlLkVSUk9SLCBcclxuICAgICAgYm9keTogJ0xMTS5FUlJPUlMuREVGQVVMVCcsXHJcbiAgICAgIGxvY2FsaXphdGlvblBhcmFtczogeyBcclxuICAgICAgICBzdXBwb3J0RW1haWw6IHRoaXMubGxtU2VydmljZS5sbG1Db25maWd1cmF0aW9uLnN1cHBvcnRFbWFpbCBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRRdW90YUxvY2FsU3RvcmFnZVVzYWdlKGRlY3JlYXNlPzogYm9vbGVhbik6IG51bWJlciB7XHJcbiAgICBjb25zdCBsb2NhbFN0b3JhZ2VPYmogPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkxMTVF1b3RhTG9jYWxTdG9yYWdlS2V5KTtcclxuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICAgIGxldCB0cmlhbFF1b3RhID0ge1xyXG4gICAgICByZW1haW5pbmdRdW90YTogdGhpcy50cmlhbFJlcXVlc3RDb3VudCxcclxuICAgICAgbGFzdFVzZWRBdDogY3VycmVudERhdGVcclxuICAgIH07XHJcbiAgXHJcbiAgICBpZiAobG9jYWxTdG9yYWdlT2JqKSB7XHJcbiAgICAgIGNvbnN0IHBhcnNlZE9iaiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlT2JqKTtcclxuICAgICAgdHJpYWxRdW90YSA9IHBhcnNlZE9iajtcclxuICBcclxuICAgICAgY29uc3QgbGFzdFVzZWREYXRlID0gbmV3IERhdGUodHJpYWxRdW90YS5sYXN0VXNlZEF0KTtcclxuICBcclxuICAgICAgLy8gQ2hlY2tpbmcgaWYgdGhlIGxhc3QgdXNlZCBkYXRlIGlzIGZyb20gYSBkaWZmZXJlbnQgZGF5IHRoYW4gdG9kYXlcclxuICAgICAgaWYgKGxhc3RVc2VkRGF0ZS5nZXREYXRlKCkgIT09IGN1cnJlbnREYXRlLmdldERhdGUoKSB8fCBsYXN0VXNlZERhdGUuZ2V0TW9udGgoKSAhPT0gY3VycmVudERhdGUuZ2V0TW9udGgoKSB8fCBsYXN0VXNlZERhdGUuZ2V0RnVsbFllYXIoKSAhPT0gY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSkge1xyXG4gICAgICAgIC8vIFJlc2V0aW5nIHF1b3RhIGZvciB0aGUgbmV3IGRheVxyXG4gICAgICAgIHRyaWFsUXVvdGEucmVtYWluaW5nUXVvdGEgPSB0aGlzLnRyaWFsUmVxdWVzdENvdW50OyAgXHJcbiAgICAgIH1cclxuICBcclxuICAgICAgaWYgKGRlY3JlYXNlKSB7XHJcbiAgICAgICAgdHJpYWxRdW90YS5yZW1haW5pbmdRdW90YSAtPSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgXHJcbiAgICB0cmlhbFF1b3RhLmxhc3RVc2VkQXQgPSBjdXJyZW50RGF0ZTtcclxuXHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkxMTVF1b3RhTG9jYWxTdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeSh0cmlhbFF1b3RhKSk7XHJcblxyXG4gICAgcmV0dXJuIHRyaWFsUXVvdGEucmVtYWluaW5nUXVvdGE7XHJcbiAgfVxyXG59XHJcbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9zZXJ2aWNlcy9sbG0taGVscGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVCLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUYsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQWMsVUFBVSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFNdkQsTUFBTSxPQUFPLGdCQUFnQjtJQUszQixZQUE4QixVQUFzQixFQUFtQixZQUEwQjtRQUFuRSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQW1CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBSnhGLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUVmLDRCQUF1QixHQUFHLFdBQVcsQ0FBQztJQUU2QyxDQUFDO0lBRXJHOztPQUVHO0lBQ0gsaUJBQWlCLENBQUMsUUFBa0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FDM0MsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDZixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFdkYsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDVixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNqRDtZQUVELE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUM5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O2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uTWVzc2FnZSwgTm90aWZpY2F0aW9uTWVzc2FnZVR5cGUgfSBmcm9tICcuLi8uLi9ub3RpZmljYXRpb24tbWVzc2FnZSc7XHJcbmltcG9ydCB7IExMTVNlcnZpY2UgfSBmcm9tICcuL2xsbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUXVvdGFTZXJ2aWNlLCBRdW90YVR5cGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGNhdGNoRXJyb3IsIG1hcCwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTExNQWN0aW9ucyB9IGZyb20gJy4uL21vZGVscy9sbG0tYWN0aW9ucy5lbnVtJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExMTUhlbHBlclNlcnZpY2Uge1xyXG4gIHJlYWRvbmx5IHRyaWFsUmVxdWVzdENvdW50ID0gMTU7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTExNUXVvdGFMb2NhbFN0b3JhZ2VLZXkgPSAnTExNX1FVT1RBJztcclxuXHJcbiAgY29uc3RydWN0b3IgKHByaXZhdGUgcmVhZG9ubHkgbGxtU2VydmljZTogTExNU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBxdW90YVNlcnZpY2U6IFF1b3RhU2VydmljZSkge31cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyByZW1haW5pbmcgcXVvdGEgZnJvbSBBUEkuIElmIHF1b3RhIGlzIG1pc3NpbmcsIGRhaWx5IGxpbWl0IGlzIGJlaW5nIHVzZWQgZnJvbSBsb2NhbCBzdG9yYWdlLlxyXG4gICAqL1xyXG4gIGdldFJlbWFpbmluZ1F1b3RhKGRlY3JlYXNlPzogYm9vbGVhbik6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy5xdW90YVNlcnZpY2UuZ2V0UXVvdGFVc2FnZSgpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBjb25zdCBxdW90YSA9IHJlc3BvbnNlLnVzYWdlLmZpbmQoKGl0ZW0pID0+IGl0ZW0ucXVvdGFUeXBlID09PSBRdW90YVR5cGUuTExNX1JFUVVFU1RTKTtcclxuXHJcbiAgICAgICAgaWYgKCFxdW90YSkge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2V0UXVvdGFMb2NhbFN0b3JhZ2VVc2FnZShkZWNyZWFzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHJldHVybiBxdW90YS5xdW90YVJlbWFpbmluZztcclxuICAgICAgfSksIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBvZih0aGlzLnNldFF1b3RhTG9jYWxTdG9yYWdlVXNhZ2UoZGVjcmVhc2UpKVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0RXhjZWVkZWRMaW1pdE1lc3NhZ2UodG90YWxTeW1ib2xzOiBudW1iZXIpOiBOb3RpZmljYXRpb25NZXNzYWdlIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvbk1lc3NhZ2VUeXBlLldBUk5JTkcsXHJcbiAgICAgIGJvZHk6ICdFUlJPUlMuTUFYX0NIQVJfTEVOR1RIJyxcclxuICAgICAgbG9jYWxpemF0aW9uUGFyYW1zOiB7XHJcbiAgICAgICAgbWF4Q2hhckxlbmd0aDogdGhpcy5sbG1TZXJ2aWNlLmxsbUNvbmZpZ3VyYXRpb24ubWF4Q2hhckxlbmd0aCxcclxuICAgICAgICB0b3RhbFN5bWJvbHM6IHRvdGFsU3ltYm9sc1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldFJlYWNoZWRRdW90YU1lc3NhZ2UoKTogTm90aWZpY2F0aW9uTWVzc2FnZSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiBOb3RpZmljYXRpb25NZXNzYWdlVHlwZS5FUlJPUixcclxuICAgICAgYm9keTogJ0xMTS5FUlJPUlMuUVVPVEFfTElNSVRfUkVBQ0hFRCcsXHJcbiAgICAgIGxvY2FsaXphdGlvblBhcmFtczoge1xyXG4gICAgICAgIHN1YnNjcmlwdGlvblVybDogdGhpcy5sbG1TZXJ2aWNlLmxsbUNvbmZpZ3VyYXRpb24uc3Vic2NyaXB0aW9uVXJsLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldERlZmF1bHRFcnJvck1lc3NhZ2UoKTogTm90aWZpY2F0aW9uTWVzc2FnZSB7XHJcbiAgICByZXR1cm4geyBcclxuICAgICAgdHlwZTogTm90aWZpY2F0aW9uTWVzc2FnZVR5cGUuRVJST1IsIFxyXG4gICAgICBib2R5OiAnTExNLkVSUk9SUy5ERUZBVUxUJyxcclxuICAgICAgbG9jYWxpemF0aW9uUGFyYW1zOiB7IFxyXG4gICAgICAgIHN1cHBvcnRFbWFpbDogdGhpcy5sbG1TZXJ2aWNlLmxsbUNvbmZpZ3VyYXRpb24uc3VwcG9ydEVtYWlsIFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRSZXF1ZXN0VGltZW91dE1lc3NhZ2UoYWN0aW9uOiBMTE1BY3Rpb25zKTogTm90aWZpY2F0aW9uTWVzc2FnZSB7XHJcbiAgICByZXR1cm4geyBcclxuICAgICAgdHlwZTogTm90aWZpY2F0aW9uTWVzc2FnZVR5cGUuRVJST1IsIFxyXG4gICAgICBib2R5OiBgTExNLkVSUk9SUy4ke2FjdGlvbn1fUkVRVUVTVF9USU1FT1VUYCxcclxuICAgICAgbG9jYWxpemF0aW9uUGFyYW1zOiB7IFxyXG4gICAgICAgIHN1cHBvcnRFbWFpbDogdGhpcy5sbG1TZXJ2aWNlLmxsbUNvbmZpZ3VyYXRpb24uc3VwcG9ydEVtYWlsIFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFF1b3RhTG9jYWxTdG9yYWdlVXNhZ2UoZGVjcmVhc2U/OiBib29sZWFuKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IGxvY2FsU3RvcmFnZU9iaiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuTExNUXVvdGFMb2NhbFN0b3JhZ2VLZXkpO1xyXG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgbGV0IHRyaWFsUXVvdGEgPSB7XHJcbiAgICAgIHJlbWFpbmluZ1F1b3RhOiB0aGlzLnRyaWFsUmVxdWVzdENvdW50LFxyXG4gICAgICBsYXN0VXNlZEF0OiBjdXJyZW50RGF0ZVxyXG4gICAgfTtcclxuICBcclxuICAgIGlmIChsb2NhbFN0b3JhZ2VPYmopIHtcclxuICAgICAgY29uc3QgcGFyc2VkT2JqID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2VPYmopO1xyXG4gICAgICB0cmlhbFF1b3RhID0gcGFyc2VkT2JqO1xyXG4gIFxyXG4gICAgICBjb25zdCBsYXN0VXNlZERhdGUgPSBuZXcgRGF0ZSh0cmlhbFF1b3RhLmxhc3RVc2VkQXQpO1xyXG4gIFxyXG4gICAgICAvLyBDaGVja2luZyBpZiB0aGUgbGFzdCB1c2VkIGRhdGUgaXMgZnJvbSBhIGRpZmZlcmVudCBkYXkgdGhhbiB0b2RheVxyXG4gICAgICBpZiAobGFzdFVzZWREYXRlLmdldERhdGUoKSAhPT0gY3VycmVudERhdGUuZ2V0RGF0ZSgpIHx8IGxhc3RVc2VkRGF0ZS5nZXRNb250aCgpICE9PSBjdXJyZW50RGF0ZS5nZXRNb250aCgpIHx8IGxhc3RVc2VkRGF0ZS5nZXRGdWxsWWVhcigpICE9PSBjdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpKSB7XHJcbiAgICAgICAgLy8gUmVzZXRpbmcgcXVvdGEgZm9yIHRoZSBuZXcgZGF5XHJcbiAgICAgICAgdHJpYWxRdW90YS5yZW1haW5pbmdRdW90YSA9IHRoaXMudHJpYWxSZXF1ZXN0Q291bnQ7ICBcclxuICAgICAgfVxyXG4gIFxyXG4gICAgICBpZiAoZGVjcmVhc2UpIHtcclxuICAgICAgICB0cmlhbFF1b3RhLnJlbWFpbmluZ1F1b3RhIC09IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICBcclxuICAgIHRyaWFsUXVvdGEubGFzdFVzZWRBdCA9IGN1cnJlbnREYXRlO1xyXG5cclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuTExNUXVvdGFMb2NhbFN0b3JhZ2VLZXksIEpTT04uc3RyaW5naWZ5KHRyaWFsUXVvdGEpKTtcclxuXHJcbiAgICByZXR1cm4gdHJpYWxRdW90YS5yZW1haW5pbmdRdW90YTtcclxuICB9XHJcbn1cclxuIl19
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
28
28
  type: Inject,
29
29
  args: [LLM_CONFIGURATION_TOKEN]
30
30
  }] }]; } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL3NlcnZpY2VzL2xsbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBSzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBS2xELE1BQU0sT0FBTyxVQUFVO0lBR3JCLFlBQTZCLElBQWdCLEVBQW1DLE1BQXdCO1FBQTNFLFNBQUksR0FBSixJQUFJLENBQVk7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWdCO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxZQUFZLEVBQUUsT0FBTyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQ3BILENBQUM7SUFFRCxRQUFRLENBQUMsT0FBb0I7UUFDM0IsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEgsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLFVBQVUsRUFBRSxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDbEgsQ0FBQzsrR0FmVSxVQUFVLDRDQUdrQyx1QkFBdUI7bUhBSG5FLFVBQVUsY0FGVCxNQUFNOzs0RkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBSWlELE1BQU07MkJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExMTV9DT05GSUdVUkFUSU9OX1RPS0VOIH0gZnJvbSAnLi4vbW9kZWxzL2xsbS1jb25maWd1cmF0aW9uLnRva2VuJztcclxuaW1wb3J0IHsgTExNQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL21vZGVscy9sbG0tY29uZmlndXJhdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTExNRGF0YSB9IGZyb20gJy4uL21vZGVscy9sbG0tZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IExMTVJlcGhyYXNlIH0gZnJvbSAnLi4vbW9kZWxzL2xsbS1yZXBocmFzZS5tb2RlbCc7XHJcbmltcG9ydCB7IEF1dGhIZWFkZXJzSGVscGVyIH0gZnJvbSAnLi4vLi4vaGVscGVycyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMTE1TZXJ2aWNlIHtcclxuICBsbG1Db25maWd1cmF0aW9uITogTExNQ29uZmlndXJhdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LCBASW5qZWN0KExMTV9DT05GSUdVUkFUSU9OX1RPS0VOKSBjb25maWc6IExMTUNvbmZpZ3VyYXRpb24pIHtcclxuICAgIHRoaXMubGxtQ29uZmlndXJhdGlvbiA9IGNvbmZpZztcclxuICB9XHJcblxyXG4gIHN1bW1hcml6ZShyZXF1ZXN0OiBMTE1EYXRhKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBBdXRoSGVhZGVyc0hlbHBlci5nZXRBcGlWMkF1dGhIZWFkZXJzKHRoaXMubGxtQ29uZmlndXJhdGlvbi54QXBpS2V5LCB0aGlzLmxsbUNvbmZpZ3VyYXRpb24uYXBwSWQpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMubGxtQ29uZmlndXJhdGlvbi5zZXJ2aWNlVXJsfS9zdW1tYXJpemVgLCByZXF1ZXN0LCB7IHJlc3BvbnNlVHlwZTogXCJ0ZXh0XCIsIGhlYWRlcnMgfSlcclxuICB9XHJcblxyXG4gIHJlcGhyYXNlKHJlcXVlc3Q6IExMTVJlcGhyYXNlKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBBdXRoSGVhZGVyc0hlbHBlci5nZXRBcGlWMkF1dGhIZWFkZXJzKHRoaXMubGxtQ29uZmlndXJhdGlvbi54QXBpS2V5LCB0aGlzLmxsbUNvbmZpZ3VyYXRpb24uYXBwSWQpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMubGxtQ29uZmlndXJhdGlvbi5zZXJ2aWNlVXJsfS9yZXdyaXRlYCwgcmVxdWVzdCwgeyByZXNwb25zZVR5cGU6IFwidGV4dFwiLCBoZWFkZXJzIH0pXHJcbiAgfVxyXG59XHJcbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL3NlcnZpY2VzL2xsbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBSTVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTWxELE1BQU0sT0FBTyxVQUFVO0lBR3JCLFlBQTZCLElBQWdCLEVBQW1DLE1BQXdCO1FBQTNFLFNBQUksR0FBSixJQUFJLENBQVk7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQTRCO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxZQUFZLEVBQUUsT0FBTyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQ3BILENBQUM7SUFFRCxRQUFRLENBQUMsT0FBb0I7UUFDM0IsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEgsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLFVBQVUsRUFBRSxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDbEgsQ0FBQzsrR0FmVSxVQUFVLDRDQUdrQyx1QkFBdUI7bUhBSG5FLFVBQVUsY0FGVCxNQUFNOzs0RkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBSWlELE1BQU07MkJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExMTV9DT05GSUdVUkFUSU9OX1RPS0VOIH0gZnJvbSAnLi4vbW9kZWxzL2xsbS1jb25maWd1cmF0aW9uLnRva2VuJztcclxuaW1wb3J0IHsgTExNQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL21vZGVscy9sbG0tY29uZmlndXJhdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTExNUmVwaHJhc2UgfSBmcm9tICcuLi9tb2RlbHMvbGxtLXJlcGhyYXNlLm1vZGVsJztcclxuaW1wb3J0IHsgQXV0aEhlYWRlcnNIZWxwZXIgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgTExNU3VtbWFyaXplUmVxdWVzdCB9IGZyb20gJy4uL21vZGVscy9sbG0tc3VtbWFyaXplLXJlcXVlc3QubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTExNU2VydmljZSB7XHJcbiAgbGxtQ29uZmlndXJhdGlvbiE6IExMTUNvbmZpZ3VyYXRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCwgQEluamVjdChMTE1fQ09ORklHVVJBVElPTl9UT0tFTikgY29uZmlnOiBMTE1Db25maWd1cmF0aW9uKSB7XHJcbiAgICB0aGlzLmxsbUNvbmZpZ3VyYXRpb24gPSBjb25maWc7XHJcbiAgfVxyXG5cclxuICBzdW1tYXJpemUocmVxdWVzdDogTExNU3VtbWFyaXplUmVxdWVzdCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gQXV0aEhlYWRlcnNIZWxwZXIuZ2V0QXBpVjJBdXRoSGVhZGVycyh0aGlzLmxsbUNvbmZpZ3VyYXRpb24ueEFwaUtleSwgdGhpcy5sbG1Db25maWd1cmF0aW9uLmFwcElkKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmxsbUNvbmZpZ3VyYXRpb24uc2VydmljZVVybH0vc3VtbWFyaXplYCwgcmVxdWVzdCwgeyByZXNwb25zZVR5cGU6IFwidGV4dFwiLCBoZWFkZXJzIH0pXHJcbiAgfVxyXG5cclxuICByZXBocmFzZShyZXF1ZXN0OiBMTE1SZXBocmFzZSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gQXV0aEhlYWRlcnNIZWxwZXIuZ2V0QXBpVjJBdXRoSGVhZGVycyh0aGlzLmxsbUNvbmZpZ3VyYXRpb24ueEFwaUtleSwgdGhpcy5sbG1Db25maWd1cmF0aW9uLmFwcElkKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmxsbUNvbmZpZ3VyYXRpb24uc2VydmljZVVybH0vcmV3cml0ZWAsIHJlcXVlc3QsIHsgcmVzcG9uc2VUeXBlOiBcInRleHRcIiwgaGVhZGVycyB9KVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -6,7 +6,9 @@ import * as i1 from "@angular/cdk/clipboard";
6
6
  import * as i2 from "@angular/material/button";
7
7
  import * as i3 from "@angular/material/icon";
8
8
  import * as i4 from "@angular/forms";
9
- import * as i5 from "@angular/flex-layout/extended";
9
+ import * as i5 from "@angular/material/tooltip";
10
+ import * as i6 from "@angular/flex-layout/extended";
11
+ import * as i7 from "@ngx-translate/core";
10
12
  export class LLMTextareaComponent {
11
13
  constructor(clipboard) {
12
14
  this.clipboard = clipboard;
@@ -47,11 +49,11 @@ export class LLMTextareaComponent {
47
49
  this.destroy.complete();
48
50
  }
49
51
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LLMTextareaComponent, deps: [{ token: i1.Clipboard }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LLMTextareaComponent, selector: "lib-llm-textarea", inputs: { text: "text", disabled: "disabled" }, outputs: { textEditEvent: "textEditEvent", dislikeEvent: "dislikeEvent", copyEvent: "copyEvent" }, viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [ngClass.gt-lg]=\"'desktop'\" class=\"llm-wrapper\">\r\n <div class=\"llm-textarea-wrapper\">\r\n <textarea\r\n #textarea\r\n class=\"llm-textarea\"\r\n [formControl]=\"textareaControl\"\r\n >\r\n </textarea>\r\n\r\n <div class=\"llm-textarea-actions\">\r\n <button (click)=\"dislike()\" mat-icon-button [disabled]=\"disabled || !textareaControl.value\">\r\n <mat-icon class=\"material-icons-outlined copy\"> thumb_down </mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [disabled]=\"disabled || !textareaControl.value\"\r\n (click)=\"copy()\"\r\n >\r\n <mat-icon class=\"material-icons-outlined dislike\"> content_copy </mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".llm-wrapper{position:relative;border:1px solid var(--base-65);border-radius:8px;overflow-y:auto}.llm-textarea-wrapper{position:relative}.llm-textarea{min-width:100%;min-height:310px;padding:8px 16px;resize:none;background:none;border-radius:8px;margin-bottom:46px}.desktop .llm-textarea{min-height:490px}.llm-textarea-actions{position:absolute;bottom:4px;right:4px}\n"], dependencies: [{ kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] }); }
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LLMTextareaComponent, selector: "lib-llm-textarea", inputs: { text: "text", disabled: "disabled", actionButtonsDisabled: "actionButtonsDisabled" }, outputs: { textEditEvent: "textEditEvent", dislikeEvent: "dislikeEvent", copyEvent: "copyEvent" }, viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [ngClass.gt-lg]=\"'desktop'\" class=\"llm-wrapper\">\r\n <div class=\"llm-textarea-wrapper\">\r\n <textarea\r\n #textarea\r\n class=\"llm-textarea\"\r\n [formControl]=\"textareaControl\"\r\n >\r\n </textarea>\r\n\r\n <div class=\"llm-textarea-actions\">\r\n <button [matTooltip]=\"'TOOLTIPS.DISLIKE' | translate\" (click)=\"dislike()\" mat-icon-button [disabled]=\"actionButtonsDisabled || !textareaControl.value\">\r\n <mat-icon class=\"material-icons-outlined copy\"> thumb_down </mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [disabled]=\"actionButtonsDisabled || !textareaControl.value\"\r\n [matTooltip]=\"'TOOLTIPS.COPY' | translate\"\r\n (click)=\"copy()\"\r\n >\r\n <mat-icon class=\"material-icons-outlined dislike\"> content_copy </mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".llm-wrapper{position:relative;border:1px solid var(--base-65);border-radius:8px;overflow-y:auto}.llm-textarea-wrapper{position:relative}.llm-textarea{min-width:100%;min-height:310px;padding:8px 16px;resize:none;background:none;border-radius:8px;margin-bottom:46px}.desktop .llm-textarea{min-height:490px}.llm-textarea-actions{position:absolute;bottom:4px;right:4px}\n"], dependencies: [{ kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
51
53
  }
52
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LLMTextareaComponent, decorators: [{
53
55
  type: Component,
54
- args: [{ selector: 'lib-llm-textarea', template: "<div [ngClass.gt-lg]=\"'desktop'\" class=\"llm-wrapper\">\r\n <div class=\"llm-textarea-wrapper\">\r\n <textarea\r\n #textarea\r\n class=\"llm-textarea\"\r\n [formControl]=\"textareaControl\"\r\n >\r\n </textarea>\r\n\r\n <div class=\"llm-textarea-actions\">\r\n <button (click)=\"dislike()\" mat-icon-button [disabled]=\"disabled || !textareaControl.value\">\r\n <mat-icon class=\"material-icons-outlined copy\"> thumb_down </mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [disabled]=\"disabled || !textareaControl.value\"\r\n (click)=\"copy()\"\r\n >\r\n <mat-icon class=\"material-icons-outlined dislike\"> content_copy </mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".llm-wrapper{position:relative;border:1px solid var(--base-65);border-radius:8px;overflow-y:auto}.llm-textarea-wrapper{position:relative}.llm-textarea{min-width:100%;min-height:310px;padding:8px 16px;resize:none;background:none;border-radius:8px;margin-bottom:46px}.desktop .llm-textarea{min-height:490px}.llm-textarea-actions{position:absolute;bottom:4px;right:4px}\n"] }]
56
+ args: [{ selector: 'lib-llm-textarea', template: "<div [ngClass.gt-lg]=\"'desktop'\" class=\"llm-wrapper\">\r\n <div class=\"llm-textarea-wrapper\">\r\n <textarea\r\n #textarea\r\n class=\"llm-textarea\"\r\n [formControl]=\"textareaControl\"\r\n >\r\n </textarea>\r\n\r\n <div class=\"llm-textarea-actions\">\r\n <button [matTooltip]=\"'TOOLTIPS.DISLIKE' | translate\" (click)=\"dislike()\" mat-icon-button [disabled]=\"actionButtonsDisabled || !textareaControl.value\">\r\n <mat-icon class=\"material-icons-outlined copy\"> thumb_down </mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [disabled]=\"actionButtonsDisabled || !textareaControl.value\"\r\n [matTooltip]=\"'TOOLTIPS.COPY' | translate\"\r\n (click)=\"copy()\"\r\n >\r\n <mat-icon class=\"material-icons-outlined dislike\"> content_copy </mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".llm-wrapper{position:relative;border:1px solid var(--base-65);border-radius:8px;overflow-y:auto}.llm-textarea-wrapper{position:relative}.llm-textarea{min-width:100%;min-height:310px;padding:8px 16px;resize:none;background:none;border-radius:8px;margin-bottom:46px}.desktop .llm-textarea{min-height:490px}.llm-textarea-actions{position:absolute;bottom:4px;right:4px}\n"] }]
55
57
  }], ctorParameters: function () { return [{ type: i1.Clipboard }]; }, propDecorators: { textarea: [{
56
58
  type: ViewChild,
57
59
  args: ['textarea']
@@ -59,6 +61,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
59
61
  type: Input
60
62
  }], disabled: [{
61
63
  type: Input
64
+ }], actionButtonsDisabled: [{
65
+ type: Input
62
66
  }], textEditEvent: [{
63
67
  type: Output
64
68
  }], dislikeEvent: [{
@@ -66,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
66
70
  }], copyEvent: [{
67
71
  type: Output
68
72
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vc2hhcmVkL2xsbS10ZXh0YXJlYS9sbG0tdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9zaGFyZWQvbGxtLXRleHRhcmVhL2xsbS10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFPeEUsTUFBTSxPQUFPLG9CQUFvQjtJQVkvQixZQUE4QixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBUnhDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFJeEIsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFWSxDQUFDO0lBRXRELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsZUFBZTtRQUNiLFNBQVMsQ0FBZ0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNqRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN2QjtRQUNILENBQUMsQ0FBQyxFQUNGLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDeEIsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUM7U0FDbEY7UUFFRCxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7K0dBdERVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHNVQ1ZqQywyeEJBd0JBOzs0RkRkYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCO2dHQUtMLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDWixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaXBib2FyZCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jbGlwYm9hcmQnO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZyb21FdmVudCwgU3ViamVjdCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxsbS10ZXh0YXJlYScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xsbS10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGxtLXRleHRhcmVhLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMTE1UZXh0YXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ3RleHRhcmVhJykgdGV4dGFyZWEhOiBFbGVtZW50UmVmO1xyXG4gIEBJbnB1dCgpIHRleHQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSB0ZXh0RWRpdEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBkaXNsaWtlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNvcHlFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgdGV4dGFyZWFDb250cm9sITogRm9ybUNvbnRyb2w7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yIChwcml2YXRlIHJlYWRvbmx5IGNsaXBib2FyZDogQ2xpcGJvYXJkKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudGV4dGFyZWFDb250cm9sID0gbmV3IEZvcm1Db250cm9sKHRoaXMudGV4dCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4odGhpcy50ZXh0YXJlYS5uYXRpdmVFbGVtZW50LCAna2V5dXAnKS5waXBlKFxyXG4gICAgICB0YXAoKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQua2V5ID09PSAnYycpIHtcclxuICAgICAgICAgIHRoaXMuY29weUV2ZW50LmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSlcclxuICAgICkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy50ZXh0RWRpdEV2ZW50LmVtaXQodGhpcy50ZXh0YXJlYUNvbnRyb2wudmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcyAmJiBjaGFuZ2VzWydkaXNhYmxlZCddKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWQgPyB0aGlzLnRleHRhcmVhQ29udHJvbD8uZGlzYWJsZSgpIDogdGhpcy50ZXh0YXJlYUNvbnRyb2w/LmVuYWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjaGFuZ2VzICYmIGNoYW5nZXNbJ3RleHQnXSkge1xyXG4gICAgICB0aGlzLnRleHRhcmVhQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh0aGlzLnRleHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzbGlrZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzbGlrZUV2ZW50LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGNvcHkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsaXBib2FyZC5jb3B5KHRoaXMudGV4dGFyZWFDb250cm9sLnZhbHVlKTtcclxuICAgIHRoaXMuY29weUV2ZW50LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmRlc3Ryb3kubmV4dChudWxsKTtcclxuICAgICAgdGhpcy5kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW25nQ2xhc3MuZ3QtbGddPVwiJ2Rlc2t0b3AnXCIgY2xhc3M9XCJsbG0td3JhcHBlclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJsbG0tdGV4dGFyZWEtd3JhcHBlclwiPlxyXG4gICAgPHRleHRhcmVhXHJcbiAgICAgICN0ZXh0YXJlYVxyXG4gICAgICBjbGFzcz1cImxsbS10ZXh0YXJlYVwiXHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJ0ZXh0YXJlYUNvbnRyb2xcIlxyXG4gICAgPlxyXG4gICAgPC90ZXh0YXJlYT5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibGxtLXRleHRhcmVhLWFjdGlvbnNcIj5cclxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZGlzbGlrZSgpXCIgbWF0LWljb24tYnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCAhdGV4dGFyZWFDb250cm9sLnZhbHVlXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgY29weVwiPiB0aHVtYl9kb3duIDwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCAhdGV4dGFyZWFDb250cm9sLnZhbHVlXCJcclxuICAgICAgICAoY2xpY2spPVwiY29weSgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkIGRpc2xpa2VcIj4gY29udGVudF9jb3B5IDwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vc2hhcmVkL2xsbS10ZXh0YXJlYS9sbG0tdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9zaGFyZWQvbGxtLXRleHRhcmVhL2xsbS10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQU94RSxNQUFNLE9BQU8sb0JBQW9CO0lBYS9CLFlBQThCLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFSeEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUl4QixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVZLENBQUM7SUFFdEQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxlQUFlO1FBQ2IsU0FBUyxDQUFnQixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ2pFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1osSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFO2dCQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUN4QixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsQ0FBQztTQUNsRjtRQUVELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzsrR0F2RFUsb0JBQW9CO21HQUFwQixvQkFBb0Isc1hDVmpDLDY1QkF5QkE7OzRGRGZhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7Z0dBS0wsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNaLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaXBib2FyZCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jbGlwYm9hcmQnO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZyb21FdmVudCwgU3ViamVjdCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxsbS10ZXh0YXJlYScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xsbS10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGxtLXRleHRhcmVhLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMTE1UZXh0YXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ3RleHRhcmVhJykgdGV4dGFyZWEhOiBFbGVtZW50UmVmO1xyXG4gIEBJbnB1dCgpIHRleHQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGFjdGlvbkJ1dHRvbnNEaXNhYmxlZCE6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIHRleHRFZGl0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRpc2xpa2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY29weUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICB0ZXh0YXJlYUNvbnRyb2whOiBGb3JtQ29udHJvbDtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IgKHByaXZhdGUgcmVhZG9ubHkgY2xpcGJvYXJkOiBDbGlwYm9hcmQpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZXh0YXJlYUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wodGhpcy50ZXh0KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLnRleHRhcmVhLm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpLnBpcGUoXHJcbiAgICAgIHRhcCgoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQuY3RybEtleSAmJiBldmVudC5rZXkgPT09ICdjJykge1xyXG4gICAgICAgICAgdGhpcy5jb3B5RXZlbnQuZW1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95KVxyXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnRleHRFZGl0RXZlbnQuZW1pdCh0aGlzLnRleHRhcmVhQ29udHJvbC52YWx1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzICYmIGNoYW5nZXNbJ2Rpc2FibGVkJ10pIHtcclxuICAgICAgdGhpcy5kaXNhYmxlZCA/IHRoaXMudGV4dGFyZWFDb250cm9sPy5kaXNhYmxlKCkgOiB0aGlzLnRleHRhcmVhQ29udHJvbD8uZW5hYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlc1sndGV4dCddKSB7XHJcbiAgICAgIHRoaXMudGV4dGFyZWFDb250cm9sID0gbmV3IEZvcm1Db250cm9sKHRoaXMudGV4dCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkaXNsaWtlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNsaWtlRXZlbnQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgY29weSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpcGJvYXJkLmNvcHkodGhpcy50ZXh0YXJlYUNvbnRyb2wudmFsdWUpO1xyXG4gICAgdGhpcy5jb3B5RXZlbnQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuZGVzdHJveS5uZXh0KG51bGwpO1xyXG4gICAgICB0aGlzLmRlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBbbmdDbGFzcy5ndC1sZ109XCInZGVza3RvcCdcIiBjbGFzcz1cImxsbS13cmFwcGVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImxsbS10ZXh0YXJlYS13cmFwcGVyXCI+XHJcbiAgICA8dGV4dGFyZWFcclxuICAgICAgI3RleHRhcmVhXHJcbiAgICAgIGNsYXNzPVwibGxtLXRleHRhcmVhXCJcclxuICAgICAgW2Zvcm1Db250cm9sXT1cInRleHRhcmVhQ29udHJvbFwiXHJcbiAgICA+XHJcbiAgICA8L3RleHRhcmVhPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJsbG0tdGV4dGFyZWEtYWN0aW9uc1wiPlxyXG4gICAgICA8YnV0dG9uIFttYXRUb29sdGlwXT1cIidUT09MVElQUy5ESVNMSUtFJyB8IHRyYW5zbGF0ZVwiIChjbGljayk9XCJkaXNsaWtlKClcIiBtYXQtaWNvbi1idXR0b24gW2Rpc2FibGVkXT1cImFjdGlvbkJ1dHRvbnNEaXNhYmxlZCB8fCAhdGV4dGFyZWFDb250cm9sLnZhbHVlXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgY29weVwiPiB0aHVtYl9kb3duIDwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb25CdXR0b25zRGlzYWJsZWQgfHwgIXRleHRhcmVhQ29udHJvbC52YWx1ZVwiXHJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ1RPT0xUSVBTLkNPUFknIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAoY2xpY2spPVwiY29weSgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkIGRpc2xpa2VcIj4gY29udGVudF9jb3B5IDwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=