aril 0.1.61 → 0.1.62

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.
@@ -6,5 +6,6 @@ export interface KeycloakConfig {
6
6
  export declare class ApiConfigsFactory {
7
7
  api: string;
8
8
  mwApi: string;
9
+ aiApi: string;
9
10
  keycloak: KeycloakConfig;
10
11
  }
@@ -2,6 +2,7 @@ export class ApiConfigsFactory {
2
2
  constructor() {
3
3
  this.api = '';
4
4
  this.mwApi = '';
5
+ this.aiApi = '';
5
6
  this.keycloak = {
6
7
  url: '',
7
8
  realm: '',
@@ -9,4 +10,4 @@ export class ApiConfigsFactory {
9
10
  };
10
11
  }
11
12
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvYm9vdC9jb25maWcvYXBpL3NyYy9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFDQyxRQUFHLEdBQVcsRUFBRSxDQUFDO1FBQ2pCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsYUFBUSxHQUFtQjtZQUMxQixHQUFHLEVBQUUsRUFBRTtZQUNQLEtBQUssRUFBRSxFQUFFO1lBQ1QsUUFBUSxFQUFFLEVBQUU7U0FDWixDQUFDO0lBQ0gsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBLZXljbG9ha0NvbmZpZyB7XHJcblx0dXJsOiBzdHJpbmc7XHJcblx0cmVhbG06IHN0cmluZztcclxuXHRjbGllbnRJZDogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBBcGlDb25maWdzRmFjdG9yeSB7XHJcblx0YXBpOiBzdHJpbmcgPSAnJztcclxuXHRtd0FwaTogc3RyaW5nID0gJyc7XHJcblx0a2V5Y2xvYWs6IEtleWNsb2FrQ29uZmlnID0ge1xyXG5cdFx0dXJsOiAnJyxcclxuXHRcdHJlYWxtOiAnJyxcclxuXHRcdGNsaWVudElkOiAnJ1xyXG5cdH07XHJcbn1cclxuIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvYm9vdC9jb25maWcvYXBpL3NyYy9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFDQyxRQUFHLEdBQVcsRUFBRSxDQUFDO1FBQ2pCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUNoQixhQUFRLEdBQW1CO1lBQzFCLEdBQUcsRUFBRSxFQUFFO1lBQ1AsS0FBSyxFQUFFLEVBQUU7WUFDVCxRQUFRLEVBQUUsRUFBRTtTQUNaLENBQUM7SUFDSCxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEtleWNsb2FrQ29uZmlnIHtcclxuXHR1cmw6IHN0cmluZztcclxuXHRyZWFsbTogc3RyaW5nO1xyXG5cdGNsaWVudElkOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGNsYXNzIEFwaUNvbmZpZ3NGYWN0b3J5IHtcclxuXHRhcGk6IHN0cmluZyA9ICcnO1xyXG5cdG13QXBpOiBzdHJpbmcgPSAnJztcclxuXHRhaUFwaTpzdHJpbmc9Jyc7XHJcblx0a2V5Y2xvYWs6IEtleWNsb2FrQ29uZmlnID0ge1xyXG5cdFx0dXJsOiAnJyxcclxuXHRcdHJlYWxtOiAnJyxcclxuXHRcdGNsaWVudElkOiAnJ1xyXG5cdH07XHJcbn1cclxuIl19
@@ -9,14 +9,19 @@ import { RadioButtonModule } from 'primeng/radiobutton';
9
9
  import { SidebarModule } from 'primeng/sidebar';
10
10
  import { BehaviorSubject, firstValueFrom } from 'rxjs';
11
11
  import { KeycloakManager } from 'aril/keycloak';
12
+ import { API_CONFIGS } from 'aril/boot/config/api';
13
+ import { RatingModule } from 'primeng/rating';
14
+ import { TextAreaComponent } from 'aril/ui/textArea';
15
+ import { ButtonComponent } from 'aril/ui/button';
16
+ import { TextComponent } from 'aril/ui/text';
12
17
  import * as i0 from "@angular/core";
13
18
  import * as i1 from "@angular/common/http";
14
- import * as i2 from "primeng/button";
15
- import * as i3 from "primeng/api";
16
- import * as i4 from "primeng/sidebar";
17
- import * as i5 from "@angular/forms";
18
- import * as i6 from "primeng/iconfield";
19
- import * as i7 from "primeng/inputtext";
19
+ import * as i2 from "primeng/api";
20
+ import * as i3 from "primeng/sidebar";
21
+ import * as i4 from "@angular/forms";
22
+ import * as i5 from "primeng/inputtext";
23
+ import * as i6 from "primeng/messages";
24
+ import * as i7 from "primeng/rating";
20
25
  export class AppChatbotComponent {
21
26
  constructor(http) {
22
27
  this.http = http;
@@ -25,9 +30,12 @@ export class AppChatbotComponent {
25
30
  this.historyList = new BehaviorSubject([]);
26
31
  this.isTyping = false;
27
32
  this.typingText = '.';
33
+ this.visibleGiveFeedback = false;
34
+ this.feedbackComments = '';
35
+ this.feedbackRating = 0;
36
+ this.baseUrl = API_CONFIGS.aiApi;
28
37
  this.keyCloakManager = inject(KeycloakManager);
29
38
  this.username = this.keyCloakManager.getUsername();
30
- this.getHistory();
31
39
  }
32
40
  sendRequest() {
33
41
  this.fetchData();
@@ -35,7 +43,7 @@ export class AppChatbotComponent {
35
43
  async getHistory() {
36
44
  try {
37
45
  await this.http
38
- .get('http://10.100.10.56:7000/history?project=CRM' + '&user_name=' + this.username)
46
+ .get(this.baseUrl + 'history?project=CRM' + '&user_name=' + this.username)
39
47
  .subscribe((response) => {
40
48
  this.historyList.next(response);
41
49
  });
@@ -52,7 +60,7 @@ export class AppChatbotComponent {
52
60
  query: this.questionQuery
53
61
  };
54
62
  try {
55
- const result = await firstValueFrom(this.http.post('http://10.100.10.56:7000/chat', request));
63
+ const result = await firstValueFrom(this.http.post(this.baseUrl + 'chat', request));
56
64
  if (result && result.answer) {
57
65
  this.queryList.next([...this.queryList.value, { question: this.questionQuery, answer: result.answer }]);
58
66
  }
@@ -66,6 +74,7 @@ export class AppChatbotComponent {
66
74
  }
67
75
  }
68
76
  onVisible() {
77
+ this.getHistory();
69
78
  this.chatbotVisible = true;
70
79
  }
71
80
  startTyping() {
@@ -74,14 +83,39 @@ export class AppChatbotComponent {
74
83
  this.typingInterval = setInterval(() => {
75
84
  dots = (dots + 1) % 4;
76
85
  this.typingText = '.'.repeat(dots);
77
- }, 500);
86
+ }, 300);
78
87
  }
79
88
  stopTyping() {
80
89
  clearInterval(this.typingInterval);
81
90
  this.isTyping = false;
82
91
  }
92
+ giveFeedback() {
93
+ this.visibleGiveFeedback = true;
94
+ }
95
+ async sendFeedback() {
96
+ const request = {
97
+ project: 'CRM',
98
+ user_name: this.username,
99
+ rating: this.feedbackRating,
100
+ comments: this.feedbackComments
101
+ };
102
+ try {
103
+ const result = await firstValueFrom(this.http.post(this.baseUrl + 'feedback', request));
104
+ if (result) {
105
+ this.feedBackResult = result.message;
106
+ }
107
+ }
108
+ catch (error) {
109
+ this.error = error;
110
+ }
111
+ finally {
112
+ this.visibleGiveFeedback = false;
113
+ this.feedbackComments = '';
114
+ this.feedbackRating = 0;
115
+ }
116
+ }
83
117
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppChatbotComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
84
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppChatbotComponent, isStandalone: true, selector: "app-chatbot", ngImport: i0, template: "<button class=\"layout-config-button p-link\" type=\"button\" (click)=\"onVisible()\">\r\n\t<i class=\"pi pi-comments\"></i>\r\n</button>\r\n\r\n<p-sidebar\r\n\t[(visible)]=\"chatbotVisible\"\r\n\tposition=\"right\"\r\n\tstyleClass=\"w-30rem flex flex-column\"\r\n\t[style]=\"{ height: '100%' }\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t<i class=\"pi pi-comments text-xl\"></i>\r\n\t\t\t<span style=\"font-size: 14px; font-weight: 700\">Nar Asistan</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"flex flex-column flex-1\" style=\"height: 100%; position: relative\">\r\n\t\t<div class=\"query-history\" style=\"flex: 1; max-height: 90%; overflow-y: auto; padding-right: 0.5rem\">\r\n\t\t\t@if (historyList.getValue().length > 0) {\r\n\t\t\t\t@for (historyItem of historyList.getValue(); track $index) {\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.query }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.answer }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t@if (queryList.getValue().length > 0) {\r\n\t\t\t\t@for (item of queryList.getValue(); track $index) {\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.question }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"flex flex-column\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.answer }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t@if (isTyping) {\r\n\t\t\t<div\r\n\t\t\t\tclass=\"typing-indicator\"\r\n\t\t\t\tstyle=\"font-size: 16px; font-weight: 900; padding: 6px; width: 10%; text-align: center\">\r\n\t\t\t\t{{ typingText }}\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<div class=\"search-container\" style=\"position: absolute; bottom: 0; width: 100%; padding: 1rem; background: white\">\r\n\t\t\t<div class=\"search-box\" style=\"display: flex; align-items: center; gap: 0.5rem\">\r\n\t\t\t\t<p-iconField iconPosition=\"left\" class=\"flex-1\">\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tstyle=\"flex: 1; width: 100%\"\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tplaceholder=\"Search\"\r\n\t\t\t\t\t\t[(ngModel)]=\"questionQuery\"\r\n\t\t\t\t\t\tclass=\"flex-1\"\r\n\t\t\t\t\t\tmaxlength=\"500\" />\r\n\t\t\t\t</p-iconField>\r\n\t\t\t\t<p-button type=\"button\" icon=\"pi pi-send\" label=\"G\u00F6nder\" (onClick)=\"sendRequest()\" />\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</p-sidebar>\r\n", dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i4.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: InputIconModule }, { kind: "ngmodule", type: IconFieldModule }, { kind: "component", type: i6.IconField, selector: "p-iconField", inputs: ["iconPosition"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i7.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: MessagesModule }] }); }
118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppChatbotComponent, isStandalone: true, selector: "app-chatbot", ngImport: i0, template: "<button class=\"layout-config-button p-link\" type=\"button\" (click)=\"chatbotVisible=true\">\r\n\t<i class=\"pi pi-comments\"></i>\r\n</button>\r\n\r\n<p-sidebar\r\n\t[(visible)]=\"chatbotVisible\"\r\n\tposition=\"right\"\r\n\tstyleClass=\"w-30rem flex flex-column\"\r\n\t[style]=\"{ height: '100%' }\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"custom-sidebar-header\">\r\n\t\t\t<span class=\"header-title\">THOR Asistan</span>\r\n\t\t\t<i class=\"pi pi-thumbs-up custom-icon\" (click)=\"giveFeedback()\" (keypress)=\"giveFeedback()\"></i>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"flex flex-column flex-1\">\r\n\t\t<p-messages severity=\"info\">\r\n\t\t\t<ng-template pTemplate>\r\n\t\t\t\t<i class=\"pi pi-info-circle text-xl\"></i>\r\n\t\t\t\t<div class=\"ml-2\">Sorular\u0131n\u0131n cevab\u0131na buradan ula\u015Fabilirsin.</div>\r\n\t\t\t</ng-template>\r\n\t\t</p-messages>\r\n\t</div>\r\n\r\n\t<div class=\"flex flex-column flex-1 query-details\" style=\"height: 90%; position: relative\">\r\n\t\t<div class=\"query-history\" style=\"flex: 1; max-height: 90%; overflow-y: auto; padding-right: 0.5rem\">\r\n\t\t\t@if (historyList.getValue().length > 0) {\r\n\t\t\t\t@for (historyItem of historyList.getValue(); track $index) {\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.query }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.answer }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t@if (queryList.getValue().length > 0) {\r\n\t\t\t\t@for (item of queryList.getValue(); track $index) {\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.question }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"flex flex-column\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.answer }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t@if (visibleGiveFeedback) {\r\n\t\t\t\t<div class=\"flex mb-2\">\r\n\t\t\t\t\t<div class=\"card custom-card\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t<span>Geri bildirimlerinizi buradan g\u00F6nderebilirsiniz.</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t<p-rating [(ngModel)]=\"feedbackRating\" [stars]=\"5\" />\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"text-lg\">\r\n\t\t\t\t\t\t\t<aril-text-area [rows]=\"5\" [cols]=\"30\" pTextarea [(ngModel)]=\"feedbackComments\"></aril-text-area>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div>\r\n <aril-button label=\"G\u00F6nder\" color=\"danger\" icon=\"SEND\" [outlined]=\"true\" (clickEvent)=\"sendFeedback()\">\r\n </aril-button>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t@if (isTyping) {\r\n\t\t\t<div\r\n\t\t\t\tclass=\"typing-indicator\"\r\n\t\t\t\tstyle=\"font-size: 16px; font-weight: 900; padding: 6px; width: 10%; text-align: center\">\r\n\t\t\t\t{{ typingText }}\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<div class=\"search-container\" style=\"position: absolute; bottom: 0; width: 100%; background: white\">\r\n\t\t\t<div class=\"search-box\" style=\"display: flex; align-items: center; gap: 0.5rem\">\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tstyle=\"flex: 1; width: 100%\"\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tplaceholder=\"Sorunu yaz...\"\r\n\t\t\t\t\t\t[(ngModel)]=\"questionQuery\"\r\n\t\t\t\t\t\tclass=\"flex-1\"\r\n\t\t\t\t\t\tmaxlength=\"500\" />\r\n\t\t\t\t<aril-button label=\"G\u00F6nder\" color=\"danger\" icon=\"SEND\" [outlined]=\"true\" (clickEvent)=\"sendRequest()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</p-sidebar>\r\n", styles: ["@charset \"UTF-8\";::ng-deep .p-sidebar .p-sidebar-header{background-color:var(--primary-color)!important;color:#fff!important}::ng-deep .p-sidebar .p-sidebar-close i{color:#fff!important}.custom-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem}.header-title{font-size:16px;font-weight:700}.custom-icon{font-size:1.5rem;color:#fff;cursor:pointer;margin-left:1rem}.custom-card{display:flex;flex-direction:column;gap:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i3.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: InputIconModule }, { kind: "ngmodule", type: IconFieldModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i5.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i6.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "component", type: TextAreaComponent, selector: "aril-text-area[ngModel], aril-text-area[formControl], aril-text-area[formControlName]", inputs: ["rows", "cols", "isAutoResize", "tabindex", "placeholder"] }, { kind: "ngmodule", type: RatingModule }, { kind: "component", type: i7.Rating, selector: "p-rating", inputs: ["disabled", "readonly", "stars", "cancel", "iconOnClass", "iconOnStyle", "iconOffClass", "iconOffStyle", "iconCancelClass", "iconCancelStyle", "autofocus"], outputs: ["onRate", "onCancel", "onFocus", "onBlur"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }] }); }
85
119
  }
86
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppChatbotComponent, decorators: [{
87
121
  type: Component,
@@ -93,7 +127,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
93
127
  InputIconModule,
94
128
  IconFieldModule,
95
129
  InputTextModule,
96
- MessagesModule
97
- ], template: "<button class=\"layout-config-button p-link\" type=\"button\" (click)=\"onVisible()\">\r\n\t<i class=\"pi pi-comments\"></i>\r\n</button>\r\n\r\n<p-sidebar\r\n\t[(visible)]=\"chatbotVisible\"\r\n\tposition=\"right\"\r\n\tstyleClass=\"w-30rem flex flex-column\"\r\n\t[style]=\"{ height: '100%' }\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t<i class=\"pi pi-comments text-xl\"></i>\r\n\t\t\t<span style=\"font-size: 14px; font-weight: 700\">Nar Asistan</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"flex flex-column flex-1\" style=\"height: 100%; position: relative\">\r\n\t\t<div class=\"query-history\" style=\"flex: 1; max-height: 90%; overflow-y: auto; padding-right: 0.5rem\">\r\n\t\t\t@if (historyList.getValue().length > 0) {\r\n\t\t\t\t@for (historyItem of historyList.getValue(); track $index) {\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.query }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.answer }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t@if (queryList.getValue().length > 0) {\r\n\t\t\t\t@for (item of queryList.getValue(); track $index) {\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.question }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"flex flex-column\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.answer }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t@if (isTyping) {\r\n\t\t\t<div\r\n\t\t\t\tclass=\"typing-indicator\"\r\n\t\t\t\tstyle=\"font-size: 16px; font-weight: 900; padding: 6px; width: 10%; text-align: center\">\r\n\t\t\t\t{{ typingText }}\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<div class=\"search-container\" style=\"position: absolute; bottom: 0; width: 100%; padding: 1rem; background: white\">\r\n\t\t\t<div class=\"search-box\" style=\"display: flex; align-items: center; gap: 0.5rem\">\r\n\t\t\t\t<p-iconField iconPosition=\"left\" class=\"flex-1\">\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tstyle=\"flex: 1; width: 100%\"\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tplaceholder=\"Search\"\r\n\t\t\t\t\t\t[(ngModel)]=\"questionQuery\"\r\n\t\t\t\t\t\tclass=\"flex-1\"\r\n\t\t\t\t\t\tmaxlength=\"500\" />\r\n\t\t\t\t</p-iconField>\r\n\t\t\t\t<p-button type=\"button\" icon=\"pi pi-send\" label=\"G\u00F6nder\" (onClick)=\"sendRequest()\" />\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</p-sidebar>\r\n" }]
130
+ MessagesModule,
131
+ TextAreaComponent,
132
+ RatingModule,
133
+ ButtonComponent,
134
+ TextComponent
135
+ ], template: "<button class=\"layout-config-button p-link\" type=\"button\" (click)=\"chatbotVisible=true\">\r\n\t<i class=\"pi pi-comments\"></i>\r\n</button>\r\n\r\n<p-sidebar\r\n\t[(visible)]=\"chatbotVisible\"\r\n\tposition=\"right\"\r\n\tstyleClass=\"w-30rem flex flex-column\"\r\n\t[style]=\"{ height: '100%' }\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"custom-sidebar-header\">\r\n\t\t\t<span class=\"header-title\">THOR Asistan</span>\r\n\t\t\t<i class=\"pi pi-thumbs-up custom-icon\" (click)=\"giveFeedback()\" (keypress)=\"giveFeedback()\"></i>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"flex flex-column flex-1\">\r\n\t\t<p-messages severity=\"info\">\r\n\t\t\t<ng-template pTemplate>\r\n\t\t\t\t<i class=\"pi pi-info-circle text-xl\"></i>\r\n\t\t\t\t<div class=\"ml-2\">Sorular\u0131n\u0131n cevab\u0131na buradan ula\u015Fabilirsin.</div>\r\n\t\t\t</ng-template>\r\n\t\t</p-messages>\r\n\t</div>\r\n\r\n\t<div class=\"flex flex-column flex-1 query-details\" style=\"height: 90%; position: relative\">\r\n\t\t<div class=\"query-history\" style=\"flex: 1; max-height: 90%; overflow-y: auto; padding-right: 0.5rem\">\r\n\t\t\t@if (historyList.getValue().length > 0) {\r\n\t\t\t\t@for (historyItem of historyList.getValue(); track $index) {\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.query }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.answer }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t@if (queryList.getValue().length > 0) {\r\n\t\t\t\t@for (item of queryList.getValue(); track $index) {\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.question }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"flex flex-column\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.answer }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t@if (visibleGiveFeedback) {\r\n\t\t\t\t<div class=\"flex mb-2\">\r\n\t\t\t\t\t<div class=\"card custom-card\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t<span>Geri bildirimlerinizi buradan g\u00F6nderebilirsiniz.</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t<p-rating [(ngModel)]=\"feedbackRating\" [stars]=\"5\" />\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"text-lg\">\r\n\t\t\t\t\t\t\t<aril-text-area [rows]=\"5\" [cols]=\"30\" pTextarea [(ngModel)]=\"feedbackComments\"></aril-text-area>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div>\r\n <aril-button label=\"G\u00F6nder\" color=\"danger\" icon=\"SEND\" [outlined]=\"true\" (clickEvent)=\"sendFeedback()\">\r\n </aril-button>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t@if (isTyping) {\r\n\t\t\t<div\r\n\t\t\t\tclass=\"typing-indicator\"\r\n\t\t\t\tstyle=\"font-size: 16px; font-weight: 900; padding: 6px; width: 10%; text-align: center\">\r\n\t\t\t\t{{ typingText }}\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<div class=\"search-container\" style=\"position: absolute; bottom: 0; width: 100%; background: white\">\r\n\t\t\t<div class=\"search-box\" style=\"display: flex; align-items: center; gap: 0.5rem\">\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tstyle=\"flex: 1; width: 100%\"\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tplaceholder=\"Sorunu yaz...\"\r\n\t\t\t\t\t\t[(ngModel)]=\"questionQuery\"\r\n\t\t\t\t\t\tclass=\"flex-1\"\r\n\t\t\t\t\t\tmaxlength=\"500\" />\r\n\t\t\t\t<aril-button label=\"G\u00F6nder\" color=\"danger\" icon=\"SEND\" [outlined]=\"true\" (clickEvent)=\"sendRequest()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</p-sidebar>\r\n", styles: ["@charset \"UTF-8\";::ng-deep .p-sidebar .p-sidebar-header{background-color:var(--primary-color)!important;color:#fff!important}::ng-deep .p-sidebar .p-sidebar-close i{color:#fff!important}.custom-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem}.header-title{font-size:16px;font-weight:700}.custom-icon{font-size:1.5rem;color:#fff;cursor:pointer;margin-left:1rem}.custom-card{display:flex;flex-direction:column;gap:.5rem}\n"] }]
98
136
  }], ctorParameters: () => [{ type: i1.HttpClient }] });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNoYXRib3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2NoYXRib3QvYXBwLmNoYXRib3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2NoYXRib3QvYXBwLmNoYXRib3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQWlCaEQsTUFBTSxPQUFPLG1CQUFtQjtJQWMvQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBYnBDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBSXZCLGNBQVMsR0FBMkIsSUFBSSxlQUFlLENBQVEsRUFBRSxDQUFD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LGlCQUFpQiw4QkFDakIsV0FBVyxpeEJBQ1gsZUFBZSw4QkFDZixlQUFlLDRIQUNmLGVBQWUsd0hBQ2YsY0FBYzs7MkZBSUgsbUJBQW1CO2tCQWYvQixTQUFTO2lDQUNHLElBQUksWUFDTixhQUFhLFdBQ2Q7d0JBQ1IsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixjQUFjO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkZpZWxkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pY29uZmllbGQnO1xyXG5pbXBvcnQgeyBJbnB1dEljb25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0aWNvbic7XHJcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcclxuaW1wb3J0IHsgTWVzc2FnZXNNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lc3NhZ2VzJztcclxuaW1wb3J0IHsgUmFkaW9CdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3JhZGlvYnV0dG9uJztcclxuaW1wb3J0IHsgU2lkZWJhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2lkZWJhcic7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBLZXljbG9ha01hbmFnZXIgfSBmcm9tICdhcmlsL2tleWNsb2FrJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcHAtY2hhdGJvdCcsXHJcblx0aW1wb3J0czogW1xyXG5cdFx0QnV0dG9uTW9kdWxlLFxyXG5cdFx0U2lkZWJhck1vZHVsZSxcclxuXHRcdFJhZGlvQnV0dG9uTW9kdWxlLFxyXG5cdFx0Rm9ybXNNb2R1bGUsXHJcblx0XHRJbnB1dEljb25Nb2R1bGUsXHJcblx0XHRJY29uRmllbGRNb2R1bGUsXHJcblx0XHRJbnB1dFRleHRNb2R1bGUsXHJcblx0XHRNZXNzYWdlc01vZHVsZVxyXG5cdF0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2FwcC5jaGF0Ym90LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwQ2hhdGJvdENvbXBvbmVudCB7XHJcblx0Y2hhdGJvdFZpc2libGUgPSBmYWxzZTtcclxuXHRwcm9qZWN0TmFtZSE6IHN0cmluZztcclxuXHJcblx0cXVlc3Rpb25RdWVyeSE6IHN0cmluZztcclxuXHRxdWVyeUxpc3Q6IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XHJcblx0ZXJyb3IhOiBzdHJpbmc7XHJcblx0aGlzdG9yeUxpc3Q6IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XHJcblx0aXNUeXBpbmcgPSBmYWxzZTtcclxuXHR0eXBpbmdJbnRlcnZhbDogYW55O1xyXG5cdHR5cGluZ1RleHQgPSAnLic7XHJcblx0dXNlcm5hbWU6IGFueTtcclxuXHRrZXlDbG9ha01hbmFnZXIgPSBpbmplY3QoS2V5Y2xvYWtNYW5hZ2VyKTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XHJcblx0XHR0aGlzLnVzZXJuYW1lID0gdGhpcy5rZXlDbG9ha01hbmFnZXIuZ2V0VXNlcm5hbWUoKTtcclxuXHRcdHRoaXMuZ2V0SGlzdG9yeSgpO1xyXG5cdH1cclxuXHJcblx0c2VuZFJlcXVlc3QoKSB7XHJcblx0XHR0aGlzLmZldGNoRGF0YSgpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZ2V0SGlzdG9yeSgpIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGF3YWl0IHRoaXMuaHR0cFxyXG5cdFx0XHRcdC5nZXQ8YW55W10+KCdodHRwOi8vMTAuMTAwLjEwLjU2OjcwMDAvaGlzdG9yeT9wcm9qZWN0PUNSTScgKyAnJnVzZXJfbmFtZT0nICsgdGhpcy51c2VybmFtZSlcclxuXHRcdFx0XHQuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5oaXN0b3J5TGlzdC5uZXh0KHJlc3BvbnNlKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKGVycm9yKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGFzeW5jIGZldGNoRGF0YSgpIHtcclxuXHRcdHRoaXMuc3RhcnRUeXBpbmcoKTtcclxuXHRcdGNvbnN0IHJlcXVlc3QgPSB7XHJcblx0XHRcdHByb2plY3Q6ICdDUk0nLFxyXG5cdFx0XHR1c2VyX25hbWU6IHRoaXMudXNlcm5hbWUsXHJcblx0XHRcdHF1ZXJ5OiB0aGlzLnF1ZXN0aW9uUXVlcnlcclxuXHRcdH07XHJcblxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3Q8YW55PignaHR0cDovLzEwLjEwMC4xMC41Njo3MDAwL2NoYXQnLCByZXF1ZXN0KSk7XHJcblx0XHRcdGlmIChyZXN1bHQgJiYgcmVzdWx0LmFuc3dlcikge1xyXG5cdFx0XHRcdHRoaXMucXVlcnlMaXN0Lm5leHQoWy4uLnRoaXMucXVlcnlMaXN0LnZhbHVlLCB7IHF1ZXN0aW9uOiB0aGlzLnF1ZXN0aW9uUXVlcnksIGFuc3dlcjogcmVzdWx0LmFuc3dlciB9XSk7XHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcclxuXHRcdFx0dGhpcy5lcnJvciA9IGVycm9yO1xyXG5cdFx0fSBmaW5hbGx5IHtcclxuXHRcdFx0dGhpcy5xdWVzdGlvblF1ZXJ5ID0gJyc7XHJcblx0XHRcdHRoaXMuc3RvcFR5cGluZygpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRvblZpc2libGUoKSB7XHJcblx0XHR0aGlzLmNoYXRib3RWaXNpYmxlID0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdHN0YXJ0VHlwaW5nKCkge1xyXG5cdFx0dGhpcy5pc1R5cGluZyA9IHRydWU7XHJcblx0XHRsZXQgZG90cyA9IDA7XHJcblxyXG5cdFx0dGhpcy50eXBpbmdJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuXHRcdFx0ZG90cyA9IChkb3RzICsgMSkgJSA0O1xyXG5cdFx0XHR0aGlzLnR5cGluZ1RleHQgPSAnLicucmVwZWF0KGRvdHMpO1xyXG5cdFx0fSwgNTAwKTtcclxuXHR9XHJcblxyXG5cdHN0b3BUeXBpbmcoKSB7XHJcblx0XHRjbGVhckludGVydmFsKHRoaXMudHlwaW5nSW50ZXJ2YWwpO1xyXG5cdFx0dGhpcy5pc1R5cGluZyA9IGZhbHNlO1xyXG5cdH1cclxufVxyXG4iLCI8YnV0dG9uIGNsYXNzPVwibGF5b3V0LWNvbmZpZy1idXR0b24gcC1saW5rXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvblZpc2libGUoKVwiPlxyXG5cdDxpIGNsYXNzPVwicGkgcGktY29tbWVudHNcIj48L2k+XHJcbjwvYnV0dG9uPlxyXG5cclxuPHAtc2lkZWJhclxyXG5cdFsodmlzaWJsZSldPVwiY2hhdGJvdFZpc2libGVcIlxyXG5cdHBvc2l0aW9uPVwicmlnaHRcIlxyXG5cdHN0eWxlQ2xhc3M9XCJ3LTMwcmVtIGZsZXggZmxleC1jb2x1bW5cIlxyXG5cdFtzdHlsZV09XCJ7IGhlaWdodDogJzEwMCUnIH1cIj5cclxuXHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1jb21tZW50cyB0ZXh0LXhsXCI+PC9pPlxyXG5cdFx0XHQ8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDcwMFwiPk5hciBBc2lzdGFuPC9zcGFuPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0PGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZmxleC0xXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7IHBvc2l0aW9uOiByZWxhdGl2ZVwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInF1ZXJ5LWhpc3RvcnlcIiBzdHlsZT1cImZsZXg6IDE7IG1heC1oZWlnaHQ6IDkwJTsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZy1yaWdodDogMC41cmVtXCI+XHJcblx0XHRcdEBpZiAoaGlzdG9yeUxpc3QuZ2V0VmFsdWUoKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0QGZvciAoaGlzdG9yeUl0ZW0gb2YgaGlzdG9yeUxpc3QuZ2V0VmFsdWUoKTsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBtYi0yXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjYXJkIHNoYWRvdy1ub25lIGZsZXgtMSBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2UyZTRlNVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktdXNlciB0ZXh0LXhsXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtbC00XCI+e3sgaGlzdG9yeUl0ZW0ucXVlcnkgfX08L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIG1iLTJcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNhcmQgc2hhZG93LW5vbmUgZmxleC0xIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1sLTVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWNvbW1lbnQgdGV4dC14bFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWwtNFwiPnt7IGhpc3RvcnlJdGVtLmFuc3dlciB9fTwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0QGlmIChxdWVyeUxpc3QuZ2V0VmFsdWUoKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0QGZvciAoaXRlbSBvZiBxdWVyeUxpc3QuZ2V0VmFsdWUoKTsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBtYi0yXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjYXJkIHNoYWRvdy1ub25lIGZsZXgtMSBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2UyZTRlNVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktdXNlciB0ZXh0LXhsXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtbC00IHRleHQtbGdcIj57eyBpdGVtLnF1ZXN0aW9uIH19PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtblwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2FyZCBzaGFkb3ctbm9uZSBmbGV4LTEgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWwtNVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktY29tbWVudCB0ZXh0LXhsXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtbC00IHRleHQtbGdcIj57eyBpdGVtLmFuc3dlciB9fTwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0PC9kaXY+XHJcblxyXG5cdFx0QGlmIChpc1R5cGluZykge1xyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0Y2xhc3M9XCJ0eXBpbmctaW5kaWNhdG9yXCJcclxuXHRcdFx0XHRzdHlsZT1cImZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDkwMDsgcGFkZGluZzogNnB4OyB3aWR0aDogMTAlOyB0ZXh0LWFsaWduOiBjZW50ZXJcIj5cclxuXHRcdFx0XHR7eyB0eXBpbmdUZXh0IH19XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0fVxyXG5cclxuXHRcdDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCIgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDFyZW07IGJhY2tncm91bmQ6IHdoaXRlXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJzZWFyY2gtYm94XCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDAuNXJlbVwiPlxyXG5cdFx0XHRcdDxwLWljb25GaWVsZCBpY29uUG9zaXRpb249XCJsZWZ0XCIgY2xhc3M9XCJmbGV4LTFcIj5cclxuXHRcdFx0XHRcdDxpbnB1dFxyXG5cdFx0XHRcdFx0XHRzdHlsZT1cImZsZXg6IDE7IHdpZHRoOiAxMDAlXCJcclxuXHRcdFx0XHRcdFx0dHlwZT1cInRleHRcIlxyXG5cdFx0XHRcdFx0XHRwSW5wdXRUZXh0XHJcblx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwiU2VhcmNoXCJcclxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJxdWVzdGlvblF1ZXJ5XCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJmbGV4LTFcIlxyXG5cdFx0XHRcdFx0XHRtYXhsZW5ndGg9XCI1MDBcIiAvPlxyXG5cdFx0XHRcdDwvcC1pY29uRmllbGQ+XHJcblx0XHRcdFx0PHAtYnV0dG9uIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktc2VuZFwiIGxhYmVsPVwiR8O2bmRlclwiIChvbkNsaWNrKT1cInNlbmRSZXF1ZXN0KClcIiAvPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG48L3Atc2lkZWJhcj5cclxuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNoYXRib3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2NoYXRib3QvYXBwLmNoYXRib3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2NoYXRib3QvYXBwLmNoYXRib3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVB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RSxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDRixDQUFDOzhHQXZHVyxtQkFBbUI7a0dBQW5CLG1CQUFtQix1RUMxQ2hDLDg2SUEwR0EsMGdCRGhGSSxZQUFZLHFJQUNaLGFBQWEsNFdBQ2IsaUJBQWlCLDhCQUNqQixXQUFXLGl4QkFDWCxlQUFlLDhCQUNmLGVBQWUsOEJBQ2YsZUFBZSx3SEFDZixjQUFjLDRSQUNkLGlCQUFpQixzTUFDakIsWUFBWSx5VEFDWixlQUFlOzsyRkFNTixtQkFBbUI7a0JBcEIvQixTQUFTO2lDQUNHLElBQUksWUFDTixhQUFhLFdBQ2Q7d0JBQ04sWUFBWTt3QkFDWixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixlQUFlO3dCQUNsQixhQUFhO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkZpZWxkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pY29uZmllbGQnO1xyXG5pbXBvcnQgeyBJbnB1dEljb25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0aWNvbic7XHJcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcclxuaW1wb3J0IHsgTWVzc2FnZXNNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lc3NhZ2VzJztcclxuaW1wb3J0IHsgUmFkaW9CdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3JhZGlvYnV0dG9uJztcclxuaW1wb3J0IHsgU2lkZWJhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2lkZWJhcic7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBLZXljbG9ha01hbmFnZXIgfSBmcm9tICdhcmlsL2tleWNsb2FrJztcclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IFJhdGluZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcmF0aW5nJztcclxuaW1wb3J0IHsgVGV4dEFyZWFDb21wb25lbnQgfSBmcm9tICdhcmlsL3VpL3RleHRBcmVhJztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9idXR0b24nO1xyXG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS90ZXh0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcHAtY2hhdGJvdCcsXHJcblx0aW1wb3J0czogW1xyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgU2lkZWJhck1vZHVsZSxcclxuICAgIFJhZGlvQnV0dG9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBJbnB1dEljb25Nb2R1bGUsXHJcbiAgICBJY29uRmllbGRNb2R1bGUsXHJcbiAgICBJbnB1dFRleHRNb2R1bGUsXHJcbiAgICBNZXNzYWdlc01vZHVsZSxcclxuICAgIFRleHRBcmVhQ29tcG9uZW50LFxyXG4gICAgUmF0aW5nTW9kdWxlLFxyXG4gICAgQnV0dG9uQ29tcG9uZW50LFxyXG5cdFRleHRDb21wb25lbnRcclxuXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vYXBwLmNoYXRib3QuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOicuL2FwcC5jaGF0Ym90LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwQ2hhdGJvdENvbXBvbmVudCB7XHJcblx0Y2hhdGJvdFZpc2libGUgPSBmYWxzZTtcclxuXHRwcm9qZWN0TmFtZSE6IHN0cmluZztcclxuXHJcblx0cXVlc3Rpb25RdWVyeSE6IHN0cmluZztcclxuXHRxdWVyeUxpc3Q6IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XHJcblx0ZXJyb3IhOiBzdHJpbmc7XHJcblx0aGlzdG9yeUxpc3Q6IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XHJcblx0aXNUeXBpbmcgPSBmYWxzZTtcclxuXHR0eXBpbmdJbnRlcnZhbDogYW55O1xyXG5cdHR5cGluZ1RleHQgPSAnLic7XHJcblx0dXNlcm5hbWU6IGFueTtcclxuXHR2aXNpYmxlR2l2ZUZlZWRiYWNrID0gZmFsc2U7XHJcblx0ZmVlZGJhY2tDb21tZW50cyA9ICcnO1xyXG5cdGZlZWRiYWNrUmF0aW5nID0gMDtcclxuXHRmZWVkQmFja1Jlc3VsdCE6c3RyaW5nO1xyXG5cdGJhc2VVcmwgPSBBUElfQ09ORklHUy5haUFwaTtcclxuXHRcclxuXHRrZXlDbG9ha01hbmFnZXIgPSBpbmplY3QoS2V5Y2xvYWtNYW5hZ2VyKTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XHJcblx0XHR0aGlzLnVzZXJuYW1lID0gdGhpcy5rZXlDbG9ha01hbmFnZXIuZ2V0VXNlcm5hbWUoKTtcclxuXHR9XHJcblxyXG5cdHNlbmRSZXF1ZXN0KCkge1xyXG5cdFx0dGhpcy5mZXRjaERhdGEoKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGdldEhpc3RvcnkoKSB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRhd2FpdCB0aGlzLmh0dHBcclxuXHRcdFx0XHQuZ2V0PGFueVtdPih0aGlzLmJhc2VVcmwgKyAnaGlzdG9yeT9wcm9qZWN0PUNSTScgKyAnJnVzZXJfbmFtZT0nICsgdGhpcy51c2VybmFtZSlcclxuXHRcdFx0XHQuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5oaXN0b3J5TGlzdC5uZXh0KHJlc3BvbnNlKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKGVycm9yKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGFzeW5jIGZldGNoRGF0YSgpIHtcclxuXHRcdHRoaXMuc3RhcnRUeXBpbmcoKTtcclxuXHRcdGNvbnN0IHJlcXVlc3QgPSB7XHJcblx0XHRcdHByb2plY3Q6ICdDUk0nLFxyXG5cdFx0XHR1c2VyX25hbWU6IHRoaXMudXNlcm5hbWUsXHJcblx0XHRcdHF1ZXJ5OiB0aGlzLnF1ZXN0aW9uUXVlcnlcclxuXHRcdH07XHJcblxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3Q8YW55Pih0aGlzLmJhc2VVcmwgKyAnY2hhdCcsIHJlcXVlc3QpKTtcclxuXHRcdFx0aWYgKHJlc3VsdCAmJiByZXN1bHQuYW5zd2VyKSB7XHJcblx0XHRcdFx0dGhpcy5xdWVyeUxpc3QubmV4dChbLi4udGhpcy5xdWVyeUxpc3QudmFsdWUsIHsgcXVlc3Rpb246IHRoaXMucXVlc3Rpb25RdWVyeSwgYW5zd2VyOiByZXN1bHQuYW5zd2VyIH1dKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG5cdFx0XHR0aGlzLmVycm9yID0gZXJyb3I7XHJcblx0XHR9IGZpbmFsbHkge1xyXG5cdFx0XHR0aGlzLnF1ZXN0aW9uUXVlcnkgPSAnJztcclxuXHRcdFx0dGhpcy5zdG9wVHlwaW5nKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdG9uVmlzaWJsZSgpIHtcclxuXHRcdHRoaXMuZ2V0SGlzdG9yeSgpO1xyXG5cdFx0dGhpcy5jaGF0Ym90VmlzaWJsZSA9IHRydWU7XHJcblx0fVxyXG5cclxuXHRzdGFydFR5cGluZygpIHtcclxuXHRcdHRoaXMuaXNUeXBpbmcgPSB0cnVlO1xyXG5cdFx0bGV0IGRvdHMgPSAwO1xyXG5cclxuXHRcdHRoaXMudHlwaW5nSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcblx0XHRcdGRvdHMgPSAoZG90cyArIDEpICUgNDtcclxuXHRcdFx0dGhpcy50eXBpbmdUZXh0ID0gJy4nLnJlcGVhdChkb3RzKTtcclxuXHRcdH0sIDMwMCk7XHJcblx0fVxyXG5cclxuXHRzdG9wVHlwaW5nKCkge1xyXG5cdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLnR5cGluZ0ludGVydmFsKTtcclxuXHRcdHRoaXMuaXNUeXBpbmcgPSBmYWxzZTtcclxuXHR9XHJcblxyXG5cdGdpdmVGZWVkYmFjaygpe1xyXG5cdFx0dGhpcy52aXNpYmxlR2l2ZUZlZWRiYWNrID0gdHJ1ZTtcclxuXHR9XHJcblx0YXN5bmMgc2VuZEZlZWRiYWNrKCl7XHJcblx0XHRjb25zdCByZXF1ZXN0ID0ge1xyXG5cdFx0XHRwcm9qZWN0OiAnQ1JNJyxcclxuXHRcdFx0dXNlcl9uYW1lOiB0aGlzLnVzZXJuYW1lLFxyXG5cdFx0XHRyYXRpbmc6IHRoaXMuZmVlZGJhY2tSYXRpbmcsXHJcblx0XHRcdGNvbW1lbnRzOiB0aGlzLmZlZWRiYWNrQ29tbWVudHNcclxuXHRcdH07XHJcblxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3Q8YW55Pih0aGlzLmJhc2VVcmwgKyAnZmVlZGJhY2snLCByZXF1ZXN0KSk7XHJcblx0XHRcdGlmIChyZXN1bHQpIHtcclxuXHRcdFx0XHR0aGlzLmZlZWRCYWNrUmVzdWx0PSByZXN1bHQubWVzc2FnZTtcclxuXHRcdFx0fVxyXG5cdFx0fSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG5cdFx0XHR0aGlzLmVycm9yID0gZXJyb3I7XHJcblx0XHR9IGZpbmFsbHkge1xyXG5cdFx0XHR0aGlzLnZpc2libGVHaXZlRmVlZGJhY2sgPSBmYWxzZTtcclxuXHRcdFx0dGhpcy5mZWVkYmFja0NvbW1lbnRzID0gJyc7XHJcblx0XHRcdHRoaXMuZmVlZGJhY2tSYXRpbmcgPSAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxufVxyXG4iLCI8YnV0dG9uIGNsYXNzPVwibGF5b3V0LWNvbmZpZy1idXR0b24gcC1saW5rXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjaGF0Ym90VmlzaWJsZT10cnVlXCI+XHJcblx0PGkgY2xhc3M9XCJwaSBwaS1jb21tZW50c1wiPjwvaT5cclxuPC9idXR0b24+XHJcblxyXG48cC1zaWRlYmFyXHJcblx0Wyh2aXNpYmxlKV09XCJjaGF0Ym90VmlzaWJsZVwiXHJcblx0cG9zaXRpb249XCJyaWdodFwiXHJcblx0c3R5bGVDbGFzcz1cInctMzByZW0gZmxleCBmbGV4LWNvbHVtblwiXHJcblx0W3N0eWxlXT1cInsgaGVpZ2h0OiAnMTAwJScgfVwiPlxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJjdXN0b20tc2lkZWJhci1oZWFkZXJcIj5cclxuXHRcdFx0PHNwYW4gY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5USE9SIEFzaXN0YW48L3NwYW4+XHJcblx0XHRcdDxpIGNsYXNzPVwicGkgcGktdGh1bWJzLXVwIGN1c3RvbS1pY29uXCIgKGNsaWNrKT1cImdpdmVGZWVkYmFjaygpXCIgKGtleXByZXNzKT1cImdpdmVGZWVkYmFjaygpXCI+PC9pPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0PGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZmxleC0xXCI+XHJcblx0XHQ8cC1tZXNzYWdlcyBzZXZlcml0eT1cImluZm9cIj5cclxuXHRcdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT5cclxuXHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlIHRleHQteGxcIj48L2k+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cIm1sLTJcIj5Tb3J1bGFyxLFuxLFuIGNldmFixLFuYSBidXJhZGFuIHVsYcWfYWJpbGlyc2luLjwvZGl2PlxyXG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0PC9wLW1lc3NhZ2VzPlxyXG5cdDwvZGl2PlxyXG5cclxuXHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBmbGV4LTEgcXVlcnktZGV0YWlsc1wiIHN0eWxlPVwiaGVpZ2h0OiA5MCU7IHBvc2l0aW9uOiByZWxhdGl2ZVwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInF1ZXJ5LWhpc3RvcnlcIiBzdHlsZT1cImZsZXg6IDE7IG1heC1oZWlnaHQ6IDkwJTsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZy1yaWdodDogMC41cmVtXCI+XHJcblx0XHRcdEBpZiAoaGlzdG9yeUxpc3QuZ2V0VmFsdWUoKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0QGZvciAoaGlzdG9yeUl0ZW0gb2YgaGlzdG9yeUxpc3QuZ2V0VmFsdWUoKTsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBtYi0yXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjYXJkIHNoYWRvdy1ub25lIGZsZXgtMSBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2UyZTRlNVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktdXNlciB0ZXh0LXhsXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtbC00XCI+e3sgaGlzdG9yeUl0ZW0ucXVlcnkgfX08L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIG1iLTJcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNhcmQgc2hhZG93LW5vbmUgZmxleC0xIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1sLTVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWNvbW1lbnQgdGV4dC14bFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWwtNFwiPnt7IGhpc3RvcnlJdGVtLmFuc3dlciB9fTwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0QGlmIChxdWVyeUxpc3QuZ2V0VmFsdWUoKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0QGZvciAoaXRlbSBvZiBxdWVyeUxpc3QuZ2V0VmFsdWUoKTsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBtYi0yXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjYXJkIHNoYWRvdy1ub25lIGZsZXgtMSBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2UyZTRlNVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktdXNlciB0ZXh0LXhsXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtbC00IHRleHQtbGdcIj57eyBpdGVtLnF1ZXN0aW9uIH19PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtblwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2FyZCBzaGFkb3ctbm9uZSBmbGV4LTEgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWwtNVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktY29tbWVudCB0ZXh0LXhsXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtbC00IHRleHQtbGdcIj57eyBpdGVtLmFuc3dlciB9fTwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0QGlmICh2aXNpYmxlR2l2ZUZlZWRiYWNrKSB7XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggbWItMlwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNhcmQgY3VzdG9tLWNhcmRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNlMmU0ZTVcIj5cclxuXHRcdFx0XHRcdFx0PGRpdj5cclxuXHRcdFx0XHRcdFx0XHQ8c3Bhbj5HZXJpIGJpbGRpcmltbGVyaW5pemkgYnVyYWRhbiBnw7ZuZGVyZWJpbGlyc2luaXouPC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PGRpdj5cclxuXHRcdFx0XHRcdFx0XHQ8cC1yYXRpbmcgWyhuZ01vZGVsKV09XCJmZWVkYmFja1JhdGluZ1wiIFtzdGFyc109XCI1XCIgLz5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0LWxnXCI+XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtdGV4dC1hcmVhIFtyb3dzXT1cIjVcIiBbY29sc109XCIzMFwiIHBUZXh0YXJlYSBbKG5nTW9kZWwpXT1cImZlZWRiYWNrQ29tbWVudHNcIj48L2FyaWwtdGV4dC1hcmVhPlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcmlsLWJ1dHRvbiBsYWJlbD1cIkfDtm5kZXJcIiBjb2xvcj1cImRhbmdlclwiIGljb249XCJTRU5EXCIgW291dGxpbmVkXT1cInRydWVcIiAoY2xpY2tFdmVudCk9XCJzZW5kRmVlZGJhY2soKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcmlsLWJ1dHRvbj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0fVxyXG5cdFx0PC9kaXY+XHJcblxyXG5cdFx0QGlmIChpc1R5cGluZykge1xyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0Y2xhc3M9XCJ0eXBpbmctaW5kaWNhdG9yXCJcclxuXHRcdFx0XHRzdHlsZT1cImZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDkwMDsgcGFkZGluZzogNnB4OyB3aWR0aDogMTAlOyB0ZXh0LWFsaWduOiBjZW50ZXJcIj5cclxuXHRcdFx0XHR7eyB0eXBpbmdUZXh0IH19XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0fVxyXG5cclxuXHRcdDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCIgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgd2lkdGg6IDEwMCU7IGJhY2tncm91bmQ6IHdoaXRlXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJzZWFyY2gtYm94XCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDAuNXJlbVwiPlxyXG5cdFx0XHRcdFx0PGlucHV0XHJcblx0XHRcdFx0XHRcdHN0eWxlPVwiZmxleDogMTsgd2lkdGg6IDEwMCVcIlxyXG5cdFx0XHRcdFx0XHR0eXBlPVwidGV4dFwiXHJcblx0XHRcdFx0XHRcdHBJbnB1dFRleHRcclxuXHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCJTb3J1bnUgeWF6Li4uXCJcclxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJxdWVzdGlvblF1ZXJ5XCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJmbGV4LTFcIlxyXG5cdFx0XHRcdFx0XHRtYXhsZW5ndGg9XCI1MDBcIiAvPlxyXG5cdFx0XHRcdDxhcmlsLWJ1dHRvbiBsYWJlbD1cIkfDtm5kZXJcIiBjb2xvcj1cImRhbmdlclwiIGljb249XCJTRU5EXCIgW291dGxpbmVkXT1cInRydWVcIiAoY2xpY2tFdmVudCk9XCJzZW5kUmVxdWVzdCgpXCI+XHJcblx0XHRcdFx0PC9hcmlsLWJ1dHRvbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9wLXNpZGViYXI+XHJcbiJdfQ==
@@ -7,7 +7,6 @@ import { DialogModule } from 'primeng/dialog';
7
7
  import { MessagesModule } from 'primeng/messages';
8
8
  import { ToastModule } from 'primeng/toast';
9
9
  import { filter } from 'rxjs';
10
- import { AppConfigComponent } from '../config/app.config.component';
11
10
  import { AppProfileSidebarComponent } from '../profileSidebar/app.profilesidebar.component';
12
11
  import { AppSidebarComponent } from '../sidebar/app.sidebar.component';
13
12
  import { AppTopbarComponent } from '../topbar/app.topbar.component';
@@ -136,7 +135,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
136
135
  AppSidebarComponent,
137
136
  AppTopbarComponent,
138
137
  AppProfileSidebarComponent,
139
- AppConfigComponent,
140
138
  AppChatbotComponent
141
139
  ], template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\r\n\t<app-sidebar />\r\n\t<div class=\"layout-content-wrapper\">\r\n\t\t<app-topbar />\r\n\t\t<div class=\"layout-content card\">\r\n\t\t\t<router-outlet />\r\n\t\t</div>\r\n\t</div>\r\n\t<app-profilemenu />\r\n\t<!--<app-config></app-config>-->\r\n\t<app-chatbot></app-chatbot>\r\n\t<div class=\"layout-mask\"></div>\r\n</div>\r\n\r\n<p-toast key=\"toast-root\" />\r\n<p-dialog key=\"dialog-root\" />\r\n<p-messages key=\"messages-root\" />\r\n<p-confirmPopup key=\"confirmPopup-root\" />\r\n<p-confirmDialog key=\"confirmDialog-root\" />\r\n" }]
142
140
  }], ctorParameters: () => [{ type: i1.AppMenuService }, { type: i2.LayoutService }, { type: i0.Renderer2 }, { type: i3.Router }], propDecorators: { appSidebar: [{
@@ -146,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
146
144
  type: ViewChild,
147
145
  args: [AppTopbarComponent]
148
146
  }] } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvbGF5b3V0L2FwcC5sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2xheW91dC9hcHAubGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUF3QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFnQixNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7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QUUxQixtQkFBbUI7OzJGQUlSLGtCQUFrQjtrQkFuQjlCLFNBQVM7aUNBQ0csSUFBSSxZQUNOLFlBQVksV0FDYjt3QkFDUixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQiwwQkFBMEI7d0JBQzFCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3FCQUNuQjs0SkFZK0IsVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBRUMsU0FBUztzQkFBdkMsU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciwgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xyXG5pbXBvcnQgeyBDb25maXJtUG9wdXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1wb3B1cCc7XHJcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcclxuaW1wb3J0IHsgTWVzc2FnZXNNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lc3NhZ2VzJztcclxuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBNZW51U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLm1lbnUuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcENvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbmZpZy9hcHAuY29uZmlnLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcFByb2ZpbGVTaWRlYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZmlsZVNpZGViYXIvYXBwLnByb2ZpbGVzaWRlYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcFNpZGViYXJDb21wb25lbnQgfSBmcm9tICcuLi9zaWRlYmFyL2FwcC5zaWRlYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcFRvcGJhckNvbXBvbmVudCB9IGZyb20gJy4uL3RvcGJhci9hcHAudG9wYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcENoYXRib3RDb21wb25lbnQgfSBmcm9tICcuLi9jaGF0Ym90L2FwcC5jaGF0Ym90LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXBwLWxheW91dCcsXHJcblx0aW1wb3J0czogW1xyXG5cdFx0TmdDbGFzcyxcclxuXHRcdFJvdXRlck91dGxldCxcclxuXHRcdENvbmZpcm1EaWFsb2dNb2R1bGUsXHJcblx0XHRDb25maXJtUG9wdXBNb2R1bGUsXHJcblx0XHREaWFsb2dNb2R1bGUsXHJcblx0XHRNZXNzYWdlc01vZHVsZSxcclxuXHRcdFRvYXN0TW9kdWxlLFxyXG5cdFx0QXBwU2lkZWJhckNvbXBvbmVudCxcclxuXHRcdEFwcFRvcGJhckNvbXBvbmVudCxcclxuXHRcdEFwcFByb2ZpbGVTaWRlYmFyQ29tcG9uZW50LFxyXG5cdFx0QXBwQ29uZmlnQ29tcG9uZW50LFxyXG5cdFx0QXBwQ2hhdGJvdENvbXBvbmVudFxyXG5cdF0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2FwcC5sYXlvdXQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cdG92ZXJsYXlNZW51T3BlblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuXHRtZW51T3V0c2lkZUNsaWNrTGlzdGVuZXI6IGFueTtcclxuXHJcblx0bWVudVNjcm9sbExpc3RlbmVyOiBhbnk7XHJcblxyXG5cdGdsb2JhbFRoaXM6IGFueSA9IGdsb2JhbFRoaXM7XHJcblxyXG5cdEBWaWV3Q2hpbGQoQXBwU2lkZWJhckNvbXBvbmVudCkgYXBwU2lkZWJhciE6IEFwcFNpZGViYXJDb21wb25lbnQ7XHJcblxyXG5cdEBWaWV3Q2hpbGQoQXBwVG9wYmFyQ29tcG9uZW50KSBhcHBUb3BiYXIhOiBBcHBUb3BiYXJDb21wb25lbnQ7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBtZW51U2VydmljZTogQXBwTWVudVNlcnZpY2UsXHJcblx0XHRwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcclxuXHRcdHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG5cdFx0cHVibGljIHJvdXRlcjogUm91dGVyXHJcblx0KSB7XHJcblx0XHR0aGlzLm92ZXJsYXlNZW51T3BlblN1YnNjcmlwdGlvbiA9IHRoaXMubGF5b3V0U2VydmljZS5vdmVybGF5T3BlbiQuc3Vic2NyaWJlKCgpID0+IHtcclxuXHRcdFx0aWYgKCF0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xyXG5cdFx0XHRcdHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgKGV2ZW50KSA9PiB7XHJcblx0XHRcdFx0XHRjb25zdCBpc091dHNpZGVDbGlja2VkID0gIShcclxuXHRcdFx0XHRcdFx0dGhpcy5hcHBTaWRlYmFyLmVsLm5hdGl2ZUVsZW1lbnQuaXNTYW1lTm9kZShldmVudC50YXJnZXQpIHx8XHJcblx0XHRcdFx0XHRcdHRoaXMuYXBwU2lkZWJhci5lbC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgfHxcclxuXHRcdFx0XHRcdFx0dGhpcy5hcHBUb3BiYXIubWVudUJ1dHRvbi5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoZXZlbnQudGFyZ2V0KSB8fFxyXG5cdFx0XHRcdFx0XHR0aGlzLmFwcFRvcGJhci5tZW51QnV0dG9uLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdGlmIChpc091dHNpZGVDbGlja2VkKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuaGlkZU1lbnUoKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKFxyXG5cdFx0XHRcdCh0aGlzLmxheW91dFNlcnZpY2UuaXNIb3Jpem9udGFsKCkgfHwgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbSgpIHx8IHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW1QbHVzKCkpICYmXHJcblx0XHRcdFx0IXRoaXMubWVudVNjcm9sbExpc3RlbmVyXHJcblx0XHRcdCkge1xyXG5cdFx0XHRcdHRoaXMubWVudVNjcm9sbExpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXHJcblx0XHRcdFx0XHR0aGlzLmFwcFNpZGViYXIubWVudUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxyXG5cdFx0XHRcdFx0J3Njcm9sbCcsXHJcblx0XHRcdFx0XHQoZXZlbnQpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMubGF5b3V0U2VydmljZS5pc0Rlc2t0b3AoKSkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaGlkZU1lbnUoKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmICh0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSkge1xyXG5cdFx0XHRcdHRoaXMuYmxvY2tCb2R5U2Nyb2xsKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcblx0XHRcdGlmICghdGhpcy5sYXlvdXRTZXJ2aWNlLm1mZUFwcEl0ZW1DbGlja2VkKCkpIHRoaXMuaGlkZU1lbnUoKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0YmxvY2tCb2R5U2Nyb2xsKCk6IHZvaWQge1xyXG5cdFx0aWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0KSB7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnYmxvY2tlZC1zY3JvbGwnKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lICs9ICcgYmxvY2tlZC1zY3JvbGwnO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dW5ibG9ja0JvZHlTY3JvbGwoKTogdm9pZCB7XHJcblx0XHRpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QpIHtcclxuXHRcdFx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdibG9ja2VkLXNjcm9sbCcpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZG9jdW1lbnQuYm9keS5jbGFzc05hbWUgPSBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZS5yZXBsYWNlKFxyXG5cdFx0XHRcdG5ldyBSZWdFeHAoJyhefFxcXFxiKScgKyAnYmxvY2tlZC1zY3JvbGwnLnNwbGl0KCcgJykuam9pbignfCcpICsgJyhcXFxcYnwkKScsICdnaScpLFxyXG5cdFx0XHRcdCcgJ1xyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0aGlkZU1lbnUoKSB7XHJcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUub3ZlcmxheU1lbnVBY3RpdmUgPSBmYWxzZTtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlID0gZmFsc2U7XHJcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUubWVudUhvdmVyQWN0aXZlID0gZmFsc2U7XHJcblx0XHR0aGlzLm1lbnVTZXJ2aWNlLnJlc2V0KCk7XHJcblxyXG5cdFx0aWYgKHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XHJcblx0XHRcdHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKCk7XHJcblx0XHRcdHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyID0gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIpIHtcclxuXHRcdFx0dGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIoKTtcclxuXHRcdFx0dGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIgPSBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMudW5ibG9ja0JvZHlTY3JvbGwoKTtcclxuXHR9XHJcblxyXG5cdGdldCBjb250YWluZXJDbGFzcygpIHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdCdsYXlvdXQtbGlnaHQnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkuY29sb3JTY2hlbWUgPT09ICdsaWdodCcsXHJcblx0XHRcdCdsYXlvdXQtZGltJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmNvbG9yU2NoZW1lID09PSAnZGltJyxcclxuXHRcdFx0J2xheW91dC1kYXJrJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmNvbG9yU2NoZW1lID09PSAnZGFyaycsXHJcblx0XHRcdCdsYXlvdXQtY29sb3JzY2hlbWUtbWVudSc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51VGhlbWUgPT09ICdjb2xvclNjaGVtZScsXHJcblx0XHRcdCdsYXlvdXQtcHJpbWFyeWNvbG9yLW1lbnUnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudVRoZW1lID09PSAncHJpbWFyeUNvbG9yJyxcclxuXHRcdFx0J2xheW91dC10cmFuc3BhcmVudC1tZW51JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVUaGVtZSA9PT0gJ3RyYW5zcGFyZW50JyxcclxuXHRcdFx0J2xheW91dC1vdmVybGF5JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnb3ZlcmxheScsXHJcblx0XHRcdCdsYXlvdXQtc3RhdGljJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnc3RhdGljJyxcclxuXHRcdFx0J2xheW91dC1zbGltJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnc2xpbScsXHJcblx0XHRcdCdsYXlvdXQtc2xpbS1wbHVzJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnc2xpbS1wbHVzJyxcclxuXHRcdFx0J2xheW91dC1ob3Jpem9udGFsJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnaG9yaXpvbnRhbCcsXHJcblx0XHRcdCdsYXlvdXQtcmV2ZWFsJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAncmV2ZWFsJyxcclxuXHRcdFx0J2xheW91dC1kcmF3ZXInOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdkcmF3ZXInLFxyXG5cdFx0XHQnbGF5b3V0LXN0YXRpYy1pbmFjdGl2ZSc6XHJcblx0XHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmUgJiYgdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnc3RhdGljJyxcclxuXHRcdFx0J2xheW91dC1vdmVybGF5LWFjdGl2ZSc6IHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5vdmVybGF5TWVudUFjdGl2ZSxcclxuXHRcdFx0J2xheW91dC1tb2JpbGUtYWN0aXZlJzogdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUsXHJcblx0XHRcdCdwLWlucHV0LWZpbGxlZCc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5pbnB1dFN0eWxlID09PSAnZmlsbGVkJyxcclxuXHRcdFx0J3AtcmlwcGxlLWRpc2FibGVkJzogIXRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5yaXBwbGUsXHJcblx0XHRcdCdsYXlvdXQtc2lkZWJhci1hY3RpdmUnOiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc2lkZWJhckFjdGl2ZSxcclxuXHRcdFx0J2xheW91dC1zaWRlYmFyLWFuY2hvcmVkJzogdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLmFuY2hvcmVkXHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHRpZiAodGhpcy5vdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb24pIHtcclxuXHRcdFx0dGhpcy5vdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcclxuXHRcdFx0dGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1jb250YWluZXJcIiBbbmdDbGFzc109XCJjb250YWluZXJDbGFzc1wiPlxyXG5cdDxhcHAtc2lkZWJhciAvPlxyXG5cdDxkaXYgY2xhc3M9XCJsYXlvdXQtY29udGVudC13cmFwcGVyXCI+XHJcblx0XHQ8YXBwLXRvcGJhciAvPlxyXG5cdFx0PGRpdiBjbGFzcz1cImxheW91dC1jb250ZW50IGNhcmRcIj5cclxuXHRcdFx0PHJvdXRlci1vdXRsZXQgLz5cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG5cdDxhcHAtcHJvZmlsZW1lbnUgLz5cclxuXHQ8IS0tPGFwcC1jb25maWc+PC9hcHAtY29uZmlnPi0tPlxyXG5cdDxhcHAtY2hhdGJvdD48L2FwcC1jaGF0Ym90PlxyXG5cdDxkaXYgY2xhc3M9XCJsYXlvdXQtbWFza1wiPjwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxwLXRvYXN0IGtleT1cInRvYXN0LXJvb3RcIiAvPlxyXG48cC1kaWFsb2cga2V5PVwiZGlhbG9nLXJvb3RcIiAvPlxyXG48cC1tZXNzYWdlcyBrZXk9XCJtZXNzYWdlcy1yb290XCIgLz5cclxuPHAtY29uZmlybVBvcHVwIGtleT1cImNvbmZpcm1Qb3B1cC1yb290XCIgLz5cclxuPHAtY29uZmlybURpYWxvZyBrZXk9XCJjb25maXJtRGlhbG9nLXJvb3RcIiAvPlxyXG4iXX0=
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvbGF5b3V0L2FwcC5sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2xheW91dC9hcHAubGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUF3QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFnQixNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJNUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7QUFvQnZFLE1BQU0sT0FBTyxrQkFBa0I7SUFhOUIsWUFDUyxXQUEyQixFQUM1QixhQUE0QixFQUM1QixRQUFtQixFQUNuQixNQUFjO1FBSGIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVZ0QixlQUFVLEdBQVEsVUFBVSxDQUFDO1FBWTVCLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pGLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDbkYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQzt3QkFDekQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO3dCQUN2RCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7d0JBQ2hFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUM5RCxDQUFDO29CQUNGLElBQUksZ0JBQWdCLEVBQUUsQ0FBQzt3QkFDdEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNqQixDQUFDO2dCQUNGLENBQUMsQ0FBQyxDQUFDO1lBQ0osQ0FBQztZQUVELElBQ0MsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDckcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQ3ZCLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQzNDLFFBQVEsRUFDUixDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNULElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO3dCQUNwQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2pCLENBQUM7Z0JBQ0YsQ0FBQyxDQUNELENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6RixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRTtnQkFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNkLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvQyxDQUFDO2FBQU0sQ0FBQztZQUNQLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLGlCQUFpQixDQUFDO1FBQzlDLENBQUM7SUFDRixDQUFDO0lBRUQsaUJBQWlCO1FBQ2hCLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxDQUFDO2FBQU0sQ0FBQztZQUNQLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FDeEQsSUFBSSxNQUFNLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUMvRSxHQUFHLENBQ0gsQ0FBQztRQUNILENBQUM7SUFDRixDQUFDO0lBRUQsUUFBUTtRQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDeEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXpCLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2pCLE9BQU87WUFDTixjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEtBQUssT0FBTztZQUNuRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEtBQUssS0FBSztZQUMvRCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEtBQUssTUFBTTtZQUNqRSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsS0FBSyxhQUFhO1lBQ2xGLDBCQUEwQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxLQUFLLGNBQWM7WUFDcEYseUJBQXlCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLEtBQUssYUFBYTtZQUNsRixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsS0FBSyxTQUFTO1lBQ3BFLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsS0FBSyxRQUFRO1lBQ2xFLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsS0FBSyxNQUFNO1lBQzlELGtCQUFrQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxLQUFLLFdBQVc7WUFDeEUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEtBQUssWUFBWTtZQUMxRSxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEtBQUssUUFBUTtZQUNsRSxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEtBQUssUUFBUTtZQUNsRSx3QkFBd0IsRUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMseUJBQXlCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEtBQUssUUFBUTtZQUN4Ryx1QkFBdUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7WUFDbkUsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsc0JBQXNCO1lBQ3ZFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxLQUFLLFFBQVE7WUFDckUsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU07WUFDeEQsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsYUFBYTtZQUMvRCx5QkFBeUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRO1NBQzVELENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2pDLENBQUM7SUFDRixDQUFDOzhHQW5JVyxrQkFBa0I7a0dBQWxCLGtCQUFrQixrSEFTbkIsbUJBQW1CLDRFQUVuQixrQkFBa0IsZ0RDaEQ5QiwrbEJBbUJBLDRDRElFLE9BQU8sb0ZBQ1AsWUFBWSwwSkFDWixtQkFBbUIsb21CQUNuQixrQkFBa0IseVBBQ2xCLFlBQVksdXVCQUNaLGNBQWMsMlJBQ2QsV0FBVyx3V0FDWCxtQkFBbUIsd0RBQ25CLGtCQUFrQix1REFDbEIsMEJBQTBCLDREQUMxQixtQkFBbUI7OzJGQUlSLGtCQUFrQjtrQkFsQjlCLFNBQVM7aUNBQ0csSUFBSSxZQUNOLFlBQVksV0FDYjt3QkFDUixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQiwwQkFBMEI7d0JBQzFCLG1CQUFtQjtxQkFDbkI7NEpBWStCLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUVDLFNBQVM7c0JBQXZDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFJvdXRlck91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBDb25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb25maXJtZGlhbG9nJztcclxuaW1wb3J0IHsgQ29uZmlybVBvcHVwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb25maXJtcG9wdXAnO1xyXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1lc3NhZ2VzTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9tZXNzYWdlcyc7XHJcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLmxheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwTWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5tZW51LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBQcm9maWxlU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4uL3Byb2ZpbGVTaWRlYmFyL2FwcC5wcm9maWxlc2lkZWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHBTaWRlYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vc2lkZWJhci9hcHAuc2lkZWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHBUb3BiYXJDb21wb25lbnQgfSBmcm9tICcuLi90b3BiYXIvYXBwLnRvcGJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHBDaGF0Ym90Q29tcG9uZW50IH0gZnJvbSAnLi4vY2hhdGJvdC9hcHAuY2hhdGJvdC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FwcC1sYXlvdXQnLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdE5nQ2xhc3MsXHJcblx0XHRSb3V0ZXJPdXRsZXQsXHJcblx0XHRDb25maXJtRGlhbG9nTW9kdWxlLFxyXG5cdFx0Q29uZmlybVBvcHVwTW9kdWxlLFxyXG5cdFx0RGlhbG9nTW9kdWxlLFxyXG5cdFx0TWVzc2FnZXNNb2R1bGUsXHJcblx0XHRUb2FzdE1vZHVsZSxcclxuXHRcdEFwcFNpZGViYXJDb21wb25lbnQsXHJcblx0XHRBcHBUb3BiYXJDb21wb25lbnQsXHJcblx0XHRBcHBQcm9maWxlU2lkZWJhckNvbXBvbmVudCxcclxuXHRcdEFwcENoYXRib3RDb21wb25lbnRcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9hcHAubGF5b3V0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHRvdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcblx0bWVudU91dHNpZGVDbGlja0xpc3RlbmVyOiBhbnk7XHJcblxyXG5cdG1lbnVTY3JvbGxMaXN0ZW5lcjogYW55O1xyXG5cclxuXHRnbG9iYWxUaGlzOiBhbnkgPSBnbG9iYWxUaGlzO1xyXG5cclxuXHRAVmlld0NoaWxkKEFwcFNpZGViYXJDb21wb25lbnQpIGFwcFNpZGViYXIhOiBBcHBTaWRlYmFyQ29tcG9uZW50O1xyXG5cclxuXHRAVmlld0NoaWxkKEFwcFRvcGJhckNvbXBvbmVudCkgYXBwVG9wYmFyITogQXBwVG9wYmFyQ29tcG9uZW50O1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgbWVudVNlcnZpY2U6IEFwcE1lbnVTZXJ2aWNlLFxyXG5cdFx0cHVibGljIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcblx0XHRwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHRcdHB1YmxpYyByb3V0ZXI6IFJvdXRlclxyXG5cdCkge1xyXG5cdFx0dGhpcy5vdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb24gPSB0aGlzLmxheW91dFNlcnZpY2Uub3ZlcmxheU9wZW4kLnN1YnNjcmliZSgoKSA9PiB7XHJcblx0XHRcdGlmICghdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcclxuXHRcdFx0XHR0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdjbGljaycsIChldmVudCkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgaXNPdXRzaWRlQ2xpY2tlZCA9ICEoXHJcblx0XHRcdFx0XHRcdHRoaXMuYXBwU2lkZWJhci5lbC5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoZXZlbnQudGFyZ2V0KSB8fFxyXG5cdFx0XHRcdFx0XHR0aGlzLmFwcFNpZGViYXIuZWwubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpIHx8XHJcblx0XHRcdFx0XHRcdHRoaXMuYXBwVG9wYmFyLm1lbnVCdXR0b24ubmF0aXZlRWxlbWVudC5pc1NhbWVOb2RlKGV2ZW50LnRhcmdldCkgfHxcclxuXHRcdFx0XHRcdFx0dGhpcy5hcHBUb3BiYXIubWVudUJ1dHRvbi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRpZiAoaXNPdXRzaWRlQ2xpY2tlZCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmhpZGVNZW51KCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChcclxuXHRcdFx0XHQodGhpcy5sYXlvdXRTZXJ2aWNlLmlzSG9yaXpvbnRhbCgpIHx8IHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKSB8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltUGx1cygpKSAmJlxyXG5cdFx0XHRcdCF0aGlzLm1lbnVTY3JvbGxMaXN0ZW5lclxyXG5cdFx0XHQpIHtcclxuXHRcdFx0XHR0aGlzLm1lbnVTY3JvbGxMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxyXG5cdFx0XHRcdFx0dGhpcy5hcHBTaWRlYmFyLm1lbnVDb250YWluZXIubmF0aXZlRWxlbWVudCxcclxuXHRcdFx0XHRcdCdzY3JvbGwnLFxyXG5cdFx0XHRcdFx0KGV2ZW50KSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLmxheW91dFNlcnZpY2UuaXNEZXNrdG9wKCkpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmhpZGVNZW51KCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAodGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUpIHtcclxuXHRcdFx0XHR0aGlzLmJsb2NrQm9keVNjcm9sbCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG5cdFx0XHRpZiAoIXRoaXMubGF5b3V0U2VydmljZS5tZmVBcHBJdGVtQ2xpY2tlZCgpKSB0aGlzLmhpZGVNZW51KCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGJsb2NrQm9keVNjcm9sbCgpOiB2b2lkIHtcclxuXHRcdGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCkge1xyXG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2Jsb2NrZWQtc2Nyb2xsJyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSArPSAnIGJsb2NrZWQtc2Nyb2xsJztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHVuYmxvY2tCb2R5U2Nyb2xsKCk6IHZvaWQge1xyXG5cdFx0aWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0KSB7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnYmxvY2tlZC1zY3JvbGwnKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lID0gZG9jdW1lbnQuYm9keS5jbGFzc05hbWUucmVwbGFjZShcclxuXHRcdFx0XHRuZXcgUmVnRXhwKCcoXnxcXFxcYiknICsgJ2Jsb2NrZWQtc2Nyb2xsJy5zcGxpdCgnICcpLmpvaW4oJ3wnKSArICcoXFxcXGJ8JCknLCAnZ2knKSxcclxuXHRcdFx0XHQnICdcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGhpZGVNZW51KCkge1xyXG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLm92ZXJsYXlNZW51QWN0aXZlID0gZmFsc2U7XHJcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSA9IGZhbHNlO1xyXG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLm1lbnVIb3ZlckFjdGl2ZSA9IGZhbHNlO1xyXG5cdFx0dGhpcy5tZW51U2VydmljZS5yZXNldCgpO1xyXG5cclxuXHRcdGlmICh0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xyXG5cdFx0XHR0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpO1xyXG5cdFx0XHR0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lciA9IG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMubWVudVNjcm9sbExpc3RlbmVyKSB7XHJcblx0XHRcdHRoaXMubWVudVNjcm9sbExpc3RlbmVyKCk7XHJcblx0XHRcdHRoaXMubWVudVNjcm9sbExpc3RlbmVyID0gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnVuYmxvY2tCb2R5U2Nyb2xsKCk7XHJcblx0fVxyXG5cclxuXHRnZXQgY29udGFpbmVyQ2xhc3MoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHQnbGF5b3V0LWxpZ2h0JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmNvbG9yU2NoZW1lID09PSAnbGlnaHQnLFxyXG5cdFx0XHQnbGF5b3V0LWRpbSc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5jb2xvclNjaGVtZSA9PT0gJ2RpbScsXHJcblx0XHRcdCdsYXlvdXQtZGFyayc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5jb2xvclNjaGVtZSA9PT0gJ2RhcmsnLFxyXG5cdFx0XHQnbGF5b3V0LWNvbG9yc2NoZW1lLW1lbnUnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudVRoZW1lID09PSAnY29sb3JTY2hlbWUnLFxyXG5cdFx0XHQnbGF5b3V0LXByaW1hcnljb2xvci1tZW51JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVUaGVtZSA9PT0gJ3ByaW1hcnlDb2xvcicsXHJcblx0XHRcdCdsYXlvdXQtdHJhbnNwYXJlbnQtbWVudSc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51VGhlbWUgPT09ICd0cmFuc3BhcmVudCcsXHJcblx0XHRcdCdsYXlvdXQtb3ZlcmxheSc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ292ZXJsYXknLFxyXG5cdFx0XHQnbGF5b3V0LXN0YXRpYyc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3N0YXRpYycsXHJcblx0XHRcdCdsYXlvdXQtc2xpbSc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3NsaW0nLFxyXG5cdFx0XHQnbGF5b3V0LXNsaW0tcGx1cyc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3NsaW0tcGx1cycsXHJcblx0XHRcdCdsYXlvdXQtaG9yaXpvbnRhbCc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ2hvcml6b250YWwnLFxyXG5cdFx0XHQnbGF5b3V0LXJldmVhbCc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3JldmVhbCcsXHJcblx0XHRcdCdsYXlvdXQtZHJhd2VyJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnZHJhd2VyJyxcclxuXHRcdFx0J2xheW91dC1zdGF0aWMtaW5hY3RpdmUnOlxyXG5cdFx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlICYmIHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3N0YXRpYycsXHJcblx0XHRcdCdsYXlvdXQtb3ZlcmxheS1hY3RpdmUnOiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUub3ZlcmxheU1lbnVBY3RpdmUsXHJcblx0XHRcdCdsYXlvdXQtbW9iaWxlLWFjdGl2ZSc6IHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlLFxyXG5cdFx0XHQncC1pbnB1dC1maWxsZWQnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkuaW5wdXRTdHlsZSA9PT0gJ2ZpbGxlZCcsXHJcblx0XHRcdCdwLXJpcHBsZS1kaXNhYmxlZCc6ICF0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkucmlwcGxlLFxyXG5cdFx0XHQnbGF5b3V0LXNpZGViYXItYWN0aXZlJzogdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnNpZGViYXJBY3RpdmUsXHJcblx0XHRcdCdsYXlvdXQtc2lkZWJhci1hbmNob3JlZCc6IHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5hbmNob3JlZFxyXG5cdFx0fTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0aWYgKHRoaXMub3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uKSB7XHJcblx0XHRcdHRoaXMub3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XHJcblx0XHRcdHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3NcIj5cclxuXHQ8YXBwLXNpZGViYXIgLz5cclxuXHQ8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbnRlbnQtd3JhcHBlclwiPlxyXG5cdFx0PGFwcC10b3BiYXIgLz5cclxuXHRcdDxkaXYgY2xhc3M9XCJsYXlvdXQtY29udGVudCBjYXJkXCI+XHJcblx0XHRcdDxyb3V0ZXItb3V0bGV0IC8+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHQ8YXBwLXByb2ZpbGVtZW51IC8+XHJcblx0PCEtLTxhcHAtY29uZmlnPjwvYXBwLWNvbmZpZz4tLT5cclxuXHQ8YXBwLWNoYXRib3Q+PC9hcHAtY2hhdGJvdD5cclxuXHQ8ZGl2IGNsYXNzPVwibGF5b3V0LW1hc2tcIj48L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48cC10b2FzdCBrZXk9XCJ0b2FzdC1yb290XCIgLz5cclxuPHAtZGlhbG9nIGtleT1cImRpYWxvZy1yb290XCIgLz5cclxuPHAtbWVzc2FnZXMga2V5PVwibWVzc2FnZXMtcm9vdFwiIC8+XHJcbjxwLWNvbmZpcm1Qb3B1cCBrZXk9XCJjb25maXJtUG9wdXAtcm9vdFwiIC8+XHJcbjxwLWNvbmZpcm1EaWFsb2cga2V5PVwiY29uZmlybURpYWxvZy1yb290XCIgLz5cclxuIl19
@@ -6,6 +6,7 @@ class ApiConfigsFactory {
6
6
  constructor() {
7
7
  this.api = '';
8
8
  this.mwApi = '';
9
+ this.aiApi = '';
9
10
  this.keycloak = {
10
11
  url: '',
11
12
  realm: '',
@@ -1 +1 @@
1
- {"version":3,"file":"aril-boot-config-api.mjs","sources":["../../projects/aril/boot/config/api/src/interfaces.ts","../../projects/aril/boot/config/api/src/api.service.ts","../../projects/aril/boot/config/api/aril-boot-config-api.ts"],"sourcesContent":["export interface KeycloakConfig {\r\n\turl: string;\r\n\trealm: string;\r\n\tclientId: string;\r\n}\r\nexport class ApiConfigsFactory {\r\n\tapi: string = '';\r\n\tmwApi: string = '';\r\n\tkeycloak: KeycloakConfig = {\r\n\t\turl: '',\r\n\t\trealm: '',\r\n\t\tclientId: ''\r\n\t};\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { isDevMode } from '@angular/core';\r\n\r\nimport { firstValueFrom, tap } from 'rxjs';\r\n\r\nimport { Apps } from 'aril/boot/config/apps';\r\nimport { KeycloakManager } from 'aril/keycloak';\r\n\r\nimport { ApiConfigsFactory } from './interfaces';\r\n\r\nexport const API_CONFIGS = new ApiConfigsFactory();\r\n\r\nexport function loadApiConfigs(\r\n\thttpBackend: { httpClient: HttpClient },\r\n\tkeycloak: KeycloakManager,\r\n\tappName: string\r\n): () => Promise<any> {\r\n\treturn () => {\r\n\t\tconst configDeps: Promise<any>[] = [];\r\n\r\n\t\tconst observable$ = httpBackend.httpClient\r\n\t\t\t.get<ApiConfigsFactory>(isDevMode() ? './assets/local-configs/api.local.json' : './api.json')\r\n\t\t\t.pipe(\r\n\t\t\t\ttap((configs) => {\r\n\t\t\t\t\tObject.assign(API_CONFIGS, { ...configs });\r\n\t\t\t\t\t(<any>globalThis).mwApi = API_CONFIGS.mwApi;\r\n\t\t\t\t\tif (isDevMode()) (<any>globalThis).hostAPI = API_CONFIGS.api;\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// Dynamic API for MNG (Standalone Production Mode)\r\n\t\t\t\t\t\tif (appName === Apps.MNG) API_CONFIGS.api = window.location.origin + '/host/v1';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconfigDeps.push(keycloak.init(API_CONFIGS.keycloak));\r\n\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\treturn firstValueFrom(observable$).then(() => {\r\n\t\t\treturn Promise.all(configDeps);\r\n\t\t});\r\n\t};\r\n}\r\n\r\n/**\r\n * only works when isHostMode is true\r\n * micro-app cannot access its own api.json file when opened in host\r\n * MNG has different controller (host, state-machine etc.)\r\n */\r\nexport function setApiConfigOnMFEMode(\r\n\thttpBackend: { httpClient: HttpClient },\r\n\tkeycloak: KeycloakManager,\r\n\tappName: string\r\n): () => void {\r\n\treturn () => {\r\n\t\tAPI_CONFIGS.mwApi = (<any>globalThis).mwApi;\r\n\t\tif (isDevMode()) {\r\n\t\t\tif (appName === Apps.MNG) API_CONFIGS.api = (<any>globalThis).hostAPI + '/host/v1';\r\n\t\t\telse API_CONFIGS.api = (<any>globalThis).hostAPI + '/' + appName + '/v1';\r\n\t\t} else {\r\n\t\t\tif (appName === Apps.MNG) API_CONFIGS.api = window.location.origin + '/host/v1';\r\n\t\t\telse API_CONFIGS.api = window.location.origin + '/' + appName + '/v1';\r\n\t\t}\r\n\t};\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAKa,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;QACC,IAAG,CAAA,GAAA,GAAW,EAAE,CAAC;QACjB,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;AACnB,QAAA,IAAA,CAAA,QAAQ,GAAmB;AAC1B,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,QAAQ,EAAE,EAAE;SACZ,CAAC;KACF;AAAA;;ACHY,MAAA,WAAW,GAAG,IAAI,iBAAiB,GAAG;SAEnC,cAAc,CAC7B,WAAuC,EACvC,QAAyB,EACzB,OAAe,EAAA;AAEf,IAAA,OAAO,MAAK;QACX,MAAM,UAAU,GAAmB,EAAE,CAAC;AAEtC,QAAA,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU;aACxC,GAAG,CAAoB,SAAS,EAAE,GAAG,uCAAuC,GAAG,YAAY,CAAC;AAC5F,aAAA,IAAI,CACJ,GAAG,CAAC,CAAC,OAAO,KAAI;YACf,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AACrC,YAAA,UAAW,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AAC5C,YAAA,IAAI,SAAS,EAAE;AAAQ,gBAAA,UAAW,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC;iBACxD;;AAEJ,gBAAA,IAAI,OAAO,KAAK,IAAI,CAAC,GAAG;oBAAE,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC;aAChF;AAED,YAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;SACrD,CAAC,CACF,CAAC;QAEH,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAK;AAC5C,YAAA,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChC,SAAC,CAAC,CAAC;AACJ,KAAC,CAAC;AACH,CAAC;AAED;;;;AAIG;SACa,qBAAqB,CACpC,WAAuC,EACvC,QAAyB,EACzB,OAAe,EAAA;AAEf,IAAA,OAAO,MAAK;AACX,QAAA,WAAW,CAAC,KAAK,GAAS,UAAW,CAAC,KAAK,CAAC;QAC5C,IAAI,SAAS,EAAE,EAAE;AAChB,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,GAAG;gBAAE,WAAW,CAAC,GAAG,GAAS,UAAW,CAAC,OAAO,GAAG,UAAU,CAAC;;AAC9E,gBAAA,WAAW,CAAC,GAAG,GAAS,UAAW,CAAC,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,KAAK,CAAC;SACzE;aAAM;AACN,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,GAAG;gBAAE,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC;;AAC3E,gBAAA,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,KAAK,CAAC;SACtE;AACF,KAAC,CAAC;AACH;;AC9DA;;AAEG;;;;"}
1
+ {"version":3,"file":"aril-boot-config-api.mjs","sources":["../../projects/aril/boot/config/api/src/interfaces.ts","../../projects/aril/boot/config/api/src/api.service.ts","../../projects/aril/boot/config/api/aril-boot-config-api.ts"],"sourcesContent":["export interface KeycloakConfig {\r\n\turl: string;\r\n\trealm: string;\r\n\tclientId: string;\r\n}\r\nexport class ApiConfigsFactory {\r\n\tapi: string = '';\r\n\tmwApi: string = '';\r\n\taiApi:string='';\r\n\tkeycloak: KeycloakConfig = {\r\n\t\turl: '',\r\n\t\trealm: '',\r\n\t\tclientId: ''\r\n\t};\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { isDevMode } from '@angular/core';\r\n\r\nimport { firstValueFrom, tap } from 'rxjs';\r\n\r\nimport { Apps } from 'aril/boot/config/apps';\r\nimport { KeycloakManager } from 'aril/keycloak';\r\n\r\nimport { ApiConfigsFactory } from './interfaces';\r\n\r\nexport const API_CONFIGS = new ApiConfigsFactory();\r\n\r\nexport function loadApiConfigs(\r\n\thttpBackend: { httpClient: HttpClient },\r\n\tkeycloak: KeycloakManager,\r\n\tappName: string\r\n): () => Promise<any> {\r\n\treturn () => {\r\n\t\tconst configDeps: Promise<any>[] = [];\r\n\r\n\t\tconst observable$ = httpBackend.httpClient\r\n\t\t\t.get<ApiConfigsFactory>(isDevMode() ? './assets/local-configs/api.local.json' : './api.json')\r\n\t\t\t.pipe(\r\n\t\t\t\ttap((configs) => {\r\n\t\t\t\t\tObject.assign(API_CONFIGS, { ...configs });\r\n\t\t\t\t\t(<any>globalThis).mwApi = API_CONFIGS.mwApi;\r\n\t\t\t\t\tif (isDevMode()) (<any>globalThis).hostAPI = API_CONFIGS.api;\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// Dynamic API for MNG (Standalone Production Mode)\r\n\t\t\t\t\t\tif (appName === Apps.MNG) API_CONFIGS.api = window.location.origin + '/host/v1';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconfigDeps.push(keycloak.init(API_CONFIGS.keycloak));\r\n\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\treturn firstValueFrom(observable$).then(() => {\r\n\t\t\treturn Promise.all(configDeps);\r\n\t\t});\r\n\t};\r\n}\r\n\r\n/**\r\n * only works when isHostMode is true\r\n * micro-app cannot access its own api.json file when opened in host\r\n * MNG has different controller (host, state-machine etc.)\r\n */\r\nexport function setApiConfigOnMFEMode(\r\n\thttpBackend: { httpClient: HttpClient },\r\n\tkeycloak: KeycloakManager,\r\n\tappName: string\r\n): () => void {\r\n\treturn () => {\r\n\t\tAPI_CONFIGS.mwApi = (<any>globalThis).mwApi;\r\n\t\tif (isDevMode()) {\r\n\t\t\tif (appName === Apps.MNG) API_CONFIGS.api = (<any>globalThis).hostAPI + '/host/v1';\r\n\t\t\telse API_CONFIGS.api = (<any>globalThis).hostAPI + '/' + appName + '/v1';\r\n\t\t} else {\r\n\t\t\tif (appName === Apps.MNG) API_CONFIGS.api = window.location.origin + '/host/v1';\r\n\t\t\telse API_CONFIGS.api = window.location.origin + '/' + appName + '/v1';\r\n\t\t}\r\n\t};\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAKa,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;QACC,IAAG,CAAA,GAAA,GAAW,EAAE,CAAC;QACjB,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAK,CAAA,KAAA,GAAQ,EAAE,CAAC;AAChB,QAAA,IAAA,CAAA,QAAQ,GAAmB;AAC1B,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,QAAQ,EAAE,EAAE;SACZ,CAAC;KACF;AAAA;;ACJY,MAAA,WAAW,GAAG,IAAI,iBAAiB,GAAG;SAEnC,cAAc,CAC7B,WAAuC,EACvC,QAAyB,EACzB,OAAe,EAAA;AAEf,IAAA,OAAO,MAAK;QACX,MAAM,UAAU,GAAmB,EAAE,CAAC;AAEtC,QAAA,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU;aACxC,GAAG,CAAoB,SAAS,EAAE,GAAG,uCAAuC,GAAG,YAAY,CAAC;AAC5F,aAAA,IAAI,CACJ,GAAG,CAAC,CAAC,OAAO,KAAI;YACf,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AACrC,YAAA,UAAW,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AAC5C,YAAA,IAAI,SAAS,EAAE;AAAQ,gBAAA,UAAW,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC;iBACxD;;AAEJ,gBAAA,IAAI,OAAO,KAAK,IAAI,CAAC,GAAG;oBAAE,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC;aAChF;AAED,YAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;SACrD,CAAC,CACF,CAAC;QAEH,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAK;AAC5C,YAAA,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChC,SAAC,CAAC,CAAC;AACJ,KAAC,CAAC;AACH,CAAC;AAED;;;;AAIG;SACa,qBAAqB,CACpC,WAAuC,EACvC,QAAyB,EACzB,OAAe,EAAA;AAEf,IAAA,OAAO,MAAK;AACX,QAAA,WAAW,CAAC,KAAK,GAAS,UAAW,CAAC,KAAK,CAAC;QAC5C,IAAI,SAAS,EAAE,EAAE;AAChB,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,GAAG;gBAAE,WAAW,CAAC,GAAG,GAAS,UAAW,CAAC,OAAO,GAAG,UAAU,CAAC;;AAC9E,gBAAA,WAAW,CAAC,GAAG,GAAS,UAAW,CAAC,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,KAAK,CAAC;SACzE;aAAM;AACN,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,GAAG;gBAAE,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC;;AAC3E,gBAAA,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,KAAK,CAAC;SACtE;AACF,KAAC,CAAC;AACH;;AC9DA;;AAEG;;;;"}