@rangertechnologies/ngnxt 2.1.214 → 2.1.216
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.
- package/esm2022/environments/version.mjs +2 -2
- package/esm2022/lib/components/datatable/datatable.component.mjs +24 -10
- package/esm2022/lib/nxt-app.module.mjs +22 -4
- package/esm2022/lib/services/translation.service.mjs +28 -10
- package/fesm2022/rangertechnologies-ngnxt.mjs +71 -23
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/lib/components/datatable/datatable.component.d.ts +3 -2
- package/lib/components/image-cropper/component/image-cropper.component.d.ts +1 -1
- package/lib/nxt-app.module.d.ts +2 -0
- package/lib/services/translation.service.d.ts +5 -1
- package/package.json +1 -1
- package/rangertechnologies-ngnxt-2.1.216.tgz +0 -0
- package/rangertechnologies-ngnxt-2.1.214.tgz +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
1
|
+
import { NgModule, CUSTOM_ELEMENTS_SCHEMA, APP_INITIALIZER } from '@angular/core';
|
|
2
2
|
import { NxtAppComponent } from './nxt-app.component';
|
|
3
3
|
import { QuestionnaireComponent } from './pages/questionnaire/questionnaire.component';
|
|
4
4
|
import { CommonModule } from "@angular/common";
|
|
@@ -23,8 +23,12 @@ import { NxtInput } from './components/nxt-input/nxt-input.component';
|
|
|
23
23
|
import { FormComponent } from './pages/builder/form/form.component';
|
|
24
24
|
import { ListViewFilterComponent } from './components/list-view-filter/list-view-filter.component';
|
|
25
25
|
import { NxtSearchBox } from './components/search-box/search-box.component';
|
|
26
|
+
import { TranslationService } from './services/translation.service';
|
|
26
27
|
import * as i0 from "@angular/core";
|
|
27
28
|
import * as i1 from "./i18n.module";
|
|
29
|
+
export function initializeApp(translationService) {
|
|
30
|
+
return () => translationService.load();
|
|
31
|
+
}
|
|
28
32
|
// HA 19DEC23 variable created for translation
|
|
29
33
|
const languages = [
|
|
30
34
|
// { lang: 'EN', flag: 'assets/images/en.i18n.png', file: enI18n },
|
|
@@ -58,7 +62,14 @@ export class NxtAppModule {
|
|
|
58
62
|
I18nService,
|
|
59
63
|
I18nPipe,
|
|
60
64
|
FormBuilderService, //AP 22JAN2025 Added the FormBuilderService
|
|
61
|
-
PdfDesignerService
|
|
65
|
+
PdfDesignerService,
|
|
66
|
+
TranslationService,
|
|
67
|
+
{
|
|
68
|
+
provide: APP_INITIALIZER,
|
|
69
|
+
useFactory: initializeApp,
|
|
70
|
+
deps: [TranslationService],
|
|
71
|
+
multi: true
|
|
72
|
+
}
|
|
62
73
|
], imports: [CommonModule, FormsModule,
|
|
63
74
|
NxtDatatable,
|
|
64
75
|
NxtSearchBox,
|
|
@@ -108,8 +119,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
108
119
|
I18nService,
|
|
109
120
|
I18nPipe,
|
|
110
121
|
FormBuilderService, //AP 22JAN2025 Added the FormBuilderService
|
|
111
|
-
PdfDesignerService
|
|
122
|
+
PdfDesignerService,
|
|
123
|
+
TranslationService,
|
|
124
|
+
{
|
|
125
|
+
provide: APP_INITIALIZER,
|
|
126
|
+
useFactory: initializeApp,
|
|
127
|
+
deps: [TranslationService],
|
|
128
|
+
multi: true
|
|
129
|
+
}
|
|
112
130
|
]
|
|
113
131
|
}]
|
|
114
132
|
}] });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnh0LWFwcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvbnh0LWFwcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0Msc0NBQXNDO0FBQ3RDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxZQUFZLENBQUE7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNB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b0JBQW9CO3FCQUNyQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsV0FBVzt3QkFDWCxRQUFRO3dCQUNSLGtCQUFrQixFQUFDLDJDQUEyQzt3QkFDOUQsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCOzRCQUNFLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixVQUFVLEVBQUUsYUFBYTs0QkFDekIsSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUM7NEJBQzFCLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIEFQUF9JTklUSUFMSVpFUiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnh0QXBwQ29tcG9uZW50IH0gZnJvbSAnLi9ueHQtYXBwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRdWVzdGlvbm5haXJlQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlcy9xdWVzdGlvbm5haXJlL3F1ZXN0aW9ubmFpcmUuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUXVpbGxNb2R1bGUgfSBmcm9tICduZ3gtcXVpbGwnO1xuLy8gVkQgMjNKQU4yNCByZW1vdmVkIEh0dHBDbGllbnRNb2R1bGVcbmltcG9ydCB7IEJvb2tsZXRDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL2Jvb2tsZXQvYm9va2xldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVlc3Rpb25ib29rQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlcy9xdWVzdGlvbmJvb2svcXVlc3Rpb25ib29rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJMThuTW9kdWxlIH0gZnJvbSAnLi9pMThuLm1vZHVsZSdcbmltcG9ydCB7IEkxOG5Db21wb25lbnQgfSBmcm9tICcuL2kxOG4uY29tcG9uZW50JztcbmltcG9ydCB7IEkxOG5QaXBlIH0gZnJvbSAnLi9pMThuLnBpcGUnO1xuaW1wb3J0ICogYXMgZW5JMThuIGZyb20gJy4vZW4uaTE4bic7XG5pbXBvcnQgKiBhcyBhckkxOG4gZnJvbSAnLi9hci5pMThuJztcbmltcG9ydCAqIGFzIHRhbUkxOG4gZnJvbSAnLi90YW0uaTE4bidcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi9pMThuLnNlcnZpY2UnO1xuLy9BUCAyMkpBTjIwMjUgQWRkZWQgdGhlIEZvcm1CdWlsZGVyU2VydmljZVxuaW1wb3J0IHsgRm9ybUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9mb3JtLWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOeHREYXRhdGFibGUgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0YXRhYmxlL2RhdGF0YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGRmRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wZGYtZGVzaWduZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQZGZEZXNpZ25lckNvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvcGRmRGVzaWduZXIvcGRmLWRlc2lnbmVyL3BkZi1kZXNpZ25lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTnh0QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1dHRvbi9ueHQtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOeHRJbnB1dCB9IGZyb20gJy4vY29tcG9uZW50cy9ueHQtaW5wdXQvbnh0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlcy9idWlsZGVyL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdFZpZXdGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGlzdC12aWV3LWZpbHRlci9saXN0LXZpZXctZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOeHRTZWFyY2hCb3ggfSBmcm9tICcuL2NvbXBvbmVudHMvc2VhcmNoLWJveC9zZWFyY2gtYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZUFwcCh0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSkge1xuICByZXR1cm4gKCkgPT4gdHJhbnNsYXRpb25TZXJ2aWNlLmxvYWQoKTtcbn1cbiBcbi8vIEhBIDE5REVDMjMgdmFyaWFibGUgY3JlYXRlZCBmb3IgdHJhbnNsYXRpb25cbmNvbnN0IGxhbmd1YWdlcyA9IFtcbiAgLy8geyBsYW5nOiAnRU4nLCBmbGFnOiAnYXNzZXRzL2ltYWdlcy9lbi5pMThuLnBuZycsIGZpbGU6IGVuSTE4biB9LFxuICB7IGxhbmc6ICdFTicsIGZpbGU6IGVuSTE4biB9LFxuICB7IGxhbmc6ICdUQU0nLCBmaWxlOiB0YW1JMThuIH0sXG4gIHsgbGFuZzogJ0FSJywgZmlsZTogYXJJMThuIH1cbl1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTnh0QXBwQ29tcG9uZW50LFxuICAgIEkxOG5Db21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsXG4gICAgTnh0RGF0YXRhYmxlLFxuICAgIE54dFNlYXJjaEJveCxcbiAgICBMaXN0Vmlld0ZpbHRlckNvbXBvbmVudCxcbiAgICBOeHRJbnB1dCxcbiAgICBRdWVzdGlvbm5haXJlQ29tcG9uZW50LFxuICAgIEJvb2tsZXRDb21wb25lbnQsXG4gICAgUXVlc3Rpb25ib29rQ29tcG9uZW50LFxuICAgIE54dEJ1dHRvbkNvbXBvbmVudCxcbiAgICBQZGZEZXNpZ25lckNvbXBvbmVudCxcbiAgICBGb3JtQ29tcG9uZW50LFxuICAgIEkxOG5Nb2R1bGUuZm9yUm9vdChsYW5ndWFnZXMpXG4gIF0sXG4gIGJvb3RzdHJhcDogWyBOeHRBcHBDb21wb25lbnQgXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICBleHBvcnRzOiBbTnh0QXBwQ29tcG9uZW50LFxuICAgIFF1ZXN0aW9ubmFpcmVDb21wb25lbnQsXG4gICAgQm9va2xldENvbXBvbmVudCxcbiAgICBOeHREYXRhdGFibGUsXG4gICAgTnh0U2VhcmNoQm94LFxuICAgIExpc3RWaWV3RmlsdGVyQ29tcG9uZW50LFxuICAgIE54dElucHV0LFxuICAgIE54dEJ1dHRvbkNvbXBvbmVudCxcbiAgICBQZGZEZXNpZ25lckNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgSTE4blNlcnZpY2UsXG4gICAgSTE4blBpcGUsXG4gICAgRm9ybUJ1aWxkZXJTZXJ2aWNlLC8vQVAgMjJKQU4yMDI1IEFkZGVkIHRoZSBGb3JtQnVpbGRlclNlcnZpY2VcbiAgICBQZGZEZXNpZ25lclNlcnZpY2UsXG4gICAgVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgIHVzZUZhY3Rvcnk6IGluaXRpYWxpemVBcHAsXG4gICAgICBkZXBzOiBbVHJhbnNsYXRpb25TZXJ2aWNlXSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE54dEFwcE1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -1,34 +1,52 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "./data.service";
|
|
4
5
|
export class TranslationService {
|
|
5
6
|
dataService;
|
|
6
7
|
translations;
|
|
7
|
-
currentLang = 'en';
|
|
8
|
+
currentLang = 'en'; // Default language
|
|
9
|
+
translationsLoaded = new BehaviorSubject(null); // Signal when translations are loaded
|
|
10
|
+
translationsLoaded$ = this.translationsLoaded.asObservable(); // Observable for components to subscribe to
|
|
8
11
|
constructor(dataService) {
|
|
9
12
|
this.dataService = dataService;
|
|
10
|
-
const stored = localStorage.getItem('translations');
|
|
11
|
-
if (stored) {
|
|
12
|
-
this.translations = JSON.parse(stored);
|
|
13
|
-
}
|
|
14
13
|
}
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
// Load translations from localStorage
|
|
15
|
+
load() {
|
|
16
|
+
return new Promise((resolve) => {
|
|
17
|
+
const stored = localStorage.getItem('translations'); // Assuming 'translations' is your key
|
|
18
|
+
if (stored) {
|
|
19
|
+
this.translations = JSON.parse(stored);
|
|
20
|
+
}
|
|
21
|
+
this.translationsLoaded.next(); // Notify that loading is complete
|
|
22
|
+
resolve();
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
// Set translations and notify subscribers
|
|
26
|
+
setTranslations(translations) {
|
|
27
|
+
this.translations = translations;
|
|
28
|
+
localStorage.setItem('translations', JSON.stringify(translations));
|
|
29
|
+
this.translationsLoaded.next(); // Notify subscribers
|
|
17
30
|
}
|
|
31
|
+
// Get current language
|
|
18
32
|
getLanguage() {
|
|
19
33
|
return this.currentLang;
|
|
20
34
|
}
|
|
35
|
+
// Set language (if applicable)
|
|
36
|
+
setLanguage(lang) {
|
|
37
|
+
this.currentLang = lang;
|
|
38
|
+
this.load();
|
|
39
|
+
this.translationsLoaded.next(); // Optional: notify on language change
|
|
40
|
+
}
|
|
21
41
|
translate(key) {
|
|
22
42
|
const langTranslations = this.translations?.[this.currentLang];
|
|
23
43
|
if (langTranslations && this.dataService.getValue(langTranslations, key)) {
|
|
24
44
|
return this.dataService.getValue(langTranslations, key);
|
|
25
45
|
}
|
|
26
|
-
// fallback to English
|
|
27
46
|
const fallback = this.translations?.['en'];
|
|
28
47
|
if (fallback && this.dataService.getValue(fallback, key)) {
|
|
29
48
|
return this.dataService.getValue(fallback, key);
|
|
30
49
|
}
|
|
31
|
-
// nothing found
|
|
32
50
|
return null;
|
|
33
51
|
}
|
|
34
52
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationService, deps: [{ token: i1.DataService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -40,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
40
58
|
providedIn: 'root'
|
|
41
59
|
}]
|
|
42
60
|
}], ctorParameters: () => [{ type: i1.DataService }] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBTXZDLE1BQU0sT0FBTyxrQkFBa0I7SUFLVDtJQUpaLFlBQVksQ0FBTTtJQUNsQixXQUFXLEdBQVcsSUFBSSxDQUFDLENBQUMsbUJBQW1CO0lBQy9DLGtCQUFrQixHQUFHLElBQUksZUFBZSxDQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsc0NBQXNDO0lBQzdGLG1CQUFtQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLDRDQUE0QztJQUNqSCxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFFaEQsc0NBQXNDO0lBQ3RDLElBQUk7UUFDRixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLHNDQUFzQztZQUMzRixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsa0NBQWtDO1lBQ2xFLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsMENBQTBDO0lBQzFDLGVBQWUsQ0FBQyxZQUFpQjtRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMscUJBQXFCO0lBQ3ZELENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsK0JBQStCO0lBQy9CLFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNYLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLHNDQUFzQztJQUN4RSxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVc7UUFDbkIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9ELElBQUksZ0JBQWdCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6RSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzt3R0FoRFUsa0JBQWtCOzRHQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuL2RhdGEuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgdHJhbnNsYXRpb25zOiBhbnk7XG4gIHByaXZhdGUgY3VycmVudExhbmc6IHN0cmluZyA9ICdlbic7IC8vIERlZmF1bHQgbGFuZ3VhZ2VcbiAgcHJpdmF0ZSB0cmFuc2xhdGlvbnNMb2FkZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KG51bGwpOyAvLyBTaWduYWwgd2hlbiB0cmFuc2xhdGlvbnMgYXJlIGxvYWRlZFxuICBwdWJsaWMgdHJhbnNsYXRpb25zTG9hZGVkJCA9IHRoaXMudHJhbnNsYXRpb25zTG9hZGVkLmFzT2JzZXJ2YWJsZSgpOyAvLyBPYnNlcnZhYmxlIGZvciBjb21wb25lbnRzIHRvIHN1YnNjcmliZSB0b1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSkge31cblxuICAvLyBMb2FkIHRyYW5zbGF0aW9ucyBmcm9tIGxvY2FsU3RvcmFnZVxuICBsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RyYW5zbGF0aW9ucycpOyAvLyBBc3N1bWluZyAndHJhbnNsYXRpb25zJyBpcyB5b3VyIGtleVxuICAgICAgaWYgKHN0b3JlZCkge1xuICAgICAgICB0aGlzLnRyYW5zbGF0aW9ucyA9IEpTT04ucGFyc2Uoc3RvcmVkKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudHJhbnNsYXRpb25zTG9hZGVkLm5leHQoKTsgLy8gTm90aWZ5IHRoYXQgbG9hZGluZyBpcyBjb21wbGV0ZVxuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gU2V0IHRyYW5zbGF0aW9ucyBhbmQgbm90aWZ5IHN1YnNjcmliZXJzXG4gIHNldFRyYW5zbGF0aW9ucyh0cmFuc2xhdGlvbnM6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNsYXRpb25zID0gdHJhbnNsYXRpb25zO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0cmFuc2xhdGlvbnMnLCBKU09OLnN0cmluZ2lmeSh0cmFuc2xhdGlvbnMpKTtcbiAgICB0aGlzLnRyYW5zbGF0aW9uc0xvYWRlZC5uZXh0KCk7IC8vIE5vdGlmeSBzdWJzY3JpYmVyc1xuICB9XG5cbiAgLy8gR2V0IGN1cnJlbnQgbGFuZ3VhZ2VcbiAgZ2V0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50TGFuZztcbiAgfVxuXG4gIC8vIFNldCBsYW5ndWFnZSAoaWYgYXBwbGljYWJsZSlcbiAgc2V0TGFuZ3VhZ2UobGFuZzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50TGFuZyA9IGxhbmc7XG4gICAgdGhpcy5sb2FkKClcbiAgICB0aGlzLnRyYW5zbGF0aW9uc0xvYWRlZC5uZXh0KCk7IC8vIE9wdGlvbmFsOiBub3RpZnkgb24gbGFuZ3VhZ2UgY2hhbmdlXG4gIH1cblxuICB0cmFuc2xhdGUoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBsYW5nVHJhbnNsYXRpb25zID0gdGhpcy50cmFuc2xhdGlvbnM/Llt0aGlzLmN1cnJlbnRMYW5nXTtcbiAgICBpZiAobGFuZ1RyYW5zbGF0aW9ucyAmJiB0aGlzLmRhdGFTZXJ2aWNlLmdldFZhbHVlKGxhbmdUcmFuc2xhdGlvbnMsIGtleSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmdldFZhbHVlKGxhbmdUcmFuc2xhdGlvbnMsIGtleSk7XG4gICAgfVxuICAgIGNvbnN0IGZhbGxiYWNrID0gdGhpcy50cmFuc2xhdGlvbnM/LlsnZW4nXTtcbiAgICBpZiAoZmFsbGJhY2sgJiYgdGhpcy5kYXRhU2VydmljZS5nZXRWYWx1ZShmYWxsYmFjaywga2V5KSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoZmFsbGJhY2ssIGtleSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59Il19
|