@hestia-earth/ui-components 0.23.13 → 0.23.15
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/common/common.light.module.d.ts +2 -1
- package/common/maps-utils.d.ts +21 -0
- package/engine/engine.service.d.ts +2 -1
- package/esm2022/common/common.light.module.mjs +6 -5
- package/esm2022/common/maps-utils.mjs +30 -1
- package/esm2022/engine/engine.service.mjs +5 -2
- package/esm2022/node/node-logs-models/node-logs-models.component.mjs +20 -12
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/search/search.model.mjs +2 -1
- package/esm2022/sites/sites-maps/sites-maps.component.mjs +17 -21
- package/esm2022/svg-icons/index.mjs +2 -0
- package/esm2022/svg-icons/svg-icons.module.mjs +30 -0
- package/fesm2022/hestia-earth-ui-components.mjs +181 -121
- package/fesm2022/hestia-earth-ui-components.mjs.map +1 -1
- package/package.json +3 -1
- package/public-api.d.ts +1 -0
- package/search/search.model.d.ts +8 -0
- package/sites/sites-maps/sites-maps.component.d.ts +9 -11
- package/svg-icons/far-arrow-down-to-bracket.svg +8 -0
- package/svg-icons/far-arrow-left.svg +3 -0
- package/svg-icons/far-arrow-right.svg +3 -0
- package/svg-icons/far-circle-info.svg +8 -0
- package/svg-icons/far-down-arrow.svg +3 -0
- package/svg-icons/far-download.svg +9 -0
- package/svg-icons/far-filter.svg +5 -0
- package/svg-icons/far-home.svg +11 -0
- package/svg-icons/far-info-circle.svg +5 -0
- package/svg-icons/far-magnifier.svg +5 -0
- package/svg-icons/far-question-circle-thin.svg +9 -0
- package/svg-icons/far-question-circle.svg +17 -0
- package/svg-icons/far-search.svg +5 -0
- package/svg-icons/far-share-nodes.svg +15 -0
- package/svg-icons/far-share.svg +15 -0
- package/svg-icons/file-csv.svg +18 -0
- package/svg-icons/icons.json +82 -0
- package/svg-icons/index.d.ts +1 -0
- package/svg-icons/svg-icons.module.d.ts +9 -0
- package/svg-icons/turn-phone.svg +27 -0
- package/svg-icons/xmark.svg +6 -0
|
@@ -19,8 +19,9 @@ import * as i17 from "@angular/common";
|
|
|
19
19
|
import * as i18 from "@angular/forms";
|
|
20
20
|
import * as i19 from "@angular/router";
|
|
21
21
|
import * as i20 from "../fontawesome/fontawesome.module";
|
|
22
|
+
import * as i21 from "../svg-icons/svg-icons.module";
|
|
22
23
|
export declare class HeCommonLightModule {
|
|
23
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<HeCommonLightModule, never>;
|
|
24
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<HeCommonLightModule, [typeof i1.IssueConfirmComponent, typeof i2.NavigationMenuComponent, typeof i3.SocialTagsComponent, typeof i4.ToastComponent, typeof i5.ApplyPurePipe, typeof i6.BindOnceDirective, typeof i7.ClickOutsideDirective, typeof i8.CompoundDirective, typeof i9.CompoundPipe, typeof i10.DefaultPipe, typeof i11.EllipsisPipe, typeof i12.KeysPipe, typeof i13.NoExtPipe, typeof i14.PluralizePipe, typeof i15.KeyToLabelPipe, typeof i16.PrecisionPipe], [typeof i17.CommonModule, typeof i18.FormsModule, typeof i19.RouterModule, typeof i20.HeFontawesomeModule], [typeof i20.HeFontawesomeModule, typeof i1.IssueConfirmComponent, typeof i2.NavigationMenuComponent, typeof i3.SocialTagsComponent, typeof i4.ToastComponent, typeof i5.ApplyPurePipe, typeof i6.BindOnceDirective, typeof i7.ClickOutsideDirective, typeof i8.CompoundDirective, typeof i9.CompoundPipe, typeof i10.DefaultPipe, typeof i11.EllipsisPipe, typeof i12.KeysPipe, typeof i13.NoExtPipe, typeof i14.PluralizePipe, typeof i15.KeyToLabelPipe, typeof i16.PrecisionPipe]>;
|
|
25
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<HeCommonLightModule, [typeof i1.IssueConfirmComponent, typeof i2.NavigationMenuComponent, typeof i3.SocialTagsComponent, typeof i4.ToastComponent, typeof i5.ApplyPurePipe, typeof i6.BindOnceDirective, typeof i7.ClickOutsideDirective, typeof i8.CompoundDirective, typeof i9.CompoundPipe, typeof i10.DefaultPipe, typeof i11.EllipsisPipe, typeof i12.KeysPipe, typeof i13.NoExtPipe, typeof i14.PluralizePipe, typeof i15.KeyToLabelPipe, typeof i16.PrecisionPipe], [typeof i17.CommonModule, typeof i18.FormsModule, typeof i19.RouterModule, typeof i20.HeFontawesomeModule, typeof i21.HeSvgIconsModule], [typeof i20.HeFontawesomeModule, typeof i21.HeSvgIconsModule, typeof i1.IssueConfirmComponent, typeof i2.NavigationMenuComponent, typeof i3.SocialTagsComponent, typeof i4.ToastComponent, typeof i5.ApplyPurePipe, typeof i6.BindOnceDirective, typeof i7.ClickOutsideDirective, typeof i8.CompoundDirective, typeof i9.CompoundPipe, typeof i10.DefaultPipe, typeof i11.EllipsisPipe, typeof i12.KeysPipe, typeof i13.NoExtPipe, typeof i14.PluralizePipe, typeof i15.KeyToLabelPipe, typeof i16.PrecisionPipe]>;
|
|
25
26
|
static ɵinj: i0.ɵɵInjectorDeclaration<HeCommonLightModule>;
|
|
26
27
|
}
|
package/common/maps-utils.d.ts
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { InjectionToken } from '@angular/core';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
export declare const HE_MAP_LOADED: InjectionToken<Observable<boolean>>;
|
|
5
|
+
/**
|
|
6
|
+
* Usage:
|
|
7
|
+
* ```
|
|
8
|
+
* // import HttpClientJsonpModule
|
|
9
|
+
* imports: [HttpClientJsonpModule]
|
|
10
|
+
*
|
|
11
|
+
* // Inject in module
|
|
12
|
+
* providers: [{ provide: HE_MAP_LOADED, useFactory: loadMapApi(apiKey), deps: [HttpClient]} ]
|
|
13
|
+
*
|
|
14
|
+
* // Inject in component
|
|
15
|
+
* constructor(@Inject(HE_MAP_LOADED) public mapLoaded$: Observable<boolean>) { }
|
|
16
|
+
* ```
|
|
17
|
+
* @param apiKey
|
|
18
|
+
* @param libraries
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
export declare const loadMapApi: (apiKey: string, libraries?: string[]) => (httpClient: HttpClient) => Observable<boolean>;
|
|
1
22
|
export declare const locationQuery: (bounds: google.maps.LatLngBounds, searchField?: string) => {
|
|
2
23
|
geo_bounding_box: {
|
|
3
24
|
[x: string]: {
|
|
@@ -9,7 +9,7 @@ export declare const HE_ORCHESTRATOR_BASE_URL: InjectionToken<string>;
|
|
|
9
9
|
export declare const engineGitBaseUrl: () => string;
|
|
10
10
|
export declare const engineGitUrl: () => string;
|
|
11
11
|
export declare const findModels: (models: IModel[], termId: string) => IModel[];
|
|
12
|
-
export declare const findMatchingModel: (models: IModel[], model: Partial<IModel>) => IModel;
|
|
12
|
+
export declare const findMatchingModel: (models: (IModel | IModel[])[], model: Partial<IModel>) => IModel;
|
|
13
13
|
export declare const modelParams: (node: Partial<blankNode>, includeTerm?: boolean) => {
|
|
14
14
|
[x: string]: string;
|
|
15
15
|
};
|
|
@@ -87,6 +87,7 @@ export interface IOrchestratorModelConfig {
|
|
|
87
87
|
export interface IOrchestratorConfig {
|
|
88
88
|
models: (IOrchestratorModelConfig | IOrchestratorModelConfig[])[];
|
|
89
89
|
}
|
|
90
|
+
export declare const findOrchestratorModel: ({ models }: IOrchestratorConfig, model: Partial<IOrchestratorModelConfig>) => IOrchestratorModelConfig;
|
|
90
91
|
export declare class HeEngineService {
|
|
91
92
|
private _calculationsBaseUrl;
|
|
92
93
|
private _orchestratorBaseUrl;
|
|
@@ -3,6 +3,7 @@ import { CommonModule } from '@angular/common';
|
|
|
3
3
|
import { FormsModule } from '@angular/forms';
|
|
4
4
|
import { RouterModule } from '@angular/router';
|
|
5
5
|
import { HeFontawesomeModule } from '../fontawesome/fontawesome.module';
|
|
6
|
+
import { HeSvgIconsModule } from '../svg-icons/svg-icons.module';
|
|
6
7
|
import { IssueConfirmComponent } from './issue-confirm/issue-confirm.component';
|
|
7
8
|
import { NavigationMenuComponent } from './navigation-menu/navigation-menu.component';
|
|
8
9
|
import { SocialTagsComponent } from './social-tags/social-tags.component';
|
|
@@ -55,7 +56,7 @@ export class HeCommonLightModule {
|
|
|
55
56
|
NoExtPipe,
|
|
56
57
|
PluralizePipe,
|
|
57
58
|
KeyToLabelPipe,
|
|
58
|
-
PrecisionPipe], imports: [CommonModule, FormsModule, RouterModule, HeFontawesomeModule], exports: [HeFontawesomeModule, IssueConfirmComponent,
|
|
59
|
+
PrecisionPipe], imports: [CommonModule, FormsModule, RouterModule, HeFontawesomeModule, HeSvgIconsModule], exports: [HeFontawesomeModule, HeSvgIconsModule, IssueConfirmComponent,
|
|
59
60
|
NavigationMenuComponent,
|
|
60
61
|
SocialTagsComponent,
|
|
61
62
|
ToastComponent,
|
|
@@ -71,14 +72,14 @@ export class HeCommonLightModule {
|
|
|
71
72
|
PluralizePipe,
|
|
72
73
|
KeyToLabelPipe,
|
|
73
74
|
PrecisionPipe] }); }
|
|
74
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: HeCommonLightModule, imports: [CommonModule, FormsModule, RouterModule, HeFontawesomeModule, HeFontawesomeModule] }); }
|
|
75
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: HeCommonLightModule, imports: [CommonModule, FormsModule, RouterModule, HeFontawesomeModule, HeSvgIconsModule, HeFontawesomeModule, HeSvgIconsModule] }); }
|
|
75
76
|
}
|
|
76
77
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: HeCommonLightModule, decorators: [{
|
|
77
78
|
type: NgModule,
|
|
78
79
|
args: [{
|
|
79
80
|
declarations: components,
|
|
80
|
-
exports: [HeFontawesomeModule, ...components],
|
|
81
|
-
imports: [CommonModule, FormsModule, RouterModule, HeFontawesomeModule]
|
|
81
|
+
exports: [HeFontawesomeModule, HeSvgIconsModule, ...components],
|
|
82
|
+
imports: [CommonModule, FormsModule, RouterModule, HeFontawesomeModule, HeSvgIconsModule]
|
|
82
83
|
}]
|
|
83
84
|
}] });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmxpZ2h0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vY29tbW9uLmxpZ2h0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUVqRCxNQUFNLFVBQVUsR0FBRztJQUNqQixxQkFBcUI7SUFDckIsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixXQUFXO0lBQ1gsWUFBWTtJQUNaLFFBQVE7SUFDUixTQUFTO0lBQ1QsYUFBYTtJQUNiLGNBQWM7SUFDZCxhQUFhO0NBQ2QsQ0FBQztBQU9GLE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjsrR0FBbkIsbUJBQW1CLGlCQXZCOUIscUJBQXFCO1lBQ3JCLHVCQUF1QjtZQUN2QixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGFBQWE7WUFDYixpQkFBaUI7WUFDakIscUJBQXFCO1lBQ3JCLGlCQUFpQjtZQUNqQixZQUFZO1lBQ1osV0FBVztZQUNYLFlBQVk7WUFDWixRQUFRO1lBQ1IsU0FBUztZQUNULGFBQWE7WUFDYixjQUFjO1lBQ2QsYUFBYSxhQU1ILFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixhQUQ5RSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFwQi9DLHFCQUFxQjtZQUNyQix1QkFBdUI7WUFDdkIsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLHFCQUFxQjtZQUNyQixpQkFBaUI7WUFDakIsWUFBWTtZQUNaLFdBQVc7WUFDWCxZQUFZO1lBQ1osUUFBUTtZQUNSLFNBQVM7WUFDVCxhQUFhO1lBQ2IsY0FBYztZQUNkLGFBQWE7K0dBUUYsbUJBQW1CLFlBRnBCLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUQ5RSxtQkFBbUIsRUFBRSxnQkFBZ0I7OzJGQUdwQyxtQkFBbUI7a0JBTC9CLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLFVBQVU7b0JBQ3hCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLEdBQUcsVUFBVSxDQUFDO29CQUMvRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQztpQkFDMUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgSGVGb250YXdlc29tZU1vZHVsZSB9IGZyb20gJy4uL2ZvbnRhd2Vzb21lL2ZvbnRhd2Vzb21lLm1vZHVsZSc7XG5pbXBvcnQgeyBIZVN2Z0ljb25zTW9kdWxlIH0gZnJvbSAnLi4vc3ZnLWljb25zL3N2Zy1pY29ucy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBJc3N1ZUNvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuL2lzc3VlLWNvbmZpcm0vaXNzdWUtY29uZmlybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbk1lbnVDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24tbWVudS9uYXZpZ2F0aW9uLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFNvY2lhbFRhZ3NDb21wb25lbnQgfSBmcm9tICcuL3NvY2lhbC10YWdzL3NvY2lhbC10YWdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2FzdENvbXBvbmVudCB9IGZyb20gJy4vdG9hc3QvdG9hc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcGx5UHVyZVBpcGUgfSBmcm9tICcuL2FwcGx5LXB1cmUucGlwZSc7XG5pbXBvcnQgeyBCaW5kT25jZURpcmVjdGl2ZSB9IGZyb20gJy4vYmluZC1vbmNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbXBvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb3VuZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29tcG91bmRQaXBlIH0gZnJvbSAnLi9jb21wb3VuZC5waXBlJztcbmltcG9ydCB7IERlZmF1bHRQaXBlIH0gZnJvbSAnLi9kZWZhdWx0LnBpcGUnO1xuaW1wb3J0IHsgRWxsaXBzaXNQaXBlIH0gZnJvbSAnLi9lbGxpcHNpcy5waXBlJztcbmltcG9ydCB7IEtleVRvTGFiZWxQaXBlIH0gZnJvbSAnLi9rZXktdG8tbGFiZWwucGlwZSc7XG5pbXBvcnQgeyBLZXlzUGlwZSB9IGZyb20gJy4va2V5cy5waXBlJztcbmltcG9ydCB7IE5vRXh0UGlwZSB9IGZyb20gJy4vbm8tZXh0LnBpcGUnO1xuaW1wb3J0IHsgUGx1cmFsaXplUGlwZSB9IGZyb20gJy4vcGx1cmFsaXplLnBpcGUnO1xuaW1wb3J0IHsgUHJlY2lzaW9uUGlwZSB9IGZyb20gJy4vcHJlY2lzaW9uLnBpcGUnO1xuXG5jb25zdCBjb21wb25lbnRzID0gW1xuICBJc3N1ZUNvbmZpcm1Db21wb25lbnQsXG4gIE5hdmlnYXRpb25NZW51Q29tcG9uZW50LFxuICBTb2NpYWxUYWdzQ29tcG9uZW50LFxuICBUb2FzdENvbXBvbmVudCxcbiAgQXBwbHlQdXJlUGlwZSxcbiAgQmluZE9uY2VEaXJlY3RpdmUsXG4gIENsaWNrT3V0c2lkZURpcmVjdGl2ZSxcbiAgQ29tcG91bmREaXJlY3RpdmUsXG4gIENvbXBvdW5kUGlwZSxcbiAgRGVmYXVsdFBpcGUsXG4gIEVsbGlwc2lzUGlwZSxcbiAgS2V5c1BpcGUsXG4gIE5vRXh0UGlwZSxcbiAgUGx1cmFsaXplUGlwZSxcbiAgS2V5VG9MYWJlbFBpcGUsXG4gIFByZWNpc2lvblBpcGVcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogY29tcG9uZW50cyxcbiAgZXhwb3J0czogW0hlRm9udGF3ZXNvbWVNb2R1bGUsIEhlU3ZnSWNvbnNNb2R1bGUsIC4uLmNvbXBvbmVudHNdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUm91dGVyTW9kdWxlLCBIZUZvbnRhd2Vzb21lTW9kdWxlLCBIZVN2Z0ljb25zTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBIZUNvbW1vbkxpZ2h0TW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,3 +1,32 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { of } from 'rxjs';
|
|
3
|
+
import { catchError, map, mergeMap, shareReplay } from 'rxjs/operators';
|
|
4
|
+
const loadMapUrl = 'https://maps.googleapis.com/maps/api/js';
|
|
5
|
+
const buildMapsUrl = (params) => Object.entries(params)
|
|
6
|
+
.filter(([_key, values]) => values.length)
|
|
7
|
+
.map(([key, values]) => `${key}=${values.join(',')}`)
|
|
8
|
+
.join('&');
|
|
9
|
+
export const HE_MAP_LOADED = new InjectionToken('Google Maps API Loaded');
|
|
10
|
+
/**
|
|
11
|
+
* Usage:
|
|
12
|
+
* ```
|
|
13
|
+
* // import HttpClientJsonpModule
|
|
14
|
+
* imports: [HttpClientJsonpModule]
|
|
15
|
+
*
|
|
16
|
+
* // Inject in module
|
|
17
|
+
* providers: [{ provide: HE_MAP_LOADED, useFactory: loadMapApi(apiKey), deps: [HttpClient]} ]
|
|
18
|
+
*
|
|
19
|
+
* // Inject in component
|
|
20
|
+
* constructor(@Inject(HE_MAP_LOADED) public mapLoaded$: Observable<boolean>) { }
|
|
21
|
+
* ```
|
|
22
|
+
* @param apiKey
|
|
23
|
+
* @param libraries
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
export const loadMapApi = (apiKey, libraries = ['visualization', 'drawing']) => (httpClient) => of(`${loadMapUrl}?${buildMapsUrl({ key: [apiKey], libraries })}`).pipe(mergeMap(url => httpClient.jsonp(url, 'callback')), shareReplay({ bufferSize: 1, refCount: true }), map(() => true), catchError(e => {
|
|
27
|
+
console.error(e);
|
|
28
|
+
return of(false);
|
|
29
|
+
}));
|
|
1
30
|
export const locationQuery = (bounds, searchField = 'location') => {
|
|
2
31
|
const topRight = bounds.getNorthEast();
|
|
3
32
|
const bottomLeft = bounds.getSouthWest();
|
|
@@ -122,4 +151,4 @@ export const polygonBounds = (polygon) => {
|
|
|
122
151
|
: [];
|
|
123
152
|
return paths.reduce((prev, curr) => prev.extend(curr), new google.maps.LatLngBounds());
|
|
124
153
|
};
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcy11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vbWFwcy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFnQyxFQUFFLFdBQVcsR0FBRyxVQUFVLEVBQUUsRUFBRTtJQUMxRixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLE9BQU87UUFDTCxnQkFBZ0IsRUFBRTtZQUNoQixDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNiLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDeEQsWUFBWSxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFO2FBQzdEO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQztBQUNuQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUN2QixTQUFTO0lBQ1QsV0FBVyxFQUFFLEdBQUc7Q0FDakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixXQUFXO0lBQ1gsYUFBYSxFQUFFLEdBQUc7SUFDbEIsWUFBWSxFQUFFLENBQUM7Q0FDaEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyx3RkFBd0YsQ0FBQztBQUV2SCxNQUFNLHdCQUF3QixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7SUFDbkQsTUFB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bkIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNyRCxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7UUFDdkMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNQLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7QUFDekYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGxvY2F0aW9uUXVlcnkgPSAoYm91bmRzOiBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHMsIHNlYXJjaEZpZWxkID0gJ2xvY2F0aW9uJykgPT4ge1xuICBjb25zdCB0b3BSaWdodCA9IGJvdW5kcy5nZXROb3J0aEVhc3QoKTtcbiAgY29uc3QgYm90dG9tTGVmdCA9IGJvdW5kcy5nZXRTb3V0aFdlc3QoKTtcbiAgcmV0dXJuIHtcbiAgICBnZW9fYm91bmRpbmdfYm94OiB7XG4gICAgICBbc2VhcmNoRmllbGRdOiB7XG4gICAgICAgIHRvcF9sZWZ0OiB7IGxhdDogdG9wUmlnaHQubGF0KCksIGxvbjogYm90dG9tTGVmdC5sbmcoKSB9LFxuICAgICAgICBib3R0b21fcmlnaHQ6IHsgbGF0OiBib3R0b21MZWZ0LmxhdCgpLCBsb246IHRvcFJpZ2h0LmxuZygpIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZmlsbENvbG9yID0gJyMxOTM5NTcnO1xuZXhwb3J0IGNvbnN0IHN0cm9rZUNvbG9yID0gJyMwQzFCMjknO1xuXG5leHBvcnQgY29uc3QgZmlsbFN0eWxlID0ge1xuICBmaWxsQ29sb3IsXG4gIGZpbGxPcGFjaXR5OiAwLjZcbn07XG5cbmV4cG9ydCBjb25zdCBzdHJva2VTdHlsZSA9IHtcbiAgc3Ryb2tlQ29sb3IsXG4gIHN0cm9rZU9wYWNpdHk6IDAuNixcbiAgc3Ryb2tlV2VpZ2h0OiAxXG59O1xuXG5leHBvcnQgY29uc3QgY2x1c3RlcmVySW1hZ2UgPSAnaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvZXhhbXBsZXMvbWFya2VyY2x1c3RlcmVyL20nO1xuXG5jb25zdCBnZXRDb29yZGluYXRlc0ZvclBlcmNlbnQgPSAocGVyY2VudDogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IHggPSBNYXRoLmNvcygyICogTWF0aC5QSSAqIHBlcmNlbnQpO1xuICBjb25zdCB5ID0gTWF0aC5zaW4oMiAqIE1hdGguUEkgKiBwZXJjZW50KTtcbiAgcmV0dXJuIFt4LCB5XTtcbn07XG5cbmludGVyZmFjZSBJTWFya2VyUGllQ29uZmlnIHtcbiAgcGVyY2VudDogbnVtYmVyO1xuICBjb2xvcjogc3RyaW5nO1xufVxuXG5jb25zdCBwaWVVcmwgPSAoY29uZmlnczogSU1hcmtlclBpZUNvbmZpZ1tdLCBzaXplOiBudW1iZXIpID0+IHtcbiAgbGV0IGN1bXVsYXRpdmVQZXJjZW50ID0gMDtcblxuICByZXR1cm4gKFxuICAgICdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmLTgsJyArXG4gICAgZW5jb2RlVVJJQ29tcG9uZW50KFxuICAgICAgYFxuICAgIDxzdmcgd2lkdGg9XCIke3NpemV9XCIgaGVpZ2h0PVwiJHtzaXplfVwiIHZpZXdCb3g9XCItMSAtMSAyIDJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+JHtjb25maWdzXG4gICAgICAubWFwKCh7IHBlcmNlbnQsIGNvbG9yIH0pID0+IHtcbiAgICAgICAgY29uc3QgW3N0YXJ0WCwgc3RhcnRZXSA9IGdldENvb3JkaW5hdGVzRm9yUGVyY2VudChjdW11bGF0aXZlUGVyY2VudCk7XG4gICAgICAgIGN1bXVsYXRpdmVQZXJjZW50ICs9IHBlcmNlbnQ7XG4gICAgICAgIGNvbnN0IFtlbmRYLCBlbmRZXSA9IGdldENvb3JkaW5hdGVzRm9yUGVyY2VudChjdW11bGF0aXZlUGVyY2VudCk7XG4gICAgICAgIGNvbnN0IGxhcmdlQXJjRmxhZyA9IHBlcmNlbnQgPiAwLjUgPyAxIDogMDtcbiAgICAgICAgY29uc3QgcGF0aERhdGEgPSBbXG4gICAgICAgICAgYE0gJHtzdGFydFh9ICR7c3RhcnRZfWAsIC8vIE1vdmVcbiAgICAgICAgICBgQSAxIDEgMCAke2xhcmdlQXJjRmxhZ30gMSAke2VuZFh9ICR7ZW5kWX1gLCAvLyBBcmNcbiAgICAgICAgICBgTCAwIDBgIC8vIExpbmVcbiAgICAgICAgXS5qb2luKCcgJyk7XG4gICAgICAgIHJldHVybiBgPHBhdGggZmlsbD1cIiR7Y29sb3J9XCIgZD1cIiR7cGF0aERhdGF9XCI+PC9wYXRoPmA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oJycpfTwvc3ZnPlxuICBgLnRyaW0oKVxuICAgIClcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXJrZXJQaWUgPSAoY29uZmlnczogSU1hcmtlclBpZUNvbmZpZ1tdLCBzaXplID0gNykgPT4gKHtcbiAgYW5jaG9yOiBuZXcgZ29vZ2xlLm1hcHMuUG9pbnQoc2l6ZSAvIDIsIHNpemUgLyAyKSxcbiAgdXJsOiBwaWVVcmwoY29uZmlncywgc2l6ZSksXG4gIGxhYmVsT3JpZ2luOiBuZXcgZ29vZ2xlLm1hcHMuUG9pbnQoMCwgLTIpXG59KTtcblxuZXhwb3J0IGNvbnN0IG1hcmtlckljb24gPSAoc2NhbGUgPSA3KTogZ29vZ2xlLm1hcHMuU3ltYm9sID0+ICh7XG4gIHBhdGg6IGdvb2dsZS5tYXBzLlN5bWJvbFBhdGguQ0lSQ0xFLFxuICAuLi5maWxsU3R5bGUsXG4gIC4uLnN0cm9rZVN0eWxlLFxuICBzY2FsZSxcbiAgbGFiZWxPcmlnaW46IG5ldyBnb29nbGUubWFwcy5Qb2ludCgwLCAtMilcbn0pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTWFya2VyID0gKFxuICBwb3NpdGlvbj86IGdvb2dsZS5tYXBzLkxhdExuZyB8IGdvb2dsZS5tYXBzLkxhdExuZ0xpdGVyYWwsXG4gIHRleHQgPSAnJyxcbiAgY29sb3IgPSBmaWxsQ29sb3IsXG4gIHNjYWxlPzogbnVtYmVyXG4pID0+XG4gIChwb3NpdGlvbiAmJiBwb3NpdGlvbi5sYXQgJiYgcG9zaXRpb24ubG5nXG4gICAgPyBuZXcgZ29vZ2xlLm1hcHMuTWFya2VyKHtcbiAgICAgICAgcG9zaXRpb24sXG4gICAgICAgIGxhYmVsOiB7IGNvbG9yLCB0ZXh0IH0sXG4gICAgICAgIGljb246IG1hcmtlckljb24oc2NhbGUpXG4gICAgICB9KVxuICAgIDogdW5kZWZpbmVkKSBhcyBnb29nbGUubWFwcy5NYXJrZXI7XG5cbmludGVyZmFjZSBJUG9seWdvbiB7XG4gIHR5cGU6ICdQb2x5Z29uJztcbiAgY29vcmRpbmF0ZXM6IG51bWJlcltdW11bXTtcbn1cblxuaW50ZXJmYWNlIElNdWx0aVBvbHlnb24ge1xuICB0eXBlOiAnTXVsdGlQb2x5Z29uJztcbiAgY29vcmRpbmF0ZXM6IG51bWJlcltdW11bXTtcbn1cblxudHlwZSBnZW9tZXRyeSA9IElQb2x5Z29uIHwgSU11bHRpUG9seWdvbjtcblxuZXhwb3J0IGludGVyZmFjZSBJRmVhdHVyZSB7XG4gIHR5cGU6ICdGZWF0dXJlJztcbiAgcHJvcGVydGllczogYW55O1xuICBnZW9tZXRyeTogZ2VvbWV0cnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZlYXR1cmVDb2xsZWN0aW9uIHtcbiAgdHlwZTogJ0ZlYXR1cmVDb2xsZWN0aW9uJztcbiAgZmVhdHVyZXM6IElGZWF0dXJlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdlb21ldHJ5Q29sbGVjdGlvbiB7XG4gIHR5cGU6ICdHZW9tZXRyeUNvbGxlY3Rpb24nO1xuICBnZW9tZXRyaWVzOiBnZW9tZXRyeVtdO1xufVxuXG50eXBlIGZlYXR1cmUgPSBJRmVhdHVyZSB8IElGZWF0dXJlQ29sbGVjdGlvbiB8IElHZW9tZXRyeUNvbGxlY3Rpb24gfCBJUG9seWdvbiB8IElNdWx0aVBvbHlnb247XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0RmVhdHVyZSA9ICgpOiBJRmVhdHVyZSA9PiAoe1xuICB0eXBlOiAnRmVhdHVyZScsXG4gIHByb3BlcnRpZXM6IHt9LFxuICBnZW9tZXRyeToge1xuICAgIHR5cGU6ICdQb2x5Z29uJyxcbiAgICBjb29yZGluYXRlczogW11cbiAgfSBhcyBnZW9tZXRyeVxufSk7XG5cbmV4cG9ydCBjb25zdCBwb2ludFRvQ29vcmRpbmF0ZXMgPSAocG9pbnQ6IGdvb2dsZS5tYXBzLkxhdExuZykgPT4gW3BvaW50LmxuZygpLCBwb2ludC5sYXQoKV07XG5cbmV4cG9ydCBjb25zdCBjb29yZGluYXRlc1RvUG9pbnQgPSAodmFsdWVzOiAobnVtYmVyIHwgbnVtYmVyW10pW10pID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZXNbMF0pXG4gICAgICA/IHZhbHVlcy5tYXAoKHY6IGFueSkgPT4gY29vcmRpbmF0ZXNUb1BvaW50KHYpKVxuICAgICAgOiAodmFsdWVzIGFzIG51bWJlcltdKT8uc29tZShpc05hTilcbiAgICAgID8gbnVsbFxuICAgICAgOiBuZXcgZ29vZ2xlLm1hcHMuTGF0TG5nKCh2YWx1ZXMgYXMgbnVtYmVyW10pWzFdLCAodmFsdWVzIGFzIG51bWJlcltdKVswXSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcG9seWdvblRvQ29vcmRpbmF0ZXMgPSAocG9seWdvbjogZ29vZ2xlLm1hcHMuUG9seWdvbikgPT5cbiAgcG9seWdvblxuICAgIC5nZXRQYXRocygpXG4gICAgLmdldEFycmF5KClcbiAgICAubWFwKHBhdGggPT4ge1xuICAgICAgY29uc3QgcG9pbnRzID0gcGF0aC5nZXRBcnJheSgpO1xuICAgICAgcmV0dXJuIFsuLi5wb2ludHMubWFwKHBvaW50VG9Db29yZGluYXRlcyksIHBvaW50VG9Db29yZGluYXRlcyhwb2ludHNbMF0pXTtcbiAgICB9KVswXTtcblxuY29uc3QgY29vcmRpbmF0ZXNUb1BvbHlnb24gPSAoY29vcmRpbmF0ZXM6IG51bWJlcltdW10sIGNvbG9yID0gc3Ryb2tlQ29sb3IpID0+XG4gIG5ldyBnb29nbGUubWFwcy5Qb2x5Z29uKHtcbiAgICBwYXRoczogY29vcmRpbmF0ZXMubWFwKGNvb3JkaW5hdGVzVG9Qb2ludCkuZmlsdGVyKEJvb2xlYW4pLFxuICAgIC4uLnN0cm9rZVN0eWxlLFxuICAgIHN0cm9rZUNvbG9yOiBjb2xvclxuICB9KTtcblxuY29uc3QgZ2V0Q29vcmRpbmF0ZXMgPSAoZmVhdDogZmVhdHVyZSkgPT5cbiAgZmVhdC50eXBlID09PSAnUG9seWdvbicgfHwgZmVhdC50eXBlID09PSAnTXVsdGlQb2x5Z29uJ1xuICAgID8gZmVhdC5jb29yZGluYXRlc1xuICAgIDogZmVhdC50eXBlID09PSAnRmVhdHVyZSdcbiAgICA/IGZlYXQuZ2VvbWV0cnk/LmNvb3JkaW5hdGVzXG4gICAgOiBbXTtcblxuZXhwb3J0IGNvbnN0IGFkZFBvbHlnb25Ub0ZlYXR1cmUgPSAoZmVhdDogZmVhdHVyZSwgcG9seWdvbjogZ29vZ2xlLm1hcHMuUG9seWdvbikgPT5cbiAgZmVhdC50eXBlID09PSAnRmVhdHVyZUNvbGxlY3Rpb24nXG4gICAgPyBmZWF0LmZlYXR1cmVzLnB1c2goYWRkUG9seWdvblRvRmVhdHVyZShkZWZhdWx0RmVhdHVyZSgpLCBwb2x5Z29uKSlcbiAgICA6IGZlYXQudHlwZSA9PT0gJ0dlb21ldHJ5Q29sbGVjdGlvbidcbiAgICA/IGZlYXQuZ2VvbWV0cmllcy5tYXAoZ2VvbWV0cnkgPT4gKGdlb21ldHJ5Py5jb29yZGluYXRlcyB8fCBbXSkucHVzaChwb2x5Z29uVG9Db29yZGluYXRlcyhwb2x5Z29uKSkpXG4gICAgOiAoZ2V0Q29vcmRpbmF0ZXMoZmVhdCkgfHwgW10pLnB1c2gocG9seWdvblRvQ29vcmRpbmF0ZXMocG9seWdvbikpO1xuXG5leHBvcnQgY29uc3QgcG9seWdvbnNGcm9tRmVhdHVyZSA9IChmZWF0OiBmZWF0dXJlLCBjb2xvcj86IHN0cmluZyk6IGdvb2dsZS5tYXBzLlBvbHlnb25bXSA9PlxuICBmZWF0LnR5cGUgPT09ICdGZWF0dXJlQ29sbGVjdGlvbidcbiAgICA/IGZlYXQuZmVhdHVyZXMuZmxhdE1hcCh2YWx1ZXMgPT4gcG9seWdvbnNGcm9tRmVhdHVyZSh2YWx1ZXMsIGNvbG9yKSlcbiAgICA6IGZlYXQudHlwZSA9PT0gJ0dlb21ldHJ5Q29sbGVjdGlvbidcbiAgICA/IGZlYXQuZ2VvbWV0cmllcz8uZmxhdE1hcChnZW9tZXRyeSA9PlxuICAgICAgICAoZ2VvbWV0cnkuY29vcmRpbmF0ZXMgfHwgW10pLm1hcCh2YWx1ZXMgPT4gY29vcmRpbmF0ZXNUb1BvbHlnb24odmFsdWVzLCBjb2xvcikpXG4gICAgICApXG4gICAgOiAoZ2V0Q29vcmRpbmF0ZXMoZmVhdCkgfHwgW10pLm1hcCh2YWx1ZXMgPT4gY29vcmRpbmF0ZXNUb1BvbHlnb24odmFsdWVzLCBjb2xvcikpO1xuXG5leHBvcnQgY29uc3QgcG9seWdvbkJvdW5kcyA9IChwb2x5Z29uPzogZ29vZ2xlLm1hcHMuUG9seWdvbiB8IGdvb2dsZS5tYXBzLlBvbHlnb25bXSkgPT4ge1xuICBjb25zdCBwYXRocyA9IHBvbHlnb25cbiAgICA/IEFycmF5LmlzQXJyYXkocG9seWdvbilcbiAgICAgID8gcG9seWdvbi5mbGF0TWFwKHAgPT4gcC5nZXRQYXRoKCk/LmdldEFycmF5KCkgfHwgW10pXG4gICAgICA6IHBvbHlnb24uZ2V0UGF0aCgpPy5nZXRBcnJheSgpIHx8IFtdXG4gICAgOiBbXTtcbiAgcmV0dXJuIHBhdGhzLnJlZHVjZSgocHJldiwgY3VycikgPT4gcHJldi5leHRlbmQoY3VyciksIG5ldyBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHMoKSk7XG59O1xuIl19
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcy11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vbWFwcy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhFLE1BQU0sVUFBVSxHQUFHLHlDQUF5QyxDQUFDO0FBQzdELE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBZ0MsRUFBRSxFQUFFLENBQ3hELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0tBQ25CLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0tBQ3pDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7S0FDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRWYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFzQix3QkFBd0IsQ0FBQyxDQUFDO0FBRS9GOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FDckIsQ0FBQyxNQUFjLEVBQUUsU0FBUyxHQUFHLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FDN0QsQ0FBQyxVQUFzQixFQUFFLEVBQUUsQ0FDekIsRUFBRSxDQUFDLEdBQUcsVUFBVSxJQUFJLFlBQVksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNB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LENBQUMsQ0FBQyxDQUNoRjtRQUNILENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUV0RixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFxRCxFQUFFLEVBQUU7SUFDckYsTUFBTSxLQUFLLEdBQUcsT0FBTztRQUNuQixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDdEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3JELENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtRQUN2QyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1AsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztBQUN6RixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIG1lcmdlTWFwLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY29uc3QgbG9hZE1hcFVybCA9ICdodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvanMnO1xuY29uc3QgYnVpbGRNYXBzVXJsID0gKHBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+KSA9PlxuICBPYmplY3QuZW50cmllcyhwYXJhbXMpXG4gICAgLmZpbHRlcigoW19rZXksIHZhbHVlc10pID0+IHZhbHVlcy5sZW5ndGgpXG4gICAgLm1hcCgoW2tleSwgdmFsdWVzXSkgPT4gYCR7a2V5fT0ke3ZhbHVlcy5qb2luKCcsJyl9YClcbiAgICAuam9pbignJicpO1xuXG5leHBvcnQgY29uc3QgSEVfTUFQX0xPQURFRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPYnNlcnZhYmxlPGJvb2xlYW4+PignR29vZ2xlIE1hcHMgQVBJIExvYWRlZCcpO1xuXG4vKipcbiAqIFVzYWdlOlxuICogYGBgXG4gKiAvLyBpbXBvcnQgSHR0cENsaWVudEpzb25wTW9kdWxlXG4gKiBpbXBvcnRzOiBbSHR0cENsaWVudEpzb25wTW9kdWxlXVxuICpcbiAqIC8vIEluamVjdCBpbiBtb2R1bGVcbiAqIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSEVfTUFQX0xPQURFRCwgdXNlRmFjdG9yeTogbG9hZE1hcEFwaShhcGlLZXkpLCBkZXBzOiBbSHR0cENsaWVudF19IF1cbiAqXG4gKiAvLyBJbmplY3QgaW4gY29tcG9uZW50XG4gKiBjb25zdHJ1Y3RvcihASW5qZWN0KEhFX01BUF9MT0FERUQpIHB1YmxpYyBtYXBMb2FkZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+KSB7IH1cbiAqIGBgYFxuICogQHBhcmFtIGFwaUtleVxuICogQHBhcmFtIGxpYnJhcmllc1xuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRNYXBBcGkgPVxuICAoYXBpS2V5OiBzdHJpbmcsIGxpYnJhcmllcyA9IFsndmlzdWFsaXphdGlvbicsICdkcmF3aW5nJ10pID0+XG4gIChodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSA9PlxuICAgIG9mKGAke2xvYWRNYXBVcmx9PyR7YnVpbGRNYXBzVXJsKHsga2V5OiBbYXBpS2V5XSwgbGlicmFyaWVzIH0pfWApLnBpcGUoXG4gICAgICBtZXJnZU1hcCh1cmwgPT4gaHR0cENsaWVudC5qc29ucCh1cmwsICdjYWxsYmFjaycpKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSksXG4gICAgICBjYXRjaEVycm9yKGUgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgfSlcbiAgICApO1xuXG5leHBvcnQgY29uc3QgbG9jYXRpb25RdWVyeSA9IChib3VuZHM6IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kcywgc2VhcmNoRmllbGQgPSAnbG9jYXRpb24nKSA9PiB7XG4gIGNvbnN0IHRvcFJpZ2h0ID0gYm91bmRzLmdldE5vcnRoRWFzdCgpO1xuICBjb25zdCBib3R0b21MZWZ0ID0gYm91bmRzLmdldFNvdXRoV2VzdCgpO1xuICByZXR1cm4ge1xuICAgIGdlb19ib3VuZGluZ19ib3g6IHtcbiAgICAgIFtzZWFyY2hGaWVsZF06IHtcbiAgICAgICAgdG9wX2xlZnQ6IHsgbGF0OiB0b3BSaWdodC5sYXQoKSwgbG9uOiBib3R0b21MZWZ0LmxuZygpIH0sXG4gICAgICAgIGJvdHRvbV9yaWdodDogeyBsYXQ6IGJvdHRvbUxlZnQubGF0KCksIGxvbjogdG9wUmlnaHQubG5nKCkgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaWxsQ29sb3IgPSAnIzE5Mzk1Nyc7XG5leHBvcnQgY29uc3Qgc3Ryb2tlQ29sb3IgPSAnIzBDMUIyOSc7XG5cbmV4cG9ydCBjb25zdCBmaWxsU3R5bGUgPSB7XG4gIGZpbGxDb2xvcixcbiAgZmlsbE9wYWNpdHk6IDAuNlxufTtcblxuZXhwb3J0IGNvbnN0IHN0cm9rZVN0eWxlID0ge1xuICBzdHJva2VDb2xvcixcbiAgc3Ryb2tlT3BhY2l0eTogMC42LFxuICBzdHJva2VXZWlnaHQ6IDFcbn07XG5cbmV4cG9ydCBjb25zdCBjbHVzdGVyZXJJbWFnZSA9ICdodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9leGFtcGxlcy9tYXJrZXJjbHVzdGVyZXIvbSc7XG5cbmNvbnN0IGdldENvb3JkaW5hdGVzRm9yUGVyY2VudCA9IChwZXJjZW50OiBudW1iZXIpID0+IHtcbiAgY29uc3QgeCA9IE1hdGguY29zKDIgKiBNYXRoLlBJICogcGVyY2VudCk7XG4gIGNvbnN0IHkgPSBNYXRoLnNpbigyICogTWF0aC5QSSAqIHBlcmNlbnQpO1xuICByZXR1cm4gW3gsIHldO1xufTtcblxuaW50ZXJmYWNlIElNYXJrZXJQaWVDb25maWcge1xuICBwZXJjZW50OiBudW1iZXI7XG4gIGNvbG9yOiBzdHJpbmc7XG59XG5cbmNvbnN0IHBpZVVybCA9IChjb25maWdzOiBJTWFya2VyUGllQ29uZmlnW10sIHNpemU6IG51bWJlcikgPT4ge1xuICBsZXQgY3VtdWxhdGl2ZVBlcmNlbnQgPSAwO1xuXG4gIHJldHVybiAoXG4gICAgJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGYtOCwnICtcbiAgICBlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICBgXG4gICAgPHN2ZyB3aWR0aD1cIiR7c2l6ZX1cIiBoZWlnaHQ9XCIke3NpemV9XCIgdmlld0JveD1cIi0xIC0xIDIgMlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj4ke2NvbmZpZ3NcbiAgICAgIC5tYXAoKHsgcGVyY2VudCwgY29sb3IgfSkgPT4ge1xuICAgICAgICBjb25zdCBbc3RhcnRYLCBzdGFydFldID0gZ2V0Q29vcmRpbmF0ZXNGb3JQZXJjZW50KGN1bXVsYXRpdmVQZXJjZW50KTtcbiAgICAgICAgY3VtdWxhdGl2ZVBlcmNlbnQgKz0gcGVyY2VudDtcbiAgICAgICAgY29uc3QgW2VuZFgsIGVuZFldID0gZ2V0Q29vcmRpbmF0ZXNGb3JQZXJjZW50KGN1bXVsYXRpdmVQZXJjZW50KTtcbiAgICAgICAgY29uc3QgbGFyZ2VBcmNGbGFnID0gcGVyY2VudCA+IDAuNSA/IDEgOiAwO1xuICAgICAgICBjb25zdCBwYXRoRGF0YSA9IFtcbiAgICAgICAgICBgTSAke3N0YXJ0WH0gJHtzdGFydFl9YCwgLy8gTW92ZVxuICAgICAgICAgIGBBIDEgMSAwICR7bGFyZ2VBcmNGbGFnfSAxICR7ZW5kWH0gJHtlbmRZfWAsIC8vIEFyY1xuICAgICAgICAgIGBMIDAgMGAgLy8gTGluZVxuICAgICAgICBdLmpvaW4oJyAnKTtcbiAgICAgICAgcmV0dXJuIGA8cGF0aCBmaWxsPVwiJHtjb2xvcn1cIiBkPVwiJHtwYXRoRGF0YX1cIj48L3BhdGg+YDtcbiAgICAgIH0pXG4gICAgICAuam9pbignJyl9PC9zdmc+XG4gIGAudHJpbSgpXG4gICAgKVxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IG1hcmtlclBpZSA9IChjb25maWdzOiBJTWFya2VyUGllQ29uZmlnW10sIHNpemUgPSA3KSA9PiAoe1xuICBhbmNob3I6IG5ldyBnb29nbGUubWFwcy5Qb2ludChzaXplIC8gMiwgc2l6ZSAvIDIpLFxuICB1cmw6IHBpZVVybChjb25maWdzLCBzaXplKSxcbiAgbGFiZWxPcmlnaW46IG5ldyBnb29nbGUubWFwcy5Qb2ludCgwLCAtMilcbn0pO1xuXG5leHBvcnQgY29uc3QgbWFya2VySWNvbiA9IChzY2FsZSA9IDcpOiBnb29nbGUubWFwcy5TeW1ib2wgPT4gKHtcbiAgcGF0aDogZ29vZ2xlLm1hcHMuU3ltYm9sUGF0aC5DSVJDTEUsXG4gIC4uLmZpbGxTdHlsZSxcbiAgLi4uc3Ryb2tlU3R5bGUsXG4gIHNjYWxlLFxuICBsYWJlbE9yaWdpbjogbmV3IGdvb2dsZS5tYXBzLlBvaW50KDAsIC0yKVxufSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNYXJrZXIgPSAoXG4gIHBvc2l0aW9uPzogZ29vZ2xlLm1hcHMuTGF0TG5nIHwgZ29vZ2xlLm1hcHMuTGF0TG5nTGl0ZXJhbCxcbiAgdGV4dCA9ICcnLFxuICBjb2xvciA9IGZpbGxDb2xvcixcbiAgc2NhbGU/OiBudW1iZXJcbikgPT5cbiAgKHBvc2l0aW9uICYmIHBvc2l0aW9uLmxhdCAmJiBwb3NpdGlvbi5sbmdcbiAgICA/IG5ldyBnb29nbGUubWFwcy5NYXJrZXIoe1xuICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgbGFiZWw6IHsgY29sb3IsIHRleHQgfSxcbiAgICAgICAgaWNvbjogbWFya2VySWNvbihzY2FsZSlcbiAgICAgIH0pXG4gICAgOiB1bmRlZmluZWQpIGFzIGdvb2dsZS5tYXBzLk1hcmtlcjtcblxuaW50ZXJmYWNlIElQb2x5Z29uIHtcbiAgdHlwZTogJ1BvbHlnb24nO1xuICBjb29yZGluYXRlczogbnVtYmVyW11bXVtdO1xufVxuXG5pbnRlcmZhY2UgSU11bHRpUG9seWdvbiB7XG4gIHR5cGU6ICdNdWx0aVBvbHlnb24nO1xuICBjb29yZGluYXRlczogbnVtYmVyW11bXVtdO1xufVxuXG50eXBlIGdlb21ldHJ5ID0gSVBvbHlnb24gfCBJTXVsdGlQb2x5Z29uO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGZWF0dXJlIHtcbiAgdHlwZTogJ0ZlYXR1cmUnO1xuICBwcm9wZXJ0aWVzOiBhbnk7XG4gIGdlb21ldHJ5OiBnZW9tZXRyeTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmVhdHVyZUNvbGxlY3Rpb24ge1xuICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nO1xuICBmZWF0dXJlczogSUZlYXR1cmVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2VvbWV0cnlDb2xsZWN0aW9uIHtcbiAgdHlwZTogJ0dlb21ldHJ5Q29sbGVjdGlvbic7XG4gIGdlb21ldHJpZXM6IGdlb21ldHJ5W107XG59XG5cbnR5cGUgZmVhdHVyZSA9IElGZWF0dXJlIHwgSUZlYXR1cmVDb2xsZWN0aW9uIHwgSUdlb21ldHJ5Q29sbGVjdGlvbiB8IElQb2x5Z29uIHwgSU11bHRpUG9seWdvbjtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRGZWF0dXJlID0gKCk6IElGZWF0dXJlID0+ICh7XG4gIHR5cGU6ICdGZWF0dXJlJyxcbiAgcHJvcGVydGllczoge30sXG4gIGdlb21ldHJ5OiB7XG4gICAgdHlwZTogJ1BvbHlnb24nLFxuICAgIGNvb3JkaW5hdGVzOiBbXVxuICB9IGFzIGdlb21ldHJ5XG59KTtcblxuZXhwb3J0IGNvbnN0IHBvaW50VG9Db29yZGluYXRlcyA9IChwb2ludDogZ29vZ2xlLm1hcHMuTGF0TG5nKSA9PiBbcG9pbnQubG5nKCksIHBvaW50LmxhdCgpXTtcblxuZXhwb3J0IGNvbnN0IGNvb3JkaW5hdGVzVG9Qb2ludCA9ICh2YWx1ZXM6IChudW1iZXIgfCBudW1iZXJbXSlbXSkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlc1swXSlcbiAgICAgID8gdmFsdWVzLm1hcCgodjogYW55KSA9PiBjb29yZGluYXRlc1RvUG9pbnQodikpXG4gICAgICA6ICh2YWx1ZXMgYXMgbnVtYmVyW10pPy5zb21lKGlzTmFOKVxuICAgICAgPyBudWxsXG4gICAgICA6IG5ldyBnb29nbGUubWFwcy5MYXRMbmcoKHZhbHVlcyBhcyBudW1iZXJbXSlbMV0sICh2YWx1ZXMgYXMgbnVtYmVyW10pWzBdKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwb2x5Z29uVG9Db29yZGluYXRlcyA9IChwb2x5Z29uOiBnb29nbGUubWFwcy5Qb2x5Z29uKSA9PlxuICBwb2x5Z29uXG4gICAgLmdldFBhdGhzKClcbiAgICAuZ2V0QXJyYXkoKVxuICAgIC5tYXAocGF0aCA9PiB7XG4gICAgICBjb25zdCBwb2ludHMgPSBwYXRoLmdldEFycmF5KCk7XG4gICAgICByZXR1cm4gWy4uLnBvaW50cy5tYXAocG9pbnRUb0Nvb3JkaW5hdGVzKSwgcG9pbnRUb0Nvb3JkaW5hdGVzKHBvaW50c1swXSldO1xuICAgIH0pWzBdO1xuXG5jb25zdCBjb29yZGluYXRlc1RvUG9seWdvbiA9IChjb29yZGluYXRlczogbnVtYmVyW11bXSwgY29sb3IgPSBzdHJva2VDb2xvcikgPT5cbiAgbmV3IGdvb2dsZS5tYXBzLlBvbHlnb24oe1xuICAgIHBhdGhzOiBjb29yZGluYXRlcy5tYXAoY29vcmRpbmF0ZXNUb1BvaW50KS5maWx0ZXIoQm9vbGVhbiksXG4gICAgLi4uc3Ryb2tlU3R5bGUsXG4gICAgc3Ryb2tlQ29sb3I6IGNvbG9yXG4gIH0pO1xuXG5jb25zdCBnZXRDb29yZGluYXRlcyA9IChmZWF0OiBmZWF0dXJlKSA9PlxuICBmZWF0LnR5cGUgPT09ICdQb2x5Z29uJyB8fCBmZWF0LnR5cGUgPT09ICdNdWx0aVBvbHlnb24nXG4gICAgPyBmZWF0LmNvb3JkaW5hdGVzXG4gICAgOiBmZWF0LnR5cGUgPT09ICdGZWF0dXJlJ1xuICAgID8gZmVhdC5nZW9tZXRyeT8uY29vcmRpbmF0ZXNcbiAgICA6IFtdO1xuXG5leHBvcnQgY29uc3QgYWRkUG9seWdvblRvRmVhdHVyZSA9IChmZWF0OiBmZWF0dXJlLCBwb2x5Z29uOiBnb29nbGUubWFwcy5Qb2x5Z29uKSA9PlxuICBmZWF0LnR5cGUgPT09ICdGZWF0dXJlQ29sbGVjdGlvbidcbiAgICA/IGZlYXQuZmVhdHVyZXMucHVzaChhZGRQb2x5Z29uVG9GZWF0dXJlKGRlZmF1bHRGZWF0dXJlKCksIHBvbHlnb24pKVxuICAgIDogZmVhdC50eXBlID09PSAnR2VvbWV0cnlDb2xsZWN0aW9uJ1xuICAgID8gZmVhdC5nZW9tZXRyaWVzLm1hcChnZW9tZXRyeSA9PiAoZ2VvbWV0cnk/LmNvb3JkaW5hdGVzIHx8IFtdKS5wdXNoKHBvbHlnb25Ub0Nvb3JkaW5hdGVzKHBvbHlnb24pKSlcbiAgICA6IChnZXRDb29yZGluYXRlcyhmZWF0KSB8fCBbXSkucHVzaChwb2x5Z29uVG9Db29yZGluYXRlcyhwb2x5Z29uKSk7XG5cbmV4cG9ydCBjb25zdCBwb2x5Z29uc0Zyb21GZWF0dXJlID0gKGZlYXQ6IGZlYXR1cmUsIGNvbG9yPzogc3RyaW5nKTogZ29vZ2xlLm1hcHMuUG9seWdvbltdID0+XG4gIGZlYXQudHlwZSA9PT0gJ0ZlYXR1cmVDb2xsZWN0aW9uJ1xuICAgID8gZmVhdC5mZWF0dXJlcy5mbGF0TWFwKHZhbHVlcyA9PiBwb2x5Z29uc0Zyb21GZWF0dXJlKHZhbHVlcywgY29sb3IpKVxuICAgIDogZmVhdC50eXBlID09PSAnR2VvbWV0cnlDb2xsZWN0aW9uJ1xuICAgID8gZmVhdC5nZW9tZXRyaWVzPy5mbGF0TWFwKGdlb21ldHJ5ID0+XG4gICAgICAgIChnZW9tZXRyeS5jb29yZGluYXRlcyB8fCBbXSkubWFwKHZhbHVlcyA9PiBjb29yZGluYXRlc1RvUG9seWdvbih2YWx1ZXMsIGNvbG9yKSlcbiAgICAgIClcbiAgICA6IChnZXRDb29yZGluYXRlcyhmZWF0KSB8fCBbXSkubWFwKHZhbHVlcyA9PiBjb29yZGluYXRlc1RvUG9seWdvbih2YWx1ZXMsIGNvbG9yKSk7XG5cbmV4cG9ydCBjb25zdCBwb2x5Z29uQm91bmRzID0gKHBvbHlnb24/OiBnb29nbGUubWFwcy5Qb2x5Z29uIHwgZ29vZ2xlLm1hcHMuUG9seWdvbltdKSA9PiB7XG4gIGNvbnN0IHBhdGhzID0gcG9seWdvblxuICAgID8gQXJyYXkuaXNBcnJheShwb2x5Z29uKVxuICAgICAgPyBwb2x5Z29uLmZsYXRNYXAocCA9PiBwLmdldFBhdGgoKT8uZ2V0QXJyYXkoKSB8fCBbXSlcbiAgICAgIDogcG9seWdvbi5nZXRQYXRoKCk/LmdldEFycmF5KCkgfHwgW11cbiAgICA6IFtdO1xuICByZXR1cm4gcGF0aHMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2LmV4dGVuZChjdXJyKSwgbmV3IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kcygpKTtcbn07XG4iXX0=
|
|
@@ -12,7 +12,7 @@ export const engineGitUrl = () => `${engineGitBaseUrl()}/-/blob/${gitBranch()}`;
|
|
|
12
12
|
const engineRawUrl = () => `${gitRawBaseUrl}/hestia-engine-models/-/raw/${gitBranch()}`;
|
|
13
13
|
export const findModels = (models, termId) => models.filter(({ term }) => term === termId);
|
|
14
14
|
export const findMatchingModel = (models, model) => Object.keys(model).length > 0
|
|
15
|
-
? models.find(m => Object.entries(model).every(([key, value]) => value === m[key]))
|
|
15
|
+
? models.flat().find(m => Object.entries(model).every(([key, value]) => value === m[key]))
|
|
16
16
|
: null;
|
|
17
17
|
export const modelParams = (node, includeTerm = true) => filterParams({
|
|
18
18
|
model: 'methodModel' in node ? node?.methodModel['@id'] : undefined,
|
|
@@ -54,6 +54,9 @@ const mapModelLink = (ecoinvent = false) => ({ path, docPath, ...link }) => ({
|
|
|
54
54
|
docPath: `${engineGitUrl()}/${docPath}`,
|
|
55
55
|
apiDocsPath: pathToApiDocsPath(link.model, link.term || link.modelKey)
|
|
56
56
|
});
|
|
57
|
+
export const findOrchestratorModel = ({ models }, model) => Object.keys(model).length > 0
|
|
58
|
+
? models.flat().find(m => Object.entries(model).every(([key, value]) => value === m[key]))
|
|
59
|
+
: null;
|
|
57
60
|
export class HeEngineService {
|
|
58
61
|
constructor(_calculationsBaseUrl, _orchestratorBaseUrl, http) {
|
|
59
62
|
this._calculationsBaseUrl = _calculationsBaseUrl;
|
|
@@ -164,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
|
|
|
164
167
|
type: Inject,
|
|
165
168
|
args: [HE_ORCHESTRATOR_BASE_URL]
|
|
166
169
|
}] }, { type: i1.HttpClient }]; } });
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFHM0YsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQVMsMEJBQTBCLENBQUMsQ0FBQztBQUMvRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBUywwQkFBMEIsQ0FBQyxDQUFDO0FBRS9GLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyx1QkFBdUIsQ0FBQztBQUN4RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxXQUFXLFNBQVMsRUFBRSxFQUFFLENBQUM7QUFDaEYsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxhQUFhLCtCQUErQixTQUFTLEVBQUUsRUFBRSxDQUFDO0FBRXhGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQWdCLEVBQUUsTUFBYyxFQUFF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dUM7UUFDdkQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQzthQUM1QixTQUFTLEVBQUU7YUFDWCxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVNLHFCQUFxQixDQUFDLElBQWU7UUFDMUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxJQUFjLEVBQUUsRUFBVztRQUNsRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFzQixHQUFHLElBQUksQ0FBQyxvQkFBb0IscUJBQXFCLEVBQUU7WUFDM0UsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7U0FDN0QsQ0FBQzthQUNELFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7OEdBM0hVLGVBQWUsa0JBV2hCLHdCQUF3QixhQUN4Qix3QkFBd0I7a0hBWnZCLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBWUksTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMvQixNQUFNOzJCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIG1lcmdlQWxsLCBtZXJnZU1hcCwgc2hhcmVSZXBsYXksIHRha2UsIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFbWlzc2lvbk1ldGhvZFRpZXIsIEpTT05MRCwgTm9kZVR5cGUsIFNjaGVtYVR5cGUsIFNpdGVTaXRlVHlwZSwgVGVybVRlcm1UeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgdG9EYXNoQ2FzZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMnO1xuXG5pbXBvcnQgeyBiYXNlVXJsLCBnaXRIb21lLCBnaXRSYXdCYXNlVXJsLCBnaXRCcmFuY2gsIGZpbHRlclBhcmFtcyB9IGZyb20gJy4uL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBibGFua05vZGUgfSBmcm9tICcuLi9jb21tb24vbm9kZS11dGlscyc7XG5cbmV4cG9ydCBjb25zdCBIRV9DQUxDVUxBVElPTlNfQkFTRV9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignSEVfQ0FMQ1VMQVRJT05TX0JBU0VfVVJMJyk7XG5leHBvcnQgY29uc3QgSEVfT1JDSEVTVFJBVE9SX0JBU0VfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0hFX09SQ0hFU1RSQVRPUl9CQVNFX1VSTCcpO1xuXG5leHBvcnQgY29uc3QgZW5naW5lR2l0QmFzZVVybCA9ICgpID0+IGAke2dpdEhvbWV9L2hlc3RpYS1lbmdpbmUtbW9kZWxzYDtcbmV4cG9ydCBjb25zdCBlbmdpbmVHaXRVcmwgPSAoKSA9PiBgJHtlbmdpbmVHaXRCYXNlVXJsKCl9Ly0vYmxvYi8ke2dpdEJyYW5jaCgpfWA7XG5jb25zdCBlbmdpbmVSYXdVcmwgPSAoKSA9PiBgJHtnaXRSYXdCYXNlVXJsfS9oZXN0aWEtZW5naW5lLW1vZGVscy8tL3Jhdy8ke2dpdEJyYW5jaCgpfWA7XG5cbmV4cG9ydCBjb25zdCBmaW5kTW9kZWxzID0gKG1vZGVsczogSU1vZGVsW10sIHRlcm1JZDogc3RyaW5nKSA9PiBtb2RlbHMuZmlsdGVyKCh7IHRlcm0gfSkgPT4gdGVybSA9PT0gdGVybUlkKTtcblxuZXhwb3J0IGNvbnN0IGZpbmRNYXRjaGluZ01vZGVsID0gKG1vZGVsczogSU1vZGVsW10sIG1vZGVsOiBQYXJ0aWFsPElNb2RlbD4pID0+XG4gIE9iamVjdC5rZXlzKG1vZGVsKS5sZW5ndGggPiAwXG4gICAgPyBtb2RlbHMuZmluZChtID0+IE9iamVjdC5lbnRyaWVzKG1vZGVsKS5ldmVyeSgoW2tleSwgdmFsdWVdKSA9PiB2YWx1ZSA9PT0gbVtrZXldKSlcbiAgICA6IG51bGw7XG5cbmV4cG9ydCBjb25zdCBtb2RlbFBhcmFtcyA9IChub2RlOiBQYXJ0aWFsPGJsYW5rTm9kZT4sIGluY2x1ZGVUZXJtID0gdHJ1ZSkgPT5cbiAgZmlsdGVyUGFyYW1zKHtcbiAgICBtb2RlbDogJ21ldGhvZE1vZGVsJyBpbiBub2RlID8gbm9kZT8ubWV0aG9kTW9kZWwhWydAaWQnXSA6IHVuZGVmaW5lZCxcbiAgICAuLi4oaW5jbHVkZVRlcm0gPyB7IHRlcm06ICd0ZXJtJyBpbiBub2RlID8gbm9kZT8udGVybSFbJ0BpZCddIDogdW5kZWZpbmVkIH0gOiB7fSlcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBtb2RlbEtleVBhcmFtcyA9IChub2RlOiBQYXJ0aWFsPGJsYW5rTm9kZT4sIGtleTogc3RyaW5nKSA9PlxuICBmaWx0ZXJQYXJhbXMoe1xuICAgIG1vZGVsOiAobm9kZT8uWydAdHlwZSddIHx8IG5vZGU/LnR5cGUgfHwgJycpLnRvTG93ZXJDYXNlKCksXG4gICAgbW9kZWxLZXk6IGtleVxuICB9KTtcblxuLyoqXG4gKiBGaW5kIG1vZGVscyBmcm9tIHRoZSBvcmNoZXN0cmF0b3IgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIFRoZSBvcmNoZXN0cmF0b3IgY29uZmlndXJhdGlvbiBjb250ZW50LlxuICogQHBhcmFtIHRlcm1JZCBUaGUgYEBpZGAgb2YgdGhlIFRlcm0uXG4gKiBAcGFyYW0gbW9kZWxLZXkgVGhlIGtleSBvZiB0aGUgY29uZmlndXJhdGlvbiAoZS5nLiBcInByb2R1Y3RzXCIsIFwiaW5wdXRzXCIpXG4gKiBAcGFyYW0gbW9kZWxzIE9wdGlvbmFsIC0gbGlzdCBvZiBtb2RlbHMgZnJvbSBgbW9kZWwtbGlua3MuanNvbmAgdG8gZGVmYXVsdCB3aGVuIG9yY2hlc3RyYXRvciBkb2VzIG5vdCBjb250YWluIGNvbmZpZy5cbiAqIEByZXR1cm5zIExpc3Qgb2YgbW9kZWxzIGZyb20gb3JjaGVzdHJhdG9yIG9yIG1vZGVscyBpZiBzZXQuXG4gKi9cbmV4cG9ydCBjb25zdCBmaW5kQ29uZmlnTW9kZWxzID0gKFxuICBjb25maWc6IElPcmNoZXN0cmF0b3JDb25maWcsXG4gIHRlcm1JZDogc3RyaW5nLFxuICBtb2RlbEtleTogc3RyaW5nLFxuICBtb2RlbHM6IElNb2RlbFtdID0gW11cbikgPT4ge1xuICBjb25zdCBjb25maWdNb2RlbHMgPSBjb25maWcubW9kZWxzXG4gICAgLmZsYXQoKVxuICAgIC5maWx0ZXIoKHsgdmFsdWUsIGtleSB9KSA9PiB0ZXJtSWQgPT09IHZhbHVlICYmICghbW9kZWxLZXkgfHwga2V5ID09PSBtb2RlbEtleSkpO1xuICByZXR1cm4gY29uZmlnTW9kZWxzLmxlbmd0aCA/IGNvbmZpZ01vZGVscyA6IGZpbmRNb2RlbHMobW9kZWxzLCB0ZXJtSWQpO1xufTtcblxuY29uc3QgY3VzdG9tVGVybUFwaURvY3NQYXRoID0ge1xuICAnZXhjcmV0YS1rZy1tYXNzJzogJ2V4Y3JldGEta2cnXG59O1xuXG5leHBvcnQgY29uc3QgcGF0aFRvQXBpRG9jc1BhdGggPSAobW9kZWw6IHN0cmluZywgdGVybT86IHN0cmluZykgPT5cbiAgW1xuICAgIGJhc2VVcmwoKSxcbiAgICAnZG9jcycsXG4gICAgWycjaGVzdGlhLWNhbGN1bGF0aW9uLW1vZGVscycsIHRvRGFzaENhc2UobW9kZWwpLCBjdXN0b21UZXJtQXBpRG9jc1BhdGhbdG9EYXNoQ2FzZSh0ZXJtKV0gfHwgdG9EYXNoQ2FzZSh0ZXJtKV1cbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5qb2luKCctJylcbiAgXS5qb2luKCcvJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGVsIHtcbiAgLyoqXG4gICAqIElzIG1vZGVsIGZyb20gRWNvaW52ZW50VjMuXG4gICAqL1xuICBlY29pbnZlbnQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiAoY29kZSkgb2YgdGhlIG1vZGVsLlxuICAgKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0aCB0byB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgbW9kZWwuXG4gICAqL1xuICBkb2NQYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBBUEkgRG9jdW1lbnRhdGlvbi5cbiAgICovXG4gIGFwaURvY3NQYXRoPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG1vZGVsIHVzZWQgYXMgYG1ldGhvZE1vZGVsYC5cbiAgICovXG4gIG1vZGVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdGVybSB0aGUgbW9kZWwgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICAgKi9cbiAgdGVybT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtZXRob2RUaWVyIG9mIHRoZSBFbWlzc2lvbiAoaWYgYXBwbGljYWJsZSkuXG4gICAqL1xuICBtZXRob2RUaWVyPzogRW1pc3Npb25NZXRob2RUaWVyO1xuICAvKipcbiAgICogQSBrZXkgaW4gdGhlIG1vZGVsIGlmIHRlcm0gZG9lcyBub3QgZXhpc3QuXG4gICAqL1xuICBtb2RlbEtleT86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIElNb2RlbExpbmtzIHtcbiAgbGlua3M6IElNb2RlbFtdO1xuICBlY29pbnZlbnRMaW5rcz86IElNb2RlbFtdO1xufVxuXG5jb25zdCBtYXBNb2RlbExpbmsgPVxuICAoZWNvaW52ZW50ID0gZmFsc2UpID0+XG4gICh7IHBhdGgsIGRvY1BhdGgsIC4uLmxpbmsgfTogSU1vZGVsKSA9PiAoe1xuICAgIC4uLmxpbmssXG4gICAgZWNvaW52ZW50LFxuICAgIHBhdGg6IGAke2VuZ2luZUdpdFVybCgpfS8ke3BhdGh9YCxcbiAgICBkb2NQYXRoOiBgJHtlbmdpbmVHaXRVcmwoKX0vJHtkb2NQYXRofWAsXG4gICAgYXBpRG9jc1BhdGg6IHBhdGhUb0FwaURvY3NQYXRoKGxpbmsubW9kZWwsIGxpbmsudGVybSB8fCBsaW5rLm1vZGVsS2V5KVxuICB9KTtcblxuZXhwb3J0IGludGVyZmFjZSBJQ2FsY3VsYXRpb25zTW9kZWxzUGFyYW1zIHtcbiAgdGVybVR5cGU/OiBTY2hlbWFUeXBlO1xuICBwcm9kdWN0VGVybUlkPzogc3RyaW5nO1xuICBwcm9kdWN0VGVybVR5cGU/OiBUZXJtVGVybVR5cGU7XG4gIHRpZXI/OiBFbWlzc2lvbk1ldGhvZFRpZXI7XG4gIHNpdGVUeXBlPzogU2l0ZVNpdGVUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYWxjdWxhdGlvbnNSZXF1aXJlbWVudHNQYXJhbXMgZXh0ZW5kcyBJQ2FsY3VsYXRpb25zTW9kZWxzUGFyYW1zIHtcbiAgZm9ybWF0PzogJ2Nzdic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhbGN1bGF0aW9uc01vZGVsIHtcbiAgbW9kZWw6IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnIHtcbiAga2V5OiBzdHJpbmc7XG4gIG1vZGVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHJ1blN0cmF0ZWd5OiAnYWx3YXlzJyB8ICdhZGRfa2V5X2lmX21pc3NpbmcnIHwgJ2FkZF9ibGFua19ub2RlX2lmX21pc3NpbmcnO1xuICBydW5BcmdzPzogYW55O1xuICBtZXJnZVN0cmF0ZWd5OiAnZGVmYXVsdCcgfCAnYXBwZW5kJyB8ICdsaXN0JyB8ICdub2RlJztcbiAgbWVyZ2VBcmdzPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPcmNoZXN0cmF0b3JDb25maWcge1xuICBtb2RlbHM6IChJT3JjaGVzdHJhdG9yTW9kZWxDb25maWcgfCBJT3JjaGVzdHJhdG9yTW9kZWxDb25maWdbXSlbXTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGVFbmdpbmVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBtb2RlbHNMb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgbW9kZWxzTG9hZGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX21vZGVscyA9IG5ldyBSZXBsYXlTdWJqZWN0PElNb2RlbFtdPigxKTtcblxuICBwcml2YXRlIF9yZWNvbW1lbmRhdGlvbnM6IHsgW2tleTogc3RyaW5nXTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4gfSA9IHt9O1xuICBwcml2YXRlIF9yZXF1aXJlbWVudHM6IHsgW2tleTogc3RyaW5nXTogT2JzZXJ2YWJsZTxKU09OTEQ8Tm9kZVR5cGU+PiB9ID0ge307XG5cbiAgcHVibGljIGxhdGVzdFZlcnNpb24kOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChIRV9DQUxDVUxBVElPTlNfQkFTRV9VUkwpIHByaXZhdGUgX2NhbGN1bGF0aW9uc0Jhc2VVcmw6IHN0cmluZyxcbiAgICBASW5qZWN0KEhFX09SQ0hFU1RSQVRPUl9CQVNFX1VSTCkgcHJpdmF0ZSBfb3JjaGVzdHJhdG9yQmFzZVVybDogc3RyaW5nLFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50XG4gICkge1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0KCkge1xuICAgIHRoaXMubGF0ZXN0VmVyc2lvbiQgPSB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7ZW5naW5lUmF3VXJsKCl9L3BhY2thZ2UuanNvbmApLnBpcGUobWFwKCh7IHZlcnNpb24gfSkgPT4gdmVyc2lvbikpO1xuICAgIHJldHVybiB0aGlzLmxvYWRNb2RlbHMoKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZE1vZGVscygpIHtcbiAgICB0aGlzLm1vZGVsc0xvYWRpbmcgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PElNb2RlbExpbmtzPihgJHtlbmdpbmVSYXdVcmwoKX0vbW9kZWwtbGlua3MuanNvbmApLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKHsgbGlua3M6IFtdIH0gYXMgSU1vZGVsTGlua3MpKSxcbiAgICAgIG1hcCgoeyBsaW5rcywgZWNvaW52ZW50TGlua3MgfSkgPT4ge1xuICAgICAgICB0aGlzLl9tb2RlbHMubmV4dChbLi4ubGlua3MubWFwKG1hcE1vZGVsTGluayhmYWxzZSkpLCAuLi4oZWNvaW52ZW50TGlua3MgfHwgW10pLm1hcChtYXBNb2RlbExpbmsodHJ1ZSkpXSk7XG4gICAgICAgIHRoaXMubW9kZWxzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1vZGVsc0xvYWRlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBsaW5rcztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IG1vZGVscyQoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxzTG9hZGluZyB8fCB0aGlzLm1vZGVsc0xvYWRlZCA/IHRoaXMuX21vZGVscy5hc09ic2VydmFibGUoKSA6IHRoaXMubG9hZE1vZGVscygpO1xuICB9XG5cbiAgcHVibGljIG1vZGVscyhpbmNsdWRlRWNvaW52ZW50ID0gZmFsc2UpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbHMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgbWVyZ2VBbGwoKSxcbiAgICAgICAgZmlsdGVyKCh7IGVjb2ludmVudCB9KSA9PiBpbmNsdWRlRWNvaW52ZW50IHx8ICFlY29pbnZlbnQpLFxuICAgICAgICB0b0FycmF5KClcbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbCQobW9kZWw6IFBhcnRpYWw8SU1vZGVsPikge1xuICAgIHJldHVybiB0aGlzLm1vZGVscyQucGlwZShtYXAobW9kZWxzID0+IGZpbmRNYXRjaGluZ01vZGVsKG1vZGVscywgbW9kZWwpKSk7XG4gIH1cblxuICBwdWJsaWMgbm9kZU1vZGVsJChub2RlOiBQYXJ0aWFsPGJsYW5rTm9kZT4sIGtleT86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm1vZGVsJChtb2RlbFBhcmFtcyhub2RlKSkucGlwZShcbiAgICAgIC8vIGZhbGxiYWNrIHRvIG1vZGVsS2V5XG4gICAgICBtZXJnZU1hcCh2YWx1ZSA9PiAoIWtleSB8fCB2YWx1ZSA/IG9mKHZhbHVlKSA6IHRoaXMubW9kZWwkKG1vZGVsS2V5UGFyYW1zKG5vZGUsIGtleSkpKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1vZGVsKG1vZGVsOiBQYXJ0aWFsPElNb2RlbD4pIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbCQobW9kZWwpLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwdWJsaWMgbGF0ZXN0VmVyc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5sYXRlc3RWZXJzaW9uJC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIGxpc3RNb2RlbHMocGFyYW1zOiBJQ2FsY3VsYXRpb25zTW9kZWxzUGFyYW1zKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDx7IG1vZGVsczogSUNhbGN1bGF0aW9uc01vZGVsW10gfT4oYCR7dGhpcy5fY2FsY3VsYXRpb25zQmFzZVVybH0vbW9kZWxzYCwge1xuICAgICAgICBwYXJhbXM6IGZpbHRlclBhcmFtcyhwYXJhbXMpXG4gICAgICB9KVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIGdldFJlcXVpcmVtZW50cyQocGFyYW1zOiBJQ2FsY3VsYXRpb25zUmVxdWlyZW1lbnRzUGFyYW1zKSB7XG4gICAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoZmlsdGVyUGFyYW1zKHBhcmFtcykpO1xuICAgIHRoaXMuX3JlcXVpcmVtZW50c1trZXldID1cbiAgICAgIHRoaXMuX3JlcXVpcmVtZW50c1trZXldIHx8XG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLmdldDxKU09OTEQ8Tm9kZVR5cGU+PihgJHt0aGlzLl9jYWxjdWxhdGlvbnNCYXNlVXJsfS9tb2RlbHMvcmVxdWlyZW1lbnRzYCwge1xuICAgICAgICAgIHBhcmFtczogZmlsdGVyUGFyYW1zKHBhcmFtcylcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlbWVudHNba2V5XTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZXF1aXJlbWVudHMocGFyYW1zOiBJQ2FsY3VsYXRpb25zUmVxdWlyZW1lbnRzUGFyYW1zKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVxdWlyZW1lbnRzJChwYXJhbXMpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIGdldFRlcm1JZHMkKHBhcmFtczogSUNhbGN1bGF0aW9uc1JlcXVpcmVtZW50c1BhcmFtcykge1xuICAgIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KGZpbHRlclBhcmFtcyhwYXJhbXMpKTtcbiAgICB0aGlzLl9yZWNvbW1lbmRhdGlvbnNba2V5XSA9XG4gICAgICB0aGlzLl9yZWNvbW1lbmRhdGlvbnNba2V5XSB8fFxuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8c3RyaW5nW10+KGAke3RoaXMuX2NhbGN1bGF0aW9uc0Jhc2VVcmx9L21vZGVscy90ZXJtLWlkc2AsIHtcbiAgICAgICAgICBwYXJhbXM6IGZpbHRlclBhcmFtcyhwYXJhbXMpXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKHNoYXJlUmVwbGF5KDEpKTtcbiAgICByZXR1cm4gdGhpcy5fcmVjb21tZW5kYXRpb25zW2tleV07XG4gIH1cblxuICBwdWJsaWMgZ2V0VGVybUlkcyhwYXJhbXM6IElDYWxjdWxhdGlvbnNSZXF1aXJlbWVudHNQYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUZXJtSWRzJChwYXJhbXMpXG4gICAgICAudG9Qcm9taXNlKClcbiAgICAgIC5jYXRjaCgoKSA9PiBbXSk7XG4gIH1cblxuICBwdWJsaWMgb3JjaGVzdHJhdG9yQ29uZmlnVXJsKHR5cGU/OiBOb2RlVHlwZSkge1xuICAgIGNvbnN0IGNvbmZpZ1VybCA9IHRoaXMuX29yY2hlc3RyYXRvckJhc2VVcmw7XG4gICAgcmV0dXJuIHR5cGUgPyBgJHtjb25maWdVcmx9LyR7dHlwZX0uanNvbmAgOiBjb25maWdVcmwuc3Vic3RyaW5nKDAsIGNvbmZpZ1VybC5pbmRleE9mKCcvcmF3JykpO1xuICB9XG5cbiAgcHVibGljIG9jaGVzdHJhdG9yQ29uZmlnKHR5cGU6IE5vZGVUeXBlLCBpZD86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8SU9yY2hlc3RyYXRvckNvbmZpZz4oYCR7dGhpcy5fY2FsY3VsYXRpb25zQmFzZVVybH0vcmVjYWxjdWxhdGUvY29uZmlnYCwge1xuICAgICAgICBwYXJhbXM6IGZpbHRlclBhcmFtcyh7IHR5cGUsICdAdHlwZSc6IHR5cGUsIGlkLCAnQGlkJzogaWQgfSlcbiAgICAgIH0pXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFHM0YsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQVMsMEJBQTBCLENBQUMsQ0FBQztBQUMvRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBUywwQkFBMEIsQ0FBQyxDQUFDO0FBRS9GLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsT0FBTyx1QkFBdUIsQ0FBQztBQUN4RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxXQUFXLFNBQVMsRUFBRSxFQUFFLENBQUM7QUFDaEYsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxhQUFhLCtCQUErQixTQUFTLEVBQUUsRUFBRSxDQUFDO0FBRXhGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQWdCLEVBQUUsTUFBYyxFQUFF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QUFFLENBQUM7U0FDN0QsQ0FBQzthQUNELFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7OEdBM0hVLGVBQWUsa0JBV2hCLHdCQUF3QixhQUN4Qix3QkFBd0I7a0hBWnZCLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBWUksTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMvQixNQUFNOzJCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIG1lcmdlQWxsLCBtZXJnZU1hcCwgc2hhcmVSZXBsYXksIHRha2UsIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFbWlzc2lvbk1ldGhvZFRpZXIsIEpTT05MRCwgTm9kZVR5cGUsIFNjaGVtYVR5cGUsIFNpdGVTaXRlVHlwZSwgVGVybVRlcm1UeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgdG9EYXNoQ2FzZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMnO1xuXG5pbXBvcnQgeyBiYXNlVXJsLCBnaXRIb21lLCBnaXRSYXdCYXNlVXJsLCBnaXRCcmFuY2gsIGZpbHRlclBhcmFtcyB9IGZyb20gJy4uL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBibGFua05vZGUgfSBmcm9tICcuLi9jb21tb24vbm9kZS11dGlscyc7XG5cbmV4cG9ydCBjb25zdCBIRV9DQUxDVUxBVElPTlNfQkFTRV9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignSEVfQ0FMQ1VMQVRJT05TX0JBU0VfVVJMJyk7XG5leHBvcnQgY29uc3QgSEVfT1JDSEVTVFJBVE9SX0JBU0VfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0hFX09SQ0hFU1RSQVRPUl9CQVNFX1VSTCcpO1xuXG5leHBvcnQgY29uc3QgZW5naW5lR2l0QmFzZVVybCA9ICgpID0+IGAke2dpdEhvbWV9L2hlc3RpYS1lbmdpbmUtbW9kZWxzYDtcbmV4cG9ydCBjb25zdCBlbmdpbmVHaXRVcmwgPSAoKSA9PiBgJHtlbmdpbmVHaXRCYXNlVXJsKCl9Ly0vYmxvYi8ke2dpdEJyYW5jaCgpfWA7XG5jb25zdCBlbmdpbmVSYXdVcmwgPSAoKSA9PiBgJHtnaXRSYXdCYXNlVXJsfS9oZXN0aWEtZW5naW5lLW1vZGVscy8tL3Jhdy8ke2dpdEJyYW5jaCgpfWA7XG5cbmV4cG9ydCBjb25zdCBmaW5kTW9kZWxzID0gKG1vZGVsczogSU1vZGVsW10sIHRlcm1JZDogc3RyaW5nKSA9PiBtb2RlbHMuZmlsdGVyKCh7IHRlcm0gfSkgPT4gdGVybSA9PT0gdGVybUlkKTtcblxuZXhwb3J0IGNvbnN0IGZpbmRNYXRjaGluZ01vZGVsID0gKG1vZGVsczogKElNb2RlbCB8IElNb2RlbFtdKVtdLCBtb2RlbDogUGFydGlhbDxJTW9kZWw+KSA9PlxuICBPYmplY3Qua2V5cyhtb2RlbCkubGVuZ3RoID4gMFxuICAgID8gbW9kZWxzLmZsYXQoKS5maW5kKG0gPT4gT2JqZWN0LmVudHJpZXMobW9kZWwpLmV2ZXJ5KChba2V5LCB2YWx1ZV0pID0+IHZhbHVlID09PSBtW2tleV0pKVxuICAgIDogbnVsbDtcblxuZXhwb3J0IGNvbnN0IG1vZGVsUGFyYW1zID0gKG5vZGU6IFBhcnRpYWw8YmxhbmtOb2RlPiwgaW5jbHVkZVRlcm0gPSB0cnVlKSA9PlxuICBmaWx0ZXJQYXJhbXMoe1xuICAgIG1vZGVsOiAnbWV0aG9kTW9kZWwnIGluIG5vZGUgPyBub2RlPy5tZXRob2RNb2RlbCFbJ0BpZCddIDogdW5kZWZpbmVkLFxuICAgIC4uLihpbmNsdWRlVGVybSA/IHsgdGVybTogJ3Rlcm0nIGluIG5vZGUgPyBub2RlPy50ZXJtIVsnQGlkJ10gOiB1bmRlZmluZWQgfSA6IHt9KVxuICB9KTtcblxuZXhwb3J0IGNvbnN0IG1vZGVsS2V5UGFyYW1zID0gKG5vZGU6IFBhcnRpYWw8YmxhbmtOb2RlPiwga2V5OiBzdHJpbmcpID0+XG4gIGZpbHRlclBhcmFtcyh7XG4gICAgbW9kZWw6IChub2RlPy5bJ0B0eXBlJ10gfHwgbm9kZT8udHlwZSB8fCAnJykudG9Mb3dlckNhc2UoKSxcbiAgICBtb2RlbEtleToga2V5XG4gIH0pO1xuXG4vKipcbiAqIEZpbmQgbW9kZWxzIGZyb20gdGhlIG9yY2hlc3RyYXRvciBjb25maWd1cmF0aW9uLlxuICpcbiAqIEBwYXJhbSBjb25maWcgVGhlIG9yY2hlc3RyYXRvciBjb25maWd1cmF0aW9uIGNvbnRlbnQuXG4gKiBAcGFyYW0gdGVybUlkIFRoZSBgQGlkYCBvZiB0aGUgVGVybS5cbiAqIEBwYXJhbSBtb2RlbEtleSBUaGUga2V5IG9mIHRoZSBjb25maWd1cmF0aW9uIChlLmcuIFwicHJvZHVjdHNcIiwgXCJpbnB1dHNcIilcbiAqIEBwYXJhbSBtb2RlbHMgT3B0aW9uYWwgLSBsaXN0IG9mIG1vZGVscyBmcm9tIGBtb2RlbC1saW5rcy5qc29uYCB0byBkZWZhdWx0IHdoZW4gb3JjaGVzdHJhdG9yIGRvZXMgbm90IGNvbnRhaW4gY29uZmlnLlxuICogQHJldHVybnMgTGlzdCBvZiBtb2RlbHMgZnJvbSBvcmNoZXN0cmF0b3Igb3IgbW9kZWxzIGlmIHNldC5cbiAqL1xuZXhwb3J0IGNvbnN0IGZpbmRDb25maWdNb2RlbHMgPSAoXG4gIGNvbmZpZzogSU9yY2hlc3RyYXRvckNvbmZpZyxcbiAgdGVybUlkOiBzdHJpbmcsXG4gIG1vZGVsS2V5OiBzdHJpbmcsXG4gIG1vZGVsczogSU1vZGVsW10gPSBbXVxuKSA9PiB7XG4gIGNvbnN0IGNvbmZpZ01vZGVscyA9IGNvbmZpZy5tb2RlbHNcbiAgICAuZmxhdCgpXG4gICAgLmZpbHRlcigoeyB2YWx1ZSwga2V5IH0pID0+IHRlcm1JZCA9PT0gdmFsdWUgJiYgKCFtb2RlbEtleSB8fCBrZXkgPT09IG1vZGVsS2V5KSk7XG4gIHJldHVybiBjb25maWdNb2RlbHMubGVuZ3RoID8gY29uZmlnTW9kZWxzIDogZmluZE1vZGVscyhtb2RlbHMsIHRlcm1JZCk7XG59O1xuXG5jb25zdCBjdXN0b21UZXJtQXBpRG9jc1BhdGggPSB7XG4gICdleGNyZXRhLWtnLW1hc3MnOiAnZXhjcmV0YS1rZydcbn07XG5cbmV4cG9ydCBjb25zdCBwYXRoVG9BcGlEb2NzUGF0aCA9IChtb2RlbDogc3RyaW5nLCB0ZXJtPzogc3RyaW5nKSA9PlxuICBbXG4gICAgYmFzZVVybCgpLFxuICAgICdkb2NzJyxcbiAgICBbJyNoZXN0aWEtY2FsY3VsYXRpb24tbW9kZWxzJywgdG9EYXNoQ2FzZShtb2RlbCksIGN1c3RvbVRlcm1BcGlEb2NzUGF0aFt0b0Rhc2hDYXNlKHRlcm0pXSB8fCB0b0Rhc2hDYXNlKHRlcm0pXVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgLmpvaW4oJy0nKVxuICBdLmpvaW4oJy8nKTtcblxuZXhwb3J0IGludGVyZmFjZSBJTW9kZWwge1xuICAvKipcbiAgICogSXMgbW9kZWwgZnJvbSBFY29pbnZlbnRWMy5cbiAgICovXG4gIGVjb2ludmVudDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGltcGxlbWVudGF0aW9uIChjb2RlKSBvZiB0aGUgbW9kZWwuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBtb2RlbC5cbiAgICovXG4gIGRvY1BhdGg6IHN0cmluZztcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIEFQSSBEb2N1bWVudGF0aW9uLlxuICAgKi9cbiAgYXBpRG9jc1BhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbW9kZWwgdXNlZCBhcyBgbWV0aG9kTW9kZWxgLlxuICAgKi9cbiAgbW9kZWw6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0ZXJtIHRoZSBtb2RlbCBpcyBhc3NvY2lhdGVkIHdpdGguXG4gICAqL1xuICB0ZXJtPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG1ldGhvZFRpZXIgb2YgdGhlIEVtaXNzaW9uIChpZiBhcHBsaWNhYmxlKS5cbiAgICovXG4gIG1ldGhvZFRpZXI/OiBFbWlzc2lvbk1ldGhvZFRpZXI7XG4gIC8qKlxuICAgKiBBIGtleSBpbiB0aGUgbW9kZWwgaWYgdGVybSBkb2VzIG5vdCBleGlzdC5cbiAgICovXG4gIG1vZGVsS2V5Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgSU1vZGVsTGlua3Mge1xuICBsaW5rczogSU1vZGVsW107XG4gIGVjb2ludmVudExpbmtzPzogSU1vZGVsW107XG59XG5cbmNvbnN0IG1hcE1vZGVsTGluayA9XG4gIChlY29pbnZlbnQgPSBmYWxzZSkgPT5cbiAgKHsgcGF0aCwgZG9jUGF0aCwgLi4ubGluayB9OiBJTW9kZWwpID0+ICh7XG4gICAgLi4ubGluayxcbiAgICBlY29pbnZlbnQsXG4gICAgcGF0aDogYCR7ZW5naW5lR2l0VXJsKCl9LyR7cGF0aH1gLFxuICAgIGRvY1BhdGg6IGAke2VuZ2luZUdpdFVybCgpfS8ke2RvY1BhdGh9YCxcbiAgICBhcGlEb2NzUGF0aDogcGF0aFRvQXBpRG9jc1BhdGgobGluay5tb2RlbCwgbGluay50ZXJtIHx8IGxpbmsubW9kZWxLZXkpXG4gIH0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDYWxjdWxhdGlvbnNNb2RlbHNQYXJhbXMge1xuICB0ZXJtVHlwZT86IFNjaGVtYVR5cGU7XG4gIHByb2R1Y3RUZXJtSWQ/OiBzdHJpbmc7XG4gIHByb2R1Y3RUZXJtVHlwZT86IFRlcm1UZXJtVHlwZTtcbiAgdGllcj86IEVtaXNzaW9uTWV0aG9kVGllcjtcbiAgc2l0ZVR5cGU/OiBTaXRlU2l0ZVR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhbGN1bGF0aW9uc1JlcXVpcmVtZW50c1BhcmFtcyBleHRlbmRzIElDYWxjdWxhdGlvbnNNb2RlbHNQYXJhbXMge1xuICBmb3JtYXQ/OiAnY3N2Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2FsY3VsYXRpb25zTW9kZWwge1xuICBtb2RlbDogc3RyaW5nO1xuICBrZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3JjaGVzdHJhdG9yTW9kZWxDb25maWcge1xuICBrZXk6IHN0cmluZztcbiAgbW9kZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgcnVuU3RyYXRlZ3k6ICdhbHdheXMnIHwgJ2FkZF9rZXlfaWZfbWlzc2luZycgfCAnYWRkX2JsYW5rX25vZGVfaWZfbWlzc2luZyc7XG4gIHJ1bkFyZ3M/OiBhbnk7XG4gIG1lcmdlU3RyYXRlZ3k6ICdkZWZhdWx0JyB8ICdhcHBlbmQnIHwgJ2xpc3QnIHwgJ25vZGUnO1xuICBtZXJnZUFyZ3M/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9yY2hlc3RyYXRvckNvbmZpZyB7XG4gIG1vZGVsczogKElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZyB8IElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZ1tdKVtdO1xufVxuXG5leHBvcnQgY29uc3QgZmluZE9yY2hlc3RyYXRvck1vZGVsID0gKHsgbW9kZWxzIH06IElPcmNoZXN0cmF0b3JDb25maWcsIG1vZGVsOiBQYXJ0aWFsPElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZz4pID0+XG4gIE9iamVjdC5rZXlzKG1vZGVsKS5sZW5ndGggPiAwXG4gICAgPyBtb2RlbHMuZmxhdCgpLmZpbmQobSA9PiBPYmplY3QuZW50cmllcyhtb2RlbCkuZXZlcnkoKFtrZXksIHZhbHVlXSkgPT4gdmFsdWUgPT09IG1ba2V5XSkpXG4gICAgOiBudWxsO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIZUVuZ2luZVNlcnZpY2Uge1xuICBwcml2YXRlIG1vZGVsc0xvYWRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBtb2RlbHNMb2FkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbW9kZWxzID0gbmV3IFJlcGxheVN1YmplY3Q8SU1vZGVsW10+KDEpO1xuXG4gIHByaXZhdGUgX3JlY29tbWVuZGF0aW9uczogeyBba2V5OiBzdHJpbmddOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB9ID0ge307XG4gIHByaXZhdGUgX3JlcXVpcmVtZW50czogeyBba2V5OiBzdHJpbmddOiBPYnNlcnZhYmxlPEpTT05MRDxOb2RlVHlwZT4+IH0gPSB7fTtcblxuICBwdWJsaWMgbGF0ZXN0VmVyc2lvbiQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEhFX0NBTENVTEFUSU9OU19CQVNFX1VSTCkgcHJpdmF0ZSBfY2FsY3VsYXRpb25zQmFzZVVybDogc3RyaW5nLFxuICAgIEBJbmplY3QoSEVfT1JDSEVTVFJBVE9SX0JBU0VfVVJMKSBwcml2YXRlIF9vcmNoZXN0cmF0b3JCYXNlVXJsOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnRcbiAgKSB7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICBwcml2YXRlIGluaXQoKSB7XG4gICAgdGhpcy5sYXRlc3RWZXJzaW9uJCA9IHRoaXMuaHR0cC5nZXQ8YW55PihgJHtlbmdpbmVSYXdVcmwoKX0vcGFja2FnZS5qc29uYCkucGlwZShtYXAoKHsgdmVyc2lvbiB9KSA9PiB2ZXJzaW9uKSk7XG4gICAgcmV0dXJuIHRoaXMubG9hZE1vZGVscygpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTW9kZWxzKCkge1xuICAgIHRoaXMubW9kZWxzTG9hZGluZyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SU1vZGVsTGlua3M+KGAke2VuZ2luZVJhd1VybCgpfS9tb2RlbC1saW5rcy5qc29uYCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoeyBsaW5rczogW10gfSBhcyBJTW9kZWxMaW5rcykpLFxuICAgICAgbWFwKCh7IGxpbmtzLCBlY29pbnZlbnRMaW5rcyB9KSA9PiB7XG4gICAgICAgIHRoaXMuX21vZGVscy5uZXh0KFsuLi5saW5rcy5tYXAobWFwTW9kZWxMaW5rKGZhbHNlKSksIC4uLihlY29pbnZlbnRMaW5rcyB8fCBbXSkubWFwKG1hcE1vZGVsTGluayh0cnVlKSldKTtcbiAgICAgICAgdGhpcy5tb2RlbHNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMubW9kZWxzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGxpbmtzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgbW9kZWxzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbHNMb2FkaW5nIHx8IHRoaXMubW9kZWxzTG9hZGVkID8gdGhpcy5fbW9kZWxzLmFzT2JzZXJ2YWJsZSgpIDogdGhpcy5sb2FkTW9kZWxzKCk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWxzKGluY2x1ZGVFY29pbnZlbnQgPSBmYWxzZSkge1xuICAgIHJldHVybiB0aGlzLm1vZGVscyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtZXJnZUFsbCgpLFxuICAgICAgICBmaWx0ZXIoKHsgZWNvaW52ZW50IH0pID0+IGluY2x1ZGVFY29pbnZlbnQgfHwgIWVjb2ludmVudCksXG4gICAgICAgIHRvQXJyYXkoKVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIG1vZGVsJChtb2RlbDogUGFydGlhbDxJTW9kZWw+KSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxzJC5waXBlKG1hcChtb2RlbHMgPT4gZmluZE1hdGNoaW5nTW9kZWwobW9kZWxzLCBtb2RlbCkpKTtcbiAgfVxuXG4gIHB1YmxpYyBub2RlTW9kZWwkKG5vZGU6IFBhcnRpYWw8YmxhbmtOb2RlPiwga2V5Pzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwkKG1vZGVsUGFyYW1zKG5vZGUpKS5waXBlKFxuICAgICAgLy8gZmFsbGJhY2sgdG8gbW9kZWxLZXlcbiAgICAgIG1lcmdlTWFwKHZhbHVlID0+ICgha2V5IHx8IHZhbHVlID8gb2YodmFsdWUpIDogdGhpcy5tb2RlbCQobW9kZWxLZXlQYXJhbXMobm9kZSwga2V5KSkpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWwobW9kZWw6IFBhcnRpYWw8SU1vZGVsPikge1xuICAgIHJldHVybiB0aGlzLm1vZGVsJChtb2RlbCkucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBsYXRlc3RWZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmxhdGVzdFZlcnNpb24kLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwdWJsaWMgbGlzdE1vZGVscyhwYXJhbXM6IElDYWxjdWxhdGlvbnNNb2RlbHNQYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PHsgbW9kZWxzOiBJQ2FsY3VsYXRpb25zTW9kZWxbXSB9PihgJHt0aGlzLl9jYWxjdWxhdGlvbnNCYXNlVXJsfS9tb2RlbHNgLCB7XG4gICAgICAgIHBhcmFtczogZmlsdGVyUGFyYW1zKHBhcmFtcylcbiAgICAgIH0pXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVxdWlyZW1lbnRzJChwYXJhbXM6IElDYWxjdWxhdGlvbnNSZXF1aXJlbWVudHNQYXJhbXMpIHtcbiAgICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeShmaWx0ZXJQYXJhbXMocGFyYW1zKSk7XG4gICAgdGhpcy5fcmVxdWlyZW1lbnRzW2tleV0gPVxuICAgICAgdGhpcy5fcmVxdWlyZW1lbnRzW2tleV0gfHxcbiAgICAgIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PEpTT05MRDxOb2RlVHlwZT4+KGAke3RoaXMuX2NhbGN1bGF0aW9uc0Jhc2VVcmx9L21vZGVscy9yZXF1aXJlbWVudHNgLCB7XG4gICAgICAgICAgcGFyYW1zOiBmaWx0ZXJQYXJhbXMocGFyYW1zKVxuICAgICAgICB9KVxuICAgICAgICAucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVtZW50c1trZXldO1xuICB9XG5cbiAgcHVibGljIGdldFJlcXVpcmVtZW50cyhwYXJhbXM6IElDYWxjdWxhdGlvbnNSZXF1aXJlbWVudHNQYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRSZXF1aXJlbWVudHMkKHBhcmFtcykudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VGVybUlkcyQocGFyYW1zOiBJQ2FsY3VsYXRpb25zUmVxdWlyZW1lbnRzUGFyYW1zKSB7XG4gICAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoZmlsdGVyUGFyYW1zKHBhcmFtcykpO1xuICAgIHRoaXMuX3JlY29tbWVuZGF0aW9uc1trZXldID1cbiAgICAgIHRoaXMuX3JlY29tbWVuZGF0aW9uc1trZXldIHx8XG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLmdldDxzdHJpbmdbXT4oYCR7dGhpcy5fY2FsY3VsYXRpb25zQmFzZVVybH0vbW9kZWxzL3Rlcm0taWRzYCwge1xuICAgICAgICAgIHBhcmFtczogZmlsdGVyUGFyYW1zKHBhcmFtcylcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuICAgIHJldHVybiB0aGlzLl9yZWNvbW1lbmRhdGlvbnNba2V5XTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUZXJtSWRzKHBhcmFtczogSUNhbGN1bGF0aW9uc1JlcXVpcmVtZW50c1BhcmFtcykge1xuICAgIHJldHVybiB0aGlzLmdldFRlcm1JZHMkKHBhcmFtcylcbiAgICAgIC50b1Byb21pc2UoKVxuICAgICAgLmNhdGNoKCgpID0+IFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBvcmNoZXN0cmF0b3JDb25maWdVcmwodHlwZT86IE5vZGVUeXBlKSB7XG4gICAgY29uc3QgY29uZmlnVXJsID0gdGhpcy5fb3JjaGVzdHJhdG9yQmFzZVVybDtcbiAgICByZXR1cm4gdHlwZSA/IGAke2NvbmZpZ1VybH0vJHt0eXBlfS5qc29uYCA6IGNvbmZpZ1VybC5zdWJzdHJpbmcoMCwgY29uZmlnVXJsLmluZGV4T2YoJy9yYXcnKSk7XG4gIH1cblxuICBwdWJsaWMgb2NoZXN0cmF0b3JDb25maWcodHlwZTogTm9kZVR5cGUsIGlkPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxJT3JjaGVzdHJhdG9yQ29uZmlnPihgJHt0aGlzLl9jYWxjdWxhdGlvbnNCYXNlVXJsfS9yZWNhbGN1bGF0ZS9jb25maWdgLCB7XG4gICAgICAgIHBhcmFtczogZmlsdGVyUGFyYW1zKHsgdHlwZSwgJ0B0eXBlJzogdHlwZSwgaWQsICdAaWQnOiBpZCB9KVxuICAgICAgfSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxufVxuIl19
|