ets-fe-ng-sdk 17.0.360 → 17.0.362

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.
@@ -1,22 +1,22 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { clone } from 'lodash-es';
3
2
  import { environment } from '../../../../../environments/environment';
4
3
  import { UserActivity } from './user-activity.model';
5
4
  import * as i0 from "@angular/core";
6
5
  export class UserActivityService {
7
6
  constructor() {
8
- this.activities = [];
9
- setInterval(() => {
10
- if (!this.activities?.length)
11
- return;
12
- const activities = clone(this.activities);
13
- this.activities = [];
14
- this.submissionFunc(activities).toPromise();
15
- }, 1000);
7
+ // toObservable(this.activities).pipe(
8
+ // tap(() => {
9
+ // if (!this.activities()?.length) return;
10
+ // const activities = clone(this.activities());
11
+ // this.activities.set([]);
12
+ // this.submissionFunc(activities as any).toPromise();
13
+ // }),
14
+ // );
16
15
  }
17
16
  add(data) {
18
17
  if (environment.production || environment.logActivities)
19
- this.activities.push(new UserActivity(data));
18
+ this.submissionFunc([new UserActivity(data)]);
19
+ // this.activities.update((acts) => [...acts, new UserActivity(data)]);
20
20
  }
21
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UserActivityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
22
22
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UserActivityService, providedIn: 'root' }); }
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
27
27
  providedIn: 'root',
28
28
  }]
29
29
  }], ctorParameters: () => [] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpdml0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1JldXNhYmxlcy9yZXVzYWJsZS1wYWdlcy91c2VyLWFjdGl2aXR5L3VhLWV4dHJhcy91c2VyLWFjdGl2aXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUV0RSxPQUFPLEVBQWlCLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUtwRSxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCO1FBRlEsZUFBVSxHQUFvQixFQUFFLENBQUM7UUFHdkMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU07Z0JBQUUsT0FBTztZQUNyQyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBaUIsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JELENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBbUI7UUFDckIsSUFBSSxXQUFXLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQyxhQUFhO1lBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RyxDQUFDOzhHQWRVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJVXNlckFjdGl2aXR5LCBVc2VyQWN0aXZpdHkgfSBmcm9tICcuL3VzZXItYWN0aXZpdHkubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlckFjdGl2aXR5U2VydmljZSB7XG4gIHByaXZhdGUgYWN0aXZpdGllczogSVVzZXJBY3Rpdml0eVtdID0gW107XG4gIHN1Ym1pc3Npb25GdW5jOiAoYWN0aXZpdGllczogVXNlckFjdGl2aXR5W10pID0+IE9ic2VydmFibGU8YW55PjtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFjdGl2aXRpZXM/Lmxlbmd0aCkgcmV0dXJuO1xuICAgICAgY29uc3QgYWN0aXZpdGllcyA9IGNsb25lKHRoaXMuYWN0aXZpdGllcyk7XG4gICAgICB0aGlzLmFjdGl2aXRpZXMgPSBbXTtcbiAgICAgIHRoaXMuc3VibWlzc2lvbkZ1bmMoYWN0aXZpdGllcyBhcyBhbnkpLnRvUHJvbWlzZSgpO1xuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgYWRkKGRhdGE6IElVc2VyQWN0aXZpdHkpIHtcbiAgICBpZiAoZW52aXJvbm1lbnQucHJvZHVjdGlvbiB8fCBlbnZpcm9ubWVudC5sb2dBY3Rpdml0aWVzKSB0aGlzLmFjdGl2aXRpZXMucHVzaChuZXcgVXNlckFjdGl2aXR5KGRhdGEpKTtcbiAgfVxufVxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpdml0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1JldXNhYmxlcy9yZXVzYWJsZS1wYWdlcy91c2VyLWFjdGl2aXR5L3VhLWV4dHJhcy91c2VyLWFjdGl2aXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFdEUsT0FBTyxFQUFpQixZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNcEUsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QjtRQUNFLHNDQUFzQztRQUN0QyxnQkFBZ0I7UUFDaEIsOENBQThDO1FBQzlDLG1EQUFtRDtRQUNuRCwrQkFBK0I7UUFDL0IsMERBQTBEO1FBQzFELFFBQVE7UUFDUixLQUFLO0lBQ1AsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFtQjtRQUNyQixJQUFJLFdBQVcsQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDLGFBQWE7WUFDckQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRCx1RUFBdUU7SUFDekUsQ0FBQzs4R0FuQlUsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmUgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJVXNlckFjdGl2aXR5LCBVc2VyQWN0aXZpdHkgfSBmcm9tICcuL3VzZXItYWN0aXZpdHkubW9kZWwnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlckFjdGl2aXR5U2VydmljZSB7XG4gIC8vIHByaXZhdGUgYWN0aXZpdGllcyA9IHNpZ25hbDxJVXNlckFjdGl2aXR5W10+KFtdKTtcbiAgc3VibWlzc2lvbkZ1bmM6IChhY3Rpdml0aWVzOiBVc2VyQWN0aXZpdHlbXSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIHRvT2JzZXJ2YWJsZSh0aGlzLmFjdGl2aXRpZXMpLnBpcGUoXG4gICAgLy8gICB0YXAoKCkgPT4ge1xuICAgIC8vICAgICBpZiAoIXRoaXMuYWN0aXZpdGllcygpPy5sZW5ndGgpIHJldHVybjtcbiAgICAvLyAgICAgY29uc3QgYWN0aXZpdGllcyA9IGNsb25lKHRoaXMuYWN0aXZpdGllcygpKTtcbiAgICAvLyAgICAgdGhpcy5hY3Rpdml0aWVzLnNldChbXSk7XG4gICAgLy8gICAgIHRoaXMuc3VibWlzc2lvbkZ1bmMoYWN0aXZpdGllcyBhcyBhbnkpLnRvUHJvbWlzZSgpO1xuICAgIC8vICAgfSksXG4gICAgLy8gKTtcbiAgfVxuXG4gIGFkZChkYXRhOiBJVXNlckFjdGl2aXR5KSB7XG4gICAgaWYgKGVudmlyb25tZW50LnByb2R1Y3Rpb24gfHwgZW52aXJvbm1lbnQubG9nQWN0aXZpdGllcylcbiAgICAgIHRoaXMuc3VibWlzc2lvbkZ1bmMoW25ldyBVc2VyQWN0aXZpdHkoZGF0YSldKTtcbiAgICAvLyB0aGlzLmFjdGl2aXRpZXMudXBkYXRlKChhY3RzKSA9PiBbLi4uYWN0cywgbmV3IFVzZXJBY3Rpdml0eShkYXRhKV0pO1xuICB9XG59XG4iXX0=
@@ -1,8 +1,9 @@
1
- import { Injectable } from '@angular/core';
1
+ import { Injectable, signal } from '@angular/core';
2
2
  import { clone } from 'lodash-es';
3
- import { BehaviorSubject, Observable } from 'rxjs';
4
- import { map, tap } from 'rxjs/operators';
3
+ import { BehaviorSubject, Observable, lastValueFrom } from 'rxjs';
4
+ import { debounceTime, filter, map, tap } from 'rxjs/operators';
5
5
  import { environment } from '../../environments/environment';
6
+ import { toObservable } from '@angular/core/rxjs-interop';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "./api.service";
8
9
  import * as i2 from "./storage.service";
@@ -13,7 +14,7 @@ export class TranslationService {
13
14
  this.storageS = storageS;
14
15
  this.lCacheS = lCacheS;
15
16
  this.baseURL = environment.apiBaseUrl + '/rest/translation/';
16
- this.translationRequestMatrix = {};
17
+ this.translationRequestMatrix = signal({});
17
18
  this.translationResponseMatrix = new BehaviorSubject({});
18
19
  this.seperator = '~~~';
19
20
  this.name = 'glossary';
@@ -33,7 +34,7 @@ export class TranslationService {
33
34
  }
34
35
  else {
35
36
  const id = Math.round(Math.random() * 1000000000000000);
36
- this.translationRequestMatrix[id] = text;
37
+ this.translationRequestMatrix.update((map) => ({ ...map, [id]: text }));
37
38
  const sub = this.translationResponseMatrix.subscribe({
38
39
  next: (r) => {
39
40
  if (debug)
@@ -69,31 +70,27 @@ export class TranslationService {
69
70
  });
70
71
  };
71
72
  this.translateHTMLPromise = (text, sourceLanguage = environment.sourceLanguage, targetLanguage = environment.targetLanguage, debug = false) => this.translateHTML(text, sourceLanguage, targetLanguage, debug)?.toPromise();
72
- const interval = setInterval(async () => {
73
- const body = clone(this.translationRequestMatrix);
74
- this.translationRequestMatrix = {};
73
+ toObservable(this.translationRequestMatrix).pipe(filter((x) => x && Object.keys(x).length > 0), debounceTime(1000), tap(async () => {
74
+ const body = clone(this.translationRequestMatrix());
75
+ this.translationRequestMatrix.set({});
75
76
  if (Object.keys(body)?.length) {
76
77
  // debugger;
77
78
  const transGlossary = this.transGlossary || (await this.getGlossary().toPromise());
78
79
  if (this.sourceLanguage != this.targetLanguage)
79
- this.apiService
80
- .postString(this.baseURL +
80
+ lastValueFrom(this.apiService.postString(this.baseURL +
81
81
  (this.transGlossary?.code
82
82
  ? `language?glossaryCode=${this.transGlossary?.code}&sourceLang=${this.sourceLanguage}&targetLang=${this.targetLanguage}`
83
83
  : `language/${this.targetLanguage}`), Object.keys(body)
84
84
  .map((id) => this.tagger(+id, body[id]))
85
- .join(this.seperator))
86
- .toPromise()
85
+ .join(this.seperator)))
87
86
  .then((r) => {
88
87
  this.translationResponseMatrix.next(this.detagger(r));
89
88
  })
90
89
  .catch((e) => {
91
90
  console.error(e);
92
91
  });
93
- else
94
- clearInterval(interval);
95
92
  }
96
- }, 1000);
93
+ }));
97
94
  }
98
95
  tagger(id, str) {
99
96
  return `<div id="${id}">${str}</div>`;
@@ -101,9 +98,7 @@ export class TranslationService {
101
98
  getGlossary(sourceLanguage = environment.sourceLanguage, targetLanguage = environment.targetLanguage) {
102
99
  this.sourceLanguage = sourceLanguage || this.sourceLanguage;
103
100
  this.targetLanguage = targetLanguage || this.targetLanguage;
104
- return this.apiService
105
- .get(`${this.baseURL}glossary/`)
106
- .pipe(map((r) => {
101
+ return this.apiService.get(`${this.baseURL}glossary/`).pipe(map((r) => {
107
102
  debugger;
108
103
  const glossary = r?.find((x) => x.sourceLang == this.sourceLanguage &&
109
104
  x.targetLang == this.targetLanguage &&
@@ -145,4 +140,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
145
140
  providedIn: 'root',
146
141
  }]
147
142
  }], ctorParameters: () => [{ type: i1.ApiService }, { type: i2.ETSStorageService }, { type: i3.LocalCacheService }] });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBUzdELE1BQU0sT0FBTyxrQkFBa0I7SUFVN0IsWUFDUyxVQUFzQixFQUN0QixRQUEyQixFQUMzQixPQUEwQjtRQUYxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBWjNCLFlBQU8sR0FBRyxXQUFXLENBQUMsVUFBVSxHQUFHLG9CQUFvQixDQUFDO1FBQ3hELDZCQUF3QixHQUE0QixFQUFFLENBQUM7UUFDdkQsOEJBQXlCLEdBQy9CLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQW1HbEIsa0JBQWEsR0FBRyxDQUNkLFVBQWtCLEVBQ2xCLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUNwQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFDcEMsS0FBSyxHQUFHLEtBQUssRUFDYixFQUFFO1lBQ0YsT0FBTyxJQUFJLFVBQVUsQ0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dC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QUcsT0FBTyxDQUFDO1FBQ25CLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLFVBQVUsQ0FDVCxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksV0FBVyxDQUFDLGNBQWMsRUFBRSxFQUN2RCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNkLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUN4QjthQUNBLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQVcsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzs4R0F4R1Usa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbmltcG9ydCB7IEVMYW5ndWFnZSB9IGZyb20gJy4uL1NoYXJlZC9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxDYWNoZVNlcnZpY2UgfSBmcm9tICcuL2NhY2hlL2xvY2FsLWNhY2hlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRVRTU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblNlcnZpY2U8VHJhbnNsYXRpb25HbG9zc2FyeVJlc3BvbnNlID0gYW55PiB7XG4gIHByaXZhdGUgYmFzZVVSTCA9IGVudmlyb25tZW50LmFwaUJhc2VVcmwgKyAnL3Jlc3QvdHJhbnNsYXRpb24vJztcbiAgcHJpdmF0ZSB0cmFuc2xhdGlvblJlcXVlc3RNYXRyaXg6IHsgW3g6IG51bWJlcl06IHN0cmluZyB9ID0ge307XG4gIHByaXZhdGUgdHJhbnNsYXRpb25SZXNwb25zZU1hdHJpeDogQmVoYXZpb3JTdWJqZWN0PHsgW3g6IG51bWJlcl06IHN0cmluZyB9PiA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG4gIHJlYWRvbmx5IHNlcGVyYXRvciA9ICd+fn4nO1xuICBuYW1lID0gJ2dsb3NzYXJ5JztcbiAgc291cmNlTGFuZ3VhZ2U6IEVMYW5ndWFnZTtcbiAgdGFyZ2V0TGFuZ3VhZ2U6IEVMYW5ndWFnZTtcbiAgdHJhbnNHbG9zc2FyeTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXG4gICAgcHVibGljIHN0b3JhZ2VTOiBFVFNTdG9yYWdlU2VydmljZSxcbiAgICBwdWJsaWMgbENhY2hlUzogTG9jYWxDYWNoZVNlcnZpY2VcbiAgKSB7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBib2R5ID0gY2xvbmUodGhpcy50cmFuc2xhdGlvblJlcXVlc3RNYXRyaXgpO1xuICAgICAgdGhpcy50cmFuc2xhdGlvblJlcXVlc3RNYXRyaXggPSB7fTtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhib2R5KT8ubGVuZ3RoKSB7XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICBjb25zdCB0cmFuc0dsb3NzYXJ5ID1cbiAgICAgICAgICB0aGlzLnRyYW5zR2xvc3NhcnkgfHwgKGF3YWl0IHRoaXMuZ2V0R2xvc3NhcnkoKS50b1Byb21pc2UoKSk7XG4gICAgICAgIGlmICh0aGlzLnNvdXJjZUxhbmd1YWdlICE9IHRoaXMudGFyZ2V0TGFuZ3VhZ2UpXG4gICAgICAgICAgdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAgICAgICAucG9zdFN0cmluZyhcbiAgICAgICAgICAgICAgdGhpcy5iYXNlVVJMICtcbiAgICAgICAgICAgICAgICAodGhpcy50cmFuc0dsb3NzYXJ5Py5jb2RlXG4gICAgICAgICAgICAgICAgICA/IGBsYW5ndWFnZT9nbG9zc2FyeUNvZGU9JHt0aGlzLnRyYW5zR2xvc3Nhcnk/LmNvZGV9JnNvdXJjZUxhbmc9JHt0aGlzLnNvdXJjZUxhbmd1YWdlfSZ0YXJnZXRMYW5nPSR7dGhpcy50YXJnZXRMYW5ndWFnZX1gXG4gICAgICAgICAgICAgICAgICA6IGBsYW5ndWFnZS8ke3RoaXMudGFyZ2V0TGFuZ3VhZ2V9YCksXG4gICAgICAgICAgICAgIE9iamVjdC5rZXlzKGJvZHkpXG4gICAgICAgICAgICAgICAgLm1hcCgoaWQpID0+IHRoaXMudGFnZ2VyKCtpZCwgYm9keVtpZF0pKVxuICAgICAgICAgICAgICAgIC5qb2luKHRoaXMuc2VwZXJhdG9yKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAgICAgICAudGhlbigocikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uUmVzcG9uc2VNYXRyaXgubmV4dCh0aGlzLmRldGFnZ2VyKHIpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBlbHNlIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICAgICAgfVxuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgdGFnZ2VyKGlkOiBudW1iZXIsIHN0cjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGA8ZGl2IGlkPVwiJHtpZH1cIj4ke3N0cn08L2Rpdj5gO1xuICB9XG4gIGdldEdsb3NzYXJ5KFxuICAgIHNvdXJjZUxhbmd1YWdlOiBFTGFuZ3VhZ2UgPSBlbnZpcm9ubWVudC5zb3VyY2VMYW5ndWFnZSxcbiAgICB0YXJnZXRMYW5ndWFnZTogRUxhbmd1YWdlID0gZW52aXJvbm1lbnQudGFyZ2V0TGFuZ3VhZ2VcbiAgKSB7XG4gICAgdGhpcy5zb3VyY2VMYW5ndWFnZSA9IHNvdXJjZUxhbmd1YWdlIHx8IHRoaXMuc291cmNlTGFuZ3VhZ2U7XG4gICAgdGhpcy50YXJnZXRMYW5ndWFnZSA9IHRhcmdldExhbmd1YWdlIHx8IHRoaXMudGFyZ2V0TGFuZ3VhZ2U7XG5cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG5cbiAgICAgIC5nZXQ8VHJhbnNsYXRpb25HbG9zc2FyeVJlc3BvbnNlW10+KGAke3RoaXMuYmFzZVVSTH1nbG9zc2FyeS9gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocjogYW55W10pID0+IHtcbiAgICAgICAgICBkZWJ1Z2dlcjtcbiAgICAgICAgICBjb25zdCBnbG9zc2FyeSA9IHI/LmZpbmQoXG4gICAgICAgICAgICAoeCkgPT5cbiAgICAgICAgICAgICAgeC5zb3VyY2VMYW5nID09IHRoaXMuc291cmNlTGFuZ3VhZ2UgJiZcbiAgICAgICAgICAgICAgeC50YXJnZXRMYW5nID09IHRoaXMudGFyZ2V0TGFuZ3VhZ2UgJiZcbiAgICAgICAgICAgICAgeC5uYW1lID09IHRoaXMubmFtZVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGdsb3NzYXJ5ID8gZ2xvc3NhcnkgOiBudWxsO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChnbG9zc2FyeSkgPT4ge1xuICAgICAgICAgIGlmICghZ2xvc3NhcnkpIHJldHVybiBudWxsO1xuICAgICAgICAgIHRoaXMudHJhbnNHbG9zc2FyeSA9IGVudmlyb25tZW50LnRyYW5zR2xvc3NhcnkgPSBnbG9zc2FyeTtcbiAgICAgICAgICB0aGlzLnN0b3JhZ2VTLnNhdmVJdGVtKFxuICAgICAgICAgICAgZW52aXJvbm1lbnQudHJhbnNHbG9zc2FyeUtleSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNHbG9zc2FyeVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGdsb3NzYXJ5O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuICBkZXRhZ2dlcihzdHI6IHN0cmluZykge1xuICAgIGNvbnN0IGl0ZW1zID0gc3RyPy5zcGxpdCh0aGlzLnNlcGVyYXRvcik7XG4gICAgY29uc3QgcmVzb2JqID0ge307XG4gICAgZm9yIChjb25zdCBzdHIgb2YgaXRlbXMpIHtcbiAgICAgIHJlc29ialtzdHI/LnNwbGl0KCdcIicpWzFdXSA9IHN0cj8uc3BsaXQoJz4nKVsxXT8uc3BsaXQoJzwvZGl2JylbMF07XG4gICAgfVxuICAgIHJldHVybiByZXNvYmo7XG4gIH1cblxuICB0cm5hc2xhdGVPbGQodGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgaWQgPSAzMjMyMzIzO1xuICAgIGNvbnN0IGJvZHkgPSB7IFtpZF06IHRleHQgfTtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAucG9zdFN0cmluZyhcbiAgICAgICAgdGhpcy5iYXNlVVJMICsgYGxhbmd1YWdlLyR7ZW52aXJvbm1lbnQudGFyZ2V0TGFuZ3VhZ2V9YCxcbiAgICAgICAgT2JqZWN0LmtleXMoYm9keSlcbiAgICAgICAgICAubWFwKChpZCkgPT4gdGhpcy50YWdnZXIoK2lkLCBib2R5W2lkXSkpXG4gICAgICAgICAgLmpvaW4odGhpcy5zZXBlcmF0b3IpXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZGV0YWdnZXIocilbaWRdIGFzIHN0cmluZztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbiAgdHJhbnNsYXRlSFRNTCA9IChcbiAgICBIVE1MU3RyaW5nOiBzdHJpbmcsXG4gICAgc291cmNlTGFuZ3VhZ2UgPSB0aGlzLnNvdXJjZUxhbmd1YWdlLFxuICAgIHRhcmdldExhbmd1YWdlID0gdGhpcy50YXJnZXRMYW5ndWFnZSxcbiAgICBkZWJ1ZyA9IGZhbHNlXG4gICkgPT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChyZXMpID0+IHtcbiAgICAgIGlmIChkZWJ1ZykgZGVidWdnZXI7XG5cbiAgICAgIGNvbnN0IHRleHQgPSBIVE1MU3RyaW5nPy50cmltKCksXG4gICAgICAgIHJvdXRlID0gdGhpcy5iYXNlVVJMICsgYGxhbmd1YWdlYDtcbiAgICAgIGNvbnN0IGNhY2hlS2V5ID0gcm91dGUgKyAnXycgKyB0YXJnZXRMYW5ndWFnZSArICdfJyArIHRleHQ7XG4gICAgICBpZiAoIXRleHQpIHtcbiAgICAgICAgcmVzLm5leHQoSFRNTFN0cmluZyk7XG4gICAgICAgIHJlcy5jb21wbGV0ZSgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmxDYWNoZVMuaGFzKGNhY2hlS2V5KSkge1xuICAgICAgICByZXMubmV4dCh0aGlzLmxDYWNoZVMuZ2V0SXRlbTxzdHJpbmc+KGNhY2hlS2V5KSk7XG4gICAgICAgIHJlcy5jb21wbGV0ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaWQgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwMDAwMDAwMDAwKTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvblJlcXVlc3RNYXRyaXhbaWRdID0gdGV4dDtcbiAgICAgICAgY29uc3Qgc3ViOiBTdWJzY3JpcHRpb24gPSB0aGlzLnRyYW5zbGF0aW9uUmVzcG9uc2VNYXRyaXguc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocikgPT4ge1xuICAgICAgICAgICAgaWYgKGRlYnVnKSBkZWJ1Z2dlcjtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zVmFsID0gcltpZC50b1N0cmluZygpXTtcbiAgICAgICAgICAgIGlmICh0cmFuc1ZhbCkge1xuICAgICAgICAgICAgICByZXMubmV4dCh0cmFuc1ZhbCk7XG4gICAgICAgICAgICAgIHRoaXMubENhY2hlUy5zZXRJdGVtKGNhY2hlS2V5LCB0cmFuc1ZhbCk7XG4gICAgICAgICAgICAgIHJlcy5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICAgICAgcmVzLmVycm9yKGUpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICBwbGFpblRyYW5zbGF0ZSA9IChcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgc291cmNlTGFuZ3VhZ2UgPSBlbnZpcm9ubWVudC5zb3VyY2VMYW5ndWFnZSxcbiAgICB0YXJnZXRMYW5ndWFnZSA9IGVudmlyb25tZW50LnRhcmdldExhbmd1YWdlXG4gICkgPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICB0ZXh0ID0gdGV4dD8udHJpbSgpO1xuICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLmJhc2VVUkwgKyBgbGFuZ3VhZ2VgO1xuXG4gICAgICBpZiAoIXRleHQpIHJlc29sdmUobnVsbCk7XG4gICAgICBlbHNlIGlmICh0aGlzLmxDYWNoZVMuaGFzKHJvdXRlICsgJ18nICsgdGV4dCkpXG4gICAgICAgIHJlc29sdmUodGhpcy5sQ2FjaGVTLmdldEl0ZW08c3RyaW5nPihyb3V0ZSArICdfJyArIHRleHQpKTtcbiAgICAgIGVsc2VcbiAgICAgICAgcmVzb2x2ZShcbiAgICAgICAgICBhd2FpdCB0aGlzLmFwaVNlcnZpY2VcbiAgICAgICAgICAgIC5wb3N0U3RyaW5nKHJvdXRlLCB0ZXh0KVxuICAgICAgICAgICAgLnBpcGUodGFwKChyKSA9PiB0aGlzLmxDYWNoZVMuc2V0SXRlbShyb3V0ZSArICdfJyArIHRleHQsIHIpKSlcbiAgICAgICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgICApO1xuICAgIH0pO1xuICB9O1xuICB0cmFuc2xhdGVIVE1MUHJvbWlzZSA9IChcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgc291cmNlTGFuZ3VhZ2UgPSBlbnZpcm9ubWVudC5zb3VyY2VMYW5ndWFnZSxcbiAgICB0YXJnZXRMYW5ndWFnZSA9IGVudmlyb25tZW50LnRhcmdldExhbmd1YWdlLFxuICAgIGRlYnVnID0gZmFsc2VcbiAgKSA9PlxuICAgIHRoaXMudHJhbnNsYXRlSFRNTChcbiAgICAgIHRleHQsXG4gICAgICBzb3VyY2VMYW5ndWFnZSxcbiAgICAgIHRhcmdldExhbmd1YWdlLFxuICAgICAgZGVidWdcbiAgICApPy50b1Byb21pc2UoKTtcbn1cbiJdfQ==
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQWdCLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUFLMUQsTUFBTSxPQUFPLGtCQUFrQjtJQVc3QixZQUNTLFVBQXNCLEVBQ3RCLFFBQTJCLEVBQzNCLE9BQTBCO1FBRjFCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFDM0IsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFiM0IsWUFBTyxHQUFHLFdBQVcsQ0FBQyxVQUFVLEdBQUcsb0JBQW9CLENBQUM7UUFDL0MsNkJBQXdCLEdBQUcsTUFBTSxDQUEwQixFQUFFLENBQUMsQ0FBQztRQUN4RSw4QkFBeUIsR0FBNkMsSUFBSSxlQUFlLENBQy9GLEVBQUUsQ0FDSCxDQUFDO1FBQ08sY0FBUyxHQUFHLEtBQUssQ0FBQztRQUMzQixTQUFJLEdBQUcsVUFBVSxDQUFDO1FBK0ZsQixrQkFBYSxHQUFHLENBQ2QsVUFBa0IsRUFDbEIsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQ3BDLGNBQWMs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bkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBFTGFuZ3VhZ2UgfSBmcm9tICcuLi9TaGFyZWQvbW9kZWxzL2luZGV4Lm1vZGVsJztcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi9jYWNoZS9sb2NhbC1jYWNoZS5zZXJ2aWNlJztcbmltcG9ydCB7IEVUU1N0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25TZXJ2aWNlPFRyYW5zbGF0aW9uR2xvc3NhcnlSZXNwb25zZSA9IGFueT4ge1xuICBwcml2YXRlIGJhc2VVUkwgPSBlbnZpcm9ubWVudC5hcGlCYXNlVXJsICsgJy9yZXN0L3RyYW5zbGF0aW9uLyc7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb25SZXF1ZXN0TWF0cml4ID0gc2lnbmFsPHsgW3g6IG51bWJlcl06IHN0cmluZyB9Pih7fSk7XG4gIHByaXZhdGUgdHJhbnNsYXRpb25SZXNwb25zZU1hdHJpeDogQmVoYXZpb3JTdWJqZWN0PHsgW3g6IG51bWJlcl06IHN0cmluZyB9PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXG4gICAge30sXG4gICk7XG4gIHJlYWRvbmx5IHNlcGVyYXRvciA9ICd+fn4nO1xuICBuYW1lID0gJ2dsb3NzYXJ5JztcbiAgc291cmNlTGFuZ3VhZ2U6IEVMYW5ndWFnZTtcbiAgdGFyZ2V0TGFuZ3VhZ2U6IEVMYW5ndWFnZTtcbiAgdHJhbnNHbG9zc2FyeTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXG4gICAgcHVibGljIHN0b3JhZ2VTOiBFVFNTdG9yYWdlU2VydmljZSxcbiAgICBwdWJsaWMgbENhY2hlUzogTG9jYWxDYWNoZVNlcnZpY2UsXG4gICkge1xuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnRyYW5zbGF0aW9uUmVxdWVzdE1hdHJpeCkucGlwZShcbiAgICAgIGZpbHRlcigoeCkgPT4geCAmJiBPYmplY3Qua2V5cyh4KS5sZW5ndGggPiAwKSxcbiAgICAgIGRlYm91bmNlVGltZSgxMDAwKSxcbiAgICAgIHRhcChhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSBjbG9uZSh0aGlzLnRyYW5zbGF0aW9uUmVxdWVzdE1hdHJpeCgpKTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvblJlcXVlc3RNYXRyaXguc2V0KHt9KTtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGJvZHkpPy5sZW5ndGgpIHtcbiAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICBjb25zdCB0cmFuc0dsb3NzYXJ5ID0gdGhpcy50cmFuc0dsb3NzYXJ5IHx8IChhd2FpdCB0aGlzLmdldEdsb3NzYXJ5KCkudG9Qcm9taXNlKCkpO1xuICAgICAgICAgIGlmICh0aGlzLnNvdXJjZUxhbmd1YWdlICE9IHRoaXMudGFyZ2V0TGFuZ3VhZ2UpXG4gICAgICAgICAgICBsYXN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgICB0aGlzLmFwaVNlcnZpY2UucG9zdFN0cmluZyhcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VVUkwgK1xuICAgICAgICAgICAgICAgICAgKHRoaXMudHJhbnNHbG9zc2FyeT8uY29kZVxuICAgICAgICAgICAgICAgICAgICA/IGBsYW5ndWFnZT9nbG9zc2FyeUNvZGU9JHt0aGlzLnRyYW5zR2xvc3Nhcnk/LmNvZGV9JnNvdXJjZUxhbmc9JHt0aGlzLnNvdXJjZUxhbmd1YWdlfSZ0YXJnZXRMYW5nPSR7dGhpcy50YXJnZXRMYW5ndWFnZX1gXG4gICAgICAgICAgICAgICAgICAgIDogYGxhbmd1YWdlLyR7dGhpcy50YXJnZXRMYW5ndWFnZX1gKSxcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhib2R5KVxuICAgICAgICAgICAgICAgICAgLm1hcCgoaWQpID0+IHRoaXMudGFnZ2VyKCtpZCwgYm9keVtpZF0pKVxuICAgICAgICAgICAgICAgICAgLmpvaW4odGhpcy5zZXBlcmF0b3IpLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAudGhlbigocikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRpb25SZXNwb25zZU1hdHJpeC5uZXh0KHRoaXMuZGV0YWdnZXIocikpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHRhZ2dlcihpZDogbnVtYmVyLCBzdHI6IHN0cmluZykge1xuICAgIHJldHVybiBgPGRpdiBpZD1cIiR7aWR9XCI+JHtzdHJ9PC9kaXY+YDtcbiAgfVxuICBnZXRHbG9zc2FyeShcbiAgICBzb3VyY2VMYW5ndWFnZTogRUxhbmd1YWdlID0gZW52aXJvbm1lbnQuc291cmNlTGFuZ3VhZ2UsXG4gICAgdGFyZ2V0TGFuZ3VhZ2U6IEVMYW5ndWFnZSA9IGVudmlyb25tZW50LnRhcmdldExhbmd1YWdlLFxuICApIHtcbiAgICB0aGlzLnNvdXJjZUxhbmd1YWdlID0gc291cmNlTGFuZ3VhZ2UgfHwgdGhpcy5zb3VyY2VMYW5ndWFnZTtcbiAgICB0aGlzLnRhcmdldExhbmd1YWdlID0gdGFyZ2V0TGFuZ3VhZ2UgfHwgdGhpcy50YXJnZXRMYW5ndWFnZTtcblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0PFRyYW5zbGF0aW9uR2xvc3NhcnlSZXNwb25zZVtdPihgJHt0aGlzLmJhc2VVUkx9Z2xvc3NhcnkvYCkucGlwZShcbiAgICAgIG1hcCgocjogYW55W10pID0+IHtcbiAgICAgICAgZGVidWdnZXI7XG4gICAgICAgIGNvbnN0IGdsb3NzYXJ5ID0gcj8uZmluZChcbiAgICAgICAgICAoeCkgPT5cbiAgICAgICAgICAgIHguc291cmNlTGFuZyA9PSB0aGlzLnNvdXJjZUxhbmd1YWdlICYmXG4gICAgICAgICAgICB4LnRhcmdldExhbmcgPT0gdGhpcy50YXJnZXRMYW5ndWFnZSAmJlxuICAgICAgICAgICAgeC5uYW1lID09IHRoaXMubmFtZSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGdsb3NzYXJ5ID8gZ2xvc3NhcnkgOiBudWxsO1xuICAgICAgfSksXG4gICAgICBtYXAoKGdsb3NzYXJ5KSA9PiB7XG4gICAgICAgIGlmICghZ2xvc3NhcnkpIHJldHVybiBudWxsO1xuICAgICAgICB0aGlzLnRyYW5zR2xvc3NhcnkgPSBlbnZpcm9ubWVudC50cmFuc0dsb3NzYXJ5ID0gZ2xvc3Nhcnk7XG4gICAgICAgIHRoaXMuc3RvcmFnZVMuc2F2ZUl0ZW0oZW52aXJvbm1lbnQudHJhbnNHbG9zc2FyeUtleSwgdGhpcy50cmFuc0dsb3NzYXJ5KTtcbiAgICAgICAgcmV0dXJuIGdsb3NzYXJ5O1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuICBkZXRhZ2dlcihzdHI6IHN0cmluZykge1xuICAgIGNvbnN0IGl0ZW1zID0gc3RyPy5zcGxpdCh0aGlzLnNlcGVyYXRvcik7XG4gICAgY29uc3QgcmVzb2JqID0ge307XG4gICAgZm9yIChjb25zdCBzdHIgb2YgaXRlbXMpIHtcbiAgICAgIHJlc29ialtzdHI/LnNwbGl0KCdcIicpWzFdXSA9IHN0cj8uc3BsaXQoJz4nKVsxXT8uc3BsaXQoJzwvZGl2JylbMF07XG4gICAgfVxuICAgIHJldHVybiByZXNvYmo7XG4gIH1cblxuICB0cm5hc2xhdGVPbGQodGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgaWQgPSAzMjMyMzIzO1xuICAgIGNvbnN0IGJvZHkgPSB7IFtpZF06IHRleHQgfTtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAucG9zdFN0cmluZyhcbiAgICAgICAgdGhpcy5iYXNlVVJMICsgYGxhbmd1YWdlLyR7ZW52aXJvbm1lbnQudGFyZ2V0TGFuZ3VhZ2V9YCxcbiAgICAgICAgT2JqZWN0LmtleXMoYm9keSlcbiAgICAgICAgICAubWFwKChpZCkgPT4gdGhpcy50YWdnZXIoK2lkLCBib2R5W2lkXSkpXG4gICAgICAgICAgLmpvaW4odGhpcy5zZXBlcmF0b3IpLFxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocikgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmRldGFnZ2VyKHIpW2lkXSBhcyBzdHJpbmc7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuICB0cmFuc2xhdGVIVE1MID0gKFxuICAgIEhUTUxTdHJpbmc6IHN0cmluZyxcbiAgICBzb3VyY2VMYW5ndWFnZSA9IHRoaXMuc291cmNlTGFuZ3VhZ2UsXG4gICAgdGFyZ2V0TGFuZ3VhZ2UgPSB0aGlzLnRhcmdldExhbmd1YWdlLFxuICAgIGRlYnVnID0gZmFsc2UsXG4gICkgPT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChyZXMpID0+IHtcbiAgICAgIGlmIChkZWJ1ZykgZGVidWdnZXI7XG5cbiAgICAgIGNvbnN0IHRleHQgPSBIVE1MU3RyaW5nPy50cmltKCksXG4gICAgICAgIHJvdXRlID0gdGhpcy5iYXNlVVJMICsgYGxhbmd1YWdlYDtcbiAgICAgIGNvbnN0IGNhY2hlS2V5ID0gcm91dGUgKyAnXycgKyB0YXJnZXRMYW5ndWFnZSArICdfJyArIHRleHQ7XG4gICAgICBpZiAoIXRleHQpIHtcbiAgICAgICAgcmVzLm5leHQoSFRNTFN0cmluZyk7XG4gICAgICAgIHJlcy5jb21wbGV0ZSgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmxDYWNoZVMuaGFzKGNhY2hlS2V5KSkge1xuICAgICAgICByZXMubmV4dCh0aGlzLmxDYWNoZVMuZ2V0SXRlbTxzdHJpbmc+KGNhY2hlS2V5KSk7XG4gICAgICAgIHJlcy5jb21wbGV0ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaWQgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwMDAwMDAwMDAwKTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvblJlcXVlc3RNYXRyaXgudXBkYXRlKChtYXApID0+ICh7IC4uLm1hcCwgW2lkXTogdGV4dCB9KSk7XG4gICAgICAgIGNvbnN0IHN1YjogU3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGlvblJlc3BvbnNlTWF0cml4LnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHIpID0+IHtcbiAgICAgICAgICAgIGlmIChkZWJ1ZykgZGVidWdnZXI7XG4gICAgICAgICAgICBjb25zdCB0cmFuc1ZhbCA9IHJbaWQudG9TdHJpbmcoKV07XG4gICAgICAgICAgICBpZiAodHJhbnNWYWwpIHtcbiAgICAgICAgICAgICAgcmVzLm5leHQodHJhbnNWYWwpO1xuICAgICAgICAgICAgICB0aGlzLmxDYWNoZVMuc2V0SXRlbShjYWNoZUtleSwgdHJhbnNWYWwpO1xuICAgICAgICAgICAgICByZXMuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICAgIHJlcy5lcnJvcihlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbiAgcGxhaW5UcmFuc2xhdGUgPSAoXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHNvdXJjZUxhbmd1YWdlID0gZW52aXJvbm1lbnQuc291cmNlTGFuZ3VhZ2UsXG4gICAgdGFyZ2V0TGFuZ3VhZ2UgPSBlbnZpcm9ubWVudC50YXJnZXRMYW5ndWFnZSxcbiAgKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICAgIHRleHQgPSB0ZXh0Py50cmltKCk7XG4gICAgICBjb25zdCByb3V0ZSA9IHRoaXMuYmFzZVVSTCArIGBsYW5ndWFnZWA7XG5cbiAgICAgIGlmICghdGV4dCkgcmVzb2x2ZShudWxsKTtcbiAgICAgIGVsc2UgaWYgKHRoaXMubENhY2hlUy5oYXMocm91dGUgKyAnXycgKyB0ZXh0KSlcbiAgICAgICAgcmVzb2x2ZSh0aGlzLmxDYWNoZVMuZ2V0SXRlbTxzdHJpbmc+KHJvdXRlICsgJ18nICsgdGV4dCkpO1xuICAgICAgZWxzZVxuICAgICAgICByZXNvbHZlKFxuICAgICAgICAgIGF3YWl0IHRoaXMuYXBpU2VydmljZVxuICAgICAgICAgICAgLnBvc3RTdHJpbmcocm91dGUsIHRleHQpXG4gICAgICAgICAgICAucGlwZSh0YXAoKHIpID0+IHRoaXMubENhY2hlUy5zZXRJdGVtKHJvdXRlICsgJ18nICsgdGV4dCwgcikpKVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpLFxuICAgICAgICApO1xuICAgIH0pO1xuICB9O1xuICB0cmFuc2xhdGVIVE1MUHJvbWlzZSA9IChcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgc291cmNlTGFuZ3VhZ2UgPSBlbnZpcm9ubWVudC5zb3VyY2VMYW5ndWFnZSxcbiAgICB0YXJnZXRMYW5ndWFnZSA9IGVudmlyb25tZW50LnRhcmdldExhbmd1YWdlLFxuICAgIGRlYnVnID0gZmFsc2UsXG4gICkgPT4gdGhpcy50cmFuc2xhdGVIVE1MKHRleHQsIHNvdXJjZUxhbmd1YWdlLCB0YXJnZXRMYW5ndWFnZSwgZGVidWcpPy50b1Byb21pc2UoKTtcbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import * as i3$1 from '@angular/forms';
2
2
  import { FormControl, Validators, FormArray, FormGroup, FormBuilder, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule, UntypedFormArray } from '@angular/forms';
3
3
  import 'zone.js/plugins/zone-error';
4
- import { cloneDeep, clone, uniqBy, isEqual, isEmpty } from 'lodash-es';
4
+ import { cloneDeep, uniqBy, clone, isEqual, isEmpty } from 'lodash-es';
5
5
  import * as i0 from '@angular/core';
6
6
  import { Injectable, signal, computed, Pipe, NgModule, inject, Directive, Input, booleanAttribute, input, model, EventEmitter, effect, Component, ChangeDetectionStrategy, Output, ViewChild, forwardRef, HostListener, viewChild, Inject, HostBinding, ContentChild, DestroyRef, ChangeDetectorRef, InjectionToken, ErrorHandler } from '@angular/core';
7
7
  import * as i1 from '@angular/common';
@@ -9,7 +9,8 @@ import { CommonModule, Location, CurrencyPipe, TitleCasePipe, DatePipe, DecimalP
9
9
  import { faPlus, faSlidersH, faMoneyCheck, faCancel, faCheck, faListAlt, faClone, faCogs, faTrash, faDownload, faEdit, faFileExport, faFile, faFilter, faPenFancy, faUserShield, faHistory, faHome, faFileImport, faInfoCircle, faLock, faArrowRight, faPause, faPen, faArrowLeft, faRecycle, faSave, faSearch, faEye, faBellSlash, faUpload, faUnlock, faUsers, faStop, faTruck, faTag, faReceipt, faBank, faArrowsH, faPlay, faPercent, faHandshake, faCircleExclamation, faTable, faSpoon } from '@fortawesome/free-solid-svg-icons';
10
10
  import { faPaperPlane } from '@fortawesome/free-regular-svg-icons';
11
11
  import { Observable, BehaviorSubject, debounceTime, filter, ReplaySubject, lastValueFrom, isObservable, merge, of, firstValueFrom, throwError, switchMap, map as map$1, tap as tap$1, fromEvent, interval, mergeMap, distinct, concat, startWith as startWith$1, Subject, debounce, timer } from 'rxjs';
12
- import { catchError, tap, map, retry, debounceTime as debounceTime$1, filter as filter$1, switchMap as switchMap$1, startWith, first, timeout } from 'rxjs/operators';
12
+ import { catchError, tap, map, retry, filter as filter$1, debounceTime as debounceTime$1, switchMap as switchMap$1, startWith, first, timeout } from 'rxjs/operators';
13
+ import { toObservable, toSignal } from '@angular/core/rxjs-interop';
13
14
  import { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpErrorResponse } from '@angular/common/http';
14
15
  import * as i1$1 from '@angular/material/dialog';
15
16
  import { MatDialog, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
@@ -30,7 +31,6 @@ import * as i2 from '@angular/material/badge';
30
31
  import { MatBadgeModule } from '@angular/material/badge';
31
32
  import * as i11 from '@angular/material/tooltip';
32
33
  import { MatTooltipModule } from '@angular/material/tooltip';
33
- import { toSignal, toObservable } from '@angular/core/rxjs-interop';
34
34
  import * as i3$3 from '@angular/material/autocomplete';
35
35
  import { MatAutocomplete, MatAutocompleteModule } from '@angular/material/autocomplete';
36
36
  import * as i10 from '@angular/material/select';
@@ -1267,18 +1267,19 @@ const codeToDescriptionMap = [
1267
1267
 
1268
1268
  class UserActivityService {
1269
1269
  constructor() {
1270
- this.activities = [];
1271
- setInterval(() => {
1272
- if (!this.activities?.length)
1273
- return;
1274
- const activities = clone(this.activities);
1275
- this.activities = [];
1276
- this.submissionFunc(activities).toPromise();
1277
- }, 1000);
1270
+ // toObservable(this.activities).pipe(
1271
+ // tap(() => {
1272
+ // if (!this.activities()?.length) return;
1273
+ // const activities = clone(this.activities());
1274
+ // this.activities.set([]);
1275
+ // this.submissionFunc(activities as any).toPromise();
1276
+ // }),
1277
+ // );
1278
1278
  }
1279
1279
  add(data) {
1280
1280
  if (environment.production || environment.logActivities)
1281
- this.activities.push(new UserActivity(data));
1281
+ this.submissionFunc([new UserActivity(data)]);
1282
+ // this.activities.update((acts) => [...acts, new UserActivity(data)]);
1282
1283
  }
1283
1284
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UserActivityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1284
1285
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UserActivityService, providedIn: 'root' }); }
@@ -3293,7 +3294,7 @@ class TranslationService {
3293
3294
  this.storageS = storageS;
3294
3295
  this.lCacheS = lCacheS;
3295
3296
  this.baseURL = environment.apiBaseUrl + '/rest/translation/';
3296
- this.translationRequestMatrix = {};
3297
+ this.translationRequestMatrix = signal({});
3297
3298
  this.translationResponseMatrix = new BehaviorSubject({});
3298
3299
  this.seperator = '~~~';
3299
3300
  this.name = 'glossary';
@@ -3313,7 +3314,7 @@ class TranslationService {
3313
3314
  }
3314
3315
  else {
3315
3316
  const id = Math.round(Math.random() * 1000000000000000);
3316
- this.translationRequestMatrix[id] = text;
3317
+ this.translationRequestMatrix.update((map) => ({ ...map, [id]: text }));
3317
3318
  const sub = this.translationResponseMatrix.subscribe({
3318
3319
  next: (r) => {
3319
3320
  if (debug)
@@ -3349,31 +3350,27 @@ class TranslationService {
3349
3350
  });
3350
3351
  };
3351
3352
  this.translateHTMLPromise = (text, sourceLanguage = environment.sourceLanguage, targetLanguage = environment.targetLanguage, debug = false) => this.translateHTML(text, sourceLanguage, targetLanguage, debug)?.toPromise();
3352
- const interval = setInterval(async () => {
3353
- const body = clone(this.translationRequestMatrix);
3354
- this.translationRequestMatrix = {};
3353
+ toObservable(this.translationRequestMatrix).pipe(filter$1((x) => x && Object.keys(x).length > 0), debounceTime$1(1000), tap(async () => {
3354
+ const body = clone(this.translationRequestMatrix());
3355
+ this.translationRequestMatrix.set({});
3355
3356
  if (Object.keys(body)?.length) {
3356
3357
  // debugger;
3357
3358
  const transGlossary = this.transGlossary || (await this.getGlossary().toPromise());
3358
3359
  if (this.sourceLanguage != this.targetLanguage)
3359
- this.apiService
3360
- .postString(this.baseURL +
3360
+ lastValueFrom(this.apiService.postString(this.baseURL +
3361
3361
  (this.transGlossary?.code
3362
3362
  ? `language?glossaryCode=${this.transGlossary?.code}&sourceLang=${this.sourceLanguage}&targetLang=${this.targetLanguage}`
3363
3363
  : `language/${this.targetLanguage}`), Object.keys(body)
3364
3364
  .map((id) => this.tagger(+id, body[id]))
3365
- .join(this.seperator))
3366
- .toPromise()
3365
+ .join(this.seperator)))
3367
3366
  .then((r) => {
3368
3367
  this.translationResponseMatrix.next(this.detagger(r));
3369
3368
  })
3370
3369
  .catch((e) => {
3371
3370
  console.error(e);
3372
3371
  });
3373
- else
3374
- clearInterval(interval);
3375
3372
  }
3376
- }, 1000);
3373
+ }));
3377
3374
  }
3378
3375
  tagger(id, str) {
3379
3376
  return `<div id="${id}">${str}</div>`;
@@ -3381,9 +3378,7 @@ class TranslationService {
3381
3378
  getGlossary(sourceLanguage = environment.sourceLanguage, targetLanguage = environment.targetLanguage) {
3382
3379
  this.sourceLanguage = sourceLanguage || this.sourceLanguage;
3383
3380
  this.targetLanguage = targetLanguage || this.targetLanguage;
3384
- return this.apiService
3385
- .get(`${this.baseURL}glossary/`)
3386
- .pipe(map((r) => {
3381
+ return this.apiService.get(`${this.baseURL}glossary/`).pipe(map((r) => {
3387
3382
  debugger;
3388
3383
  const glossary = r?.find((x) => x.sourceLang == this.sourceLanguage &&
3389
3384
  x.targetLang == this.targetLanguage &&