@rosoftlab/core 1.0.0-alpha-14 → 1.0.0-alpha-16
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/lib/base-components/base-form-edit.component.mjs +3 -3
- package/esm2022/lib/base-components/field-error-display/field-error-display.component.mjs +3 -3
- package/esm2022/lib/base-components/page-not-found/page-not-found.component.mjs +3 -3
- package/esm2022/lib/base-components/under-construction/under-construction.component.mjs +3 -3
- package/esm2022/lib/core.mjs +2 -1
- package/esm2022/lib/interceptors/cache.interceptor.mjs +3 -3
- package/esm2022/lib/pipes/Nl2brPipe.pipe.mjs +3 -3
- package/esm2022/lib/pipes/input-error.pipe.mjs +3 -3
- package/esm2022/lib/rsl-base-module.mjs +4 -4
- package/esm2022/lib/services/base-datastore.service.mjs +3 -3
- package/esm2022/lib/services/base.service.mjs +3 -3
- package/esm2022/lib/services/cache.service.mjs +3 -3
- package/esm2022/lib/services/datastore.service.mjs +3 -3
- package/esm2022/lib/services/index.mjs +2 -1
- package/esm2022/lib/services/translate-loader.service.mjs +8 -9
- package/fesm2022/rosoftlab-core.mjs +74 -75
- package/fesm2022/rosoftlab-core.mjs.map +1 -1
- package/lib/core.d.ts +1 -0
- package/lib/services/index.d.ts +1 -0
- package/lib/services/translate-loader.service.d.ts +2 -2
- package/package.json +5 -5
@@ -225,10 +225,10 @@ export class BaseFormEditComponent {
|
|
225
225
|
}
|
226
226
|
return rvalue;
|
227
227
|
}
|
228
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
229
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
228
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: BaseFormEditComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.BaseService }, { token: DialogSERVICE }, { token: i4.TranslateService }, { token: i5.Location }], target: i0.ɵɵFactoryTarget.Component }); }
|
229
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: BaseFormEditComponent, selector: "app-base.form.edit", ngImport: i0, template: '', isInline: true }); }
|
230
230
|
}
|
231
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
231
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: BaseFormEditComponent, decorators: [{
|
232
232
|
type: Component,
|
233
233
|
args: [{
|
234
234
|
selector: 'app-base.form.edit',
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
2
2
|
import * as i0 from "@angular/core";
|
3
3
|
export class FieldErrorDisplayComponent {
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
5
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FieldErrorDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: FieldErrorDisplayComponent, selector: "rsl-field-error-display", inputs: { errorMsg: "errorMsg", displayError: "displayError" }, ngImport: i0, template: "<div *ngIf=\"displayError\" >\n <!-- <span class=\"glyphicon glyphicon-remove form-control-feedback fix-error-icon\"></span> -->\n <span class=\"sr-only\">(error)</span>\n <div class=\"error-msg\">\n {{ errorMsg }}\n </div>\n</div>\n", styles: [".error-msg{color:red}.fix-error-icon{top:27px}\n"] }); }
|
6
6
|
}
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FieldErrorDisplayComponent, decorators: [{
|
8
8
|
type: Component,
|
9
9
|
args: [{ selector: 'rsl-field-error-display', template: "<div *ngIf=\"displayError\" >\n <!-- <span class=\"glyphicon glyphicon-remove form-control-feedback fix-error-icon\"></span> -->\n <span class=\"sr-only\">(error)</span>\n <div class=\"error-msg\">\n {{ errorMsg }}\n </div>\n</div>\n", styles: [".error-msg{color:red}.fix-error-icon{top:27px}\n"] }]
|
10
10
|
}], propDecorators: { errorMsg: [{
|
@@ -5,10 +5,10 @@ export class PageNotFoundComponent {
|
|
5
5
|
}
|
6
6
|
ngOnInit() {
|
7
7
|
}
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
9
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PageNotFoundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: PageNotFoundComponent, selector: "rsl-page-not-found", ngImport: i0, template: "<div class=\"forms-view-container\">\n <div class=\"under-construction-view-container\">\n Page not found\n </div>\n</div>", styles: [".under-construction-view-container{height:calc(100vh - 250px);margin:60px 0 0;padding:0;display:flex;justify-content:center;align-items:center;box-sizing:border-box;font-size:1.8em;line-height:1.3em;font-weight:300;color:#58585b;text-align:center}\n"] }); }
|
10
10
|
}
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: PageNotFoundComponent, decorators: [{
|
12
12
|
type: Component,
|
13
13
|
args: [{ selector: 'rsl-page-not-found', template: "<div class=\"forms-view-container\">\n <div class=\"under-construction-view-container\">\n Page not found\n </div>\n</div>", styles: [".under-construction-view-container{height:calc(100vh - 250px);margin:60px 0 0;padding:0;display:flex;justify-content:center;align-items:center;box-sizing:border-box;font-size:1.8em;line-height:1.3em;font-weight:300;color:#58585b;text-align:center}\n"] }]
|
14
14
|
}], ctorParameters: () => [] });
|
@@ -2,10 +2,10 @@ import { Component } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
3
3
|
export class UnderConstructionComponent {
|
4
4
|
constructor() { }
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
6
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UnderConstructionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
6
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: UnderConstructionComponent, selector: "rsl-under-construction", ngImport: i0, template: "<div class=\"forms-view-container\">\n <div class=\"under-construction-view-container\">\n Page under construction\n </div>\n</div>", styles: [".under-construction-view-container{height:calc(100vh - 250px);margin:60px 0 0;padding:0;display:flex;justify-content:center;align-items:center;box-sizing:border-box;font-size:1.8em;line-height:1.3em;font-weight:300;color:#58585b;text-align:center}\n"] }); }
|
7
7
|
}
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: UnderConstructionComponent, decorators: [{
|
9
9
|
type: Component,
|
10
10
|
args: [{ selector: 'rsl-under-construction', template: "<div class=\"forms-view-container\">\n <div class=\"under-construction-view-container\">\n Page under construction\n </div>\n</div>", styles: [".under-construction-view-container{height:calc(100vh - 250px);margin:60px 0 0;padding:0;display:flex;justify-content:center;align-items:center;box-sizing:border-box;font-size:1.8em;line-height:1.3em;font-weight:300;color:#58585b;text-align:center}\n"] }]
|
11
11
|
}], ctorParameters: () => [] });
|
package/esm2022/lib/core.mjs
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
export { FieldErrorDisplayComponent, PageNotFoundComponent, UnderConstructionComponent } from './base-components';
|
2
2
|
export { BaseFormEditComponent } from './base-components/base-form-edit.component';
|
3
|
+
export * from './configurations';
|
3
4
|
export * from './grid-layout-format.enum';
|
4
5
|
export * from './index';
|
5
6
|
export * from './providers';
|
6
7
|
export * from './rsl-base-module';
|
7
8
|
export * from './utils';
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9jb3JlL3NyYy9saWIvY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEZpZWxkRXJyb3JEaXNwbGF5Q29tcG9uZW50LCBQYWdlTm90Rm91bmRDb21wb25lbnQsIFVuZGVyQ29uc3RydWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLWNvbXBvbmVudHMnO1xyXG5leHBvcnQgeyBCYXNlRm9ybUVkaXRDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50cy9iYXNlLWZvcm0tZWRpdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZ3VyYXRpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9ncmlkLWxheW91dC1mb3JtYXQuZW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcnNsLWJhc2UtbW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XHJcblxyXG4iXX0=
|
@@ -40,10 +40,10 @@ export class CacheInterceptor {
|
|
40
40
|
// })
|
41
41
|
// );
|
42
42
|
}
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
44
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CacheInterceptor, deps: [{ token: 'CACHE_EXPIRATION_TIME' }, { token: i1.CacheService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
44
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CacheInterceptor }); }
|
45
45
|
}
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CacheInterceptor, decorators: [{
|
47
47
|
type: Injectable
|
48
48
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
49
49
|
type: Inject,
|
@@ -9,10 +9,10 @@ export class Nl2brPipe {
|
|
9
9
|
}
|
10
10
|
return value;
|
11
11
|
}
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
13
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: Nl2brPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
13
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: Nl2brPipe, name: "nl2br" }); }
|
14
14
|
}
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: Nl2brPipe, decorators: [{
|
16
16
|
type: Pipe,
|
17
17
|
args: [{
|
18
18
|
name: 'nl2br'
|
@@ -26,10 +26,10 @@ export class InputErrorPipe {
|
|
26
26
|
}
|
27
27
|
return rvalue;
|
28
28
|
}
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
30
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: InputErrorPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
30
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: InputErrorPipe, name: "inputError" }); }
|
31
31
|
}
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: InputErrorPipe, decorators: [{
|
33
33
|
type: Pipe,
|
34
34
|
args: [{
|
35
35
|
name: 'inputError'
|
@@ -18,10 +18,10 @@ export class RslBaseModule {
|
|
18
18
|
]
|
19
19
|
};
|
20
20
|
}
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
22
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RslBaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
22
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: RslBaseModule, imports: [CommonModule, i1.TranslateModule, ReactiveFormsModule], exports: [HttpClientModule,
|
23
23
|
TranslateModule] }); }
|
24
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
24
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RslBaseModule, providers: [
|
25
25
|
PROVIDERS
|
26
26
|
], imports: [CommonModule,
|
27
27
|
TranslateModule.forRoot({
|
@@ -36,7 +36,7 @@ export class RslBaseModule {
|
|
36
36
|
ReactiveFormsModule, HttpClientModule,
|
37
37
|
TranslateModule] }); }
|
38
38
|
}
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: RslBaseModule, decorators: [{
|
40
40
|
type: NgModule,
|
41
41
|
args: [{
|
42
42
|
imports: [
|
@@ -333,10 +333,10 @@ export class BaseDatastore {
|
|
333
333
|
_toQueryString(params) {
|
334
334
|
return qs.stringify(params, { arrayFormat: 'brackets' });
|
335
335
|
}
|
336
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
337
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
336
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: BaseDatastore, deps: [{ token: i1.HttpClient }, { token: i2.CacheService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
337
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: BaseDatastore }); }
|
338
338
|
}
|
339
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
339
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: BaseDatastore, decorators: [{
|
340
340
|
type: Injectable
|
341
341
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.CacheService }] });
|
342
342
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYXRhc3RvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jvc29mdGxhYi9jb3JlL3NyYy9saWIvc2VydmljZXMvYmFzZS1kYXRhc3RvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFxQixXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxFQUFFLFVBQVUsRUFBWSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBSS9DLE1BQU0sT0FBTyxhQUFhO0lBU3hCLGdDQUFnQztJQUVoQyxJQUFZLGtCQUFrQjtRQUM1QixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUztlQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3ZELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUM7UUFDM0QsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTO2VBQzdCLElBQUksQ0FBQyxl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SUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELE1BQU0saUJBQWlCLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztRQUN2RixPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFTSxhQUFhLENBQ2xCLEtBQVEsRUFDUixrQkFBdUIsRUFDdkIsZ0JBQXlCLEtBQUs7UUFFOUIsSUFBSSxVQUFVLENBQUM7UUFDZixJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEUsQ0FBQzthQUFNLENBQUM7WUFDTixVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFDRCw0Q0FBNEM7UUFDNUMsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUNPLGNBQWMsQ0FBQyxNQUFXO1FBQ2hDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDOzhHQTljVSxhQUFhO2tIQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgY29tcGFyZSB9IGZyb20gJ2Zhc3QtanNvbi1wYXRjaCc7XHJcbmltcG9ydCAqIGFzIHFzIGZyb20gJ3FzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBEYXRhc3RvcmVDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RhdGFzdG9yZS1jb25maWcuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgTW9kZWxDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL21vZGVsLWNvbmZpZy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBCYXNlUXVlcnlEYXRhIH0gZnJvbSAnLi4vbW9kZWxzL2Jhc2UtcXVlcnktZGF0YSc7XHJcbmltcG9ydCB7IEJhc2VNb2RlbCB9IGZyb20gJy4uL21vZGVscy9iYXNlLm1vZGVsJztcclxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi9jYWNoZS5zZXJ2aWNlJztcclxuZXhwb3J0IHR5cGUgTW9kZWxUeXBlPFQgZXh0ZW5kcyBCYXNlTW9kZWw+ID0gbmV3IChkYXRhc3RvcmU6IEJhc2VEYXRhc3RvcmUsIGRhdGE6IGFueSkgPT4gVDtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEJhc2VEYXRhc3RvcmUge1xyXG4gIHByb3RlY3RlZCBjb25maWchOiBEYXRhc3RvcmVDb25maWc7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcclxuICBwcml2YXRlIF9zdG9yZTogeyBbdHlwZTogc3RyaW5nXTogeyBbaWQ6IHN0cmluZ106IEJhc2VNb2RlbCB9IH0gPSB7fTtcclxuICAvLyB0c2xpbnQ6ZW5hYmxlOm1heC1saW5lLWxlbmd0aFxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpiYW4tdHlwZXNcclxuICBwcml2YXRlIHRvUXVlcnlTdHJpbmc6IEZ1bmN0aW9uID0gdGhpcy5kYXRhc3RvcmVDb25maWcub3ZlcnJpZGVzXHJcbiAgICAmJiB0aGlzLmRhdGFzdG9yZUNvbmZpZy5vdmVycmlkZXMudG9RdWVyeVN0cmluZyA/XHJcbiAgICB0aGlzLmRhdGFzdG9yZUNvbmZpZy5vdmVycmlkZXMudG9RdWVyeVN0cmluZyA6IHRoaXMuX3RvUXVlcnlTdHJpbmc7XHJcbiAgLy8gdHNsaW50OmVuYWJsZTptYXgtbGluZS1sZW5ndGhcclxuXHJcbiAgcHJpdmF0ZSBnZXQgZ2V0RGlydHlBdHRyaWJ1dGVzKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YXN0b3JlQ29uZmlnLm92ZXJyaWRlc1xyXG4gICAgICAmJiB0aGlzLmRhdGFzdG9yZUNvbmZpZy5vdmVycmlkZXMuZ2V0RGlydHlBdHRyaWJ1dGVzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRhdGFzdG9yZUNvbmZpZy5vdmVycmlkZXMuZ2V0RGlydHlBdHRyaWJ1dGVzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIEJhc2VEYXRhc3RvcmUuZ2V0RGlydHlBdHRyaWJ1dGVzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRBbGxBdHRyaWJ1dGVzKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YXN0b3JlQ29uZmlnLm92ZXJyaWRlc1xyXG4gICAgICAmJiB0aGlzLmRhdGFzdG9yZUNvbmZpZy5vdmVycmlkZXMuZ2V0QWxsQXR0cmlidXRlcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXRhc3RvcmVDb25maWcub3ZlcnJpZGVzLmdldEFsbEF0dHJpYnV0ZXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gQmFzZURhdGFzdG9yZS5nZXRBbGxBdHRyaWJ1dGVzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gcHJvdGVjdGVkIGNvbmZpZzogRGF0YXN0b3JlQ29uZmlnO1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBnZXREaXJ0eUF0dHJpYnV0ZXMoYXR0cmlidXRlc01ldGFkYXRhOiBhbnkpOiB7IHN0cmluZzogYW55IH0ge1xyXG4gICAgY29uc3QgZGlydHlEYXRhOiBhbnkgPSB7fTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBpbiBhdHRyaWJ1dGVzTWV0YWRhdGEpIHtcclxuICAgICAgaWYgKGF0dHJpYnV0ZXNNZXRhZGF0YS5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpKSB7XHJcbiAgICAgICAgY29uc3QgbWV0YWRhdGE6IGFueSA9IGF0dHJpYnV0ZXNNZXRhZGF0YVtwcm9wZXJ0eU5hbWVdO1xyXG5cclxuICAgICAgICBpZiAobWV0YWRhdGEuaGFzRGlydHlBdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVOYW1lID0gbWV0YWRhdGEuc2VyaWFsaXplZE5hbWUgIT0gbnVsbCA/IG1ldGFkYXRhLnNlcmlhbGl6ZWROYW1lIDogcHJvcGVydHlOYW1lO1xyXG4gICAgICAgICAgZGlydHlEYXRhW2F0dHJpYnV0ZU5hbWVdID0gbWV0YWRhdGEuc2VyaWFsaXNhdGlvblZhbHVlID8gbWV0YWRhdGEuc2VyaWFsaXNhdGlvblZhbHVlIDogbWV0YWRhdGEubmV3VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGlydHlEYXRhO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0QWxsQXR0cmlidXRlcyhhdHRyaWJ1dGVzTWV0YWRhdGE6IGFueSk6IHsgc3RyaW5nOiBhbnkgfSB7XHJcbiAgICBjb25zdCBkaXJ0eURhdGE6IGFueSA9IHt9O1xyXG5cclxuICAgIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIGluIGF0dHJpYnV0ZXNNZXRhZGF0YSkge1xyXG4gICAgICBpZiAoYXR0cmlidXRlc01ldGFkYXRhLmhhc093blByb3BlcnR5KHByb3BlcnR5TmFtZSkpIHtcclxuICAgICAgICBjb25zdCBtZXRhZGF0YTogYW55ID0gYXR0cmlidXRlc01ldGFkYXRhW3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgY29uc3QgYXR0cmlidXRlTmFtZSA9IG1ldGFkYXRhLnNlcmlhbGl6ZWROYW1lICE9IG51bGwgPyBtZXRhZGF0YS5zZXJpYWxpemVkTmFtZSA6IHByb3BlcnR5TmFtZTtcclxuICAgICAgICBkaXJ0eURhdGFbYXR0cmlidXRlTmFtZV0gPSBtZXRhZGF0YS5zZXJpYWxpc2F0aW9uVmFsdWUgPyBtZXRhZGF0YS5zZXJpYWxpc2F0aW9uVmFsdWUgOiBtZXRhZGF0YS5uZXdWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRpcnR5RGF0YTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBwcm90ZWN0ZWQgY2FjaGVTZXJ2aWNlOiBDYWNoZVNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIGZpbmRBbGw8VCBleHRlbmRzIEJhc2VNb2RlbD4oXHJcbiAgICBtb2RlbFR5cGU6IE1vZGVsVHlwZTxUPixcclxuICAgIHBhcmFtcz86IGFueSxcclxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycyxcclxuICAgIGN1c3RvbVVybD86IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8QmFzZVF1ZXJ5RGF0YTxUPj4ge1xyXG4gICAgY29uc3QgY3VzdG9tSGVhZGhlcnM6IEh0dHBIZWFkZXJzID0gdGhpcy5idWlsZEhlYWRlcnMoaGVhZGVycyk7XHJcbiAgICBjb25zdCBodG1sUGFyYW1zID0gdGhpcy5idWlsZFBhcmFtcyhtb2RlbFR5cGUsIHBhcmFtcyk7XHJcbiAgICBjb25zdCB1cmw6IHN0cmluZyA9IHRoaXMuYnVpbGRVcmwobW9kZWxUeXBlLCBjdXN0b21VcmwpO1xyXG5cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gdGhpcy5odHRwQ2xpZW50LmdldCh1cmwsXHJcbiAgICAgIHsgaGVhZGVyczogY3VzdG9tSGVhZGhlcnMsIHBhcmFtczogaHRtbFBhcmFtcywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXMgPT4gdGhpcy5leHRyYWN0UXVlcnlEYXRhKHJlcywgbW9kZWxUeXBlKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xyXG5cclxuICB9XHJcblxyXG4gIGZpbmRSZWNvcmQ8VCBleHRlbmRzIEJhc2VNb2RlbD4oXHJcbiAgICBtb2RlbFR5cGU6IE1vZGVsVHlwZTxUPixcclxuICAgIGlkPzogc3RyaW5nLFxyXG4gICAgcGFyYW1zPzogYW55LFxyXG4gICAgaGVhZGVycz86IEh0dHBIZWFkZXJzLFxyXG4gICAgY3VzdG9tVXJsPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICBjb25zdCBjdXN0b21IZWFkaGVyczogSHR0cEhlYWRlcnMgPSB0aGlzLmJ1aWxkSGVhZGVycyhoZWFkZXJzKTtcclxuICAgIGxldCB1cmw6IHN0cmluZyA9IHRoaXMuYnVpbGRVcmwobW9kZWxUeXBlLCBjdXN0b21VcmwpO1xyXG4gICAgaWYgKGlkKSB7XHJcbiAgICAgIHVybCArPSAnLycgKyBpZDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBodG1sUGFyYW1zID0gdGhpcy5idWlsZFBhcmFtcyhtb2RlbFR5cGUsIHBhcmFtcyk7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IHRoaXMuaHR0cENsaWVudC5nZXQodXJsLCB7IGhlYWRlcnM6IGN1c3RvbUhlYWRoZXJzLCBwYXJhbXM6IGh0bWxQYXJhbXMsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxyXG4gICAgICAucGlwZShtYXAocmVzID0+IHRoaXMuZW50aXR5VG9Nb2RlbChyZXMsIG1vZGVsVHlwZSwgdW5kZWZpbmVkKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICApO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xyXG5cclxuICB9XHJcbiAgZ2V0Q3VzdG9tPFUsIFQgZXh0ZW5kcyBCYXNlTW9kZWw+KG1vZGVsVHlwZTogTW9kZWxUeXBlPFQ+LFxyXG4gICAgcGFyYW1zPzogYW55LFxyXG4gICAgaGVhZGVycz86IEh0dHBIZWFkZXJzLFxyXG4gICAgY3VzdG9tVXJsPzogc3RyaW5nLFxyXG4gICAgY3VzdG9tUmVzcG9uc2VUeXBlPzogYW55KTogT2JzZXJ2YWJsZTxVPiB7XHJcbiAgICBjb25zdCBjdXN0b21IZWFkaGVyczogSHR0cEhlYWRlcnMgPSB0aGlzLmJ1aWxkSGVhZGVycyhoZWFkZXJzKTtcclxuICAgIGNvbnN0IHVybDogc3RyaW5nID0gdGhpcy5idWlsZFVybChtb2RlbFR5cGUsIGN1c3RvbVVybCk7XHJcbiAgICBjb25zdCBodG1sUGFyYW1zID0gdGhpcy5idWlsZFBhcmFtcyhtb2RlbFR5cGUsIHBhcmFtcyk7XHJcbiAgICBpZiAoIWN1c3RvbVJlc3BvbnNlVHlwZSlcclxuICAgICAgY3VzdG9tUmVzcG9uc2VUeXBlID0gJ2pzb24nO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8VT4odXJsLCB7IGhlYWRlcnM6IGN1c3RvbUhlYWRoZXJzLCBwYXJhbXM6IGh0bWxQYXJhbXMsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSwgcmVzcG9uc2VUeXBlOiBjdXN0b21SZXNwb25zZVR5cGUgfSk7XHJcbiAgfVxyXG5cclxuICBwb3N0Q3VzdG9tPFUsIFQgZXh0ZW5kcyBCYXNlTW9kZWw+KG1vZGVsVHlwZTogTW9kZWxUeXBlPFQ+LFxyXG4gICAgYm9keTogYW55LFxyXG4gICAgcGFyYW1zPzogYW55LFxyXG4gICAgaGVhZGVycz86IEh0dHBIZWFkZXJzLFxyXG4gICAgY3VzdG9tVXJsPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxVPiB7XHJcbiAgICBjb25zdCBjdXN0b21IZWFkaGVyczogSHR0cEhlYWRlcnMgPSB0aGlzLmJ1aWxkSGVhZGVycyhoZWFkZXJzKTtcclxuICAgIGNvbnN0IHVybDogc3RyaW5nID0gdGhpcy5idWlsZFVybChtb2RlbFR5cGUsIGN1c3RvbVVybCk7XHJcbiAgICBjb25zdCBodG1sUGFyYW1zID0gdGhpcy5idWlsZFBhcmFtcyhtb2RlbFR5cGUsIHBhcmFtcyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8VT4odXJsLCBib2R5LCB7IGhlYWRlcnM6IGN1c3RvbUhlYWRoZXJzLCBwYXJhbXM6IGh0bWxQYXJhbXMsIHJlcG9ydFByb2dyZXNzOiB0cnVlLCB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XHJcbiAgfVxyXG5cclxuICBwYXRjaEN1c3RvbTxVLCBUIGV4dGVuZHMgQmFzZU1vZGVsPihtb2RlbFR5cGU6IE1vZGVsVHlwZTxUPixcclxuICAgIGJvZHk6IGFueSxcclxuICAgIHBhcmFtcz86IGFueSxcclxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycyxcclxuICAgIGN1c3RvbVVybD86IHN0cmluZyk6IE9ic2VydmFibGU8VT4ge1xyXG4gICAgY29uc3QgY3VzdG9tSGVhZGhlcnM6IEh0dHBIZWFkZXJzID0gdGhpcy5idWlsZEhlYWRlcnMoaGVhZGVycyk7XHJcbiAgICBjb25zdCB1cmw6IHN0cmluZyA9IHRoaXMuYnVpbGRVcmwobW9kZWxUeXBlLCBjdXN0b21VcmwpO1xyXG4gICAgY29uc3QgaHRtbFBhcmFtcyA9IHRoaXMuYnVpbGRQYXJhbXMobW9kZWxUeXBlLCBwYXJhbXMpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaDxVPih1cmwsIGJvZHksIHsgaGVhZGVyczogY3VzdG9tSGVhZGhlcnMsIHBhcmFtczogaHRtbFBhcmFtcywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xyXG4gIH1cclxuICBjcmVhdGVSZWNvcmQ8VCBleHRlbmRzIEJhc2VNb2RlbD4obW9kZWxUeXBlOiBNb2RlbFR5cGU8VD4sIGRhdGE/OiBhbnkpOiBUIHtcclxuICAgIHJldHVybiBuZXcgbW9kZWxUeXBlKHRoaXMsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZVJlY29yZDxUIGV4dGVuZHMgQmFzZU1vZGVsPihcclxuICAgIGF0dHJpYnV0ZXNNZXRhZGF0YTogYW55LCBtb2RlbDogVCxcclxuICAgIHBhcmFtcz86IGFueSxcclxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycyxcclxuICAgIGN1c3RvbVVybD86IHN0cmluZyxcclxuICAgIGN1c3RvbUJvZHk/OiBhbnlcclxuICApOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIGNvbnN0IG1vZGVsVHlwZSA9IG1vZGVsLmNvbnN0cnVjdG9yIGFzIE1vZGVsVHlwZTxUPjtcclxuICAgIGNvbnN0IG1vZGVsQ29uZmlnOiBNb2RlbENvbmZpZyA9IG1vZGVsLm1vZGVsQ29uZmlnO1xyXG4gICAgY29uc3QgY3VzdG9tSGVhZGhlcnM6IEh0dHBIZWFkZXJzID0gdGhpcy5idWlsZEhlYWRlcnMoaGVhZGVycyk7XHJcbiAgICBjb25zdCB1cmw6IHN0cmluZyA9IHRoaXMuYnVpbGRVcmwobW9kZWxUeXBlLCBjdXN0b21VcmwpO1xyXG4gICAgY29uc3QgaHRtbFBhcmFtcyA9IHRoaXMuYnVpbGRQYXJhbXMobW9kZWxUeXBlLCBwYXJhbXMpO1xyXG5cclxuICAgIGxldCBodHRwQ2FsbDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAgIGNvbnN0IGJvZHkgPSBjdXN0b21Cb2R5IHx8IHRoaXMubW9kZWxUb0VudGl0eShtb2RlbCwgYXR0cmlidXRlc01ldGFkYXRhKTtcclxuXHJcbiAgICBpZiAobW9kZWwuaWQpIHtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxyXG4gICAgICBodHRwQ2FsbCA9IHRoaXMuaHR0cENsaWVudC5wYXRjaCh1cmwgKyAnLycgKyBtb2RlbC5pZCwgYm9keSwgeyBoZWFkZXJzOiBjdXN0b21IZWFkaGVycywgcGFyYW1zOiBodG1sUGFyYW1zLCB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBodHRwQ2FsbCA9IHRoaXMuaHR0cENsaWVudC5wb3N0KHVybCwgYm9keSwgeyBoZWFkZXJzOiBjdXN0b21IZWFkaGVycywgcGFyYW1zOiBodG1sUGFyYW1zLCB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGh0dHBDYWxsXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXMgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jYWNoZVNlcnZpY2UuY2xlYXJDYWNoZUNvbnRhaW5pbmdLZXl3b3JkKHVybCk7XHJcbiAgICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5yZXNldE1ldGFkYXRhQXR0cmlidXRlcyhyZXMsIGF0dHJpYnV0ZXNNZXRhZGF0YSwgbW9kZWxUeXBlKTtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmVudGl0eVRvTW9kZWwoZGF0YSwgbW9kZWxUeXBlKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwYXRjaFJlY29yZDxUIGV4dGVuZHMgQmFzZU1vZGVsPihcclxuICAgIGF0dHJpYnV0ZXNNZXRhZGF0YTogYW55LCBtb2RlbDogVCxcclxuICAgIG9yaWdNb2RlbDogVCxcclxuICAgIHBhcmFtcz86IGFueSxcclxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycyxcclxuICAgIGN1c3RvbVVybD86IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgY29uc3QgbW9kZWxUeXBlID0gbW9kZWwuY29uc3RydWN0b3IgYXMgTW9kZWxUeXBlPFQ+O1xyXG4gICAgY29uc3QgbW9kZWxDb25maWc6IE1vZGVsQ29uZmlnID0gbW9kZWwubW9kZWxDb25maWc7XHJcbiAgICBjb25zdCBjdXN0b21IZWFkaGVyczogSHR0cEhlYWRlcnMgPSB0aGlzLmJ1aWxkSGVhZGVycyhoZWFkZXJzKTtcclxuICAgIGNvbnN0IHVybDogc3RyaW5nID0gdGhpcy5idWlsZFVybChtb2RlbFR5cGUsIGN1c3RvbVVybCk7XHJcbiAgICBjb25zdCBodG1sUGFyYW1zID0gdGhpcy5idWlsZFBhcmFtcyhtb2RlbFR5cGUsIHBhcmFtcyk7XHJcblxyXG4gICAgbGV0IGh0dHBDYWxsOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgICBsZXQgb3JpZ0RhdGEgPSB7IGlkOiAnJyB9O1xyXG4gICAgaWYgKG9yaWdNb2RlbClcclxuICAgICAgb3JpZ0RhdGEgPSB0aGlzLm1vZGVsVG9FbnRpdHkob3JpZ01vZGVsLCBvcmlnTW9kZWwuYXR0cmlidXRlTWV0YWRhdGEsIHRydWUpO1xyXG4gICAgY29uc3QgbmV3RGF0YSA9IHRoaXMubW9kZWxUb0VudGl0eShtb2RlbCwgYXR0cmlidXRlc01ldGFkYXRhLCB0cnVlKTtcclxuICAgIG5ld0RhdGEuaWQgPSBvcmlnRGF0YS5pZDtcclxuICAgIGNvbnN0IHBhdGNoID0gY29tcGFyZShvcmlnRGF0YSwgbmV3RGF0YSk7XHJcbiAgICBpZiAocGF0Y2gubGVuZ3RoID4gMCkge1xyXG4gICAgICBodHRwQ2FsbCA9IHRoaXMuaHR0cENsaWVudC5wYXRjaCh1cmwgKyAnLycgKyBtb2RlbC5pZCwgcGF0Y2gsIHsgaGVhZGVyczogY3VzdG9tSGVhZGhlcnMsIHBhcmFtczogaHRtbFBhcmFtcywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xyXG5cclxuICAgICAgcmV0dXJuIGh0dHBDYWxsXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jYWNoZVNlcnZpY2UuY2xlYXJDYWNoZUNvbnRhaW5pbmdLZXl3b3JkKHVybCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlc2V0TWV0YWRhdGFBdHRyaWJ1dGVzKHJlcywgYXR0cmlidXRlc01ldGFkYXRhLCBtb2RlbFR5cGUpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbnRpdHlUb01vZGVsKGRhdGEsIG1vZGVsVHlwZSk7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8VD4pID0+IHtcclxuICAgICAgICBvYnNlcnZlci5uZXh0KG1vZGVsKTtcclxuICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gZ2V0UGF0Y2g8VCBleHRlbmRzIEJhc2VNb2RlbD4oXHJcbiAgLy8gICBtb2RlbDogVCxcclxuICAvLyAgIG9yaWdNb2RlbDogVCk6IGFueSB7XHJcblxyXG4gIC8vIH1cclxuICByZXBsYWNlUmVjb3JkPFQgZXh0ZW5kcyBCYXNlTW9kZWw+KFxyXG4gICAgYXR0cmlidXRlc01ldGFkYXRhOiBhbnksIG1vZGVsOiBULFxyXG4gICAgcGFyYW1zPzogYW55LFxyXG4gICAgaGVhZGVycz86IEh0dHBIZWFkZXJzLFxyXG4gICAgY3VzdG9tVXJsPzogc3RyaW5nLFxyXG4gICAgY3VzdG9tQm9keT86IGFueVxyXG4gICk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgY29uc3QgbW9kZWxUeXBlID0gbW9kZWwuY29uc3RydWN0b3IgYXMgTW9kZWxUeXBlPFQ+O1xyXG4gICAgY29uc3QgbW9kZWxDb25maWc6IE1vZGVsQ29uZmlnID0gbW9kZWwubW9kZWxDb25maWc7XHJcbiAgICBjb25zdCBjdXN0b21IZWFkaGVyczogSHR0cEhlYWRlcnMgPSB0aGlzLmJ1aWxkSGVhZGVycyhoZWFkZXJzKTtcclxuICAgIGNvbnN0IHVybDogc3RyaW5nID0gdGhpcy5idWlsZFVybChtb2RlbFR5cGUsIGN1c3RvbVVybCk7XHJcbiAgICBjb25zdCBodG1sUGFyYW1zID0gdGhpcy5idWlsZFBhcmFtcyhtb2RlbFR5cGUsIHBhcmFtcyk7XHJcblxyXG4gICAgbGV0IGh0dHBDYWxsOiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gICAgY29uc3QgYm9keSA9IGN1c3RvbUJvZHkgfHwgdGhpcy5tb2RlbFRvRW50aXR5KG1vZGVsLCBhdHRyaWJ1dGVzTWV0YWRhdGEsIHRydWUpO1xyXG5cclxuICAgIGlmIChtb2RlbC5pZCkge1xyXG4gICAgICBodHRwQ2FsbCA9IHRoaXMuaHR0cENsaWVudC5wdXQodXJsICsgJy8nICsgbW9kZWwuaWQsIGJvZHksIHsgaGVhZGVyczogY3VzdG9tSGVhZGhlcnMsIHBhcmFtczogaHRtbFBhcmFtcywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaHR0cENhbGwgPSB0aGlzLmh0dHBDbGllbnQucG9zdCh1cmwsIGJvZHksIHsgaGVhZGVyczogY3VzdG9tSGVhZGhlcnMsIHBhcmFtczogaHRtbFBhcmFtcywgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBodHRwQ2FsbFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuY2FjaGVTZXJ2aWNlLmNsZWFyQ2FjaGVDb250YWluaW5nS2V5d29yZCh1cmwpO1xyXG4gICAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMucmVzZXRNZXRhZGF0YUF0dHJpYnV0ZXMocmVzLCBhdHRyaWJ1dGVzTWV0YWRhdGEsIG1vZGVsVHlwZSk7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lbnRpdHlUb01vZGVsKGRhdGEsIG1vZGVsVHlwZSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIGRlbGV0ZVJlY29yZDxUIGV4dGVuZHMgQmFzZU1vZGVsPihcclxuICAgIG1vZGVsVHlwZTogTW9kZWxUeXBlPFQ+LFxyXG4gICAgaWQ6IHN0cmluZyxcclxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycyxcclxuICAgIGN1c3RvbVVybD86IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8e30+IHtcclxuICAgIGNvbnN0IGN1c3RvbUhlYWRoZXJzOiBIdHRwSGVhZGVycyA9IHRoaXMuYnVpbGRIZWFkZXJzKGhlYWRlcnMpO1xyXG4gICAgbGV0IHVybDogc3RyaW5nID0gdGhpcy5idWlsZFVybChtb2RlbFR5cGUsIGN1c3RvbVVybCk7XHJcbiAgICBpZiAoIXVybC5pbmNsdWRlcygnc2hhcmUnKSkge1xyXG4gICAgICB1cmwgPSB1cmwgKyAnLycgKyBpZDtcclxuICAgIH1cclxuICAgIC8vIGNvbnN0IGlkUGFyYW0gPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnaWQnLCBpZCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmRlbGV0ZSh1cmwsIHsgaGVhZGVyczogY3VzdG9tSGVhZGhlcnMsIHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuY2FjaGVTZXJ2aWNlLmNsZWFyQ2FjaGVDb250YWluaW5nS2V5d29yZCh1cmwpO1xyXG4gICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgICB9XHJcbiAgICAgICAgKSxcclxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYnVpbGRVcmw8VCBleHRlbmRzIEJhc2VNb2RlbD4oXHJcbiAgICBtb2RlbFR5cGU6IE1vZGVsVHlwZTxUPixcclxuICAgIGN1c3RvbVVybD86IHN0cmluZ1xyXG4gICk6IHN0cmluZyB7XHJcblxyXG4gICAgaWYgKGN1c3RvbVVybCkge1xyXG4gICAgICByZXR1cm4gY3VzdG9tVXJsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1vZGVsQ29uZmlnOiBNb2RlbENvbmZpZyA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoJ0Jhc2VNb2RlbENvbmZpZycsIG1vZGVsVHlwZSk7XHJcblxyXG4gICAgY29uc3QgYmFzZVVybCA9IG1vZGVsQ29uZmlnLmJhc2VVcmwgfHwgdGhpcy5kYXRhc3RvcmVDb25maWcuYmFzZVVybDtcclxuICAgIGNvbnN0IGFwaVZlcnNpb24gPSBtb2RlbENvbmZpZy5hcGlWZXJzaW9uIHx8IHRoaXMuZGF0YXN0b3JlQ29uZmlnLmFwaVZlcnNpb247XHJcbiAgICBjb25zdCBtb2RlbEVuZHBvaW50VXJsOiBzdHJpbmcgPSBtb2RlbENvbmZpZy5tb2RlbEVuZHBvaW50VXJsIHx8IG1vZGVsQ29uZmlnLnR5cGU7XHJcblxyXG4gICAgY29uc3QgdXJsOiBzdHJpbmcgPSBbYmFzZVVybCwgYXBpVmVyc2lvbiwgbW9kZWxFbmRwb2ludFVybF0uZmlsdGVyKCh4KSA9PiB4KS5qb2luKCcvJyk7XHJcblxyXG4gICAgcmV0dXJuIHVybDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBleHRyYWN0UXVlcnlEYXRhPFQgZXh0ZW5kcyBCYXNlTW9kZWw+KFxyXG4gICAgcmVzOiBhbnksXHJcbiAgICBtb2RlbFR5cGU6IE1vZGVsVHlwZTxUPlxyXG4gICk6IEJhc2VRdWVyeURhdGE8VD4ge1xyXG4gICAgbGV0IHJlc3VsdDtcclxuICAgIGNvbnN0IGJvZHk6IGFueSA9IHJlcztcclxuICAgIGNvbnN0IG1vZGVsczogVFtdID0gW107XHJcblxyXG4gICAgZm9yIChjb25zdCBkYXRhIG9mIGJvZHkuZGF0YSkge1xyXG4gICAgICBjb25zdCBtb2RlbCA9IHRoaXMuZW50aXR5VG9Nb2RlbChkYXRhLCBtb2RlbFR5cGUsIHVuZGVmaW5lZCk7XHJcbiAgICAgIG1vZGVscy5wdXNoKG1vZGVsKTtcclxuICAgIH1cclxuXHJcbiAgICByZXN1bHQgPSBuZXcgQmFzZVF1ZXJ5RGF0YShtb2RlbHMsIHRoaXMucGFyc2VNZXRhKGJvZHksIG1vZGVsVHlwZSkpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBkZXNlcmlhbGl6ZU1vZGVsPFQgZXh0ZW5kcyBCYXNlTW9kZWw+KG1vZGVsVHlwZTogTW9kZWxUeXBlPFQ+LCBkYXRhOiBhbnkpIHtcclxuICAgIGRhdGEgPSB0aGlzLnRyYW5zZm9ybVNlcmlhbGl6ZWROYW1lc1RvUHJvcGVydHlOYW1lcyhtb2RlbFR5cGUsIGRhdGEpO1xyXG4gICAgcmV0dXJuIG5ldyBtb2RlbFR5cGUodGhpcywgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaGFuZGxlRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICBpZiAoZXJyb3IuZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XHJcbiAgICAgIC8vIEEgY2xpZW50LXNpZGUgb3IgbmV0d29yayBlcnJvciBvY2N1cnJlZC4gSGFuZGxlIGl0IGFjY29yZGluZ2x5LlxyXG4gICAgICAvLyBjb25zb2xlLmVycm9yKCdBbiBlcnJvciBvY2N1cnJlZDonLCBlcnJvci5lcnJvci5tZXNzYWdlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIFRoZSBiYWNrZW5kIHJldHVybmVkIGFuIHVuc3VjY2Vzc2Z1bCByZXNwb25zZSBjb2RlLlxyXG4gICAgICAvLyBUaGUgcmVzcG9uc2UgYm9keSBtYXkgY29udGFpbiBjbHVlcyBhcyB0byB3aGF0IHdlbnQgd3JvbmcsXHJcbiAgICAgIC8vIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgIC8vICAgJ0JhY2tlbmQgcmV0dXJuZWQgY29kZSAke2Vycm9yLnN0YXR1c30sICcgK1xyXG4gICAgICAvLyAgICdib2R5IHdhczogJHtlcnJvci5lcnJvcn0nKTtcclxuICAgIH1cclxuICAgIC8vIHJldHVybiBhbiBvYnNlcnZhYmxlIHdpdGggYSB1c2VyLWZhY2luZyBlcnJvciBtZXNzYWdlXHJcbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcGFyc2VNZXRhKGJvZHk6IGFueSwgbW9kZWxUeXBlOiBNb2RlbFR5cGU8QmFzZU1vZGVsPik6IGFueSB7XHJcbiAgICBjb25zdCBtZXRhTW9kZWw6IGFueSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoJ0Jhc2VNb2RlbENvbmZpZycsIG1vZGVsVHlwZSkubWV0YTtcclxuICAgIHJldHVybiBuZXcgbWV0YU1vZGVsKGJvZHkpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHJlc2V0TWV0YWRhdGFBdHRyaWJ1dGVzPFQgZXh0ZW5kcyBCYXNlTW9kZWw+KHJlczogVCwgYXR0cmlidXRlc01ldGFkYXRhOiBhbnksIG1vZGVsVHlwZTogTW9kZWxUeXBlPFQ+KSB7XHJcbiAgICAvLyBUT0RPIGNoZWNrIHdoeSBpcyBhdHRyaWJ1dGVzTWV0YWRhdGEgZnJvbSB0aGUgYXJndW1lbnRzIG5ldmVyIHVzZWRcclxuXHJcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBpbiBhdHRyaWJ1dGVzTWV0YWRhdGEpIHtcclxuICAgICAgaWYgKGF0dHJpYnV0ZXNNZXRhZGF0YS5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpKSB7XHJcbiAgICAgICAgY29uc3QgbWV0YWRhdGE6IGFueSA9IGF0dHJpYnV0ZXNNZXRhZGF0YVtwcm9wZXJ0eU5hbWVdO1xyXG5cclxuICAgICAgICBpZiAobWV0YWRhdGEuaGFzRGlydHlBdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgICBtZXRhZGF0YS5oYXNEaXJ0eUF0dHJpYnV0ZXMgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAocmVzKSB7XHJcbiAgICAgIHJlcy5hdHRyaWJ1dGVNZXRhZGF0YSA9IGF0dHJpYnV0ZXNNZXRhZGF0YTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhdGFzdG9yZUNvbmZpZygpOiBEYXRhc3RvcmVDb25maWcge1xyXG4gICAgY29uc3QgY29uZmlnRnJvbURlY29yYXRvcjogRGF0YXN0b3JlQ29uZmlnID0gUmVmbGVjdC5nZXRNZXRhZGF0YSgnQmFzZURhdGFzdG9yZUNvbmZpZycsIHRoaXMuY29uc3RydWN0b3IpO1xyXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29uZmlnRnJvbURlY29yYXRvciwgdGhpcy5jb25maWcpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHRyYW5zZm9ybVNlcmlhbGl6ZWROYW1lc1RvUHJvcGVydHlOYW1lczxUIGV4dGVuZHMgQmFzZU1vZGVsPihtb2RlbFR5cGU6IE1vZGVsVHlwZTxUPiwgYXR0cmlidXRlczogYW55KSB7XHJcbiAgICBjb25zdCBzZXJpYWxpemVkTmFtZVRvUHJvcGVydHlOYW1lID0gdGhpcy5nZXRNb2RlbFByb3BlcnR5TmFtZXMobW9kZWxUeXBlLnByb3RvdHlwZSk7XHJcbiAgICBjb25zdCBwcm9wZXJ0aWVzOiBhbnkgPSB7fTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyhzZXJpYWxpemVkTmFtZVRvUHJvcGVydHlOYW1lKS5mb3JFYWNoKChzZXJpYWxpemVkTmFtZSkgPT4ge1xyXG4gICAgICBpZiAoYXR0cmlidXRlc1tzZXJpYWxpemVkTmFtZV0gIT09IG51bGwgJiYgYXR0cmlidXRlc1tzZXJpYWxpemVkTmFtZV0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHByb3BlcnRpZXNbc2VyaWFsaXplZE5hbWVUb1Byb3BlcnR5TmFtZVtzZXJpYWxpemVkTmFtZV1dID0gYXR0cmlidXRlc1tzZXJpYWxpemVkTmFtZV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBwcm9wZXJ0aWVzO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldE1vZGVsUHJvcGVydHlOYW1lcyhtb2RlbDogQmFzZU1vZGVsKSB7XHJcbiAgICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YSgnQXR0cmlidXRlTWFwcGluZycsIG1vZGVsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBidWlsZEhlYWRlcnMoY3VzdG9tSGVhZGVycz86IEh0dHBIZWFkZXJzKTogSHR0cEhlYWRlcnMge1xyXG4gICAgY29uc3QgaGVhZGVyczogYW55ID0ge1xyXG4gICAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uLXBhdGNoK2pzb24nLFxyXG4gICAgICAvLyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3ZuZC5hcGkranNvbicsXHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbi1wYXRjaCtqc29uJ1xyXG4gICAgfTtcclxuICAgIGlmIChjdXN0b21IZWFkZXJzICYmIGN1c3RvbUhlYWRlcnMua2V5cygpLmxlbmd0aCkge1xyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxyXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCBoZWFkZXJzLCBjdXN0b21IZWFkZXJzLmtleXMoKS5tYXAoaGVhZGVyX25hbWUgPT4ge1xyXG4gICAgICAgIGhlYWRlcnNbJycgKyBoZWFkZXJfbmFtZV0gPSBjdXN0b21IZWFkZXJzLmdldChoZWFkZXJfbmFtZSk7XHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYnVpbGRQYXJhbXM8VCBleHRlbmRzIEJhc2VNb2RlbD4obW9kZWxUeXBlOiBNb2RlbFR5cGU8VD4sXHJcbiAgICBwYXJhbXM6IGFueSk6IEh0dHBQYXJhbXMge1xyXG4gICAgbGV0IGh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgaWYgKHBhcmFtcykge1xyXG4gICAgICBPYmplY3Qua2V5cyhwYXJhbXMpXHJcbiAgICAgICAgLmZpbHRlcihrZXkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdiA9IHBhcmFtc1trZXldO1xyXG4gICAgICAgICAgcmV0dXJuIChBcnJheS5pc0FycmF5KHYpIHx8IHR5cGVvZiB2ID09PSAnc3RyaW5nJykgP1xyXG4gICAgICAgICAgICAodi5sZW5ndGggPiAwKSA6XHJcbiAgICAgICAgICAgICh2ICE9PSBudWxsICYmIHYgIT09IHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KGtleSwgcGFyYW1zW2tleV0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbW9kZWxDb25maWc6IE1vZGVsQ29uZmlnID0gUmVmbGVjdC5nZXRNZXRhZGF0YSgnQmFzZU1vZGVsQ29uZmlnJywgbW9kZWxUeXBlKTtcclxuICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLnNldCgnYnlwYXNzQ2FjaGUnLCBtb2RlbENvbmZpZy5ieXBhc3NDYWNoZSB8fCBmYWxzZSk7XHJcbiAgICByZXR1cm4gaHR0cFBhcmFtcztcclxuICB9XHJcblxyXG5cclxuICBwcm90ZWN0ZWQgZW50aXR5VG9Nb2RlbDxUIGV4dGVuZHMgQmFzZU1vZGVsPihcclxuICAgIHJlczogYW55LFxyXG4gICAgbW9kZWxUeXBlOiBNb2RlbFR5cGU8VD4sXHJcbiAgICBtb2RlbD86IFRcclxuICApIHtcclxuICAgIHJldHVybiB0aGlzLmV4dHJhY3RSZWNvcmREYXRhSnNvbihyZXMsIG1vZGVsVHlwZSwgbW9kZWwpO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgZXh0cmFjdFJlY29yZERhdGFKc29uPFQgZXh0ZW5kcyBCYXNlTW9kZWw+KFxyXG4gICAgcmVzOiBSZXNwb25zZSxcclxuICAgIG1vZGVsVHlwZTogTW9kZWxUeXBlPFQ+LFxyXG4gICAgbW9kZWw/OiBUXHJcbiAgKTogVCB7XHJcbiAgICBjb25zdCBib2R5OiBhbnkgPSByZXM7XHJcbiAgICBpZiAoIWJvZHkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyBib2R5IGluIHJlc3BvbnNlJyk7XHJcbiAgICB9XHJcbiAgICBpZiAobW9kZWwpIHtcclxuICAgICAgT2JqZWN0LmFzc2lnbihtb2RlbCwgYm9keSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkZXNlcmlhbGl6ZWRNb2RlbCA9IG1vZGVsIHx8IHRoaXMuZGVzZXJpYWxpemVNb2RlbChtb2RlbFR5cGUsIGJvZHkuZGF0YSB8fCBib2R5KTtcclxuICAgIHJldHVybiBkZXNlcmlhbGl6ZWRNb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBtb2RlbFRvRW50aXR5PFQgZXh0ZW5kcyBCYXNlTW9kZWw+KFxyXG4gICAgbW9kZWw6IFQsXHJcbiAgICBhdHRyaWJ1dGVzTWV0YWRhdGE6IGFueSxcclxuICAgIGFsbEF0dHJpYnV0ZXM6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICk6IGFueSB7XHJcbiAgICBsZXQgYXR0cmlidXRlcztcclxuICAgIGlmIChhbGxBdHRyaWJ1dGVzKSB7XHJcbiAgICAgIGF0dHJpYnV0ZXMgPSB0aGlzLmdldEFsbEF0dHJpYnV0ZXMoYXR0cmlidXRlc01ldGFkYXRhLCBtb2RlbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhdHRyaWJ1dGVzID0gdGhpcy5nZXREaXJ0eUF0dHJpYnV0ZXMoYXR0cmlidXRlc01ldGFkYXRhLCBtb2RlbCk7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLmdldFJlbGF0aW9uc2hpcHMobW9kZWwsIGF0dHJpYnV0ZXMpO1xyXG4gICAgcmV0dXJuIGF0dHJpYnV0ZXM7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3RvUXVlcnlTdHJpbmcocGFyYW1zOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHFzLnN0cmluZ2lmeShwYXJhbXMsIHsgYXJyYXlGb3JtYXQ6ICdicmFja2V0cycgfSk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
|
@@ -87,10 +87,10 @@ export class BaseService {
|
|
87
87
|
getSelectValues(property) {
|
88
88
|
return null;
|
89
89
|
}
|
90
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
91
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: BaseService, deps: [{ token: i1.BaseDatastore }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
91
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: BaseService, providedIn: 'root' }); }
|
92
92
|
}
|
93
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: BaseService, decorators: [{
|
94
94
|
type: Injectable,
|
95
95
|
args: [{
|
96
96
|
providedIn: 'root'
|
@@ -23,10 +23,10 @@ export class CacheService {
|
|
23
23
|
const keysToDelete = Object.keys(this.cache).filter(key => key.includes(keyword));
|
24
24
|
keysToDelete.forEach(key => this.delete(key));
|
25
25
|
}
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
27
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CacheService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
27
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CacheService, providedIn: 'root' }); }
|
28
28
|
}
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CacheService, decorators: [{
|
30
30
|
type: Injectable,
|
31
31
|
args: [{
|
32
32
|
providedIn: 'root'
|
@@ -19,15 +19,15 @@ let DatastoreCore = class DatastoreCore extends BaseDatastore {
|
|
19
19
|
};
|
20
20
|
this.config = this.customConfig;
|
21
21
|
}
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
23
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DatastoreCore, deps: [{ token: i1.HttpClient }, { token: i2.CacheService }, { token: i3.Configurations }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
23
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DatastoreCore }); }
|
24
24
|
};
|
25
25
|
DatastoreCore = __decorate([
|
26
26
|
BaseDatastoreConfig({ apiVersion: '', baseUrl: '' }),
|
27
27
|
__metadata("design:paramtypes", [HttpClient, CacheService, Configurations])
|
28
28
|
], DatastoreCore);
|
29
29
|
export { DatastoreCore };
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DatastoreCore, decorators: [{
|
31
31
|
type: Injectable
|
32
32
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.CacheService }, { type: i3.Configurations }] });
|
33
33
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXN0b3JlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvY29yZS9zcmMvbGliL3NlcnZpY2VzL2RhdGFzdG9yZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLFNBQVMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUt4QyxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEsYUFBYTtJQUU1QyxZQUFZLElBQWdCLEVBQUUsWUFBMEIsRUFBVSxTQUF5QjtRQUN2RixLQUFLLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRG9DLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBRXZGLElBQUksQ0FBQyxZQUFZLEdBQUc7WUFDaEIsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVTtZQUNyQyxPQUFPLEVBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPO1NBQ25DLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDcEMsQ0FBQzs4R0FUUSxhQUFhO2tIQUFiLGFBQWE7O0FBQWIsYUFBYTtJQUR6QixtQkFBbUIsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO3FDQUcvQixVQUFVLEVBQWdCLFlBQVksRUFBcUIsY0FBYztHQUZsRixhQUFhLENBVXpCOzsyRkFWWSxhQUFhO2tCQUZ6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb25zJztcclxuaW1wb3J0IHsgQmFzZURhdGFzdG9yZUNvbmZpZywgRGF0YXN0b3JlQ29uZmlnIH0gZnJvbSAnLi4vY29yZSc7XHJcbmltcG9ydCB7IEJhc2VEYXRhc3RvcmUgfSBmcm9tICcuL2Jhc2UtZGF0YXN0b3JlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuL2NhY2hlLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuQEJhc2VEYXRhc3RvcmVDb25maWcoeyBhcGlWZXJzaW9uOiAnJywgYmFzZVVybDogJycgfSlcclxuZXhwb3J0IGNsYXNzIERhdGFzdG9yZUNvcmUgZXh0ZW5kcyBCYXNlRGF0YXN0b3JlIHtcclxuICAgIHByaXZhdGUgY3VzdG9tQ29uZmlnOiBEYXRhc3RvcmVDb25maWdcclxuICAgIGNvbnN0cnVjdG9yKGh0dHA6IEh0dHBDbGllbnQsIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlLCBwcml2YXRlIGNvbmZpZ0V4dDogQ29uZmlndXJhdGlvbnMpIHtcclxuICAgICAgICBzdXBlcihodHRwLCBjYWNoZVNlcnZpY2UpO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tQ29uZmlnID0ge1xyXG4gICAgICAgICAgICBhcGlWZXJzaW9uOiB0aGlzLmNvbmZpZ0V4dC5hcGlWZXJzaW9uLFxyXG4gICAgICAgICAgICBiYXNlVXJsOiAgdGhpcy5jb25maWdFeHQuYmFzZVVybFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5jb25maWcgPSB0aGlzLmN1c3RvbUNvbmZpZztcclxuICAgIH1cclxufVxyXG4iXX0=
|
@@ -3,4 +3,5 @@ export * from './base.service';
|
|
3
3
|
export * from './cache.service';
|
4
4
|
export * from './datastore.service';
|
5
5
|
export * from './dialog.service';
|
6
|
-
|
6
|
+
export * from './translate-loader.service';
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3NvZnRsYWIvY29yZS9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iYXNlLWRhdGFzdG9yZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhY2hlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RhdGFzdG9yZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaWFsb2cuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRlLWxvYWRlci5zZXJ2aWNlJztcclxuXHJcbiJdfQ==
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
2
|
-
import { Injectable
|
2
|
+
import { Injectable } from '@angular/core';
|
3
3
|
import { Configurations } from '../configurations';
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
import * as i1 from "@angular/common/http";
|
@@ -7,11 +7,12 @@ import * as i2 from "../configurations";
|
|
7
7
|
export class TranslateloaderService {
|
8
8
|
constructor(httpClient, config) {
|
9
9
|
this.httpClient = httpClient;
|
10
|
-
this._apiUrl = '
|
10
|
+
this._apiUrl = '';
|
11
11
|
this.headers = new HttpHeaders({
|
12
12
|
Accept: 'application/json',
|
13
13
|
'Content-Type': 'application/json'
|
14
14
|
});
|
15
|
+
console.log(config);
|
15
16
|
if (config) {
|
16
17
|
this._apiUrl = config.baseUrl;
|
17
18
|
}
|
@@ -20,15 +21,13 @@ export class TranslateloaderService {
|
|
20
21
|
const url = this._apiUrl + '/api/v1/language/' + lang + '/translationlist';
|
21
22
|
return this.httpClient.get(url, { headers: this.headers });
|
22
23
|
}
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
24
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslateloaderService, deps: [{ token: i1.HttpClient }, { token: i2.Configurations }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
25
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslateloaderService, providedIn: 'root' }); }
|
25
26
|
}
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslateloaderService, decorators: [{
|
27
28
|
type: Injectable,
|
28
29
|
args: [{
|
29
30
|
providedIn: 'root'
|
30
31
|
}]
|
31
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.Configurations
|
32
|
-
|
33
|
-
}] }] });
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy90cmFuc2xhdGUtbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFJbkQsTUFBTSxPQUFPLHNCQUFzQjtJQU1qQyxZQUFvQixVQUFzQixFQUM1QixNQUF1QjtRQURqQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBTGxDLFlBQU8sR0FBRyxVQUFVLENBQUM7UUFDckIsWUFBTyxHQUFRLElBQUksV0FBVyxDQUFDO1lBQ3JDLE1BQU0sRUFBRSxrQkFBa0I7WUFDMUIsY0FBYyxFQUFFLGtCQUFrQjtTQUNuQyxDQUFDLENBQUM7UUFHRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBQ0QsY0FBYyxDQUFDLElBQVk7UUFDekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQzs4R0FmVSxzQkFBc0I7a0hBQXRCLHNCQUFzQixjQUZyQixNQUFNOzsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxvYWRlciB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbnMnO1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVsb2FkZXJTZXJ2aWNlIGltcGxlbWVudHMgVHJhbnNsYXRlTG9hZGVyIHtcclxuICBwcml2YXRlIF9hcGlVcmwgPSAnTm8gVmFsdWUnO1xyXG4gIHByaXZhdGUgaGVhZGVyczogYW55ID0gbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xyXG4gIH0pO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zKSB7XHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuX2FwaVVybCA9IGNvbmZpZy5iYXNlVXJsO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRUcmFuc2xhdGlvbihsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5fYXBpVXJsICsgJy9hcGkvdjEvbGFuZ3VhZ2UvJyArIGxhbmcgKyAnL3RyYW5zbGF0aW9ubGlzdCc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh1cmwsIHsgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
32
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.Configurations }] });
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm9zb2Z0bGFiL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy90cmFuc2xhdGUtbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUluRCxNQUFNLE9BQU8sc0JBQXNCO0lBTWpDLFlBQW9CLFVBQXNCLEVBQ3hDLE1BQXNCO1FBREosZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUxsQyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsWUFBTyxHQUFRLElBQUksV0FBVyxDQUFDO1lBQ3JDLE1BQU0sRUFBRSxrQkFBa0I7WUFDMUIsY0FBYyxFQUFFLGtCQUFrQjtTQUNuQyxDQUFDLENBQUM7UUFHRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ25CLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFDRCxjQUFjLENBQUMsSUFBWTtRQUN6QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLG1CQUFtQixHQUFHLElBQUksR0FBRyxrQkFBa0IsQ0FBQztRQUMzRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDOzhHQWhCVSxzQkFBc0I7a0hBQXRCLHNCQUFzQixjQUZyQixNQUFNOzsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTG9hZGVyIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZWxvYWRlclNlcnZpY2UgaW1wbGVtZW50cyBUcmFuc2xhdGVMb2FkZXIge1xyXG4gIHByaXZhdGUgX2FwaVVybCA9ICcnO1xyXG4gIHByaXZhdGUgaGVhZGVyczogYW55ID0gbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xyXG4gIH0pO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIGNvbmZpZzogQ29uZmlndXJhdGlvbnMpIHtcclxuICAgIGNvbnNvbGUubG9nKGNvbmZpZylcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgdGhpcy5fYXBpVXJsID0gY29uZmlnLmJhc2VVcmw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFRyYW5zbGF0aW9uKGxhbmc6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLl9hcGlVcmwgKyAnL2FwaS92MS9sYW5ndWFnZS8nICsgbGFuZyArICcvdHJhbnNsYXRpb25saXN0JztcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybCwgeyBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|