@tilde-nlp/ngx-common 6.0.7 → 6.0.8

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 (39) hide show
  1. package/esm2022/lib/llm/components/llm-textarea-with-actions/llm-textarea-with-actions.component.mjs +15 -10
  2. package/esm2022/lib/llm/llm.component.mjs +12 -4
  3. package/esm2022/lib/llm/models/llm-configuration.model.mjs +1 -1
  4. package/esm2022/lib/llm/models/llm-data.model.mjs +1 -1
  5. package/esm2022/lib/llm/services/llm-helper.service.mjs +15 -15
  6. package/esm2022/lib/services/index.mjs +1 -2
  7. package/fesm2022/tilde-nlp-ngx-common.mjs +39 -85
  8. package/fesm2022/tilde-nlp-ngx-common.mjs.map +1 -1
  9. package/lib/llm/components/llm-textarea-with-actions/llm-textarea-with-actions.component.d.ts +3 -2
  10. package/lib/llm/llm.component.d.ts +3 -2
  11. package/lib/llm/models/llm-configuration.model.d.ts +0 -3
  12. package/lib/llm/models/llm-data.model.d.ts +2 -1
  13. package/lib/llm/services/llm-helper.service.d.ts +4 -5
  14. package/lib/services/index.d.ts +0 -1
  15. package/package.json +3 -2
  16. package/web-components/3rdpartylicenses.txt +152 -0
  17. package/web-components/main.js +12 -12
  18. package/esm2022/lib/llm/models/llm-rephrase.model.mjs +0 -2
  19. package/esm2022/lib/llm/models/llm-summarize-request.model.mjs +0 -2
  20. package/esm2022/lib/llm/services/llm.service.mjs +0 -31
  21. package/esm2022/lib/services/quota/index.mjs +0 -4
  22. package/esm2022/lib/services/quota/injection-tokens/index.mjs +0 -2
  23. package/esm2022/lib/services/quota/injection-tokens/quota-service-configuration.token.mjs +0 -3
  24. package/esm2022/lib/services/quota/models/index.mjs +0 -4
  25. package/esm2022/lib/services/quota/models/quota-service-configuration.model.mjs +0 -2
  26. package/esm2022/lib/services/quota/models/quota-type.enum.mjs +0 -10
  27. package/esm2022/lib/services/quota/models/quota-usage.model.mjs +0 -2
  28. package/esm2022/lib/services/quota/quota.service.mjs +0 -27
  29. package/lib/llm/models/llm-rephrase.model.d.ts +0 -6
  30. package/lib/llm/models/llm-summarize-request.model.d.ts +0 -4
  31. package/lib/llm/services/llm.service.d.ts +0 -15
  32. package/lib/services/quota/index.d.ts +0 -3
  33. package/lib/services/quota/injection-tokens/index.d.ts +0 -1
  34. package/lib/services/quota/injection-tokens/quota-service-configuration.token.d.ts +0 -3
  35. package/lib/services/quota/models/index.d.ts +0 -3
  36. package/lib/services/quota/models/quota-service-configuration.model.d.ts +0 -5
  37. package/lib/services/quota/models/quota-type.enum.d.ts +0 -8
  38. package/lib/services/quota/models/quota-usage.model.d.ts +0 -13
  39. package/lib/services/quota/quota.service.d.ts +0 -15
@@ -1,12 +1,12 @@
1
1
  import { Component, Inject } from '@angular/core';
2
2
  import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
3
  import { finalize } from 'rxjs';
4
+ import { ERROR_CODES } from '../../../constants';
5
+ import { PlausibleHelper } from '../../../plausible';
4
6
  import { LLMActions } from '../../models/llm-actions.enum';
5
7
  import { LLMWritingStyle } from '../../models/llm-writing-style.enum';
6
- import { PlausibleHelper } from '../../../plausible';
7
- import { ERROR_CODES } from '../../../constants';
8
8
  import * as i0 from "@angular/core";
9
- import * as i1 from "../../services/llm.service";
9
+ import * as i1 from "@tilde-nlp/ngx-services";
10
10
  import * as i2 from "../../services/llm-helper.service";
11
11
  import * as i3 from "@angular/common";
12
12
  import * as i4 from "@angular/material/button";
@@ -146,12 +146,7 @@ export class LLMTextareaWithActionsComponent {
146
146
  this.messages = [];
147
147
  }
148
148
  ngOnInit() {
149
- this.llmActionType = this.data.action;
150
- this.localizationKey = `LLM.${this.llmActionType}_MODAL.`;
151
- this.initialText = this.data.text;
152
- this.subscriptionUrl = this.llmService.llmConfiguration.subscriptionUrl;
153
- this.maxCharLength = this.llmService.llmConfiguration.maxCharLength;
154
- this.refreshQuota();
149
+ this.setInitialText();
155
150
  }
156
151
  closeMessage(msg) {
157
152
  const index = this.messages?.findIndex((message) => JSON.stringify(message) === JSON.stringify(msg));
@@ -201,6 +196,16 @@ export class LLMTextareaWithActionsComponent {
201
196
  dislikePlausibleEvent() {
202
197
  PlausibleHelper.customEvent(this.llmActionType.toLowerCase(), { action: 'dislike' });
203
198
  }
199
+ setInitialText() {
200
+ this.data.text.subscribe((text) => {
201
+ this.initialText = text;
202
+ this.llmActionType = this.data.action;
203
+ this.localizationKey = `LLM.${this.llmActionType}_MODAL.`;
204
+ this.subscriptionUrl = this.llmHelperService.llmConfiguration.subscriptionUrl;
205
+ this.maxCharLength = this.llmHelperService.llmConfiguration.maxCharLength;
206
+ this.refreshQuota();
207
+ });
208
+ }
204
209
  checkTextLimit() {
205
210
  const limit = this.maxCharLength;
206
211
  const texts = [this.initialText, this.manuallyEditedText, this.editedText];
@@ -333,4 +338,4 @@ export class LLMTextareaWithActionsComponent {
333
338
  args: [MAT_DIALOG_DATA]
334
339
  }] }], null); })();
335
340
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LLMTextareaWithActionsComponent, { className: "LLMTextareaWithActionsComponent", filePath: "lib\\llm\\components\\llm-textarea-with-actions\\llm-textarea-with-actions.component.ts", lineNumber: 20 }); })();
336
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL2NvbXBvbmVudHMvbGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zL2xsbS10ZXh0YXJlYS13aXRoLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBZ0IsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFJdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ1AvQyx3REFBMEg7SUFBdkMscVJBQWdCLCtCQUFxQixLQUFDO0lBQUMsaUJBQStCOzs7SUFBMUYsb0NBQW1COzs7SUFNNUUsc0NBQWdFO0lBQzlELFlBQ0Y7OztJQUFBLGlCQUFhOzs7SUFGbUMsZ0NBQWU7SUFDN0QsY0FDRjtJQURFLDRIQUNGOzs7O0lBTk4sNkJBQTREO0lBRXhELEFBREYsMENBQTRGLGdCQUMvRTtJQUFBLFlBQTJEOztJQUFBLGlC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K0VBQXFELDZDQUFxQyx3Q0FBb0M7WUFHMUksZUFBa0M7WUFBbEMsdURBQWtDO1lBRW5DLGNBQThDO1lBQTlDLDJEQUE4QztZQUN4QyxjQUFpQjtZQUFBLEFBQWpCLG9DQUFpQiw0QkFBZ0I7WUFjeEMsZUFBdUI7WUFBdkIseUNBQXVCO1lBRWhCLGNBQTRDO1lBQUEsQUFBNUMsbUVBQTRDLCtCQUFtQjtZQVl4RCxlQUFlO1lBQWYsb0NBQWU7OztpRkQ5Q3RCLCtCQUErQjtjQUwzQyxTQUFTOzJCQUNFLCtCQUErQjs7c0JBNEN0QyxNQUFNO3VCQUFDLGVBQWU7O2tGQXhDZCwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmluYWxpemUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTExNQWN0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy9sbG0tYWN0aW9ucy5lbnVtJztcclxuaW1wb3J0IHsgTExNRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9sbG0tZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IExMTVdyaXRpbmdTdHlsZSB9IGZyb20gJy4uLy4uL21vZGVscy9sbG0td3JpdGluZy1zdHlsZS5lbnVtJztcclxuaW1wb3J0IHsgTExNSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xsbS1oZWxwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IExMTVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sbG0uc2VydmljZSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi9ub3RpZmljYXRpb24tbWVzc2FnZSc7XHJcbmltcG9ydCB7IFBsYXVzaWJsZUhlbHBlciB9IGZyb20gJy4uLy4uLy4uL3BsYXVzaWJsZSc7XHJcbmltcG9ydCB7IEVSUk9SX0NPREVTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMTE1UZXh0YXJlYVdpdGhBY3Rpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBpc0xvYWRpbmchOiBib29sZWFuO1xyXG4gIGlzU3VtbWFyaXplZCE6IGJvb2xlYW47XHJcbiAgaXNFZGl0ZWQhOiBib29sZWFuO1xyXG4gIHJlbWFpbmluZ1F1b3RhTWVzc2FnZVZpc2libGUhOiBib29sZWFuO1xyXG4gIHF1b3RhTGVmdCE6IG51bWJlcjtcclxuICBtYXhDaGFyTGVuZ3RoITogbnVtYmVyO1xyXG4gIHN1YnNjcmlwdGlvblVybCE6IHN0cmluZztcclxuICBwcmV2aW91c1dyaXRpbmdTdHlsZSE6IExMTVdyaXRpbmdTdHlsZTtcclxuICBzZWxlY3RlZFdyaXRpbmdTdHlsZSA9IExMTVdyaXRpbmdTdHlsZS5HRU5FUkFMO1xyXG5cclxuICByZWFjaGVkUXVvdGFNZXNzYWdlITogTm90aWZpY2F0aW9uTWVzc2FnZTtcclxuICBleGNlZWRlZExpbWl0TWVzc2FnZSE6IE5vdGlmaWNhdGlvbk1lc3NhZ2U7XHJcbiAgcmVxdWVzdFRpbWVvdXRNZXNzYWdlITogTm90aWZpY2F0aW9uTWVzc2FnZTtcclxuICBkZWZhdWx0RXJyb3JNZXNzYWdlITogTm90aWZpY2F0aW9uTWVzc2FnZTtcclxuXHJcbiAgc3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBpbml0aWFsVGV4dCE6IHN0cmluZztcclxuICBlZGl0ZWRUZXh0ID0gJyc7XHJcbiAgbWFudWFsbHlFZGl0ZWRUZXh0ID0gJyc7XHJcblxyXG4gIGxvY2FsaXphdGlvbktleSE6IHN0cmluZztcclxuXHJcbiAgbGxtQWN0aW9uVHlwZSE6IExMTUFjdGlvbnM7XHJcblxyXG4gIHByaXZhdGUgc2F2ZWRSZXBocmFzaW5nczogeyBzdHlsZTogTExNV3JpdGluZ1N0eWxlLCB0ZXh0OiBzdHJpbmcgfVtdID0gW107XHJcblxyXG4gIHJlYWRvbmx5IGxsbUFjdGlvbnMgPSBMTE1BY3Rpb25zO1xyXG4gIHJlYWRvbmx5IHdyaXRpbmdTdHlsZXMgPSBPYmplY3QudmFsdWVzKExMTVdyaXRpbmdTdHlsZSk7XHJcblxyXG4gIHJlYWRvbmx5IG1lc3NhZ2VzOiBOb3RpZmljYXRpb25NZXNzYWdlW10gPSBbXTtcclxuXHJcbiAgZ2V0IGlzRGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0xvYWRpbmcgfHwgIXRoaXMuaW5pdGlhbFRleHQgfHwgdGhpcy5xdW90YUxlZnQgPCAxO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxsbVNlcnZpY2U6IExMTVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxsbUhlbHBlclNlcnZpY2U6IExMTUhlbHBlclNlcnZpY2UsXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBkYXRhOiBMTE1EYXRhXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubGxtQWN0aW9uVHlwZSA9IHRoaXMuZGF0YS5hY3Rpb247XHJcbiAgICB0aGlzLmxvY2FsaXphdGlvbktleSA9IGBMTE0uJHt0aGlzLmxsbUFjdGlvblR5cGV9X01PREFMLmBcclxuICAgIHRoaXMuaW5pdGlhbFRleHQgPSB0aGlzLmRhdGEudGV4dDtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uVXJsID0gdGhpcy5sbG1TZXJ2aWNlLmxsbUNvbmZpZ3VyYXRpb24uc3Vic2NyaXB0aW9uVXJsO1xyXG4gICAgdGhpcy5tYXhDaGFyTGVuZ3RoID0gdGhpcy5sbG1TZXJ2aWNlLmxsbUNvbmZpZ3VyYXRpb24ubWF4Q2hhckxlbmd0aDtcclxuXHJcbiAgICB0aGlzLnJlZnJlc2hRdW90YSgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VNZXNzYWdlKG1zZzogTm90aWZpY2F0aW9uTWVzc2FnZSk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm1lc3NhZ2VzPy5maW5kSW5kZXgoKG1lc3NhZ2UpID0+IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpID09PSBKU09OLnN0cmluZ2lmeShtc2cpKTtcclxuICAgIFxyXG4gICAgaWYgKGluZGV4IHx8IGluZGV4ID09PSAwKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrUmVwaHJhc2VkVGV4dFNhdmVzKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC52YWx1ZSAhPT0gdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZSkge1xyXG4gICAgICB0aGlzLnByZXZpb3VzV3JpdGluZ1N0eWxlID0gdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZSA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNlbGVjdGVkV3JpdGluZ1N0eWxlU2F2ZSA9IHRoaXMuc2F2ZWRSZXBocmFzaW5ncy5maW5kKChyZXBocmFzaW5nKSA9PiByZXBocmFzaW5nLnN0eWxlID09PSB0aGlzLnNlbGVjdGVkV3JpdGluZ1N0eWxlKTtcclxuICAgIGNvbnN0IHByZXZpb3VzV3JpdGluZ1N0eWxlU2F2ZSA9IHRoaXMuc2F2ZWRSZXBocmFzaW5ncy5maW5kKChzYXZlKSA9PiBzYXZlLnN0eWxlID09PSB0aGlzLnByZXZpb3VzV3JpdGluZ1N0eWxlKTtcclxuICAgIFxyXG4gICAgaWYgKHByZXZpb3VzV3JpdGluZ1N0eWxlU2F2ZSkge1xyXG4gICAgICBwcmV2aW91c1dyaXRpbmdTdHlsZVNhdmUudGV4dCA9IHRoaXMuZWRpdGVkVGV4dCAhPT0gJycgPyB0aGlzLmVkaXRlZFRleHQgOiB0aGlzLmluaXRpYWxUZXh0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zYXZlZFJlcGhyYXNpbmdzLnB1c2goeyBzdHlsZTogdGhpcy5wcmV2aW91c1dyaXRpbmdTdHlsZSwgdGV4dDogdGhpcy5lZGl0ZWRUZXh0ICE9PSAnJyA/IHRoaXMuZWRpdGVkVGV4dCA6IHRoaXMuaW5pdGlhbFRleHQgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHRoaXMuZWRpdGVkVGV4dCA9IHNlbGVjdGVkV3JpdGluZ1N0eWxlU2F2ZT8udGV4dCA/PyB0aGlzLmluaXRpYWxUZXh0O1xyXG4gICAgdGhpcy5tYW51YWxseUVkaXRlZFRleHQgPSAnJztcclxuXHJcbiAgICB0aGlzLmNoZWNrVGV4dExpbWl0KCk7XHJcbiAgfVxyXG5cclxuICBnZXRFZGl0ZWRUZXh0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIGlmICh0aGlzLmxsbUFjdGlvblR5cGUgPT09IExMTUFjdGlvbnMuUkVQSFJBU0UpIHtcclxuICAgICAgdGhpcy53cml0aW5nU3R5bGVQbGF1c2libGVFdmVudCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdW1tYXJ5UGxhdXNpYmxlRXZlbnQoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0UmVxdWVzdCgpO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHRleHRFZGl0RXZlbnQodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCA9IHRleHQ7XHJcbiAgICB0aGlzLmluaXRpYWxUZXh0ID0gdGV4dDtcclxuICAgIHRoaXMuZWRpdGVkVGV4dCA9ICcnO1xyXG5cclxuICAgIHRoaXMuY2hlY2tUZXh0TGltaXQoKTtcclxuICB9XHJcblxyXG4gIGNvcHlQbGF1c2libGVFdmVudCgpOiB2b2lkIHtcclxuICAgIFBsYXVzaWJsZUhlbHBlci5jdXN0b21FdmVudCh0aGlzLmxsbUFjdGlvblR5cGUudG9Mb3dlckNhc2UoKSwgeyBhY3Rpb246ICdjb3B5JyB9KTtcclxuICB9XHJcbiAgXHJcbiAgZGlzbGlrZVBsYXVzaWJsZUV2ZW50KCk6IHZvaWQge1xyXG4gICAgUGxhdXNpYmxlSGVscGVyLmN1c3RvbUV2ZW50KHRoaXMubGxtQWN0aW9uVHlwZS50b0xvd2VyQ2FzZSgpLCB7IGFjdGlvbjogJ2Rpc2xpa2UnIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja1RleHRMaW1pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGxpbWl0ID0gdGhpcy5tYXhDaGFyTGVuZ3RoO1xyXG4gICAgY29uc3QgdGV4dHMgPSBbdGhpcy5pbml0aWFsVGV4dCwgdGhpcy5tYW51YWxseUVkaXRlZFRleHQsIHRoaXMuZWRpdGVkVGV4dF07XHJcbiAgICBjb25zdCBsb25nZXN0VGV4dCA9IHRoaXMuZWRpdGVkVGV4dCAmJiAhdGhpcy5tYW51YWxseUVkaXRlZFRleHQgPyB0aGlzLmVkaXRlZFRleHQgOiB0ZXh0cy5yZWR1Y2UoKGEsIGIpID0+IGEubGVuZ3RoID4gYi5sZW5ndGggPyBhIDogYik7XHJcbiAgXHJcbiAgICBpZiAobG9uZ2VzdFRleHQubGVuZ3RoID4gbGltaXQpIHtcclxuICAgICAgaWYgKHRoaXMuZXhjZWVkZWRMaW1pdE1lc3NhZ2UpIHtcclxuICAgICAgICB0aGlzLmNsb3NlTWVzc2FnZSh0aGlzLmV4Y2VlZGVkTGltaXRNZXNzYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5leGNlZWRlZExpbWl0TWVzc2FnZSA9IHRoaXMubGxtSGVscGVyU2VydmljZS5nZXRFeGNlZWRlZExpbWl0TWVzc2FnZShsb25nZXN0VGV4dC5sZW5ndGgpO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnB1c2godGhpcy5leGNlZWRlZExpbWl0TWVzc2FnZSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSAgXHJcblxyXG4gICAgdGhpcy5jbG9zZU1lc3NhZ2UodGhpcy5leGNlZWRlZExpbWl0TWVzc2FnZSk7XHJcbiAgfSAgXHJcblxyXG4gIHByaXZhdGUgd3JpdGluZ1N0eWxlUGxhdXNpYmxlRXZlbnQoKTogdm9pZCB7XHJcbiAgICBQbGF1c2libGVIZWxwZXIuY3VzdG9tRXZlbnQodGhpcy5sbG1BY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCksIHsgd3JpdGluZ1N0eWxlOiB0aGlzLnNlbGVjdGVkV3JpdGluZ1N0eWxlIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdW1tYXJ5UGxhdXNpYmxlRXZlbnQoKTogdm9pZCB7XHJcbiAgICBQbGF1c2libGVIZWxwZXIuY3VzdG9tRXZlbnQodGhpcy5sbG1BY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCksIHsgYWN0aW9uOiAnc3VtbWFyeScgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlZnJlc2hRdW90YShkZWNyZWFzZT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMubGxtSGVscGVyU2VydmljZS5nZXRSZW1haW5pbmdRdW90YShkZWNyZWFzZSkuc3Vic2NyaWJlKChyZW1haW5pbmdRdW90YSkgPT4ge1xyXG4gICAgICB0aGlzLnF1b3RhTGVmdCA9IHJlbWFpbmluZ1F1b3RhO1xyXG4gICAgICB0aGlzLnNldFF1b3RhTWVzc2FnZSgpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0UXVvdGFNZXNzYWdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucXVvdGFMZWZ0IDw9IHRoaXMubGxtSGVscGVyU2VydmljZS50cmlhbFJlcXVlc3RDb3VudCkge1xyXG4gICAgICB0aGlzLnJlbWFpbmluZ1F1b3RhTWVzc2FnZVZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnF1b3RhTGVmdCA8IDEpIHtcclxuICAgICAgdGhpcy5yZWFjaGVkUXVvdGFNZXNzYWdlID0gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldFJlYWNoZWRRdW90YU1lc3NhZ2UoKTtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKHRoaXMucmVhY2hlZFF1b3RhTWVzc2FnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJlcXVlc3QoKTogU3Vic2NyaXB0aW9uIHtcclxuICAgIGxldCB0ZXh0ID1cclxuICAgICAgdGhpcy5tYW51YWxseUVkaXRlZFRleHQgIT09ICcnXHJcbiAgICAgICAgPyB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dFxyXG4gICAgICAgIDogdGhpcy5pbml0aWFsVGV4dDtcclxuXHJcbiAgICBpZiAodGV4dC5sZW5ndGggPiB0aGlzLm1heENoYXJMZW5ndGgpIHtcclxuICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIHRoaXMubWF4Q2hhckxlbmd0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWV0aG9kID1cclxuICAgICAgdGhpcy5sbG1BY3Rpb25UeXBlID09PSBMTE1BY3Rpb25zLlJFUEhSQVNFXHJcbiAgICAgICAgPyB0aGlzLmxsbVNlcnZpY2UucmVwaHJhc2UoeyB0ZXh0OiB0ZXh0LCBsYW5ndWFnZTogdGhpcy5kYXRhLmxhbmd1YWdlLCBzdHlsZTogdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZSB9KVxyXG4gICAgICAgIDogdGhpcy5sbG1TZXJ2aWNlLnN1bW1hcml6ZSh7IHRleHQ6IHRleHQsIGxhbmd1YWdlOiB0aGlzLmRhdGEubGFuZ3VhZ2UgfSk7XHJcblxyXG4gICAgcmV0dXJuIG1ldGhvZFxyXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc0xvYWRpbmcgPSBmYWxzZSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuZ2V0UmVxdWVzdENhbGxiYWNrKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSZXF1ZXN0Q2FsbGJhY2soKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2U6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmxsbUFjdGlvblR5cGUgPT09IHRoaXMubGxtQWN0aW9ucy5TVU1NQVJZKSB7XHJcbiAgICAgICAgICB0aGlzLmlzU3VtbWFyaXplZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuZWRpdGVkVGV4dCA9IHJlc3BvbnNlO1xyXG4gICAgICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID0gJyc7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0RXJyb3JNZXNzYWdlID0gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldERlZmF1bHRFcnJvck1lc3NhZ2UoKTtcclxuICAgICAgICB0aGlzLmNsb3NlTWVzc2FnZSh0aGlzLmRlZmF1bHRFcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VNZXNzYWdlKHRoaXMucmVxdWVzdFRpbWVvdXRNZXNzYWdlKTtcclxuICAgICAgICB0aGlzLmlzRWRpdGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hRdW90YSh0cnVlKTtcclxuICAgICAgICB0aGlzLmNoZWNrVGV4dExpbWl0KCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gRVJST1JfQ09ERVMuVElNRU9VVCkge1xyXG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VGltZW91dE1lc3NhZ2UgPSB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0UmVxdWVzdFRpbWVvdXRNZXNzYWdlKHRoaXMubGxtQWN0aW9uVHlwZSk7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2godGhpcy5yZXF1ZXN0VGltZW91dE1lc3NhZ2UpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKHRoaXMuZGVmYXVsdEVycm9yTWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3sgbG9jYWxpemF0aW9uS2V5ICsgXCJUSVRMRVwiIHwgdHJhbnNsYXRlIH19PC9oMT5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPHA+e3sgbG9jYWxpemF0aW9uS2V5ICsgXCJERVNDUklQVElPTlwiIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuICA8bGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZSAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtZXNzYWdlc1wiIFttZXNzYWdlXT1cIm1lc3NhZ2VcIiAoY2xvc2VDbGlja2VkKT1cImNsb3NlTWVzc2FnZShtZXNzYWdlKVwiPjwvbGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZT5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxsbUFjdGlvblR5cGUgPT09IGxsbUFjdGlvbnMuUkVQSFJBU0VcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwidy1mdWxsIGxsbS13cml0aW5nLXN0eWxlLXNlbGVjdFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgJ0xMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy5USVRMRScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgW2Rpc2FibGVkXT1cImlzTG9hZGluZ1wiIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hlY2tSZXBocmFzZWRUZXh0U2F2ZXMoJGV2ZW50KVwiIFt2YWx1ZV09XCJzZWxlY3RlZFdyaXRpbmdTdHlsZVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdHlsZSBvZiB3cml0aW5nU3R5bGVzXCIgW3ZhbHVlXT1cInN0eWxlXCI+XHJcbiAgICAgICAgICB7eyAnTExNLlJFUEhSQVNFX01PREFMLldSSVRJTkdfU1RZTEVTLicgKyAoc3R5bGUgfCB1cHBlcmNhc2UpIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIFxyXG4gICAgPHAgY2xhc3M9XCJsbG0td3JpdGluZy1zdHlsZSB0ZXh0LW0tc2VtaS1ib2xkXCI+e3tcclxuICAgICAgICBcIkxMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy5TUEVDSUZJQ19TVFlMRVwiIHwgdHJhbnNsYXRlIDogXHJcbiAgICAgICAgeyBzdHlsZTogJ0xMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy4nICsgKHNlbGVjdGVkV3JpdGluZ1N0eWxlIHwgdXBwZXJjYXNlKSB8IHRyYW5zbGF0ZSB9IFxyXG4gICAgICB9fVxyXG4gICAgICA8c3BhblxyXG4gICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgaW5mby1pY29uXCJcclxuICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJtdWx0aWxpbmUtdG9vbHRpcFwiXHJcbiAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBcclxuICAgICAgICBbbWF0VG9vbHRpcF09XCInTExNLlJFUEhSQVNFX01PREFMLldSSVRJTkdfU1RZTEVTLlRPT0xUSVBfJyArIChzZWxlY3RlZFdyaXRpbmdTdHlsZSB8IHVwcGVyY2FzZSkgfCB0cmFuc2xhdGVcIiBcclxuICAgICAgPlxyXG4gICAgICAgIGluZm9cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bGliLWxsbS10ZXh0YXJlYSBbdGV4dF09XCJlZGl0ZWRUZXh0ICE9PSAnJyA/IGVkaXRlZFRleHQgOiBpbml0aWFsVGV4dFwiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcgfHwgIXF1b3RhTGVmdFwiIFthY3Rpb25CdXR0b25zRGlzYWJsZWRdPVwiIWlzRWRpdGVkXCIgKHRleHRFZGl0RXZlbnQpPVwidGV4dEVkaXRFdmVudCgkZXZlbnQpXCIgKGNvcHlFdmVudCk9XCJjb3B5UGxhdXNpYmxlRXZlbnQoKVwiIChkaXNsaWtlRXZlbnQpPVwiZGlzbGlrZVBsYXVzaWJsZUV2ZW50KClcIj48L2xpYi1sbG0tdGV4dGFyZWE+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibGxtLWFjdGlvbnMtd3JhcHBlclwiIG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2ICpuZ0lmPVwicmVtYWluaW5nUXVvdGFNZXNzYWdlVmlzaWJsZVwiIFtpbm5lckhUTUxdPVwibG9jYWxpemF0aW9uS2V5ICsgJ0xJTUlUJyB8IHRyYW5zbGF0ZTogeyBsaW1pdDogcXVvdGFMZWZ0LCBzdWJzY3JpcHRpb25Vcmw6IHN1YnNjcmlwdGlvblVybCB9XCI+PC9kaXY+XHJcblxyXG4gIDxkaXYgW2NsYXNzLnctZnVsbF09XCIhcmVtYWluaW5nUXVvdGFNZXNzYWdlVmlzaWJsZVwiIGNsYXNzPVwibGxtLWFjdGlvbnNcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgY2xvc2VCdXR0b25cIiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIHt7IGxvY2FsaXphdGlvbktleSArIFwiQ0FOQ0VMXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY2xvc2VCdXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIj5cclxuICAgICAgICB7eyBsb2NhbGl6YXRpb25LZXkgKyBcIkNMT1NFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgIChjbGljayk9XCJnZXRFZGl0ZWRUZXh0KClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwibGxtQWN0aW9uVHlwZSA9PT0gbGxtQWN0aW9ucy5TVU1NQVJZOyBlbHNlIHJlcGhyYXNlQWN0aW9uXCI+XHJcbiAgICAgICAge3tcclxuICAgICAgICAgICghaXNTdW1tYXJpemVkXHJcbiAgICAgICAgICAgID8gXCJMTE0uU1VNTUFSWV9NT0RBTC5BQ1RJT05cIlxyXG4gICAgICAgICAgICA6IFwiTExNLlNVTU1BUllfTU9EQUwuUkVHRU5FUkFURVwiXHJcbiAgICAgICAgICApIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgfX1cclxuICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNyZXBocmFzZUFjdGlvbj5cclxuICAgICAgICB7eyBsb2NhbGl6YXRpb25LZXkgKyBcIkFDVElPTlwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciAqbmdJZj1cImlzTG9hZGluZ1wiIFtkaWFtZXRlcl09XCIyMFwiIGNvbG9yPVwiYWNjZW50XCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
341
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL2NvbXBvbmVudHMvbGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vY29tcG9uZW50cy9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zL2xsbS10ZXh0YXJlYS13aXRoLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBZ0IsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ05wRSx3REFBMEg7SUFBdkMscVJBQWdCLCtCQUFxQixLQUFDO0lBQUMsaUJBQStCOzs7SUFBMUYsb0NBQW1COzs7SUFNNUUsc0NBQWdFO0lBQzlELFlBQ0Y7OztJQUFBLGlCQUFhOzs7SUFGbUMsZ0NBQWU7SUFDN0QsY0FDRjtJQURFLDRIQUNGOzs7O0lBTk4sNkJBQTREO0lBRXhELEFBREYsMENBQTRGLGdCQUMvRTtJQUFBLFlBQTJEOztJQUFBLGlC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LGNBQTJDO1lBQTNDLDBFQUEyQztZQUUzRCxlQUFpRDtZQUFqRCxnRkFBaUQ7WUFFRixlQUFXO1lBQVgsc0NBQVc7WUFFOUMsY0FBMkM7WUFBM0Msb0VBQTJDO1lBeUJ4QyxjQUFxRDtZQUFzQyxBQUFyQyxBQUF0RCwrRUFBcUQsNkNBQXFDLHdDQUFvQztZQUcxSSxlQUFrQztZQUFsQyx1REFBa0M7WUFFbkMsY0FBOEM7WUFBOUMsMkRBQThDO1lBQ3hDLGNBQWlCO1lBQUEsQUFBakIsb0NBQWlCLDRCQUFnQjtZQWN4QyxlQUF1QjtZQUF2Qix5Q0FBdUI7WUFFaEIsY0FBNEM7WUFBQSxBQUE1QyxtRUFBNEMsK0JBQW1CO1lBWXhELGVBQWU7WUFBZixvQ0FBZTs7O2lGRDlDdEIsK0JBQStCO2NBTDNDLFNBQVM7MkJBQ0UsK0JBQStCOztzQkE0Q3RDLE1BQU07dUJBQUMsZUFBZTs7a0ZBeENkLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmluYWxpemUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRVJST1JfQ09ERVMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vbm90aWZpY2F0aW9uLW1lc3NhZ2UnO1xyXG5pbXBvcnQgeyBQbGF1c2libGVIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9wbGF1c2libGUnO1xyXG5pbXBvcnQgeyBMTE1BY3Rpb25zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xsbS1hY3Rpb25zLmVudW0nO1xyXG5pbXBvcnQgeyBMTE1EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xsbS1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgTExNV3JpdGluZ1N0eWxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xsbS13cml0aW5nLXN0eWxlLmVudW0nO1xyXG5pbXBvcnQgeyBMTE1IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGxtLWhlbHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTExNU2VydmljZSB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LXNlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxsbS10ZXh0YXJlYS13aXRoLWFjdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIExMTVRleHRhcmVhV2l0aEFjdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGlzTG9hZGluZyE6IGJvb2xlYW47XHJcbiAgaXNTdW1tYXJpemVkITogYm9vbGVhbjtcclxuICBpc0VkaXRlZCE6IGJvb2xlYW47XHJcbiAgcmVtYWluaW5nUXVvdGFNZXNzYWdlVmlzaWJsZSE6IGJvb2xlYW47XHJcbiAgcXVvdGFMZWZ0ITogbnVtYmVyO1xyXG4gIG1heENoYXJMZW5ndGghOiBudW1iZXI7XHJcbiAgc3Vic2NyaXB0aW9uVXJsITogc3RyaW5nO1xyXG4gIHByZXZpb3VzV3JpdGluZ1N0eWxlITogTExNV3JpdGluZ1N0eWxlO1xyXG4gIHNlbGVjdGVkV3JpdGluZ1N0eWxlID0gTExNV3JpdGluZ1N0eWxlLkdFTkVSQUw7XHJcblxyXG4gIHJlYWNoZWRRdW90YU1lc3NhZ2UhOiBOb3RpZmljYXRpb25NZXNzYWdlO1xyXG4gIGV4Y2VlZGVkTGltaXRNZXNzYWdlITogTm90aWZpY2F0aW9uTWVzc2FnZTtcclxuICByZXF1ZXN0VGltZW91dE1lc3NhZ2UhOiBOb3RpZmljYXRpb25NZXNzYWdlO1xyXG4gIGRlZmF1bHRFcnJvck1lc3NhZ2UhOiBOb3RpZmljYXRpb25NZXNzYWdlO1xyXG5cclxuICBzdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGluaXRpYWxUZXh0ITogc3RyaW5nO1xyXG4gIGVkaXRlZFRleHQgPSAnJztcclxuICBtYW51YWxseUVkaXRlZFRleHQgPSAnJztcclxuXHJcbiAgbG9jYWxpemF0aW9uS2V5ITogc3RyaW5nO1xyXG5cclxuICBsbG1BY3Rpb25UeXBlITogTExNQWN0aW9ucztcclxuXHJcbiAgcHJpdmF0ZSBzYXZlZFJlcGhyYXNpbmdzOiB7IHN0eWxlOiBMTE1Xcml0aW5nU3R5bGUsIHRleHQ6IHN0cmluZyB9W10gPSBbXTtcclxuXHJcbiAgcmVhZG9ubHkgbGxtQWN0aW9ucyA9IExMTUFjdGlvbnM7XHJcbiAgcmVhZG9ubHkgd3JpdGluZ1N0eWxlcyA9IE9iamVjdC52YWx1ZXMoTExNV3JpdGluZ1N0eWxlKTtcclxuXHJcbiAgcmVhZG9ubHkgbWVzc2FnZXM6IE5vdGlmaWNhdGlvbk1lc3NhZ2VbXSA9IFtdO1xyXG5cclxuICBnZXQgaXNEaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZyB8fCAhdGhpcy5pbml0aWFsVGV4dCB8fCB0aGlzLnF1b3RhTGVmdCA8IDE7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGxtU2VydmljZTogTExNU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGxtSGVscGVyU2VydmljZTogTExNSGVscGVyU2VydmljZSxcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIGRhdGE6IExMTURhdGFcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0SW5pdGlhbFRleHQoKTtcclxuXHJcbiAgfVxyXG5cclxuICBjbG9zZU1lc3NhZ2UobXNnOiBOb3RpZmljYXRpb25NZXNzYWdlKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMubWVzc2FnZXM/LmZpbmRJbmRleCgobWVzc2FnZSkgPT4gSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkgPT09IEpTT04uc3RyaW5naWZ5KG1zZykpO1xyXG5cclxuICAgIGlmIChpbmRleCB8fCBpbmRleCA9PT0gMCkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja1JlcGhyYXNlZFRleHRTYXZlcyhldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQudmFsdWUgIT09IHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGUpIHtcclxuICAgICAgdGhpcy5wcmV2aW91c1dyaXRpbmdTdHlsZSA9IHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGU7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGUgPSBldmVudC52YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3RlZFdyaXRpbmdTdHlsZVNhdmUgPSB0aGlzLnNhdmVkUmVwaHJhc2luZ3MuZmluZCgocmVwaHJhc2luZykgPT4gcmVwaHJhc2luZy5zdHlsZSA9PT0gdGhpcy5zZWxlY3RlZFdyaXRpbmdTdHlsZSk7XHJcbiAgICBjb25zdCBwcmV2aW91c1dyaXRpbmdTdHlsZVNhdmUgPSB0aGlzLnNhdmVkUmVwaHJhc2luZ3MuZmluZCgoc2F2ZSkgPT4gc2F2ZS5zdHlsZSA9PT0gdGhpcy5wcmV2aW91c1dyaXRpbmdTdHlsZSk7XHJcblxyXG4gICAgaWYgKHByZXZpb3VzV3JpdGluZ1N0eWxlU2F2ZSkge1xyXG4gICAgICBwcmV2aW91c1dyaXRpbmdTdHlsZVNhdmUudGV4dCA9IHRoaXMuZWRpdGVkVGV4dCAhPT0gJycgPyB0aGlzLmVkaXRlZFRleHQgOiB0aGlzLmluaXRpYWxUZXh0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zYXZlZFJlcGhyYXNpbmdzLnB1c2goeyBzdHlsZTogdGhpcy5wcmV2aW91c1dyaXRpbmdTdHlsZSwgdGV4dDogdGhpcy5lZGl0ZWRUZXh0ICE9PSAnJyA/IHRoaXMuZWRpdGVkVGV4dCA6IHRoaXMuaW5pdGlhbFRleHQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5lZGl0ZWRUZXh0ID0gc2VsZWN0ZWRXcml0aW5nU3R5bGVTYXZlPy50ZXh0ID8/IHRoaXMuaW5pdGlhbFRleHQ7XHJcbiAgICB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCA9ICcnO1xyXG5cclxuICAgIHRoaXMuY2hlY2tUZXh0TGltaXQoKTtcclxuICB9XHJcblxyXG4gIGdldEVkaXRlZFRleHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMubGxtQWN0aW9uVHlwZSA9PT0gTExNQWN0aW9ucy5SRVBIUkFTRSkge1xyXG4gICAgICB0aGlzLndyaXRpbmdTdHlsZVBsYXVzaWJsZUV2ZW50KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN1bW1hcnlQbGF1c2libGVFdmVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5nZXRSZXF1ZXN0KCk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgdGV4dEVkaXRFdmVudCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID0gdGV4dDtcclxuICAgIHRoaXMuaW5pdGlhbFRleHQgPSB0ZXh0O1xyXG4gICAgdGhpcy5lZGl0ZWRUZXh0ID0gJyc7XHJcblxyXG4gICAgdGhpcy5jaGVja1RleHRMaW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgY29weVBsYXVzaWJsZUV2ZW50KCk6IHZvaWQge1xyXG4gICAgUGxhdXNpYmxlSGVscGVyLmN1c3RvbUV2ZW50KHRoaXMubGxtQWN0aW9uVHlwZS50b0xvd2VyQ2FzZSgpLCB7IGFjdGlvbjogJ2NvcHknIH0pO1xyXG4gIH1cclxuXHJcbiAgZGlzbGlrZVBsYXVzaWJsZUV2ZW50KCk6IHZvaWQge1xyXG4gICAgUGxhdXNpYmxlSGVscGVyLmN1c3RvbUV2ZW50KHRoaXMubGxtQWN0aW9uVHlwZS50b0xvd2VyQ2FzZSgpLCB7IGFjdGlvbjogJ2Rpc2xpa2UnIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRJbml0aWFsVGV4dCgpIHtcclxuICAgIHRoaXMuZGF0YS50ZXh0LnN1YnNjcmliZSgodGV4dCkgPT4ge1xyXG4gICAgICB0aGlzLmluaXRpYWxUZXh0ID0gdGV4dDtcclxuICAgICAgdGhpcy5sbG1BY3Rpb25UeXBlID0gdGhpcy5kYXRhLmFjdGlvbjtcclxuICAgICAgdGhpcy5sb2NhbGl6YXRpb25LZXkgPSBgTExNLiR7dGhpcy5sbG1BY3Rpb25UeXBlfV9NT0RBTC5gXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uVXJsID0gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmxsbUNvbmZpZ3VyYXRpb24uc3Vic2NyaXB0aW9uVXJsO1xyXG4gICAgICB0aGlzLm1heENoYXJMZW5ndGggPSB0aGlzLmxsbUhlbHBlclNlcnZpY2UubGxtQ29uZmlndXJhdGlvbi5tYXhDaGFyTGVuZ3RoO1xyXG5cclxuICAgICAgdGhpcy5yZWZyZXNoUXVvdGEoKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrVGV4dExpbWl0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbGltaXQgPSB0aGlzLm1heENoYXJMZW5ndGg7XHJcbiAgICBjb25zdCB0ZXh0cyA9IFt0aGlzLmluaXRpYWxUZXh0LCB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCwgdGhpcy5lZGl0ZWRUZXh0XTtcclxuICAgIGNvbnN0IGxvbmdlc3RUZXh0ID0gdGhpcy5lZGl0ZWRUZXh0ICYmICF0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCA/IHRoaXMuZWRpdGVkVGV4dCA6IHRleHRzLnJlZHVjZSgoYSwgYikgPT4gYS5sZW5ndGggPiBiLmxlbmd0aCA/IGEgOiBiKTtcclxuXHJcbiAgICBpZiAobG9uZ2VzdFRleHQubGVuZ3RoID4gbGltaXQpIHtcclxuICAgICAgaWYgKHRoaXMuZXhjZWVkZWRMaW1pdE1lc3NhZ2UpIHtcclxuICAgICAgICB0aGlzLmNsb3NlTWVzc2FnZSh0aGlzLmV4Y2VlZGVkTGltaXRNZXNzYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5leGNlZWRlZExpbWl0TWVzc2FnZSA9IHRoaXMubGxtSGVscGVyU2VydmljZS5nZXRFeGNlZWRlZExpbWl0TWVzc2FnZShsb25nZXN0VGV4dC5sZW5ndGgpO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnB1c2godGhpcy5leGNlZWRlZExpbWl0TWVzc2FnZSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2xvc2VNZXNzYWdlKHRoaXMuZXhjZWVkZWRMaW1pdE1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3cml0aW5nU3R5bGVQbGF1c2libGVFdmVudCgpOiB2b2lkIHtcclxuICAgIFBsYXVzaWJsZUhlbHBlci5jdXN0b21FdmVudCh0aGlzLmxsbUFjdGlvblR5cGUudG9Mb3dlckNhc2UoKSwgeyB3cml0aW5nU3R5bGU6IHRoaXMuc2VsZWN0ZWRXcml0aW5nU3R5bGUgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1bW1hcnlQbGF1c2libGVFdmVudCgpOiB2b2lkIHtcclxuICAgIFBsYXVzaWJsZUhlbHBlci5jdXN0b21FdmVudCh0aGlzLmxsbUFjdGlvblR5cGUudG9Mb3dlckNhc2UoKSwgeyBhY3Rpb246ICdzdW1tYXJ5JyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVmcmVzaFF1b3RhKGRlY3JlYXNlPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldFJlbWFpbmluZ1F1b3RhKGRlY3JlYXNlKS5zdWJzY3JpYmUoKHJlbWFpbmluZ1F1b3RhKSA9PiB7XHJcbiAgICAgIHRoaXMucXVvdGFMZWZ0ID0gcmVtYWluaW5nUXVvdGE7XHJcbiAgICAgIHRoaXMuc2V0UXVvdGFNZXNzYWdlKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRRdW90YU1lc3NhZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5xdW90YUxlZnQgPD0gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLnRyaWFsUmVxdWVzdENvdW50KSB7XHJcbiAgICAgIHRoaXMucmVtYWluaW5nUXVvdGFNZXNzYWdlVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucXVvdGFMZWZ0IDwgMSkge1xyXG4gICAgICB0aGlzLnJlYWNoZWRRdW90YU1lc3NhZ2UgPSB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0UmVhY2hlZFF1b3RhTWVzc2FnZSgpO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VzLnB1c2godGhpcy5yZWFjaGVkUXVvdGFNZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UmVxdWVzdCgpOiBTdWJzY3JpcHRpb24ge1xyXG4gICAgbGV0IHRleHQgPVxyXG4gICAgICB0aGlzLm1hbnVhbGx5RWRpdGVkVGV4dCAhPT0gJydcclxuICAgICAgICA/IHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0XHJcbiAgICAgICAgOiB0aGlzLmluaXRpYWxUZXh0O1xyXG5cclxuICAgIGlmICh0ZXh0Lmxlbmd0aCA+IHRoaXMubWF4Q2hhckxlbmd0aCkge1xyXG4gICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcoMCwgdGhpcy5tYXhDaGFyTGVuZ3RoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtZXRob2QgPVxyXG4gICAgICB0aGlzLmxsbUFjdGlvblR5cGUgPT09IExMTUFjdGlvbnMuUkVQSFJBU0VcclxuICAgICAgICA/IHRoaXMubGxtU2VydmljZS5yZXBocmFzZSh7IHRleHQ6IHRleHQsIGxhbmd1YWdlOiB0aGlzLmRhdGEubGFuZ3VhZ2UsIHN0eWxlOiB0aGlzLnNlbGVjdGVkV3JpdGluZ1N0eWxlIH0pXHJcbiAgICAgICAgOiB0aGlzLmxsbVNlcnZpY2Uuc3VtbWFyaXplKHsgdGV4dDogdGV4dCwgbGFuZ3VhZ2U6IHRoaXMuZGF0YS5sYW5ndWFnZSB9KTtcclxuXHJcbiAgICByZXR1cm4gbWV0aG9kXHJcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5nZXRSZXF1ZXN0Q2FsbGJhY2soKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJlcXVlc3RDYWxsYmFjaygpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMubGxtQWN0aW9uVHlwZSA9PT0gdGhpcy5sbG1BY3Rpb25zLlNVTU1BUlkpIHtcclxuICAgICAgICAgIHRoaXMuaXNTdW1tYXJpemVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZWRpdGVkVGV4dCA9IHJlc3BvbnNlO1xyXG4gICAgICAgIHRoaXMubWFudWFsbHlFZGl0ZWRUZXh0ID0gJyc7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0RXJyb3JNZXNzYWdlID0gdGhpcy5sbG1IZWxwZXJTZXJ2aWNlLmdldERlZmF1bHRFcnJvck1lc3NhZ2UoKTtcclxuICAgICAgICB0aGlzLmNsb3NlTWVzc2FnZSh0aGlzLmRlZmF1bHRFcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VNZXNzYWdlKHRoaXMucmVxdWVzdFRpbWVvdXRNZXNzYWdlKTtcclxuICAgICAgICB0aGlzLmlzRWRpdGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hRdW90YSh0cnVlKTtcclxuICAgICAgICB0aGlzLmNoZWNrVGV4dExpbWl0KCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gRVJST1JfQ09ERVMuVElNRU9VVCkge1xyXG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VGltZW91dE1lc3NhZ2UgPSB0aGlzLmxsbUhlbHBlclNlcnZpY2UuZ2V0UmVxdWVzdFRpbWVvdXRNZXNzYWdlKHRoaXMubGxtQWN0aW9uVHlwZSk7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2godGhpcy5yZXF1ZXN0VGltZW91dE1lc3NhZ2UpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKHRoaXMuZGVmYXVsdEVycm9yTWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3sgbG9jYWxpemF0aW9uS2V5ICsgXCJUSVRMRVwiIHwgdHJhbnNsYXRlIH19PC9oMT5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPHA+e3sgbG9jYWxpemF0aW9uS2V5ICsgXCJERVNDUklQVElPTlwiIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuICA8bGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZSAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtZXNzYWdlc1wiIFttZXNzYWdlXT1cIm1lc3NhZ2VcIiAoY2xvc2VDbGlja2VkKT1cImNsb3NlTWVzc2FnZShtZXNzYWdlKVwiPjwvbGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZT5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxsbUFjdGlvblR5cGUgPT09IGxsbUFjdGlvbnMuUkVQSFJBU0VcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwidy1mdWxsIGxsbS13cml0aW5nLXN0eWxlLXNlbGVjdFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgJ0xMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy5USVRMRScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgW2Rpc2FibGVkXT1cImlzTG9hZGluZ1wiIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hlY2tSZXBocmFzZWRUZXh0U2F2ZXMoJGV2ZW50KVwiIFt2YWx1ZV09XCJzZWxlY3RlZFdyaXRpbmdTdHlsZVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdHlsZSBvZiB3cml0aW5nU3R5bGVzXCIgW3ZhbHVlXT1cInN0eWxlXCI+XHJcbiAgICAgICAgICB7eyAnTExNLlJFUEhSQVNFX01PREFMLldSSVRJTkdfU1RZTEVTLicgKyAoc3R5bGUgfCB1cHBlcmNhc2UpIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIFxyXG4gICAgPHAgY2xhc3M9XCJsbG0td3JpdGluZy1zdHlsZSB0ZXh0LW0tc2VtaS1ib2xkXCI+e3tcclxuICAgICAgICBcIkxMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy5TUEVDSUZJQ19TVFlMRVwiIHwgdHJhbnNsYXRlIDogXHJcbiAgICAgICAgeyBzdHlsZTogJ0xMTS5SRVBIUkFTRV9NT0RBTC5XUklUSU5HX1NUWUxFUy4nICsgKHNlbGVjdGVkV3JpdGluZ1N0eWxlIHwgdXBwZXJjYXNlKSB8IHRyYW5zbGF0ZSB9IFxyXG4gICAgICB9fVxyXG4gICAgICA8c3BhblxyXG4gICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgaW5mby1pY29uXCJcclxuICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJtdWx0aWxpbmUtdG9vbHRpcFwiXHJcbiAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBcclxuICAgICAgICBbbWF0VG9vbHRpcF09XCInTExNLlJFUEhSQVNFX01PREFMLldSSVRJTkdfU1RZTEVTLlRPT0xUSVBfJyArIChzZWxlY3RlZFdyaXRpbmdTdHlsZSB8IHVwcGVyY2FzZSkgfCB0cmFuc2xhdGVcIiBcclxuICAgICAgPlxyXG4gICAgICAgIGluZm9cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bGliLWxsbS10ZXh0YXJlYSBbdGV4dF09XCJlZGl0ZWRUZXh0ICE9PSAnJyA/IGVkaXRlZFRleHQgOiBpbml0aWFsVGV4dFwiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcgfHwgIXF1b3RhTGVmdFwiIFthY3Rpb25CdXR0b25zRGlzYWJsZWRdPVwiIWlzRWRpdGVkXCIgKHRleHRFZGl0RXZlbnQpPVwidGV4dEVkaXRFdmVudCgkZXZlbnQpXCIgKGNvcHlFdmVudCk9XCJjb3B5UGxhdXNpYmxlRXZlbnQoKVwiIChkaXNsaWtlRXZlbnQpPVwiZGlzbGlrZVBsYXVzaWJsZUV2ZW50KClcIj48L2xpYi1sbG0tdGV4dGFyZWE+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibGxtLWFjdGlvbnMtd3JhcHBlclwiIG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2ICpuZ0lmPVwicmVtYWluaW5nUXVvdGFNZXNzYWdlVmlzaWJsZVwiIFtpbm5lckhUTUxdPVwibG9jYWxpemF0aW9uS2V5ICsgJ0xJTUlUJyB8IHRyYW5zbGF0ZTogeyBsaW1pdDogcXVvdGFMZWZ0LCBzdWJzY3JpcHRpb25Vcmw6IHN1YnNjcmlwdGlvblVybCB9XCI+PC9kaXY+XHJcblxyXG4gIDxkaXYgW2NsYXNzLnctZnVsbF09XCIhcmVtYWluaW5nUXVvdGFNZXNzYWdlVmlzaWJsZVwiIGNsYXNzPVwibGxtLWFjdGlvbnNcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJpc0xvYWRpbmc7IGVsc2UgY2xvc2VCdXR0b25cIiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIHt7IGxvY2FsaXphdGlvbktleSArIFwiQ0FOQ0VMXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY2xvc2VCdXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIj5cclxuICAgICAgICB7eyBsb2NhbGl6YXRpb25LZXkgKyBcIkNMT1NFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgIChjbGljayk9XCJnZXRFZGl0ZWRUZXh0KClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwibGxtQWN0aW9uVHlwZSA9PT0gbGxtQWN0aW9ucy5TVU1NQVJZOyBlbHNlIHJlcGhyYXNlQWN0aW9uXCI+XHJcbiAgICAgICAge3tcclxuICAgICAgICAgICghaXNTdW1tYXJpemVkXHJcbiAgICAgICAgICAgID8gXCJMTE0uU1VNTUFSWV9NT0RBTC5BQ1RJT05cIlxyXG4gICAgICAgICAgICA6IFwiTExNLlNVTU1BUllfTU9EQUwuUkVHRU5FUkFURVwiXHJcbiAgICAgICAgICApIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgfX1cclxuICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNyZXBocmFzZUFjdGlvbj5cclxuICAgICAgICB7eyBsb2NhbGl6YXRpb25LZXkgKyBcIkFDVElPTlwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciAqbmdJZj1cImlzTG9hZGluZ1wiIFtkaWFtZXRlcl09XCIyMFwiIGNvbG9yPVwiYWNjZW50XCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -2,6 +2,7 @@ import { Component, Input } from '@angular/core';
2
2
  import { LLMActions } from './models/llm-actions.enum';
3
3
  import { LLMTextareaWithActionsComponent } from './components/llm-textarea-with-actions/llm-textarea-with-actions.component';
4
4
  import * as icons from './icons';
5
+ import { of } from 'rxjs';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/material/dialog";
7
8
  import * as i2 from "../services";
@@ -12,7 +13,7 @@ import * as i6 from "@angular/material/tooltip";
12
13
  import * as i7 from "@ngx-translate/core";
13
14
  export class LLMComponent {
14
15
  get isTextSummarizable() {
15
- return this.text && this.text.length > 100;
16
+ return this.text;
16
17
  }
17
18
  get isTargetLanguageRephrasable() {
18
19
  return !this.rephrasableLanguagesCodeList || (this.language && this.rephrasableLanguagesCodeList.includes(this.languageService.removeRegionFromLanguageCode(this.language)));
@@ -25,12 +26,19 @@ export class LLMComponent {
25
26
  this.iconService.registerIcons(icons);
26
27
  }
27
28
  openLLMModal(action) {
29
+ let textObservable;
30
+ if (!this.text || typeof this.text === "string") {
31
+ textObservable = of(this.text ?? "");
32
+ }
33
+ else {
34
+ textObservable = this.text;
35
+ }
28
36
  this.dialog.open(LLMTextareaWithActionsComponent, {
29
37
  panelClass: 'responsive-dialog',
30
38
  maxWidth: '800px',
31
39
  width: '100%',
32
40
  data: {
33
- text: this.text,
41
+ text: textObservable,
34
42
  language: this.language,
35
43
  action: action
36
44
  }
@@ -86,5 +94,5 @@ export class LLMComponent {
86
94
  }], rephrasableLanguagesCodeList: [{
87
95
  type: Input
88
96
  }] }); })();
89
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LLMComponent, { className: "LLMComponent", filePath: "lib\\llm\\llm.component.ts", lineNumber: 13 }); })();
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUd2RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQztBQUM3SCxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQzs7Ozs7Ozs7O0FBT2pDLE1BQU0sT0FBTyxZQUFZO0lBUXZCLElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksMkJBQTJCO1FBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9LLENBQUM7SUFFRCxZQUNTLE1BQWlCLEVBQ1AsV0FBd0IsRUFDeEIsZUFBeUM7UUFGbkQsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNQLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUEwQjtRQWJuRCxjQUFTLEdBQUcsVUFBVSxDQUFDO1FBZTlCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBa0I7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUU7WUFDaEQsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixRQUFRLEVBQUUsT0FBTztZQUNqQixLQUFLLEVBQUUsTUFBTTtZQUNiLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixNQUFNLEVBQUUsTUFBTTthQUNmO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs2R0FuQ1UsWUFBWTtvRUFBWixZQUFZOztZQ1p6QixpQ0FLQzs7WUFDQyw4QkFBd0M7WUFDMUMsaUJBQVM7WUFHUCxBQURGLHlDQUEwQixhQUN1Rzs7WUFDN0gsaUNBSUM7WUFEQywrSEFBUyx1Q0FBK0IsS0FBQztZQUV6QyxZQUNGOztZQUNGLEFBREUsaUJBQVMsRUFDTDtZQUVOLCtCQUF5STs7WUFDdkksa0NBSUM7WUFEQyxnSUFBUyx3Q0FBZ0MsS0FBQztZQUUxQyxhQUNGOztZQUVKLEFBREUsQUFERSxpQkFBUyxFQUNMLEVBQ0c7OztZQXpCVCxBQUZBLEFBREEsNkNBQTJCLHlEQUNrQiw4QkFFbkI7WUFNckIsZUFBNkI7WUFBQyxBQUE5QiwyQ0FBNkIseUdBQTRGO1lBRzFILGVBQWdDO1lBQWhDLGtEQUFnQztZQUdoQyxjQUNGO1lBREUscUVBQ0Y7WUFHRyxlQUE2QjtZQUFDLEFBQTlCLDJDQUE2QixvSEFBc0c7WUFHcEksZUFBeUM7WUFBekMsMkRBQXlDO1lBR3pDLGNBQ0Y7WUFERSx1RUFDRjs7O2lGRGZTLFlBQVk7Y0FMeEIsU0FBUzsyQkFDRSxTQUFTOzJHQUtWLElBQUk7a0JBQVosS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0csNEJBQTRCO2tCQUFwQyxLQUFLOztrRkFKSyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMTE1BY3Rpb25zIH0gZnJvbSAnLi9tb2RlbHMvbGxtLWFjdGlvbnMuZW51bSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEljb25TZXJ2aWNlLCBMYW5ndWFnZVRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IExMTVRleHRhcmVhV2l0aEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy9sbG0tdGV4dGFyZWEtd2l0aC1hY3Rpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIGljb25zIGZyb20gJy4vaWNvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbGxtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGxtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sbG0uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExMTUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGxhbmd1YWdlITogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGlzTWVudURpc2FibGVkITogYm9vbGVhbjtcclxuICBASW5wdXQoKSByZXBocmFzYWJsZUxhbmd1YWdlc0NvZGVMaXN0OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcmVhZG9ubHkgbGxtQWN0aW9uID0gTExNQWN0aW9ucztcclxuXHJcbiAgZ2V0IGlzVGV4dFN1bW1hcml6YWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRleHQgJiYgdGhpcy50ZXh0Lmxlbmd0aCA+IDEwMDtcclxuICB9XHJcblxyXG4gIGdldCBpc1RhcmdldExhbmd1YWdlUmVwaHJhc2FibGUoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMucmVwaHJhc2FibGVMYW5ndWFnZXNDb2RlTGlzdCB8fCAodGhpcy5sYW5ndWFnZSAmJiB0aGlzLnJlcGhyYXNhYmxlTGFuZ3VhZ2VzQ29kZUxpc3QuaW5jbHVkZXModGhpcy5sYW5ndWFnZVNlcnZpY2UucmVtb3ZlUmVnaW9uRnJvbUxhbmd1YWdlQ29kZSh0aGlzLmxhbmd1YWdlKSkpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGljb25TZXJ2aWNlOiBJY29uU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuaWNvblNlcnZpY2UucmVnaXN0ZXJJY29ucyhpY29ucyk7XHJcbiAgfVxyXG5cclxuICBvcGVuTExNTW9kYWwoYWN0aW9uOiBMTE1BY3Rpb25zKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKExMTVRleHRhcmVhV2l0aEFjdGlvbnNDb21wb25lbnQsIHtcclxuICAgICAgcGFuZWxDbGFzczogJ3Jlc3BvbnNpdmUtZGlhbG9nJyxcclxuICAgICAgbWF4V2lkdGg6ICc4MDBweCcsXHJcbiAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB0ZXh0OiB0aGlzLnRleHQsXHJcbiAgICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UsXHJcbiAgICAgICAgYWN0aW9uOiBhY3Rpb25cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b25cclxuICBbZGlzYWJsZWRdPVwiaXNNZW51RGlzYWJsZWRcIlxyXG4gIFttYXRUb29sdGlwXT1cIidMTE0uTUVOVV9UT09MVElQJyB8IHRyYW5zbGF0ZVwiXHJcbiAgbWF0LWljb24tYnV0dG9uXHJcbiAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxyXG4+XHJcbiAgPG1hdC1pY29uIHN2Z0ljb249XCJsbG1fbWVudVwiPjwvbWF0LWljb24+XHJcbjwvYnV0dG9uPlxyXG5cclxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gIDxkaXYgW21hdFRvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIiBbbWF0VG9vbHRpcF09XCIhaXNUZXh0U3VtbWFyaXphYmxlID8gKCdMTE0uTUVOVV9TVU1NQVJZX0RJU0FCTEVEX1RPT0xUSVAnIHwgdHJhbnNsYXRlKSA6ICcnXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgW2Rpc2FibGVkXT1cIiFpc1RleHRTdW1tYXJpemFibGVcIlxyXG4gICAgICAoY2xpY2spPVwib3BlbkxMTU1vZGFsKGxsbUFjdGlvbi5TVU1NQVJZKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IFwiTExNLlNVTU1BUllcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW21hdFRvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIiBbbWF0VG9vbHRpcF09XCIhaXNUYXJnZXRMYW5ndWFnZVJlcGhyYXNhYmxlID8gKCdMTE0uTUVOVV9SRVBIUkFTRV9ESVNBQkxFRF9UT09MVElQJyB8IHRyYW5zbGF0ZSkgOiAnJ1wiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgIFtkaXNhYmxlZF09XCIhaXNUYXJnZXRMYW5ndWFnZVJlcGhyYXNhYmxlXCJcclxuICAgICAgKGNsaWNrKT1cIm9wZW5MTE1Nb2RhbChsbG1BY3Rpb24uUkVQSFJBU0UpXCJcclxuICAgID5cclxuICAgICAge3sgXCJMTE0uUkVQSFJBU0VcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvbWF0LW1lbnU+XHJcbiJdfQ==
97
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LLMComponent, { className: "LLMComponent", filePath: "lib\\llm\\llm.component.ts", lineNumber: 14 }); })();
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9sbG0vbGxtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUd2RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQztBQUM3SCxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFPdEMsTUFBTSxPQUFPLFlBQVk7SUFRdkIsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLDJCQUEyQjtRQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLDRCQUE0QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvSyxDQUFDO0lBRUQsWUFDUyxNQUFpQixFQUNQLFdBQXdCLEVBQ3hCLGVBQXlDO1FBRm5ELFdBQU0sR0FBTixNQUFNLENBQVc7UUFDUCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBMEI7UUFibkQsY0FBUyxHQUFHLFVBQVUsQ0FBQztRQWU5QixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWtCO1FBQzdCLElBQUksY0FBa0MsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDaEQsY0FBYyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFO1lBQ2hELFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsUUFBUSxFQUFFLE9BQU87WUFDakIsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsTUFBTSxFQUFFLE1BQU07YUFDZjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7NkdBekNVLFlBQVk7b0VBQVosWUFBWTs7WUNiekIsaUNBS0M7O1lBQ0MsOEJBQXdDO1lBQzFDLGlCQUFTO1lBR1AsQUFERix5Q0FBMEIsYUFDdUc7O1lBQzdILGlDQUlDO1lBREMsK0hBQVMsdUNBQStCLEtBQUM7WUFFekMsWUFDRjs7WUFDRixBQURFLGlCQUFTLEVBQ0w7WUFFTiwrQkFBeUk7O1lBQ3ZJLGtDQUlDO1lBREMsZ0lBQVMsd0NBQWdDLEtBQUM7WUFFMUMsYUFDRjs7WUFFSixBQURFLEFBREUsaUJBQVMsRUFDTCxFQUNHOzs7WUF6QlQsQUFGQSxBQURBLDZDQUEyQix5REFDa0IsOEJBRW5CO1lBTXJCLGVBQTZCO1lBQUMsQUFBOUIsMkNBQTZCLHlHQUE0RjtZQUcxSCxlQUFnQztZQUFoQyxrREFBZ0M7WUFHaEMsY0FDRjtZQURFLHFFQUNGO1lBR0csZUFBNkI7WUFBQyxBQUE5QiwyQ0FBNkIsb0hBQXNHO1lBR3BJLGVBQXlDO1lBQXpDLDJEQUF5QztZQUd6QyxjQUNGO1lBREUsdUVBQ0Y7OztpRkRkUyxZQUFZO2NBTHhCLFNBQVM7MkJBQ0UsU0FBUzsyR0FLVixJQUFJO2tCQUFaLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLDRCQUE0QjtrQkFBcEMsS0FBSzs7a0ZBSkssWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTExNQWN0aW9ucyB9IGZyb20gJy4vbW9kZWxzL2xsbS1hY3Rpb25zLmVudW0nO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBJY29uU2VydmljZSwgTGFuZ3VhZ2VUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBMTE1UZXh0YXJlYVdpdGhBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xsbS10ZXh0YXJlYS13aXRoLWFjdGlvbnMvbGxtLXRleHRhcmVhLXdpdGgtYWN0aW9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgKiBhcyBpY29ucyBmcm9tICcuL2ljb25zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxsbScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xsbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGxtLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMTE1Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZyB8IE9ic2VydmFibGU8c3RyaW5nPiB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBsYW5ndWFnZSE6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBpc01lbnVEaXNhYmxlZCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcmVwaHJhc2FibGVMYW5ndWFnZXNDb2RlTGlzdDogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIHJlYWRvbmx5IGxsbUFjdGlvbiA9IExMTUFjdGlvbnM7XHJcblxyXG4gIGdldCBpc1RleHRTdW1tYXJpemFibGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXh0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzVGFyZ2V0TGFuZ3VhZ2VSZXBocmFzYWJsZSgpIHtcclxuICAgIHJldHVybiAhdGhpcy5yZXBocmFzYWJsZUxhbmd1YWdlc0NvZGVMaXN0IHx8ICh0aGlzLmxhbmd1YWdlICYmIHRoaXMucmVwaHJhc2FibGVMYW5ndWFnZXNDb2RlTGlzdC5pbmNsdWRlcyh0aGlzLmxhbmd1YWdlU2VydmljZS5yZW1vdmVSZWdpb25Gcm9tTGFuZ3VhZ2VDb2RlKHRoaXMubGFuZ3VhZ2UpKSk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaWNvblNlcnZpY2U6IEljb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlVHJhbnNsYXRlU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5pY29uU2VydmljZS5yZWdpc3Rlckljb25zKGljb25zKTtcclxuICB9XHJcblxyXG4gIG9wZW5MTE1Nb2RhbChhY3Rpb246IExMTUFjdGlvbnMpOiB2b2lkIHtcclxuICAgIGxldCB0ZXh0T2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICAgaWYgKCF0aGlzLnRleHQgfHwgdHlwZW9mIHRoaXMudGV4dCA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICB0ZXh0T2JzZXJ2YWJsZSA9IG9mKHRoaXMudGV4dCA/PyBcIlwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRleHRPYnNlcnZhYmxlID0gdGhpcy50ZXh0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5kaWFsb2cub3BlbihMTE1UZXh0YXJlYVdpdGhBY3Rpb25zQ29tcG9uZW50LCB7XHJcbiAgICAgIHBhbmVsQ2xhc3M6ICdyZXNwb25zaXZlLWRpYWxvZycsXHJcbiAgICAgIG1heFdpZHRoOiAnODAwcHgnLFxyXG4gICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgdGV4dDogdGV4dE9ic2VydmFibGUsXHJcbiAgICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UsXHJcbiAgICAgICAgYWN0aW9uOiBhY3Rpb25cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b25cclxuICBbZGlzYWJsZWRdPVwiaXNNZW51RGlzYWJsZWRcIlxyXG4gIFttYXRUb29sdGlwXT1cIidMTE0uTUVOVV9UT09MVElQJyB8IHRyYW5zbGF0ZVwiXHJcbiAgbWF0LWljb24tYnV0dG9uXHJcbiAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxyXG4+XHJcbiAgPG1hdC1pY29uIHN2Z0ljb249XCJsbG1fbWVudVwiPjwvbWF0LWljb24+XHJcbjwvYnV0dG9uPlxyXG5cclxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gIDxkaXYgW21hdFRvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIiBbbWF0VG9vbHRpcF09XCIhaXNUZXh0U3VtbWFyaXphYmxlID8gKCdMTE0uTUVOVV9TVU1NQVJZX0RJU0FCTEVEX1RPT0xUSVAnIHwgdHJhbnNsYXRlKSA6ICcnXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgW2Rpc2FibGVkXT1cIiFpc1RleHRTdW1tYXJpemFibGVcIlxyXG4gICAgICAoY2xpY2spPVwib3BlbkxMTU1vZGFsKGxsbUFjdGlvbi5TVU1NQVJZKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IFwiTExNLlNVTU1BUllcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW21hdFRvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIiBbbWF0VG9vbHRpcF09XCIhaXNUYXJnZXRMYW5ndWFnZVJlcGhyYXNhYmxlID8gKCdMTE0uTUVOVV9SRVBIUkFTRV9ESVNBQkxFRF9UT09MVElQJyB8IHRyYW5zbGF0ZSkgOiAnJ1wiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgIFtkaXNhYmxlZF09XCIhaXNUYXJnZXRMYW5ndWFnZVJlcGhyYXNhYmxlXCJcclxuICAgICAgKGNsaWNrKT1cIm9wZW5MTE1Nb2RhbChsbG1BY3Rpb24uUkVQSFJBU0UpXCJcclxuICAgID5cclxuICAgICAge3sgXCJMTE0uUkVQSFJBU0VcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvbWF0LW1lbnU+XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLWNvbmZpZ3VyYXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL21vZGVscy9sbG0tY29uZmlndXJhdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBMTE1Db25maWd1cmF0aW9uIHtcclxuICBzZXJ2aWNlVXJsOiBzdHJpbmc7XHJcbiAgc3Vic2NyaXB0aW9uVXJsOiBzdHJpbmc7XHJcbiAgc3VwcG9ydEVtYWlsOiBzdHJpbmc7XHJcbiAgeEFwaUtleTogc3RyaW5nO1xyXG4gIGFwcElkOiBzdHJpbmc7XHJcbiAgbWF4Q2hhckxlbmd0aDogbnVtYmVyO1xyXG4gIHVzZUxvY2FsUXVvdGE6IGJvb2xlYW47XHJcbn0iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLWNvbmZpZ3VyYXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL21vZGVscy9sbG0tY29uZmlndXJhdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBMTE1Db25maWd1cmF0aW9uIHtcclxuICBzdWJzY3JpcHRpb25Vcmw6IHN0cmluZztcclxuICBzdXBwb3J0RW1haWw6IHN0cmluZztcclxuICBtYXhDaGFyTGVuZ3RoOiBudW1iZXI7XHJcbiAgdXNlTG9jYWxRdW90YTogYm9vbGVhbjtcclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL21vZGVscy9sbG0tZGF0YS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTExNQWN0aW9ucyB9IGZyb20gXCIuL2xsbS1hY3Rpb25zLmVudW1cIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTExNRGF0YSB7XHJcbiAgdGV4dDogc3RyaW5nO1xyXG4gIGxhbmd1YWdlOiBzdHJpbmc7XHJcbiAgYWN0aW9uOiBMTE1BY3Rpb25zO1xyXG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvbGxtL21vZGVscy9sbG0tZGF0YS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IExMTUFjdGlvbnMgfSBmcm9tIFwiLi9sbG0tYWN0aW9ucy5lbnVtXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExMTURhdGEge1xyXG4gIHRleHQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICBsYW5ndWFnZTogc3RyaW5nO1xyXG4gIGFjdGlvbjogTExNQWN0aW9ucztcclxufVxyXG4iXX0=
@@ -1,14 +1,14 @@
1
- import { Injectable } from '@angular/core';
2
- import { NotificationMessageType } from '../../notification-message';
3
- import { QuotaType } from '../../services';
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { QuotaType } from '@tilde-nlp/ngx-services';
4
3
  import { catchError, map, of } from 'rxjs';
4
+ import { NotificationMessageType } from '../../notification-message/enums/notification-message-type.enum';
5
+ import { LLM_CONFIGURATION_TOKEN } from '../models';
5
6
  import * as i0 from "@angular/core";
6
- import * as i1 from "./llm.service";
7
- import * as i2 from "../../services";
7
+ import * as i1 from "@tilde-nlp/ngx-services";
8
8
  export class LLMHelperService {
9
- constructor(llmService, quotaService) {
10
- this.llmService = llmService;
9
+ constructor(quotaService) {
11
10
  this.quotaService = quotaService;
11
+ this.llmConfiguration = inject(LLM_CONFIGURATION_TOKEN);
12
12
  this.trialRequestCount = 15;
13
13
  this.LLMQuotaLocalStorageKey = 'LLM_QUOTA';
14
14
  }
@@ -16,7 +16,7 @@ export class LLMHelperService {
16
16
  * Returns remaining quota from API. If quota is missing, daily limit is being used from local storage.
17
17
  */
18
18
  getRemainingQuota(decrease) {
19
- if (this.llmService.llmConfiguration.useLocalQuota) {
19
+ if (this.llmConfiguration.useLocalQuota) {
20
20
  return of(this.setQuotaLocalStorageUsage(decrease));
21
21
  }
22
22
  return this.quotaService.getQuotaUsage().pipe(map((response) => {
@@ -34,7 +34,7 @@ export class LLMHelperService {
34
34
  type: NotificationMessageType.WARNING,
35
35
  body: 'ERRORS.MAX_CHAR_LENGTH',
36
36
  localizationParams: {
37
- maxCharLength: this.llmService.llmConfiguration.maxCharLength,
37
+ maxCharLength: this.llmConfiguration.maxCharLength,
38
38
  totalSymbols: totalSymbols
39
39
  },
40
40
  };
@@ -44,7 +44,7 @@ export class LLMHelperService {
44
44
  type: NotificationMessageType.ERROR,
45
45
  body: 'LLM.ERRORS.QUOTA_LIMIT_REACHED',
46
46
  localizationParams: {
47
- subscriptionUrl: this.llmService.llmConfiguration.subscriptionUrl,
47
+ subscriptionUrl: this.llmConfiguration.subscriptionUrl,
48
48
  },
49
49
  };
50
50
  }
@@ -53,7 +53,7 @@ export class LLMHelperService {
53
53
  type: NotificationMessageType.ERROR,
54
54
  body: 'LLM.ERRORS.DEFAULT',
55
55
  localizationParams: {
56
- supportEmail: this.llmService.llmConfiguration.supportEmail
56
+ supportEmail: this.llmConfiguration.supportEmail
57
57
  }
58
58
  };
59
59
  }
@@ -62,7 +62,7 @@ export class LLMHelperService {
62
62
  type: NotificationMessageType.ERROR,
63
63
  body: `LLM.ERRORS.${action}_REQUEST_TIMEOUT`,
64
64
  localizationParams: {
65
- supportEmail: this.llmService.llmConfiguration.supportEmail
65
+ supportEmail: this.llmConfiguration.supportEmail
66
66
  }
67
67
  };
68
68
  }
@@ -90,7 +90,7 @@ export class LLMHelperService {
90
90
  localStorage.setItem(this.LLMQuotaLocalStorageKey, JSON.stringify(trialQuota));
91
91
  return trialQuota.remainingQuota;
92
92
  }
93
- static { this.ɵfac = function LLMHelperService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LLMHelperService)(i0.ɵɵinject(i1.LLMService), i0.ɵɵinject(i2.QuotaService)); }; }
93
+ static { this.ɵfac = function LLMHelperService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LLMHelperService)(i0.ɵɵinject(i1.QuotaService)); }; }
94
94
  static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LLMHelperService, factory: LLMHelperService.ɵfac, providedIn: 'root' }); }
95
95
  }
96
96
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LLMHelperService, [{
@@ -98,5 +98,5 @@ export class LLMHelperService {
98
98
  args: [{
99
99
  providedIn: 'root'
100
100
  }]
101
- }], () => [{ type: i1.LLMService }, { type: i2.QuotaService }], null); })();
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9zZXJ2aWNlcy9sbG0taGVscGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVCLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUYsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQWMsVUFBVSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFNdkQsTUFBTSxPQUFPLGdCQUFnQjtJQUszQixZQUE4QixVQUFzQixFQUFtQixZQUEwQjtRQUFuRSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQW1CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBSnhGLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUVmLDRCQUF1QixHQUFHLFdBQVcsQ0FBQztJQUU2QyxDQUFDO0lBRXJHOztPQUVHO0lBQ0gsaUJBQWlCLENBQUMsUUFBa0I7UUFDbEMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25ELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUMzQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNmLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FB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RCxVQUFVLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQztRQUVwQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFL0UsT0FBTyxVQUFVLENBQUMsY0FBYyxDQUFDO0lBQ25DLENBQUM7aUhBckdVLGdCQUFnQjt1RUFBaEIsZ0JBQWdCLFdBQWhCLGdCQUFnQixtQkFGZixNQUFNOztpRkFFUCxnQkFBZ0I7Y0FINUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlLCBOb3RpZmljYXRpb25NZXNzYWdlVHlwZSB9IGZyb20gJy4uLy4uL25vdGlmaWNhdGlvbi1tZXNzYWdlJztcclxuaW1wb3J0IHsgTExNU2VydmljZSB9IGZyb20gJy4vbGxtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRdW90YVNlcnZpY2UsIFF1b3RhVHlwZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY2F0Y2hFcnJvciwgbWFwLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMTE1BY3Rpb25zIH0gZnJvbSAnLi4vbW9kZWxzL2xsbS1hY3Rpb25zLmVudW0nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTExNSGVscGVyU2VydmljZSB7XHJcbiAgcmVhZG9ubHkgdHJpYWxSZXF1ZXN0Q291bnQgPSAxNTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBMTE1RdW90YUxvY2FsU3RvcmFnZUtleSA9ICdMTE1fUVVPVEEnO1xyXG5cclxuICBjb25zdHJ1Y3RvciAocHJpdmF0ZSByZWFkb25seSBsbG1TZXJ2aWNlOiBMTE1TZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IHF1b3RhU2VydmljZTogUXVvdGFTZXJ2aWNlKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHJlbWFpbmluZyBxdW90YSBmcm9tIEFQSS4gSWYgcXVvdGEgaXMgbWlzc2luZywgZGFpbHkgbGltaXQgaXMgYmVpbmcgdXNlZCBmcm9tIGxvY2FsIHN0b3JhZ2UuXHJcbiAgICovXHJcbiAgZ2V0UmVtYWluaW5nUXVvdGEoZGVjcmVhc2U/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGlmICh0aGlzLmxsbVNlcnZpY2UubGxtQ29uZmlndXJhdGlvbi51c2VMb2NhbFF1b3RhKSB7XHJcbiAgICAgIHJldHVybiBvZih0aGlzLnNldFF1b3RhTG9jYWxTdG9yYWdlVXNhZ2UoZGVjcmVhc2UpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5xdW90YVNlcnZpY2UuZ2V0UXVvdGFVc2FnZSgpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBjb25zdCBxdW90YSA9IHJlc3BvbnNlLnVzYWdlLmZpbmQoKGl0ZW0pID0+IGl0ZW0ucXVvdGFUeXBlID09PSBRdW90YVR5cGUuTExNX1JFUVVFU1RTIHx8IGl0ZW0ucXVvdGFUeXBlID09PSBRdW90YVR5cGUuTEVHQUNZX0xMTV9SRVFVRVNUUyk7XHJcblxyXG4gICAgICAgIGlmICghcXVvdGEpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnNldFF1b3RhTG9jYWxTdG9yYWdlVXNhZ2UoZGVjcmVhc2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHF1b3RhLnF1b3RhUmVtYWluaW5nO1xyXG4gICAgICB9KSwgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuc2V0UXVvdGFMb2NhbFN0b3JhZ2VVc2FnZShkZWNyZWFzZSkpXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBnZXRFeGNlZWRlZExpbWl0TWVzc2FnZSh0b3RhbFN5bWJvbHM6IG51bWJlcik6IE5vdGlmaWNhdGlvbk1lc3NhZ2Uge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogTm90aWZpY2F0aW9uTWVzc2FnZVR5cGUuV0FSTklORyxcclxuICAgICAgYm9keTogJ0VSUk9SUy5NQVhfQ0hBUl9MRU5HVEgnLFxyXG4gICAgICBsb2NhbGl6YXRpb25QYXJhbXM6IHtcclxuICAgICAgICBtYXhDaGFyTGVuZ3RoOiB0aGlzLmxsbVNlcnZpY2UubGxtQ29uZmlndXJhdGlvbi5tYXhDaGFyTGVuZ3RoLFxyXG4gICAgICAgIHRvdGFsU3ltYm9sczogdG90YWxTeW1ib2xzXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVhY2hlZFF1b3RhTWVzc2FnZSgpOiBOb3RpZmljYXRpb25NZXNzYWdlIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvbk1lc3NhZ2VUeXBlLkVSUk9SLFxyXG4gICAgICBib2R5OiAnTExNLkVSUk9SUy5RVU9UQV9MSU1JVF9SRUFDSEVEJyxcclxuICAgICAgbG9jYWxpemF0aW9uUGFyYW1zOiB7XHJcbiAgICAgICAgc3Vic2NyaXB0aW9uVXJsOiB0aGlzLmxsbVNlcnZpY2UubGxtQ29uZmlndXJhdGlvbi5zdWJzY3JpcHRpb25VcmwsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVmYXVsdEVycm9yTWVzc2FnZSgpOiBOb3RpZmljYXRpb25NZXNzYWdlIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvbk1lc3NhZ2VUeXBlLkVSUk9SLFxyXG4gICAgICBib2R5OiAnTExNLkVSUk9SUy5ERUZBVUxUJyxcclxuICAgICAgbG9jYWxpemF0aW9uUGFyYW1zOiB7XHJcbiAgICAgICAgc3VwcG9ydEVtYWlsOiB0aGlzLmxsbVNlcnZpY2UubGxtQ29uZmlndXJhdGlvbi5zdXBwb3J0RW1haWxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UmVxdWVzdFRpbWVvdXRNZXNzYWdlKGFjdGlvbjogTExNQWN0aW9ucyk6IE5vdGlmaWNhdGlvbk1lc3NhZ2Uge1xyXG4gICAgcmV0dXJuIHsgXHJcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvbk1lc3NhZ2VUeXBlLkVSUk9SLCBcclxuICAgICAgYm9keTogYExMTS5FUlJPUlMuJHthY3Rpb259X1JFUVVFU1RfVElNRU9VVGAsXHJcbiAgICAgIGxvY2FsaXphdGlvblBhcmFtczogeyBcclxuICAgICAgICBzdXBwb3J0RW1haWw6IHRoaXMubGxtU2VydmljZS5sbG1Db25maWd1cmF0aW9uLnN1cHBvcnRFbWFpbCBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRRdW90YUxvY2FsU3RvcmFnZVVzYWdlKGRlY3JlYXNlPzogYm9vbGVhbik6IG51bWJlciB7XHJcbiAgICBjb25zdCBsb2NhbFN0b3JhZ2VPYmogPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkxMTVF1b3RhTG9jYWxTdG9yYWdlS2V5KTtcclxuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICAgIGxldCB0cmlhbFF1b3RhID0ge1xyXG4gICAgICByZW1haW5pbmdRdW90YTogdGhpcy50cmlhbFJlcXVlc3RDb3VudCxcclxuICAgICAgbGFzdFVzZWRBdDogY3VycmVudERhdGVcclxuICAgIH07XHJcblxyXG4gICAgaWYgKGxvY2FsU3RvcmFnZU9iaikge1xyXG4gICAgICBjb25zdCBwYXJzZWRPYmogPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZU9iaik7XHJcbiAgICAgIHRyaWFsUXVvdGEgPSBwYXJzZWRPYmo7XHJcblxyXG4gICAgICBjb25zdCBsYXN0VXNlZERhdGUgPSBuZXcgRGF0ZSh0cmlhbFF1b3RhLmxhc3RVc2VkQXQpO1xyXG5cclxuICAgICAgLy8gQ2hlY2tpbmcgaWYgdGhlIGxhc3QgdXNlZCBkYXRlIGlzIGZyb20gYSBkaWZmZXJlbnQgZGF5IHRoYW4gdG9kYXlcclxuICAgICAgaWYgKGxhc3RVc2VkRGF0ZS5nZXREYXRlKCkgIT09IGN1cnJlbnREYXRlLmdldERhdGUoKSB8fCBsYXN0VXNlZERhdGUuZ2V0TW9udGgoKSAhPT0gY3VycmVudERhdGUuZ2V0TW9udGgoKSB8fCBsYXN0VXNlZERhdGUuZ2V0RnVsbFllYXIoKSAhPT0gY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSkge1xyXG4gICAgICAgIC8vIFJlc2V0aW5nIHF1b3RhIGZvciB0aGUgbmV3IGRheVxyXG4gICAgICAgIHRyaWFsUXVvdGEucmVtYWluaW5nUXVvdGEgPSB0aGlzLnRyaWFsUmVxdWVzdENvdW50O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZGVjcmVhc2UpIHtcclxuICAgICAgICB0cmlhbFF1b3RhLnJlbWFpbmluZ1F1b3RhIC09IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0cmlhbFF1b3RhLmxhc3RVc2VkQXQgPSBjdXJyZW50RGF0ZTtcclxuXHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkxMTVF1b3RhTG9jYWxTdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeSh0cmlhbFF1b3RhKSk7XHJcblxyXG4gICAgcmV0dXJuIHRyaWFsUXVvdGEucmVtYWluaW5nUXVvdGE7XHJcbiAgfVxyXG59XHJcbiJdfQ==
101
+ }], () => [{ type: i1.QuotaService }], null); })();
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGxtLWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbW1vbi9zcmMvbGliL2xsbS9zZXJ2aWNlcy9sbG0taGVscGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFFMUcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFNcEQsTUFBTSxPQUFPLGdCQUFnQjtJQU0zQixZQUE2QixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUw5QyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNuRCxzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFFZiw0QkFBdUIsR0FBRyxXQUFXLENBQUM7SUFHdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCLENBQUMsUUFBa0I7UUFDbEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2YsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJ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QUFDO1FBRUQsVUFBVSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7UUFFcEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBRS9FLE9BQU8sVUFBVSxDQUFDLGNBQWMsQ0FBQztJQUNuQyxDQUFDO2lIQXZHVSxnQkFBZ0I7dUVBQWhCLGdCQUFnQixXQUFoQixnQkFBZ0IsbUJBRmYsTUFBTTs7aUZBRVAsZ0JBQWdCO2NBSDVCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBRdW90YVNlcnZpY2UsIFF1b3RhVHlwZSB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LXNlcnZpY2VzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlVHlwZSB9IGZyb20gJy4uLy4uL25vdGlmaWNhdGlvbi1tZXNzYWdlL2VudW1zL25vdGlmaWNhdGlvbi1tZXNzYWdlLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi8uLi9ub3RpZmljYXRpb24tbWVzc2FnZS9pbnRlcmZhY2VzL25vdGlmaWNhdGlvbi1tZXNzYWdlLm1vZGVsJztcclxuaW1wb3J0IHsgTExNX0NPTkZJR1VSQVRJT05fVE9LRU4gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBMTE1BY3Rpb25zIH0gZnJvbSAnLi4vbW9kZWxzL2xsbS1hY3Rpb25zLmVudW0nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTExNSGVscGVyU2VydmljZSB7XHJcbiAgcmVhZG9ubHkgbGxtQ29uZmlndXJhdGlvbiA9IGluamVjdChMTE1fQ09ORklHVVJBVElPTl9UT0tFTik7XHJcbiAgcmVhZG9ubHkgdHJpYWxSZXF1ZXN0Q291bnQgPSAxNTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBMTE1RdW90YUxvY2FsU3RvcmFnZUtleSA9ICdMTE1fUVVPVEEnO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHF1b3RhU2VydmljZTogUXVvdGFTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHJlbWFpbmluZyBxdW90YSBmcm9tIEFQSS4gSWYgcXVvdGEgaXMgbWlzc2luZywgZGFpbHkgbGltaXQgaXMgYmVpbmcgdXNlZCBmcm9tIGxvY2FsIHN0b3JhZ2UuXHJcbiAgICovXHJcbiAgZ2V0UmVtYWluaW5nUXVvdGEoZGVjcmVhc2U/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGlmICh0aGlzLmxsbUNvbmZpZ3VyYXRpb24udXNlTG9jYWxRdW90YSkge1xyXG4gICAgICByZXR1cm4gb2YodGhpcy5zZXRRdW90YUxvY2FsU3RvcmFnZVVzYWdlKGRlY3JlYXNlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucXVvdGFTZXJ2aWNlLmdldFF1b3RhVXNhZ2UoKS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcXVvdGEgPSByZXNwb25zZS51c2FnZS5maW5kKChpdGVtKSA9PiBpdGVtLnF1b3RhVHlwZSA9PT0gUXVvdGFUeXBlLkxMTV9SRVFVRVNUUyB8fCBpdGVtLnF1b3RhVHlwZSA9PT0gUXVvdGFUeXBlLkxFR0FDWV9MTE1fUkVRVUVTVFMpO1xyXG5cclxuICAgICAgICBpZiAoIXF1b3RhKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5zZXRRdW90YUxvY2FsU3RvcmFnZVVzYWdlKGRlY3JlYXNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBxdW90YS5xdW90YVJlbWFpbmluZztcclxuICAgICAgfSksIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBvZih0aGlzLnNldFF1b3RhTG9jYWxTdG9yYWdlVXNhZ2UoZGVjcmVhc2UpKVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0RXhjZWVkZWRMaW1pdE1lc3NhZ2UodG90YWxTeW1ib2xzOiBudW1iZXIpOiBOb3RpZmljYXRpb25NZXNzYWdlIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvbk1lc3NhZ2VUeXBlLldBUk5JTkcsXHJcbiAgICAgIGJvZHk6ICdFUlJPUlMuTUFYX0NIQVJfTEVOR1RIJyxcclxuICAgICAgbG9jYWxpemF0aW9uUGFyYW1zOiB7XHJcbiAgICAgICAgbWF4Q2hhckxlbmd0aDogdGhpcy5sbG1Db25maWd1cmF0aW9uLm1heENoYXJMZW5ndGgsXHJcbiAgICAgICAgdG90YWxTeW1ib2xzOiB0b3RhbFN5bWJvbHNcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRSZWFjaGVkUXVvdGFNZXNzYWdlKCk6IE5vdGlmaWNhdGlvbk1lc3NhZ2Uge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogTm90aWZpY2F0aW9uTWVzc2FnZVR5cGUuRVJST1IsXHJcbiAgICAgIGJvZHk6ICdMTE0uRVJST1JTLlFVT1RBX0xJTUlUX1JFQUNIRUQnLFxyXG4gICAgICBsb2NhbGl6YXRpb25QYXJhbXM6IHtcclxuICAgICAgICBzdWJzY3JpcHRpb25Vcmw6IHRoaXMubGxtQ29uZmlndXJhdGlvbi5zdWJzY3JpcHRpb25VcmwsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVmYXVsdEVycm9yTWVzc2FnZSgpOiBOb3RpZmljYXRpb25NZXNzYWdlIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvbk1lc3NhZ2VUeXBlLkVSUk9SLFxyXG4gICAgICBib2R5OiAnTExNLkVSUk9SUy5ERUZBVUxUJyxcclxuICAgICAgbG9jYWxpemF0aW9uUGFyYW1zOiB7XHJcbiAgICAgICAgc3VwcG9ydEVtYWlsOiB0aGlzLmxsbUNvbmZpZ3VyYXRpb24uc3VwcG9ydEVtYWlsXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFJlcXVlc3RUaW1lb3V0TWVzc2FnZShhY3Rpb246IExMTUFjdGlvbnMpOiBOb3RpZmljYXRpb25NZXNzYWdlIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHR5cGU6IE5vdGlmaWNhdGlvbk1lc3NhZ2VUeXBlLkVSUk9SLFxyXG4gICAgICBib2R5OiBgTExNLkVSUk9SUy4ke2FjdGlvbn1fUkVRVUVTVF9USU1FT1VUYCxcclxuICAgICAgbG9jYWxpemF0aW9uUGFyYW1zOiB7XHJcbiAgICAgICAgc3VwcG9ydEVtYWlsOiB0aGlzLmxsbUNvbmZpZ3VyYXRpb24uc3VwcG9ydEVtYWlsXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0UXVvdGFMb2NhbFN0b3JhZ2VVc2FnZShkZWNyZWFzZT86IGJvb2xlYW4pOiBudW1iZXIge1xyXG4gICAgY29uc3QgbG9jYWxTdG9yYWdlT2JqID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5MTE1RdW90YUxvY2FsU3RvcmFnZUtleSk7XHJcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBsZXQgdHJpYWxRdW90YSA9IHtcclxuICAgICAgcmVtYWluaW5nUXVvdGE6IHRoaXMudHJpYWxSZXF1ZXN0Q291bnQsXHJcbiAgICAgIGxhc3RVc2VkQXQ6IGN1cnJlbnREYXRlXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChsb2NhbFN0b3JhZ2VPYmopIHtcclxuICAgICAgY29uc3QgcGFyc2VkT2JqID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2VPYmopO1xyXG4gICAgICB0cmlhbFF1b3RhID0gcGFyc2VkT2JqO1xyXG5cclxuICAgICAgY29uc3QgbGFzdFVzZWREYXRlID0gbmV3IERhdGUodHJpYWxRdW90YS5sYXN0VXNlZEF0KTtcclxuXHJcbiAgICAgIC8vIENoZWNraW5nIGlmIHRoZSBsYXN0IHVzZWQgZGF0ZSBpcyBmcm9tIGEgZGlmZmVyZW50IGRheSB0aGFuIHRvZGF5XHJcbiAgICAgIGlmIChsYXN0VXNlZERhdGUuZ2V0RGF0ZSgpICE9PSBjdXJyZW50RGF0ZS5nZXREYXRlKCkgfHwgbGFzdFVzZWREYXRlLmdldE1vbnRoKCkgIT09IGN1cnJlbnREYXRlLmdldE1vbnRoKCkgfHwgbGFzdFVzZWREYXRlLmdldEZ1bGxZZWFyKCkgIT09IGN1cnJlbnREYXRlLmdldEZ1bGxZZWFyKCkpIHtcclxuICAgICAgICAvLyBSZXNldGluZyBxdW90YSBmb3IgdGhlIG5ldyBkYXlcclxuICAgICAgICB0cmlhbFF1b3RhLnJlbWFpbmluZ1F1b3RhID0gdGhpcy50cmlhbFJlcXVlc3RDb3VudDtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGRlY3JlYXNlKSB7XHJcbiAgICAgICAgdHJpYWxRdW90YS5yZW1haW5pbmdRdW90YSAtPSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdHJpYWxRdW90YS5sYXN0VXNlZEF0ID0gY3VycmVudERhdGU7XHJcblxyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5MTE1RdW90YUxvY2FsU3RvcmFnZUtleSwgSlNPTi5zdHJpbmdpZnkodHJpYWxRdW90YSkpO1xyXG5cclxuICAgIHJldHVybiB0cmlhbFF1b3RhLnJlbWFpbmluZ1F1b3RhO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -4,5 +4,4 @@ export * from './alert';
4
4
  export * from './system';
5
5
  export * from './language-translate';
6
6
  export * from './notification';
7
- export * from './quota';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vaWNvblwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9kb21cIjtcclxuZXhwb3J0ICogZnJvbSAnLi9hbGVydCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3lzdGVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9sYW5ndWFnZS10cmFuc2xhdGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vcXVvdGEnOyJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vaWNvblwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9kb21cIjtcclxuZXhwb3J0ICogZnJvbSAnLi9hbGVydCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3lzdGVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9sYW5ndWFnZS10cmFuc2xhdGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbic7XHJcbiJdfQ==