@hestia-earth/ui-components 0.0.12 → 0.0.13
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/bundles/hestia-earth-ui-components.umd.js +392 -238
- package/bundles/hestia-earth-ui-components.umd.js.map +1 -1
- package/common/common.module.d.ts +11 -12
- package/common/index.d.ts +0 -1
- package/common/keys.pipe.d.ts +1 -1
- package/common/utils.d.ts +2 -2
- package/cycles/cycles-emissions-logs/cycles-emissions-logs.component.d.ts +0 -1
- package/cycles/cycles-practices/cycles-practices.component.d.ts +39 -0
- package/cycles/cycles-practices-logs/cycles-practices-logs.component.d.ts +20 -0
- package/cycles/cycles.module.d.ts +9 -7
- package/cycles/index.d.ts +2 -0
- package/esm2015/common/common.module.js +1 -5
- package/esm2015/common/index.js +1 -2
- package/esm2015/common/keys.pipe.js +3 -3
- package/esm2015/common/social-tags/social-tags.component.js +2 -3
- package/esm2015/common/utils.js +2 -2
- package/esm2015/cycles/cycles-emissions/cycles-emissions.component.js +2 -2
- package/esm2015/cycles/cycles-emissions-logs/cycles-emissions-logs.component.js +1 -2
- package/esm2015/cycles/cycles-practices/cycles-practices.component.js +119 -0
- package/esm2015/cycles/cycles-practices-logs/cycles-practices-logs.component.js +46 -0
- package/esm2015/cycles/cycles.module.js +9 -1
- package/esm2015/cycles/index.js +3 -1
- package/esm2015/engine/aggregation-engine.service.js +2 -2
- package/esm2015/engine/engine.service.js +2 -2
- package/esm2015/files/files-error-summary.model.js +6 -6
- package/esm2015/node/node-csv-select-headers/node-csv-select-headers.component.js +6 -5
- package/esm2015/search/search.model.js +4 -4
- package/fesm2015/hestia-earth-ui-components.js +300 -188
- package/fesm2015/hestia-earth-ui-components.js.map +1 -1
- package/package.json +1 -1
- package/common/blank-node-diffs/blank-node-diffs.component.d.ts +0 -18
- package/esm2015/common/blank-node-diffs/blank-node-diffs.component.js +0 -33
|
@@ -10,19 +10,18 @@ import * as i8 from "./blank-node-state-notice/blank-node-state-notice.component
|
|
|
10
10
|
import * as i9 from "./blank-node-value-delta/blank-node-value-delta.component";
|
|
11
11
|
import * as i10 from "./schema-version-link/schema-version-link.component";
|
|
12
12
|
import * as i11 from "./unit-converter/unit-converter.component";
|
|
13
|
-
import * as i12 from "./
|
|
14
|
-
import * as i13 from "./
|
|
15
|
-
import * as i14 from "./
|
|
16
|
-
import * as i15 from "./
|
|
17
|
-
import * as i16 from "
|
|
18
|
-
import * as i17 from "@angular/
|
|
19
|
-
import * as i18 from "@angular/
|
|
20
|
-
import * as i19 from "@
|
|
21
|
-
import * as i20 from "@
|
|
22
|
-
import * as i21 from "
|
|
23
|
-
import * as i22 from "./common.light.module";
|
|
13
|
+
import * as i12 from "./times.pipe";
|
|
14
|
+
import * as i13 from "./click-outside.directive";
|
|
15
|
+
import * as i14 from "./skeleton-text/skeleton-text.component";
|
|
16
|
+
import * as i15 from "./get.pipe";
|
|
17
|
+
import * as i16 from "@angular/common";
|
|
18
|
+
import * as i17 from "@angular/forms";
|
|
19
|
+
import * as i18 from "@angular/router";
|
|
20
|
+
import * as i19 from "@ng-bootstrap/ng-bootstrap";
|
|
21
|
+
import * as i20 from "@angular/google-maps";
|
|
22
|
+
import * as i21 from "./common.light.module";
|
|
24
23
|
export declare class HeCommonModule {
|
|
25
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<HeCommonModule, never>;
|
|
26
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<HeCommonModule, [typeof i1.ClipboardComponent, typeof i2.PopoverComponent, typeof i3.PopoverConfirmComponent, typeof i4.TagsInputDirective, typeof i5.LinkKeyValueComponent, typeof i6.MapsDrawingConfirmComponent, typeof i7.BlankNodeStateComponent, typeof i8.BlankNodeStateNoticeComponent, typeof i9.BlankNodeValueDeltaComponent, typeof i10.SchemaVersionLinkComponent, typeof i11.UnitConverterComponent, typeof i12.
|
|
25
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<HeCommonModule, [typeof i1.ClipboardComponent, typeof i2.PopoverComponent, typeof i3.PopoverConfirmComponent, typeof i4.TagsInputDirective, typeof i5.LinkKeyValueComponent, typeof i6.MapsDrawingConfirmComponent, typeof i7.BlankNodeStateComponent, typeof i8.BlankNodeStateNoticeComponent, typeof i9.BlankNodeValueDeltaComponent, typeof i10.SchemaVersionLinkComponent, typeof i11.UnitConverterComponent, typeof i12.TimesPipe, typeof i13.ClickOutsideDirective, typeof i14.SkeletonTextComponent, typeof i15.GetPipe], [typeof i16.CommonModule, typeof i17.FormsModule, typeof i18.RouterModule, typeof i19.NgbTypeaheadModule, typeof i19.NgbTooltipModule, typeof i19.NgbPopoverModule, typeof i20.GoogleMapsModule, typeof i21.HeCommonLightModule], [typeof i19.NgbTypeaheadModule, typeof i19.NgbTooltipModule, typeof i19.NgbPopoverModule, typeof i20.GoogleMapsModule, typeof i21.HeCommonLightModule, typeof i1.ClipboardComponent, typeof i2.PopoverComponent, typeof i3.PopoverConfirmComponent, typeof i4.TagsInputDirective, typeof i5.LinkKeyValueComponent, typeof i6.MapsDrawingConfirmComponent, typeof i7.BlankNodeStateComponent, typeof i8.BlankNodeStateNoticeComponent, typeof i9.BlankNodeValueDeltaComponent, typeof i10.SchemaVersionLinkComponent, typeof i11.UnitConverterComponent, typeof i12.TimesPipe, typeof i13.ClickOutsideDirective, typeof i14.SkeletonTextComponent, typeof i15.GetPipe]>;
|
|
27
26
|
static ɵinj: i0.ɵɵInjectorDeclaration<HeCommonModule>;
|
|
28
27
|
}
|
package/common/index.d.ts
CHANGED
|
@@ -6,7 +6,6 @@ export * from './delta-utils';
|
|
|
6
6
|
export * from './logs-utils';
|
|
7
7
|
export * from './maps-utils';
|
|
8
8
|
export * from './utils';
|
|
9
|
-
export { BlankNodeDiffsComponent } from './blank-node-diffs/blank-node-diffs.component';
|
|
10
9
|
export { BlankNodeStateComponent } from './blank-node-state/blank-node-state.component';
|
|
11
10
|
export { BlankNodeStateNoticeComponent } from './blank-node-state-notice/blank-node-state-notice.component';
|
|
12
11
|
export { BlankNodeValueDeltaComponent } from './blank-node-value-delta/blank-node-value-delta.component';
|
package/common/keys.pipe.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PipeTransform } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class KeysPipe implements PipeTransform {
|
|
4
|
-
transform(
|
|
4
|
+
transform(values: any, sort?: boolean): any;
|
|
5
5
|
static ɵfac: i0.ɵɵFactoryDeclaration<KeysPipe, never>;
|
|
6
6
|
static ɵpipe: i0.ɵɵPipeDeclaration<KeysPipe, "keys">;
|
|
7
7
|
}
|
package/common/utils.d.ts
CHANGED
|
@@ -57,9 +57,9 @@ export interface IGroupedKeys<T> {
|
|
|
57
57
|
key: string;
|
|
58
58
|
value: IGroupedNodesValue<T>;
|
|
59
59
|
}
|
|
60
|
-
export declare const grouppedKeys: <T>(
|
|
60
|
+
export declare const grouppedKeys: <T>(values: IGroupedNodes<T>) => IGroupedKeys<T>[];
|
|
61
61
|
export declare const grouppedValueKeys: string[];
|
|
62
|
-
export declare const groupNodesByTerm: <T extends IImpactAssessmentJSONLD | ISiteJSONLD | ICycleJSONLD, R>(nodes: T[], key: 'impacts' | 'emissionsResourceUse' | 'inputs' | 'products' | 'emissions' | 'measurements', originalValues?: T[], filterMethod?: Term) => IGroupedNodes<R>;
|
|
62
|
+
export declare const groupNodesByTerm: <T extends IImpactAssessmentJSONLD | ISiteJSONLD | ICycleJSONLD, R>(nodes: T[], key: 'impacts' | 'emissionsResourceUse' | 'inputs' | 'products' | 'practices' | 'emissions' | 'measurements', originalValues?: T[], filterMethod?: Term) => IGroupedNodes<R>;
|
|
63
63
|
export declare const ellipsis: (text?: string, maxlength?: number) => string;
|
|
64
64
|
export declare const mapsUrl: (location?: {
|
|
65
65
|
lat?: number;
|
|
@@ -13,7 +13,6 @@ export declare class CyclesEmissionsLogsComponent implements OnInit {
|
|
|
13
13
|
logsUrl?: string;
|
|
14
14
|
NodeType: typeof NodeType;
|
|
15
15
|
logs: any;
|
|
16
|
-
models: ITermJSONLD[];
|
|
17
16
|
emissions: ITermJSONLD[];
|
|
18
17
|
constructor(searchService: HeSearchService, nodeService: HeNodeService);
|
|
19
18
|
ngOnInit(): Promise<void>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { DataState } from '@hestia-earth/api';
|
|
3
|
+
import { ICycleJSONLD, Practice } from '@hestia-earth/schema';
|
|
4
|
+
import { IGroupedKeys } from '../../common/utils';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
declare enum View {
|
|
7
|
+
table = "table",
|
|
8
|
+
logs = "logs"
|
|
9
|
+
}
|
|
10
|
+
export declare class CyclesPracticesComponent implements OnChanges {
|
|
11
|
+
originalValues: ICycleJSONLD[];
|
|
12
|
+
cycles: ICycleJSONLD[];
|
|
13
|
+
dataState?: DataState;
|
|
14
|
+
enableCompare: boolean;
|
|
15
|
+
baseUrl: string;
|
|
16
|
+
propertyValue: (value: string | number | (string | number)[], isAverage?: boolean) => number;
|
|
17
|
+
itemColor: (index: number) => any;
|
|
18
|
+
showDownload: boolean;
|
|
19
|
+
View: typeof View;
|
|
20
|
+
selectedView: View;
|
|
21
|
+
selectedCycles: ICycleJSONLD[];
|
|
22
|
+
practices: IGroupedKeys<Practice>[];
|
|
23
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
24
|
+
trackById(_index: number, item: ICycleJSONLD): string;
|
|
25
|
+
get isOriginal(): boolean;
|
|
26
|
+
private update;
|
|
27
|
+
togglePopover(popover: any, context: any): any;
|
|
28
|
+
addCycle(cycle: ICycleJSONLD): Promise<void>;
|
|
29
|
+
private selectAllCycles;
|
|
30
|
+
private unselectAllCycles;
|
|
31
|
+
toggleAllCycles(): void;
|
|
32
|
+
private selectCycle;
|
|
33
|
+
private unselectCycle;
|
|
34
|
+
toggleCycle(cycle: ICycleJSONLD): void;
|
|
35
|
+
isSelected(cycle: ICycleJSONLD): boolean;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CyclesPracticesComponent, never>;
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesPracticesComponent, "he-cycles-practices", never, { "originalValues": "originalValues"; "cycles": "cycles"; "dataState": "dataState"; "enableCompare": "enableCompare"; }, {}, never, never>;
|
|
38
|
+
}
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { Practice, ITermJSONLD, NodeType } from '@hestia-earth/schema';
|
|
3
|
+
import { HeNodeService } from '../../node/node.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class CyclesPracticesLogsComponent implements OnInit {
|
|
6
|
+
private nodeService;
|
|
7
|
+
private cycle?;
|
|
8
|
+
originalValues: Practice[];
|
|
9
|
+
recalculatedValues: Practice[];
|
|
10
|
+
loading: boolean;
|
|
11
|
+
logsUrl?: string;
|
|
12
|
+
NodeType: typeof NodeType;
|
|
13
|
+
logs: any;
|
|
14
|
+
models: ITermJSONLD[];
|
|
15
|
+
constructor(nodeService: HeNodeService);
|
|
16
|
+
ngOnInit(): Promise<void>;
|
|
17
|
+
private get node();
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CyclesPracticesLogsComponent, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesPracticesLogsComponent, "he-cycles-practices-logs", never, { "cycle": "cycle"; "originalValues": "originalValues"; "recalculatedValues": "recalculatedValues"; }, {}, never, never>;
|
|
20
|
+
}
|
|
@@ -6,14 +6,16 @@ import * as i4 from "./cycles-emissions/cycles-emissions.component";
|
|
|
6
6
|
import * as i5 from "./cycles-emissions-chart/cycles-emissions-chart.component";
|
|
7
7
|
import * as i6 from "./cycles-emissions-logs/cycles-emissions-logs.component";
|
|
8
8
|
import * as i7 from "./cycles-functional-unit-measure/cycles-functional-unit-measure.component";
|
|
9
|
-
import * as i8 from "./cycles-
|
|
10
|
-
import * as i9 from "./cycles-
|
|
11
|
-
import * as i10 from "
|
|
12
|
-
import * as i11 from "
|
|
13
|
-
import * as i12 from "
|
|
14
|
-
import * as i13 from "
|
|
9
|
+
import * as i8 from "./cycles-practices/cycles-practices.component";
|
|
10
|
+
import * as i9 from "./cycles-practices-logs/cycles-practices-logs.component";
|
|
11
|
+
import * as i10 from "./cycles-result/cycles-result.component";
|
|
12
|
+
import * as i11 from "./cycles-suggest-form/cycles-suggest-form.component";
|
|
13
|
+
import * as i12 from "@angular/common";
|
|
14
|
+
import * as i13 from "@angular/forms";
|
|
15
|
+
import * as i14 from "../common/common.module";
|
|
16
|
+
import * as i15 from "../node/node.module";
|
|
15
17
|
export declare class HeCyclesModule {
|
|
16
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<HeCyclesModule, never>;
|
|
17
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<HeCyclesModule, [typeof i1.CyclesActivityComponent, typeof i2.CyclesActivityLogsComponent, typeof i3.CyclesCompletenessComponent, typeof i4.CyclesEmissionsComponent, typeof i5.CyclesEmissionsChartComponent, typeof i6.CyclesEmissionsLogsComponent, typeof i7.CyclesFunctionalUnitMeasureComponent, typeof i8.
|
|
19
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<HeCyclesModule, [typeof i1.CyclesActivityComponent, typeof i2.CyclesActivityLogsComponent, typeof i3.CyclesCompletenessComponent, typeof i4.CyclesEmissionsComponent, typeof i5.CyclesEmissionsChartComponent, typeof i6.CyclesEmissionsLogsComponent, typeof i7.CyclesFunctionalUnitMeasureComponent, typeof i8.CyclesPracticesComponent, typeof i9.CyclesPracticesLogsComponent, typeof i10.CyclesResultComponent, typeof i11.CyclesSuggestFormComponent], [typeof i12.CommonModule, typeof i13.FormsModule, typeof i13.ReactiveFormsModule, typeof i14.HeCommonModule, typeof i15.HeNodeModule], [typeof i1.CyclesActivityComponent, typeof i2.CyclesActivityLogsComponent, typeof i3.CyclesCompletenessComponent, typeof i4.CyclesEmissionsComponent, typeof i5.CyclesEmissionsChartComponent, typeof i6.CyclesEmissionsLogsComponent, typeof i7.CyclesFunctionalUnitMeasureComponent, typeof i8.CyclesPracticesComponent, typeof i9.CyclesPracticesLogsComponent, typeof i10.CyclesResultComponent, typeof i11.CyclesSuggestFormComponent]>;
|
|
18
20
|
static ɵinj: i0.ɵɵInjectorDeclaration<HeCyclesModule>;
|
|
19
21
|
}
|
package/cycles/index.d.ts
CHANGED
|
@@ -7,5 +7,7 @@ export { CyclesEmissionsChartComponent } from './cycles-emissions-chart/cycles-e
|
|
|
7
7
|
export { CyclesEmissionsLogsComponent } from './cycles-emissions-logs/cycles-emissions-logs.component';
|
|
8
8
|
export { CyclesEmissionsComponent } from './cycles-emissions/cycles-emissions.component';
|
|
9
9
|
export { CyclesFunctionalUnitMeasureComponent } from './cycles-functional-unit-measure/cycles-functional-unit-measure.component';
|
|
10
|
+
export { CyclesPracticesComponent } from './cycles-practices/cycles-practices.component';
|
|
11
|
+
export { CyclesPracticesLogsComponent } from './cycles-practices-logs/cycles-practices-logs.component';
|
|
10
12
|
export { CyclesResultComponent } from './cycles-result/cycles-result.component';
|
|
11
13
|
export { CyclesSuggestFormComponent } from './cycles-suggest-form/cycles-suggest-form.component';
|
|
@@ -5,7 +5,6 @@ import { RouterModule } from '@angular/router';
|
|
|
5
5
|
import { NgbTypeaheadModule, NgbTooltipModule, NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap';
|
|
6
6
|
import { GoogleMapsModule } from '@angular/google-maps';
|
|
7
7
|
import { HeCommonLightModule } from './common.light.module';
|
|
8
|
-
import { BlankNodeDiffsComponent } from './blank-node-diffs/blank-node-diffs.component';
|
|
9
8
|
import { BlankNodeStateComponent } from './blank-node-state/blank-node-state.component';
|
|
10
9
|
import { BlankNodeStateNoticeComponent } from './blank-node-state-notice/blank-node-state-notice.component';
|
|
11
10
|
import { BlankNodeValueDeltaComponent } from './blank-node-value-delta/blank-node-value-delta.component';
|
|
@@ -34,7 +33,6 @@ const components = [
|
|
|
34
33
|
BlankNodeValueDeltaComponent,
|
|
35
34
|
SchemaVersionLinkComponent,
|
|
36
35
|
UnitConverterComponent,
|
|
37
|
-
BlankNodeDiffsComponent,
|
|
38
36
|
TimesPipe,
|
|
39
37
|
ClickOutsideDirective,
|
|
40
38
|
SkeletonTextComponent,
|
|
@@ -54,7 +52,6 @@ HeCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
54
52
|
BlankNodeValueDeltaComponent,
|
|
55
53
|
SchemaVersionLinkComponent,
|
|
56
54
|
UnitConverterComponent,
|
|
57
|
-
BlankNodeDiffsComponent,
|
|
58
55
|
TimesPipe,
|
|
59
56
|
ClickOutsideDirective,
|
|
60
57
|
SkeletonTextComponent,
|
|
@@ -74,7 +71,6 @@ HeCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
74
71
|
BlankNodeValueDeltaComponent,
|
|
75
72
|
SchemaVersionLinkComponent,
|
|
76
73
|
UnitConverterComponent,
|
|
77
|
-
BlankNodeDiffsComponent,
|
|
78
74
|
TimesPipe,
|
|
79
75
|
ClickOutsideDirective,
|
|
80
76
|
SkeletonTextComponent,
|
|
@@ -105,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
105
101
|
]
|
|
106
102
|
}]
|
|
107
103
|
}] });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vY29tbW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzVHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFekMsTUFBTSxVQUFVLEdBQUc7SUFDakIsa0JBQWtCO0lBQ2xCLGdCQUFnQjtJQUNoQix1QkFBdUI7SUFDdkIsa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQiwyQkFBMkI7SUFDM0IsdUJBQXVCO0lBQ3ZCLDZCQUE2QjtJQUM3Qiw0QkFBNEI7SUFDNUIsMEJBQTBCO0lBQzFCLHNCQUFzQjtJQUN0QixTQUFTO0lBQ1QscUJBQXFCO0lBQ3JCLHFCQUFxQjtJQUNyQixPQUFPO0NBQ1IsQ0FBQztBQWlCRixNQUFNLE9BQU8sY0FBYzs7NEdBQWQsY0FBYzs2R0FBZCxjQUFjLGlCQWhDekIsa0JBQWtCO1FBQ2xCLGdCQUFnQjtRQUNoQix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQiwyQkFBMkI7UUFDM0IsdUJBQXVCO1FBQ3ZCLDZCQUE2QjtRQUM3Qiw0QkFBNEI7UUFDNUIsMEJBQTBCO1FBQzFCLHNCQUFzQjtRQUN0QixTQUFTO1FBQ1QscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQixPQUFPLGFBWUwsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZO1FBQ3ZDLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQjtRQUN0RCxnQkFBZ0I7UUFDaEIsbUJBQW1CLGFBVG5CLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQjtRQUN0RCxnQkFBZ0I7UUFDaEIsbUJBQW1CLEVBdEJyQixrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLHVCQUF1QjtRQUN2QixrQkFBa0I7UUFDbEIscUJBQXFCO1FBQ3JCLDJCQUEyQjtRQUMzQix1QkFBdUI7UUFDdkIsNkJBQTZCO1FBQzdCLDRCQUE0QjtRQUM1QiwwQkFBMEI7UUFDMUIsc0JBQXNCO1FBQ3RCLFNBQVM7UUFDVCxxQkFBcUI7UUFDckIscUJBQXFCO1FBQ3JCLE9BQU87NkdBa0JJLGNBQWMsWUFQaEI7WUFDUCxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVk7WUFDdkMsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCO1lBQ3RELGdCQUFnQjtZQUNoQixtQkFBbUI7U0FDcEIsRUFWQyxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0I7UUFDdEQsZ0JBQWdCO1FBQ2hCLG1CQUFtQjs0RkFVVixjQUFjO2tCQWYxQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxVQUFVO29CQUN4QixPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCO3dCQUN0RCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsR0FBRyxVQUFVO3FCQUNkO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVk7d0JBQ3ZDLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQjt3QkFDdEQsZ0JBQWdCO3dCQUNoQixtQkFBbUI7cUJBQ3BCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOZ2JUeXBlYWhlYWRNb2R1bGUsIE5nYlRvb2x0aXBNb2R1bGUsIE5nYlBvcG92ZXJNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBHb29nbGVNYXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZ29vZ2xlLW1hcHMnO1xuXG5pbXBvcnQgeyBIZUNvbW1vbkxpZ2h0TW9kdWxlIH0gZnJvbSAnLi9jb21tb24ubGlnaHQubW9kdWxlJztcblxuaW1wb3J0IHsgQmxhbmtOb2RlU3RhdGVDb21wb25lbnQgfSBmcm9tICcuL2JsYW5rLW5vZGUtc3RhdGUvYmxhbmstbm9kZS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmxhbmtOb2RlU3RhdGVOb3RpY2VDb21wb25lbnQgfSBmcm9tICcuL2JsYW5rLW5vZGUtc3RhdGUtbm90aWNlL2JsYW5rLW5vZGUtc3RhdGUtbm90aWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbGFua05vZGVWYWx1ZURlbHRhQ29tcG9uZW50IH0gZnJvbSAnLi9ibGFuay1ub2RlLXZhbHVlLWRlbHRhL2JsYW5rLW5vZGUtdmFsdWUtZGVsdGEuY29tcG9uZW50JztcbmltcG9ydCB7IENsaXBib2FyZENvbXBvbmVudCB9IGZyb20gJy4vY2xpcGJvYXJkL2NsaXBib2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlua0tleVZhbHVlQ29tcG9uZW50IH0gZnJvbSAnLi9saW5rLWtleS12YWx1ZS9saW5rLWtleS12YWx1ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFwc0RyYXdpbmdDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi9tYXBzLWRyYXdpbmctY29uZmlybS9tYXBzLWRyYXdpbmctY29uZmlybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb3BvdmVyQ29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4vcG9wb3Zlci1jb25maXJtL3BvcG92ZXItY29uZmlybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NoZW1hVmVyc2lvbkxpbmtDb21wb25lbnQgfSBmcm9tICcuL3NjaGVtYS12ZXJzaW9uLWxpbmsvc2NoZW1hLXZlcnNpb24tbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2tlbGV0b25UZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9za2VsZXRvbi10ZXh0L3NrZWxldG9uLXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFVuaXRDb252ZXJ0ZXJDb21wb25lbnQgfSBmcm9tICcuL3VuaXQtY29udmVydGVyL3VuaXQtY29udmVydGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEdldFBpcGUgfSBmcm9tICcuL2dldC5waXBlJztcbmltcG9ydCB7IFRhZ3NJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vdGFncy1pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGltZXNQaXBlIH0gZnJvbSAnLi90aW1lcy5waXBlJztcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgQ2xpcGJvYXJkQ29tcG9uZW50LFxuICBQb3BvdmVyQ29tcG9uZW50LFxuICBQb3BvdmVyQ29uZmlybUNvbXBvbmVudCxcbiAgVGFnc0lucHV0RGlyZWN0aXZlLFxuICBMaW5rS2V5VmFsdWVDb21wb25lbnQsXG4gIE1hcHNEcmF3aW5nQ29uZmlybUNvbXBvbmVudCxcbiAgQmxhbmtOb2RlU3RhdGVDb21wb25lbnQsXG4gIEJsYW5rTm9kZVN0YXRlTm90aWNlQ29tcG9uZW50LFxuICBCbGFua05vZGVWYWx1ZURlbHRhQ29tcG9uZW50LFxuICBTY2hlbWFWZXJzaW9uTGlua0NvbXBvbmVudCxcbiAgVW5pdENvbnZlcnRlckNvbXBvbmVudCxcbiAgVGltZXNQaXBlLFxuICBDbGlja091dHNpZGVEaXJlY3RpdmUsXG4gIFNrZWxldG9uVGV4dENvbXBvbmVudCxcbiAgR2V0UGlwZVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBjb21wb25lbnRzLFxuICBleHBvcnRzOiBbXG4gICAgTmdiVHlwZWFoZWFkTW9kdWxlLCBOZ2JUb29sdGlwTW9kdWxlLCBOZ2JQb3BvdmVyTW9kdWxlLFxuICAgIEdvb2dsZU1hcHNNb2R1bGUsXG4gICAgSGVDb21tb25MaWdodE1vZHVsZSxcbiAgICAuLi5jb21wb25lbnRzXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSb3V0ZXJNb2R1bGUsXG4gICAgTmdiVHlwZWFoZWFkTW9kdWxlLCBOZ2JUb29sdGlwTW9kdWxlLCBOZ2JQb3BvdmVyTW9kdWxlLFxuICAgIEdvb2dsZU1hcHNNb2R1bGUsXG4gICAgSGVDb21tb25MaWdodE1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEhlQ29tbW9uTW9kdWxlIHsgfVxuIl19
|
package/esm2015/common/index.js
CHANGED
|
@@ -6,7 +6,6 @@ export * from './delta-utils';
|
|
|
6
6
|
export * from './logs-utils';
|
|
7
7
|
export * from './maps-utils';
|
|
8
8
|
export * from './utils';
|
|
9
|
-
export { BlankNodeDiffsComponent } from './blank-node-diffs/blank-node-diffs.component';
|
|
10
9
|
export { BlankNodeStateComponent } from './blank-node-state/blank-node-state.component';
|
|
11
10
|
export { BlankNodeStateNoticeComponent } from './blank-node-state-notice/blank-node-state-notice.component';
|
|
12
11
|
export { BlankNodeValueDeltaComponent } from './blank-node-value-delta/blank-node-value-delta.component';
|
|
@@ -31,4 +30,4 @@ export { PluralizePipe } from './pluralize.pipe';
|
|
|
31
30
|
export { PrecisionPipe } from './precision.pipe';
|
|
32
31
|
export { TagsInputDirective } from './tags-input.directive';
|
|
33
32
|
export { TimesPipe } from './times.pipe';
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxTQUFTLENBQUM7QUFFeEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDNUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDekcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbW1vbi5saWdodC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90b2FzdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZGVsdGEtdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2dzLXV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbWFwcy11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IHsgQmxhbmtOb2RlU3RhdGVDb21wb25lbnQgfSBmcm9tICcuL2JsYW5rLW5vZGUtc3RhdGUvYmxhbmstbm9kZS1zdGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0IHsgQmxhbmtOb2RlU3RhdGVOb3RpY2VDb21wb25lbnQgfSBmcm9tICcuL2JsYW5rLW5vZGUtc3RhdGUtbm90aWNlL2JsYW5rLW5vZGUtc3RhdGUtbm90aWNlLmNvbXBvbmVudCc7XG5leHBvcnQgeyBCbGFua05vZGVWYWx1ZURlbHRhQ29tcG9uZW50IH0gZnJvbSAnLi9ibGFuay1ub2RlLXZhbHVlLWRlbHRhL2JsYW5rLW5vZGUtdmFsdWUtZGVsdGEuY29tcG9uZW50JztcbmV4cG9ydCB7IENsaXBib2FyZENvbXBvbmVudCB9IGZyb20gJy4vY2xpcGJvYXJkL2NsaXBib2FyZC5jb21wb25lbnQnO1xuZXhwb3J0IHsgTGlua0tleVZhbHVlQ29tcG9uZW50IH0gZnJvbSAnLi9saW5rLWtleS12YWx1ZS9saW5rLWtleS12YWx1ZS5jb21wb25lbnQnO1xuZXhwb3J0IHsgTWFwc0RyYXdpbmdDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi9tYXBzLWRyYXdpbmctY29uZmlybS9tYXBzLWRyYXdpbmctY29uZmlybS5jb21wb25lbnQnO1xuZXhwb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XG5leHBvcnQgeyBQb3BvdmVyQ29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4vcG9wb3Zlci1jb25maXJtL3BvcG92ZXItY29uZmlybS5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2NoZW1hVmVyc2lvbkxpbmtDb21wb25lbnQgfSBmcm9tICcuL3NjaGVtYS12ZXJzaW9uLWxpbmsvc2NoZW1hLXZlcnNpb24tbGluay5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2tlbGV0b25UZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9za2VsZXRvbi10ZXh0L3NrZWxldG9uLXRleHQuY29tcG9uZW50JztcbmV4cG9ydCB7IFNvY2lhbFRhZ3NDb21wb25lbnQgfSBmcm9tICcuL3NvY2lhbC10YWdzL3NvY2lhbC10YWdzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBUb2FzdENvbXBvbmVudCB9IGZyb20gJy4vdG9hc3QvdG9hc3QuY29tcG9uZW50JztcbmV4cG9ydCB7IFVuaXRDb252ZXJ0ZXJDb21wb25lbnQgfSBmcm9tICcuL3VuaXQtY29udmVydGVyL3VuaXQtY29udmVydGVyLmNvbXBvbmVudCc7XG5leHBvcnQgeyBCaW5kT25jZURpcmVjdGl2ZSB9IGZyb20gJy4vYmluZC1vbmNlLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcbmV4cG9ydCB7IERlZmF1bHRQaXBlIH0gZnJvbSAnLi9kZWZhdWx0LnBpcGUnO1xuZXhwb3J0IHsgRWxsaXBzaXNQaXBlIH0gZnJvbSAnLi9lbGxpcHNpcy5waXBlJztcbmV4cG9ydCB7IEdldFBpcGUgfSBmcm9tICcuL2dldC5waXBlJztcbmV4cG9ydCB7IEtleVRvTGFiZWxQaXBlIH0gZnJvbSAnLi9rZXktdG8tbGFiZWwucGlwZSc7XG5leHBvcnQgeyBLZXlzUGlwZSB9IGZyb20gJy4va2V5cy5waXBlJztcbmV4cG9ydCB7IFBsdXJhbGl6ZVBpcGUgfSBmcm9tICcuL3BsdXJhbGl6ZS5waXBlJztcbmV4cG9ydCB7IFByZWNpc2lvblBpcGUgfSBmcm9tICcuL3ByZWNpc2lvbi5waXBlJztcbmV4cG9ydCB7IFRhZ3NJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vdGFncy1pbnB1dC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgVGltZXNQaXBlIH0gZnJvbSAnLi90aW1lcy5waXBlJztcbiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Pipe } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class KeysPipe {
|
|
4
|
-
transform(
|
|
5
|
-
const keys = Object.
|
|
4
|
+
transform(values, sort = false) {
|
|
5
|
+
const keys = Object.entries(values).map(([key, value]) => ({ key, value }));
|
|
6
6
|
if (sort) {
|
|
7
7
|
keys.sort((a, b) => a.key.localeCompare(b.key));
|
|
8
8
|
}
|
|
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
17
17
|
name: 'keys'
|
|
18
18
|
}]
|
|
19
19
|
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9rZXlzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxRQUFRO0lBQ25CLFNBQVMsQ0FBQyxNQUFXLEVBQUUsSUFBSSxHQUFHLEtBQUs7UUFDakMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDakQ7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O3NHQVBVLFFBQVE7b0dBQVIsUUFBUTs0RkFBUixRQUFRO2tCQUhwQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxNQUFNO2lCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdrZXlzJ1xufSlcbmV4cG9ydCBjbGFzcyBLZXlzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWVzOiBhbnksIHNvcnQgPSBmYWxzZSk6IGFueSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5lbnRyaWVzKHZhbHVlcykubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7IGtleSwgdmFsdWUgfSkpO1xuICAgIGlmIChzb3J0KSB7XG4gICAgICBrZXlzLnNvcnQoKGEsIGIpID0+IGEua2V5LmxvY2FsZUNvbXBhcmUoYi5rZXkpKTtcbiAgICB9XG4gICAgcmV0dXJuIGtleXM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -10,8 +10,7 @@ export class SocialTagsComponent {
|
|
|
10
10
|
ngOnInit() {
|
|
11
11
|
this.meta.addTag({ charset: 'UTF-8' });
|
|
12
12
|
const config = Object.assign({ 'og:url': window.location.href.split('?')[0] }, this.config);
|
|
13
|
-
Object.
|
|
14
|
-
const content = config[name];
|
|
13
|
+
Object.entries(config).map(([name, content]) => {
|
|
15
14
|
this.meta.updateTag({ name, content });
|
|
16
15
|
if (name === 'og:description') {
|
|
17
16
|
this.meta.updateTag({ name: 'description', content });
|
|
@@ -34,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
34
33
|
type: HostBinding,
|
|
35
34
|
args: ['class']
|
|
36
35
|
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29jaWFsLXRhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1vbi9zb2NpYWwtdGFncy9zb2NpYWwtdGFncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL3NvY2lhbC10YWdzL3NvY2lhbC10YWdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBUXRFLE1BQU0sT0FBTyxtQkFBbUI7SUFhOUIsWUFDVSxJQUFVO1FBQVYsU0FBSSxHQUFKLElBQUksQ0FBTTtRQVpaLFdBQU0sR0FNVixFQUFFLENBQUM7UUFHQSxZQUFPLEdBQUcsV0FBVyxDQUFDO0lBSXpCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUV2QyxNQUFNLE1BQU0sbUJBQ1YsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FDZixDQUFDO1FBQ0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDdkMsSUFBSSxJQUFJLEtBQUssZ0JBQWdCLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztpSEE5QlUsbUJBQW1CO3FHQUFuQixtQkFBbUIsdUlDUmhDLGlCQUNBOzRGRE9hLG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixXQUFXLEVBQUUsOEJBQThCO29CQUMzQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztpQkFDNUM7MkZBR1MsTUFBTTtzQkFEYixLQUFLO2dCQVVDLE9BQU87c0JBRGIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWV0YSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZS1zb2NpYWwtdGFncycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zb2NpYWwtdGFncy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NvY2lhbC10YWdzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU29jaWFsVGFnc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHByaXZhdGUgY29uZmlnOiB7XG4gICAgJ29nOnR5cGUnPzogc3RyaW5nO1xuICAgICdvZzp1cmwnPzogc3RyaW5nO1xuICAgICdvZzp0aXRsZSc/OiBzdHJpbmc7XG4gICAgJ29nOmRlc2NyaXB0aW9uJz86IHN0cmluZztcbiAgICAnb2c6aW1hZ2UnPzogc3RyaW5nO1xuICB9ID0ge307XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHB1YmxpYyBjbGFzc2VzID0gJ2lzLWhpZGRlbic7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtZXRhOiBNZXRhXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5tZXRhLmFkZFRhZyh7IGNoYXJzZXQ6ICdVVEYtOCcgfSk7XG5cbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAnb2c6dXJsJzogd2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKVswXSxcbiAgICAgIC4uLnRoaXMuY29uZmlnXG4gICAgfTtcbiAgICBPYmplY3QuZW50cmllcyhjb25maWcpLm1hcCgoW25hbWUsIGNvbnRlbnRdKSA9PiB7XG4gICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgbmFtZSwgY29udGVudCB9KTtcbiAgICAgIGlmIChuYW1lID09PSAnb2c6ZGVzY3JpcHRpb24nKSB7XG4gICAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50IH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8c3Bhbj48L3NwYW4+XG4iXX0=
|
package/esm2015/common/utils.js
CHANGED
|
@@ -75,7 +75,7 @@ export const dataValue = (data, index, property) => {
|
|
|
75
75
|
};
|
|
76
76
|
;
|
|
77
77
|
;
|
|
78
|
-
export const grouppedKeys = (
|
|
78
|
+
export const grouppedKeys = (values) => Object.entries(values).map(([key, value]) => ({ key, value }));
|
|
79
79
|
const concatBlankNodeValue = (value, newValue) => {
|
|
80
80
|
const valueArray = Array.isArray(value) ? value : [value];
|
|
81
81
|
const newValueArray = Array.isArray(newValue) ? newValue : [newValue];
|
|
@@ -186,4 +186,4 @@ export const filenameWithoutExt = (filename = '') => {
|
|
|
186
186
|
// remove last .
|
|
187
187
|
return file.endsWith('.') ? file.substring(0, file.length - 1) : file;
|
|
188
188
|
};
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUNMLFFBQVEsRUFBb0Usa0JBQWtCLEVBQy9GLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLGlDQUFpQyxDQUFDO0FBQ3pELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyx3Q0FBd0MsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBRTlHLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFNUUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUMxQixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUM1Qyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFB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QUNyQyxnQkFBZ0I7SUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDeEUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0ID0gcmVxdWlyZSgnbG9kYXNoLmdldCcpO1xuaW1wb3J0IHsgZ2V0Q29sb3IgfSBmcm9tICdyYW5kb20tbWF0ZXJpYWwtY29sb3InO1xuaW1wb3J0IHtcbiAgTm9kZVR5cGUsIFRlcm0sIEpTT05MRCwgSUN5Y2xlSlNPTkxELCBJU2l0ZUpTT05MRCwgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIEVtaXNzaW9uTWV0aG9kVGllclxufSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyBmaWxlVG9FeHQgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQgeyBpc0VtcHR5LCB1bmlxdWUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGdpdEhvbWUgPSAnaHR0cHM6Ly9naXRsYWIuY29tL2hlc3RpYS1lYXJ0aCc7XG5leHBvcnQgY29uc3QgZ2l0UmF3QmFzZVVybCA9ICdodHRwczovL2dsY2RuLmdpdGhhY2suY29tL2hlc3RpYS1lYXJ0aCc7XG5leHBvcnQgY29uc3QgZ2l0QnJhbmNoID0gKCkgPT4gWydkZXYnLCAnc3RhZ2luZyddLnNvbWUoZW52ID0+IGJhc2VVcmwoKS5pbmNsdWRlcyhlbnYpKSA/ICdkZXZlbG9wJyA6ICdtYXN0ZXInO1xuXG5leHBvcnQgY29uc3QgaXNDaHJvbWUgPSAoKSA9PiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygnQ2hyb21lJyk7XG5cbmV4cG9ydCBjb25zdCBiYXNlVXJsID0gKCkgPT5cbiAgd2luZG93LmxvY2F0aW9uLm9yaWdpbi5pbmNsdWRlcygnbG9jYWxob3N0JykgP1xuICAgICdodHRwczovL3d3dy1kZXYuaGVzdGlhLmVhcnRoJyA6XG4gICAgd2luZG93LmxvY2F0aW9uLm9yaWdpbi5pbmNsdWRlcygnaGVzdGlhLmVhcnRoJykgP1xuICAgICAgd2luZG93LmxvY2F0aW9uLm9yaWdpbiA6XG4gICAgICAnaHR0cHM6Ly93d3cuaGVzdGlhLmVhcnRoJztcblxuZXhwb3J0IGNvbnN0IGlzRXh0ZXJuYWwgPSAoKSA9PiBiYXNlVXJsKCkgIT09IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG5cbmNvbnN0IHBhcnNlRXJyb3JTdGF0dXMgPSAoZXJyb3I6IGFueSkgPT4gKGVycm9yPy5zdGF0dXNUZXh0IHx8ICcnKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccy9nLCAnLScpO1xuXG5jb25zdCBwYXJzZUVycm9yTWVzc2FnZSA9IChlcnJvcjogYW55KSA9PlxuICBnZXQoZXJyb3IsICdlcnJvci5lcnJvcicsIGdldChlcnJvciwgJ2Vycm9yLm1lc3NhZ2UnLCBnZXQoZXJyb3IsICdlcnJvcicsIGdldChlcnJvciwgJ21lc3NhZ2UnLCBlcnJvcikpKSk7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVBUElFcnJvciA9IChlcnJvcjogYW55KSA9PiB7XG4gIHRyeSB7XG4gICAgZXJyb3IgPSBwYXJzZUVycm9yTWVzc2FnZShlcnJvcik7XG4gIH1cbiAgY2F0Y2ggKF8pIHsgfVxuICB0aHJvdyBlcnJvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBlcnJvclRleHQgPSAoZXJyb3I6IGFueSk6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2YgZXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGVycm9yO1xuICB9XG4gIGNvbnN0IGVyciA9IHBhcnNlRXJyb3JNZXNzYWdlKGVycm9yKTtcbiAgcmV0dXJuIHBhcnNlRXJyb3JTdGF0dXMoZXJyKSB8fCBlcnI7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyUGFyYW1zID0gKG9iajogYW55KSA9PiB7XG4gIGNvbnN0IHJlczoge1xuICAgIFt4OiBzdHJpbmddOiBzdHJpbmc7XG4gIH0gPSB7fTtcbiAgT2JqZWN0LmtleXMob2JqKS5zb3J0KCkuZm9yRWFjaChrZXkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV07XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgcmVzW2tleV0gPSBgJHt2YWx1ZX1gO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXM7XG59O1xuXG5leHBvcnQgY29uc3Qgd2FpdEZvciA9ICh2YXJpYWJsZTogc3RyaW5nLCBjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4ge1xuICBpZiAodmFyaWFibGUgaW4gd2luZG93KSB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gIH1cbiAgc2V0VGltZW91dCgoKSA9PiB3YWl0Rm9yKHZhcmlhYmxlLCBjYWxsYmFjayksIDEwMCk7XG59O1xuXG5leHBvcnQgY29uc3QgYm90dG9tID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuXG5leHBvcnQgY29uc3QgaXNTY3JvbGxlZEJlbG93ID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBlbGVtZW50ID8gd2luZG93LnNjcm9sbFkgPiBib3R0b20oZWxlbWVudCkgOiBmYWxzZTtcblxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvRWwgPSAoaWQ6IHN0cmluZywgcmV0cmllcyA9IDApID0+IHtcbiAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG4gIHNldFRpbWVvdXQoKCkgPT4gZWwgPyBlbC5zY3JvbGxJbnRvVmlldygpIDogKHJldHJpZXMgPCAxMCA/IHNjcm9sbFRvRWwoaWQsIHJldHJpZXMgKyAxKSA6IG51bGwpLCAxMDApO1xufTtcblxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvcCA9ICgpID0+IHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcblxuZXhwb3J0IGNvbnN0IHNhZmVKU09OUGFyc2UgPSA8VD4odmFsdWU6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogYW55KSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKHZhbHVlKSBhcyBUIDogdmFsdWU7XG4gIH1cbiAgY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBzYWZlSlNPTlN0cmluZ2lmeSA9ICh2YWx1ZTogc3RyaW5nKSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG5cbmV4cG9ydCBjb25zdCBhcnJheVZhbHVlID0gKHZhbHVlczogYW55W10sIGlzQXZlcmFnZTogYm9vbGVhbikgPT5cbiAgKHZhbHVlcyB8fCBbXSkucmVkdWNlKChwcmV2OiBudW1iZXIsIGN1cnIpID0+IHByZXYgKyBwYXJzZUZsb2F0KGAke2N1cnJ9YCksIDApIC8gKGlzQXZlcmFnZSA/IHZhbHVlcy5sZW5ndGggOiAxKTtcblxuZXhwb3J0IGNvbnN0IHByb3BlcnR5VmFsdWUgPSAodmFsdWU6IHN0cmluZyB8IG51bWJlciB8ICgoc3RyaW5nIHwgbnVtYmVyKVtdKSwgaXNBdmVyYWdlID0gZmFsc2UpOiBudW1iZXIgPT5cbiAgdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZSA9PT0gbnVsbCA/XG4gICAgbnVsbCBhcyBhbnkgOlxuICAgIChcbiAgICAgIEFycmF5LmlzQXJyYXkodmFsdWUpID8gYXJyYXlWYWx1ZSh2YWx1ZSwgaXNBdmVyYWdlKSA6IHBhcnNlRmxvYXQoYCR7dmFsdWV9YClcbiAgICApO1xuXG5leHBvcnQgY29uc3QgZGF0YVZhbHVlID0gKGRhdGE6IGFueSwgaW5kZXg6IG51bWJlciwgcHJvcGVydHk6IHN0cmluZykgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBwcm9wZXJ0eVZhbHVlKGRhdGFbcHJvcGVydHldW2luZGV4XS52YWx1ZSk7XG4gIH1cbiAgY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZTxUPiB7XG4gIG5vZGVzOiBUW107XG4gIGluZGV4OiBudW1iZXI7XG4gIHZhbHVlOiBudW1iZXJbXTtcbiAgZGF0ZXM/OiBhbnlbXTtcbiAgc2Q/OiBudW1iZXJbXTtcbiAgbWluPzogbnVtYmVyW107XG4gIG1heD86IG51bWJlcltdO1xuICBpbnB1dHM/OiBhbnlbXTtcbiAgZGVwdGhVcHBlcj86IG51bWJlcltdO1xuICBkZXB0aExvd2VyPzogbnVtYmVyW107XG4gIHN0YXJ0RGF0ZT86IHN0cmluZ1tdO1xuICBlbmREYXRlPzogc3RyaW5nW107XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZXNWYWx1ZXM8VD4ge1xuICBbbm9kZUlkOiBzdHJpbmddOiBJR3JvdXBlZE5vZGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2Rlc1ZhbHVlPFQ+IHtcbiAgdGVybTogVGVybTtcbiAgLyoqXG4gICAqIEVuYWJsZSBvcmRlcmluZyBueSBtZXRob2RUaWVyXG4gICAqL1xuICBtZXRob2RUaWVyT3JkZXI6IG51bWJlcjtcbiAgdmFsdWVzOiBJR3JvdXBlZE5vZGVzVmFsdWVzPFQ+O1xuICBvcmlnaW5hbFZhbHVlczoge1xuICAgIFtub2RlSWQ6IHN0cmluZ106IHtcbiAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2RlczxUPiB7XG4gIFt0ZXJtSWQ6IHN0cmluZ106IElHcm91cGVkTm9kZXNWYWx1ZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBlZEtleXM8VD4ge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IElHcm91cGVkTm9kZXNWYWx1ZTxUPjtcbn1cblxuZXhwb3J0IGNvbnN0IGdyb3VwcGVkS2V5cyA9IDxUPih2YWx1ZTogSUdyb3VwZWROb2RlczxUPik6IElHcm91cGVkS2V5czxUPltdID0+XG4gIE9iamVjdC5rZXlzKHZhbHVlKS5tYXAoa2V5ID0+ICh7IGtleSwgdmFsdWU6IHZhbHVlW2tleV0gfSkpO1xuXG5jb25zdCBjb25jYXRCbGFua05vZGVWYWx1ZSA9ICh2YWx1ZTogYW55LCBuZXdWYWx1ZTogYW55KSA9PiB7XG4gIGNvbnN0IHZhbHVlQXJyYXkgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgY29uc3QgbmV3VmFsdWVBcnJheSA9IEFycmF5LmlzQXJyYXkobmV3VmFsdWUpID8gbmV3VmFsdWUgOiBbbmV3VmFsdWVdO1xuICByZXR1cm4gWy4uLnZhbHVlQXJyYXksIC4uLm5ld1ZhbHVlQXJyYXldO1xufTtcblxuY29uc3QgbWV0aG9kVGllck9yZGVyID0gKG1ldGhvZFRpZXI6IEVtaXNzaW9uTWV0aG9kVGllcikgPT4gW1xuICBFbWlzc2lvbk1ldGhvZFRpZXIubWVhc3VyZWQsXG4gIEVtaXNzaW9uTWV0aG9kVGllclsndGllciAzJ10sXG4gIEVtaXNzaW9uTWV0aG9kVGllclsndGllciAyJ10sXG4gIEVtaXNzaW9uTWV0aG9kVGllclsndGllciAxJ10sXG4gIEVtaXNzaW9uTWV0aG9kVGllci5iYWNrZ3JvdW5kXG5dLmluZGV4T2YobWV0aG9kVGllcik7XG5cbmNvbnN0IGlzTWV0aG9kTW9kZWxBbGxvd2VkID0gKG5vZGU6IGFueSwgZmlsdGVyTWV0aG9kPzogVGVybSkgPT5cbiAgIWZpbHRlck1ldGhvZCB8fCAhbm9kZVsnbWV0aG9kTW9kZWwnXSB8fCBub2RlWydtZXRob2RNb2RlbCddWydAaWQnXSA9PT0gZmlsdGVyTWV0aG9kWydAaWQnXTtcblxuZXhwb3J0IGNvbnN0IGdyb3VwcGVkVmFsdWVLZXlzID0gW1xuICAnZGF0ZXMnLCAnc2QnLCAnbWluJywgJ21heCcsICdpbnB1dHMnLCAnZGVwdGhVcHBlcicsICdkZXB0aExvd2VyJywgJ3N0YXJ0RGF0ZScsICdlbmREYXRlJyxcbiAgJ21ldGhvZFRpZXInLCAnbWV0aG9kTW9kZWwnXG5dO1xuXG5leHBvcnQgY29uc3QgZ3JvdXBOb2Rlc0J5VGVybSA9IDxUIGV4dGVuZHMgSUN5Y2xlSlNPTkxEIHwgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQgfCBJU2l0ZUpTT05MRCwgUj4oXG4gIG5vZGVzOiBUW10gPSBbXSxcbiAga2V5OiAnaW1wYWN0cycgfCAnZW1pc3Npb25zUmVzb3VyY2VVc2UnIHwgJ2lucHV0cycgfCAncHJvZHVjdHMnIHwgJ2VtaXNzaW9ucycgfCAnbWVhc3VyZW1lbnRzJyxcbiAgb3JpZ2luYWxWYWx1ZXM6IFRbXSA9IFtdLFxuICBmaWx0ZXJNZXRob2Q/OiBUZXJtXG4pOiBJR3JvdXBlZE5vZGVzPFI+ID0+IHtcbiAgY29uc3QgZ3JvdXBzOiBJR3JvdXBlZE5vZGVzPFI+ID0gbm9kZXMucmVkdWNlKChwcmV2LCBub2RlLCBpbmRleCkgPT4gKG5vZGVba2V5XSB8fCBbXSkucmVkdWNlKChncm91cCwgYmxhbmtOb2RlKSA9PiB7XG4gICAgaWYgKCFpc01ldGhvZE1vZGVsQWxsb3dlZChibGFua05vZGUsIGZpbHRlck1ldGhvZCkpIHtcbiAgICAgIHJldHVybiBncm91cDtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlSWQgPSBub2RlWydAaWQnXTtcbiAgICBjb25zdCB0ZXJtSWQgPSBibGFua05vZGUudGVybVsnQGlkJ107XG4gICAgZ3JvdXBbdGVybUlkXSA9IGdyb3VwW3Rlcm1JZF0gfHwge1xuICAgICAgdGVybTogYmxhbmtOb2RlLnRlcm0sXG4gICAgICBtZXRob2RUaWVyT3JkZXI6IG1ldGhvZFRpZXJPcmRlcihibGFua05vZGUubWV0aG9kVGllciksXG4gICAgICB2YWx1ZXM6IHt9LFxuICAgICAgb3JpZ2luYWxWYWx1ZXM6IHt9XG4gICAgfTtcbiAgICBncm91cFt0ZXJtSWRdLnZhbHVlc1tub2RlSWRdID0gZ3JvdXBbdGVybUlkXS52YWx1ZXNbbm9kZUlkXSB8fCB7IGluZGV4LCBub2RlczogW10sIHZhbHVlOiBbXSB9O1xuICAgIGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF0ubm9kZXMucHVzaChibGFua05vZGUpO1xuICAgIGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF0udmFsdWUgPSBjb25jYXRCbGFua05vZGVWYWx1ZShcbiAgICAgIGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF0udmFsdWUsXG4gICAgICBibGFua05vZGUudmFsdWVcbiAgICApO1xuICAgIGdyb3VwcGVkVmFsdWVLZXlzLmZvckVhY2goYXJyYXlLZXkgPT4ge1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBnZXQoYmxhbmtOb2RlLCBhcnJheUtleSwgW10pO1xuICAgICAgZ3JvdXBbdGVybUlkXS52YWx1ZXNbbm9kZUlkXVthcnJheUtleV0gPSBbXG4gICAgICAgIC4uLihncm91cFt0ZXJtSWRdLnZhbHVlc1tub2RlSWRdW2FycmF5S2V5XSB8fCBbXSksXG4gICAgICAgIC4uLihBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSA/IG5ld1ZhbHVlIDogW25ld1ZhbHVlXSlcbiAgICAgIF07XG4gICAgfSk7XG4gICAgcmV0dXJuIGdyb3VwO1xuICB9LCBwcmV2KSwge30gYXMgSUdyb3VwZWROb2RlczxSPik7XG5cbiAgLy8gY29tcGlsZSBvcmlnaW5hbCB2YWx1ZXNcbiAgT2JqZWN0LnZhbHVlcyhncm91cHMpLm1hcChncm91cCA9PiB7XG4gICAgT2JqZWN0LmtleXMoZ3JvdXAudmFsdWVzKS5tYXAobm9kZUlkID0+IHtcbiAgICAgIGNvbnN0IHsgaW5kZXggfSA9IGdyb3VwLnZhbHVlc1tub2RlSWRdO1xuICAgICAgY29uc3QgdGVybUlkID0gZ3JvdXAudGVybVsnQGlkJ107XG4gICAgICBjb25zdCBvcmlnaW5hbFZhbHVlID0gZ2V0KG9yaWdpbmFsVmFsdWVzLCBgWyR7aW5kZXh9XS4ke2tleX1gLCBbXSkuZmlsdGVyKCh2YWw6IGFueSkgPT4gdmFsLnRlcm1bJ0BpZCddID09PSB0ZXJtSWQpO1xuICAgICAgaWYgKG9yaWdpbmFsVmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG9yaWdpbmFsVmFsdWUucmVkdWNlKChhcnJheTogYW55W10sIGN1cnI6IGFueSkgPT4gY29uY2F0QmxhbmtOb2RlVmFsdWUoXG4gICAgICAgICAgYXJyYXksXG4gICAgICAgICAgY3Vyci52YWx1ZVxuICAgICAgICApLCBbXSk7XG4gICAgICAgIGdyb3VwLm9yaWdpbmFsVmFsdWVzW25vZGVJZF0gPSB7IHZhbHVlOiBwcm9wZXJ0eVZhbHVlKHZhbHVlKSB9O1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gZ3JvdXBzO1xufTtcblxuZXhwb3J0IGNvbnN0IGVsbGlwc2lzID0gKHRleHQgPSAnJywgbWF4bGVuZ3RoID0gMjApID0+XG4gIHRleHQubGVuZ3RoID4gbWF4bGVuZ3RoID8gYCR7dGV4dC5zdWJzdHJpbmcoMCwgbWF4bGVuZ3RoKX0uLi5gIDogdGV4dDtcblxuY29uc3QgbWFwc1F1ZXJ5ID0gJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9zZWFyY2gvP2FwaT0xJnF1ZXJ5PSc7XG5cbmV4cG9ydCBjb25zdCBtYXBzVXJsID0gKGxvY2F0aW9uPzogeyBsYXQ/OiBudW1iZXI7IGxuZz86IG51bWJlcjsgbmFtZT86IHN0cmluZyB9KSA9PlxuICBsb2NhdGlvbiA/IChcbiAgICBsb2NhdGlvbi5sYXQgJiYgbG9jYXRpb24ubG5nID9cbiAgICAgIGAke21hcHNRdWVyeX0ke2xvY2F0aW9uLmxhdH0sJHtsb2NhdGlvbi5sbmd9YCA6XG4gICAgICAobG9jYXRpb24ubmFtZSA/IGAke21hcHNRdWVyeX0ke2VuY29kZVVSSShsb2NhdGlvbi5uYW1lKX1gIDogdW5kZWZpbmVkKVxuICApIDogdW5kZWZpbmVkO1xuXG5leHBvcnQgY29uc3Qga2V5VG9MYWJlbCA9IChrZXk6IHN0cmluZykgPT5cbiAgYCR7a2V5WzBdLnRvVXBwZXJDYXNlKCl9JHtcbiAgICBrZXkucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywgJyQxICQyJylcbiAgICAgIC5yZXBsYWNlKC8oW19dKShbYS16QS1aXSkvZywgZyA9PiBgICR7Z1sxXS50b1VwcGVyQ2FzZSgpfWApXG4gICAgICAuc3Vic3RyaW5nKDEpXG4gIH1gO1xuXG5leHBvcnQgY29uc3QgdG9EYXNoQ2FzZSA9ICh2YWx1ZT86IHN0cmluZykgPT5cbiAgdmFsdWUgP1xuICAgIHZhbHVlXG4gICAgICAvLyBoYW5kbGUgZGF0ZXMgZm9sbG93ZWQgYnkgY2FwaXRhbCBsZXR0ZXJcbiAgICAgIC5yZXBsYWNlKC8oW1xcZF17NH0pKFtBLVpdezF9KS9nLCBnID0+IGAke2cuc3Vic3RyaW5nKDAsIDQpfS0ke2dbNF0udG9Mb3dlckNhc2UoKX1gKVxuICAgICAgLy8gaGFuZGxlIG1vbGVjdWxlc1xuICAgICAgLnJlcGxhY2UoLyhbXFxkXXsxfVtBLVpdezF9KS9nLCBnID0+IGcudG9Mb3dlckNhc2UoKSlcbiAgICAgIC8vIGhhbmRsZSBhbGwgY2FwaXRhbCBsZXR0ZXJzXG4gICAgICAucmVwbGFjZSgvKFtBLVpdKS9nLCBnID0+IGAtJHtnWzBdLnRvTG93ZXJDYXNlKCl9YClcbiAgICAgIC8vIGhhbmRsZSB5ZWFyc1xuICAgICAgLnJlcGxhY2UoLyhbMC05XXs0fSkvZywgZyA9PiBgLSR7Z31gKSA6XG4gICAgbnVsbDtcblxuY29uc3Qgbm9kZURlZmF1bHRMYWJlbDoge1xuICBbdHlwZSBpbiBOb2RlVHlwZV0/OiAoZGF0YTogSlNPTkxEPGFueT4pID0+IHN0cmluZztcbn0gPSB7XG4gIFtOb2RlVHlwZS5JbXBhY3RBc3Nlc3NtZW50XTogKHsgbmFtZSwgY291bnRyeSwgZW5kRGF0ZSwgcHJvZHVjdCB9OiBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCkgPT5cbiAgICBuYW1lID8gbmFtZS5yZXBsYWNlKGAke3Byb2R1Y3Q/Lm5hbWV9LCBgLCAnJykgOiBbXG4gICAgICBwcm9kdWN0Py5uYW1lLFxuICAgICAgY291bnRyeT8ubmFtZSxcbiAgICAgIGVuZERhdGVcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcsICcpLFxuICBbTm9kZVR5cGUuU2l0ZV06ICh7IG5hbWUsIGRlc2NyaXB0aW9uIH06IElTaXRlSlNPTkxEKSA9PiBuYW1lIHx8IGRlc2NyaXB0aW9uIVxufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMYWJlbCA9IChub2RlPzogYW55KSA9PlxuICBub2RlID8gKFxuICAgIG5vZGVbJ0B0eXBlJ10gaW4gbm9kZURlZmF1bHRMYWJlbCA/IG5vZGVEZWZhdWx0TGFiZWxbbm9kZVsnQHR5cGUnXV0obm9kZSkgOiBub2RlLm5hbWVcbiAgKSB8fCBub2RlWydAaWQnXSB8fCBub2RlLmlkIDogJyc7XG5cbmV4cG9ydCBjb25zdCBpdGVtQ29sb3IgPSAoaW5kZXg6IG51bWJlcikgPT4gZ2V0Q29sb3IoeyB0ZXh0OiBgJHtpbmRleH1gIH0pO1xuXG5leHBvcnQgY29uc3QgbGlzdENvbG9yID0gPFQ+KF92OiBULCBpbmRleDogbnVtYmVyKTogc3RyaW5nID0+IGl0ZW1Db2xvcihpbmRleCk7XG5cbmNvbnN0IHJlZHVjZVZhbHVlcyA9ICh2YWx1ZXM6IGFueVtdKSA9PlxuICB2YWx1ZXMubGVuZ3RoID8gdmFsdWVzLnJlZHVjZSgocCwgdikgPT4gcCArIHByb3BlcnR5VmFsdWUodi52YWx1ZSksIDApIDogdW5kZWZpbmVkO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0RGlmZlZhbHVlcyA9IChvcmlnaW5hbFZhbHVlczogYW55W10gPSBbXSwgcmVjYWxjdWxhdGVkVmFsdWVzOiBhbnlbXSA9IFtdKSA9PiB7XG4gIGNvbnN0IG9yaWdpbmFsVmFsdWVzRmlsdGVyZWQgPSBvcmlnaW5hbFZhbHVlcy5maWx0ZXIoKHZhbHVlKSA9PiAhdmFsdWUuZGVsZXRlZCk7XG4gIGNvbnN0IHJlY2FsY3VsYXRlZFZhbHVlc0ZpbHRlcmVkID0gcmVjYWxjdWxhdGVkVmFsdWVzLmZpbHRlcigodmFsdWUpID0+ICF2YWx1ZS5kZWxldGVkKTtcbiAgY29uc3QgdGVybXMgPSB1bmlxdWUoWy4uLm9yaWdpbmFsVmFsdWVzRmlsdGVyZWQsIC4uLnJlY2FsY3VsYXRlZFZhbHVlc0ZpbHRlcmVkXS5tYXAoKHYpID0+IHYudGVybVsnQGlkJ10pKS5zb3J0KCk7XG4gIGNvbnN0IHZhbHVlcyA9IHRlcm1zLm1hcCgodGVybUlkKSA9PiB7XG4gICAgY29uc3Qgb3JpZ2luYWwgPSBvcmlnaW5hbFZhbHVlc0ZpbHRlcmVkLmZpbHRlcigodikgPT4gdGVybUlkID09PSB2LnRlcm1bJ0BpZCddKTtcbiAgICBjb25zdCByZWNhbGN1bGF0ZWQgPSByZWNhbGN1bGF0ZWRWYWx1ZXNGaWx0ZXJlZC5maWx0ZXIoKHYpID0+IHRlcm1JZCA9PT0gdi50ZXJtWydAaWQnXSk7XG4gICAgY29uc3QgeyB0ZXJtIH0gPSBvcmlnaW5hbFswXSB8fCByZWNhbGN1bGF0ZWRbMF0gfHwgeyB0ZXJtOiB7ICdAaWQnOiB0ZXJtSWQgfSB9O1xuICAgIHJldHVybiB7XG4gICAgICB0ZXJtLFxuICAgICAgb3JpZ2luYWw6IHJlZHVjZVZhbHVlcyhvcmlnaW5hbCksXG4gICAgICByZWNhbGN1bGF0ZWQ6IHJlZHVjZVZhbHVlcyhyZWNhbGN1bGF0ZWQpXG4gICAgfTtcbiAgfSk7XG4gIHJldHVybiB2YWx1ZXM7XG59O1xuXG5leHBvcnQgY29uc3QgZW1wdHlWYWx1ZSA9ICh2YWx1ZTogYW55KSA9PiBpc0VtcHR5KHZhbHVlKSB8fCBpc05hTihwcm9wZXJ0eVZhbHVlKHZhbHVlKSk7XG5cbmV4cG9ydCBjb25zdCByZXBlYXQgPSAodGltZXMgPSAwKSA9PiAoQXJyYXkuZnJvbShBcnJheSh0aW1lcyksIE1hdGgucmFuZG9tKSk7XG5cbmV4cG9ydCBjb25zdCBmaWxlbmFtZVdpdGhvdXRFeHQgPSAoZmlsZW5hbWUgPSAnJykgPT4ge1xuICBjb25zdCBmaWxlID0gZmlsZVRvRXh0KGZpbGVuYW1lLCAnJyk7XG4gIC8vIHJlbW92ZSBsYXN0IC5cbiAgcmV0dXJuIGZpbGUuZW5kc1dpdGgoJy4nKSA/IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGVuZ3RoIC0gMSkgOiBmaWxlO1xufTtcbiJdfQ==
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUNMLFFBQVEsRUFBb0Usa0JBQWtCLEVBQy9GLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLGlDQUFpQyxDQUFDO0FBQ3pELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyx3Q0FBd0MsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBRTlHLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFNUUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUMxQixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUM1Qyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFB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QUNyQyxnQkFBZ0I7SUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDeEUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZ2V0ID0gcmVxdWlyZSgnbG9kYXNoLmdldCcpO1xuaW1wb3J0IHsgZ2V0Q29sb3IgfSBmcm9tICdyYW5kb20tbWF0ZXJpYWwtY29sb3InO1xuaW1wb3J0IHtcbiAgTm9kZVR5cGUsIFRlcm0sIEpTT05MRCwgSUN5Y2xlSlNPTkxELCBJU2l0ZUpTT05MRCwgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIEVtaXNzaW9uTWV0aG9kVGllclxufSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyBmaWxlVG9FeHQgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQgeyBpc0VtcHR5LCB1bmlxdWUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGdpdEhvbWUgPSAnaHR0cHM6Ly9naXRsYWIuY29tL2hlc3RpYS1lYXJ0aCc7XG5leHBvcnQgY29uc3QgZ2l0UmF3QmFzZVVybCA9ICdodHRwczovL2dsY2RuLmdpdGhhY2suY29tL2hlc3RpYS1lYXJ0aCc7XG5leHBvcnQgY29uc3QgZ2l0QnJhbmNoID0gKCkgPT4gWydkZXYnLCAnc3RhZ2luZyddLnNvbWUoZW52ID0+IGJhc2VVcmwoKS5pbmNsdWRlcyhlbnYpKSA/ICdkZXZlbG9wJyA6ICdtYXN0ZXInO1xuXG5leHBvcnQgY29uc3QgaXNDaHJvbWUgPSAoKSA9PiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygnQ2hyb21lJyk7XG5cbmV4cG9ydCBjb25zdCBiYXNlVXJsID0gKCkgPT5cbiAgd2luZG93LmxvY2F0aW9uLm9yaWdpbi5pbmNsdWRlcygnbG9jYWxob3N0JykgP1xuICAgICdodHRwczovL3d3dy1kZXYuaGVzdGlhLmVhcnRoJyA6XG4gICAgd2luZG93LmxvY2F0aW9uLm9yaWdpbi5pbmNsdWRlcygnaGVzdGlhLmVhcnRoJykgP1xuICAgICAgd2luZG93LmxvY2F0aW9uLm9yaWdpbiA6XG4gICAgICAnaHR0cHM6Ly93d3cuaGVzdGlhLmVhcnRoJztcblxuZXhwb3J0IGNvbnN0IGlzRXh0ZXJuYWwgPSAoKSA9PiBiYXNlVXJsKCkgIT09IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG5cbmNvbnN0IHBhcnNlRXJyb3JTdGF0dXMgPSAoZXJyb3I6IGFueSkgPT4gKGVycm9yPy5zdGF0dXNUZXh0IHx8ICcnKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccy9nLCAnLScpO1xuXG5jb25zdCBwYXJzZUVycm9yTWVzc2FnZSA9IChlcnJvcjogYW55KSA9PlxuICBnZXQoZXJyb3IsICdlcnJvci5lcnJvcicsIGdldChlcnJvciwgJ2Vycm9yLm1lc3NhZ2UnLCBnZXQoZXJyb3IsICdlcnJvcicsIGdldChlcnJvciwgJ21lc3NhZ2UnLCBlcnJvcikpKSk7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVBUElFcnJvciA9IChlcnJvcjogYW55KSA9PiB7XG4gIHRyeSB7XG4gICAgZXJyb3IgPSBwYXJzZUVycm9yTWVzc2FnZShlcnJvcik7XG4gIH1cbiAgY2F0Y2ggKF8pIHsgfVxuICB0aHJvdyBlcnJvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBlcnJvclRleHQgPSAoZXJyb3I6IGFueSk6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2YgZXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGVycm9yO1xuICB9XG4gIGNvbnN0IGVyciA9IHBhcnNlRXJyb3JNZXNzYWdlKGVycm9yKTtcbiAgcmV0dXJuIHBhcnNlRXJyb3JTdGF0dXMoZXJyKSB8fCBlcnI7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyUGFyYW1zID0gKG9iajogYW55KSA9PiB7XG4gIGNvbnN0IHJlczoge1xuICAgIFt4OiBzdHJpbmddOiBzdHJpbmc7XG4gIH0gPSB7fTtcbiAgT2JqZWN0LmtleXMob2JqKS5zb3J0KCkuZm9yRWFjaChrZXkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV07XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgcmVzW2tleV0gPSBgJHt2YWx1ZX1gO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXM7XG59O1xuXG5leHBvcnQgY29uc3Qgd2FpdEZvciA9ICh2YXJpYWJsZTogc3RyaW5nLCBjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4ge1xuICBpZiAodmFyaWFibGUgaW4gd2luZG93KSB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gIH1cbiAgc2V0VGltZW91dCgoKSA9PiB3YWl0Rm9yKHZhcmlhYmxlLCBjYWxsYmFjayksIDEwMCk7XG59O1xuXG5leHBvcnQgY29uc3QgYm90dG9tID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuXG5leHBvcnQgY29uc3QgaXNTY3JvbGxlZEJlbG93ID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBlbGVtZW50ID8gd2luZG93LnNjcm9sbFkgPiBib3R0b20oZWxlbWVudCkgOiBmYWxzZTtcblxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvRWwgPSAoaWQ6IHN0cmluZywgcmV0cmllcyA9IDApID0+IHtcbiAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG4gIHNldFRpbWVvdXQoKCkgPT4gZWwgPyBlbC5zY3JvbGxJbnRvVmlldygpIDogKHJldHJpZXMgPCAxMCA/IHNjcm9sbFRvRWwoaWQsIHJldHJpZXMgKyAxKSA6IG51bGwpLCAxMDApO1xufTtcblxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvcCA9ICgpID0+IHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcblxuZXhwb3J0IGNvbnN0IHNhZmVKU09OUGFyc2UgPSA8VD4odmFsdWU6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogYW55KSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKHZhbHVlKSBhcyBUIDogdmFsdWU7XG4gIH1cbiAgY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBzYWZlSlNPTlN0cmluZ2lmeSA9ICh2YWx1ZTogc3RyaW5nKSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG5cbmV4cG9ydCBjb25zdCBhcnJheVZhbHVlID0gKHZhbHVlczogYW55W10sIGlzQXZlcmFnZTogYm9vbGVhbikgPT5cbiAgKHZhbHVlcyB8fCBbXSkucmVkdWNlKChwcmV2OiBudW1iZXIsIGN1cnIpID0+IHByZXYgKyBwYXJzZUZsb2F0KGAke2N1cnJ9YCksIDApIC8gKGlzQXZlcmFnZSA/IHZhbHVlcy5sZW5ndGggOiAxKTtcblxuZXhwb3J0IGNvbnN0IHByb3BlcnR5VmFsdWUgPSAodmFsdWU6IHN0cmluZyB8IG51bWJlciB8ICgoc3RyaW5nIHwgbnVtYmVyKVtdKSwgaXNBdmVyYWdlID0gZmFsc2UpOiBudW1iZXIgPT5cbiAgdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZSA9PT0gbnVsbCA/XG4gICAgbnVsbCBhcyBhbnkgOlxuICAgIChcbiAgICAgIEFycmF5LmlzQXJyYXkodmFsdWUpID8gYXJyYXlWYWx1ZSh2YWx1ZSwgaXNBdmVyYWdlKSA6IHBhcnNlRmxvYXQoYCR7dmFsdWV9YClcbiAgICApO1xuXG5leHBvcnQgY29uc3QgZGF0YVZhbHVlID0gKGRhdGE6IGFueSwgaW5kZXg6IG51bWJlciwgcHJvcGVydHk6IHN0cmluZykgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBwcm9wZXJ0eVZhbHVlKGRhdGFbcHJvcGVydHldW2luZGV4XS52YWx1ZSk7XG4gIH1cbiAgY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZTxUPiB7XG4gIG5vZGVzOiBUW107XG4gIGluZGV4OiBudW1iZXI7XG4gIHZhbHVlOiBudW1iZXJbXTtcbiAgZGF0ZXM/OiBhbnlbXTtcbiAgc2Q/OiBudW1iZXJbXTtcbiAgbWluPzogbnVtYmVyW107XG4gIG1heD86IG51bWJlcltdO1xuICBpbnB1dHM/OiBhbnlbXTtcbiAgZGVwdGhVcHBlcj86IG51bWJlcltdO1xuICBkZXB0aExvd2VyPzogbnVtYmVyW107XG4gIHN0YXJ0RGF0ZT86IHN0cmluZ1tdO1xuICBlbmREYXRlPzogc3RyaW5nW107XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGVkTm9kZXNWYWx1ZXM8VD4ge1xuICBbbm9kZUlkOiBzdHJpbmddOiBJR3JvdXBlZE5vZGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2Rlc1ZhbHVlPFQ+IHtcbiAgdGVybTogVGVybTtcbiAgLyoqXG4gICAqIEVuYWJsZSBvcmRlcmluZyBueSBtZXRob2RUaWVyXG4gICAqL1xuICBtZXRob2RUaWVyT3JkZXI6IG51bWJlcjtcbiAgdmFsdWVzOiBJR3JvdXBlZE5vZGVzVmFsdWVzPFQ+O1xuICBvcmlnaW5hbFZhbHVlczoge1xuICAgIFtub2RlSWQ6IHN0cmluZ106IHtcbiAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyb3VwZWROb2RlczxUPiB7XG4gIFt0ZXJtSWQ6IHN0cmluZ106IElHcm91cGVkTm9kZXNWYWx1ZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JvdXBlZEtleXM8VD4ge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IElHcm91cGVkTm9kZXNWYWx1ZTxUPjtcbn1cblxuZXhwb3J0IGNvbnN0IGdyb3VwcGVkS2V5cyA9IDxUPih2YWx1ZXM6IElHcm91cGVkTm9kZXM8VD4pOiBJR3JvdXBlZEtleXM8VD5bXSA9PlxuICBPYmplY3QuZW50cmllcyh2YWx1ZXMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiAoeyBrZXksIHZhbHVlIH0pKTtcblxuY29uc3QgY29uY2F0QmxhbmtOb2RlVmFsdWUgPSAodmFsdWU6IGFueSwgbmV3VmFsdWU6IGFueSkgPT4ge1xuICBjb25zdCB2YWx1ZUFycmF5ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gIGNvbnN0IG5ld1ZhbHVlQXJyYXkgPSBBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSA/IG5ld1ZhbHVlIDogW25ld1ZhbHVlXTtcbiAgcmV0dXJuIFsuLi52YWx1ZUFycmF5LCAuLi5uZXdWYWx1ZUFycmF5XTtcbn07XG5cbmNvbnN0IG1ldGhvZFRpZXJPcmRlciA9IChtZXRob2RUaWVyOiBFbWlzc2lvbk1ldGhvZFRpZXIpID0+IFtcbiAgRW1pc3Npb25NZXRob2RUaWVyLm1lYXN1cmVkLFxuICBFbWlzc2lvbk1ldGhvZFRpZXJbJ3RpZXIgMyddLFxuICBFbWlzc2lvbk1ldGhvZFRpZXJbJ3RpZXIgMiddLFxuICBFbWlzc2lvbk1ldGhvZFRpZXJbJ3RpZXIgMSddLFxuICBFbWlzc2lvbk1ldGhvZFRpZXIuYmFja2dyb3VuZFxuXS5pbmRleE9mKG1ldGhvZFRpZXIpO1xuXG5jb25zdCBpc01ldGhvZE1vZGVsQWxsb3dlZCA9IChub2RlOiBhbnksIGZpbHRlck1ldGhvZD86IFRlcm0pID0+XG4gICFmaWx0ZXJNZXRob2QgfHwgIW5vZGVbJ21ldGhvZE1vZGVsJ10gfHwgbm9kZVsnbWV0aG9kTW9kZWwnXVsnQGlkJ10gPT09IGZpbHRlck1ldGhvZFsnQGlkJ107XG5cbmV4cG9ydCBjb25zdCBncm91cHBlZFZhbHVlS2V5cyA9IFtcbiAgJ2RhdGVzJywgJ3NkJywgJ21pbicsICdtYXgnLCAnaW5wdXRzJywgJ2RlcHRoVXBwZXInLCAnZGVwdGhMb3dlcicsICdzdGFydERhdGUnLCAnZW5kRGF0ZScsXG4gICdtZXRob2RUaWVyJywgJ21ldGhvZE1vZGVsJ1xuXTtcblxuZXhwb3J0IGNvbnN0IGdyb3VwTm9kZXNCeVRlcm0gPSA8VCBleHRlbmRzIElDeWNsZUpTT05MRCB8IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxEIHwgSVNpdGVKU09OTEQsIFI+KFxuICBub2RlczogVFtdID0gW10sXG4gIGtleTogJ2ltcGFjdHMnIHwgJ2VtaXNzaW9uc1Jlc291cmNlVXNlJyB8ICdpbnB1dHMnIHwgJ3Byb2R1Y3RzJyB8ICdwcmFjdGljZXMnIHwgJ2VtaXNzaW9ucycgfCAnbWVhc3VyZW1lbnRzJyxcbiAgb3JpZ2luYWxWYWx1ZXM6IFRbXSA9IFtdLFxuICBmaWx0ZXJNZXRob2Q/OiBUZXJtXG4pOiBJR3JvdXBlZE5vZGVzPFI+ID0+IHtcbiAgY29uc3QgZ3JvdXBzOiBJR3JvdXBlZE5vZGVzPFI+ID0gbm9kZXMucmVkdWNlKChwcmV2LCBub2RlLCBpbmRleCkgPT4gKG5vZGVba2V5XSB8fCBbXSkucmVkdWNlKChncm91cCwgYmxhbmtOb2RlKSA9PiB7XG4gICAgaWYgKCFpc01ldGhvZE1vZGVsQWxsb3dlZChibGFua05vZGUsIGZpbHRlck1ldGhvZCkpIHtcbiAgICAgIHJldHVybiBncm91cDtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlSWQgPSBub2RlWydAaWQnXTtcbiAgICBjb25zdCB0ZXJtSWQgPSBibGFua05vZGUudGVybVsnQGlkJ107XG4gICAgZ3JvdXBbdGVybUlkXSA9IGdyb3VwW3Rlcm1JZF0gfHwge1xuICAgICAgdGVybTogYmxhbmtOb2RlLnRlcm0sXG4gICAgICBtZXRob2RUaWVyT3JkZXI6IG1ldGhvZFRpZXJPcmRlcihibGFua05vZGUubWV0aG9kVGllciksXG4gICAgICB2YWx1ZXM6IHt9LFxuICAgICAgb3JpZ2luYWxWYWx1ZXM6IHt9XG4gICAgfTtcbiAgICBncm91cFt0ZXJtSWRdLnZhbHVlc1tub2RlSWRdID0gZ3JvdXBbdGVybUlkXS52YWx1ZXNbbm9kZUlkXSB8fCB7IGluZGV4LCBub2RlczogW10sIHZhbHVlOiBbXSB9O1xuICAgIGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF0ubm9kZXMucHVzaChibGFua05vZGUpO1xuICAgIGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF0udmFsdWUgPSBjb25jYXRCbGFua05vZGVWYWx1ZShcbiAgICAgIGdyb3VwW3Rlcm1JZF0udmFsdWVzW25vZGVJZF0udmFsdWUsXG4gICAgICBibGFua05vZGUudmFsdWVcbiAgICApO1xuICAgIGdyb3VwcGVkVmFsdWVLZXlzLmZvckVhY2goYXJyYXlLZXkgPT4ge1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBnZXQoYmxhbmtOb2RlLCBhcnJheUtleSwgW10pO1xuICAgICAgZ3JvdXBbdGVybUlkXS52YWx1ZXNbbm9kZUlkXVthcnJheUtleV0gPSBbXG4gICAgICAgIC4uLihncm91cFt0ZXJtSWRdLnZhbHVlc1tub2RlSWRdW2FycmF5S2V5XSB8fCBbXSksXG4gICAgICAgIC4uLihBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSA/IG5ld1ZhbHVlIDogW25ld1ZhbHVlXSlcbiAgICAgIF07XG4gICAgfSk7XG4gICAgcmV0dXJuIGdyb3VwO1xuICB9LCBwcmV2KSwge30gYXMgSUdyb3VwZWROb2RlczxSPik7XG5cbiAgLy8gY29tcGlsZSBvcmlnaW5hbCB2YWx1ZXNcbiAgT2JqZWN0LnZhbHVlcyhncm91cHMpLm1hcChncm91cCA9PiB7XG4gICAgT2JqZWN0LmtleXMoZ3JvdXAudmFsdWVzKS5tYXAobm9kZUlkID0+IHtcbiAgICAgIGNvbnN0IHsgaW5kZXggfSA9IGdyb3VwLnZhbHVlc1tub2RlSWRdO1xuICAgICAgY29uc3QgdGVybUlkID0gZ3JvdXAudGVybVsnQGlkJ107XG4gICAgICBjb25zdCBvcmlnaW5hbFZhbHVlID0gZ2V0KG9yaWdpbmFsVmFsdWVzLCBgWyR7aW5kZXh9XS4ke2tleX1gLCBbXSkuZmlsdGVyKCh2YWw6IGFueSkgPT4gdmFsLnRlcm1bJ0BpZCddID09PSB0ZXJtSWQpO1xuICAgICAgaWYgKG9yaWdpbmFsVmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IG9yaWdpbmFsVmFsdWUucmVkdWNlKChhcnJheTogYW55W10sIGN1cnI6IGFueSkgPT4gY29uY2F0QmxhbmtOb2RlVmFsdWUoXG4gICAgICAgICAgYXJyYXksXG4gICAgICAgICAgY3Vyci52YWx1ZVxuICAgICAgICApLCBbXSk7XG4gICAgICAgIGdyb3VwLm9yaWdpbmFsVmFsdWVzW25vZGVJZF0gPSB7IHZhbHVlOiBwcm9wZXJ0eVZhbHVlKHZhbHVlKSB9O1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gZ3JvdXBzO1xufTtcblxuZXhwb3J0IGNvbnN0IGVsbGlwc2lzID0gKHRleHQgPSAnJywgbWF4bGVuZ3RoID0gMjApID0+XG4gIHRleHQubGVuZ3RoID4gbWF4bGVuZ3RoID8gYCR7dGV4dC5zdWJzdHJpbmcoMCwgbWF4bGVuZ3RoKX0uLi5gIDogdGV4dDtcblxuY29uc3QgbWFwc1F1ZXJ5ID0gJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9zZWFyY2gvP2FwaT0xJnF1ZXJ5PSc7XG5cbmV4cG9ydCBjb25zdCBtYXBzVXJsID0gKGxvY2F0aW9uPzogeyBsYXQ/OiBudW1iZXI7IGxuZz86IG51bWJlcjsgbmFtZT86IHN0cmluZyB9KSA9PlxuICBsb2NhdGlvbiA/IChcbiAgICBsb2NhdGlvbi5sYXQgJiYgbG9jYXRpb24ubG5nID9cbiAgICAgIGAke21hcHNRdWVyeX0ke2xvY2F0aW9uLmxhdH0sJHtsb2NhdGlvbi5sbmd9YCA6XG4gICAgICAobG9jYXRpb24ubmFtZSA/IGAke21hcHNRdWVyeX0ke2VuY29kZVVSSShsb2NhdGlvbi5uYW1lKX1gIDogdW5kZWZpbmVkKVxuICApIDogdW5kZWZpbmVkO1xuXG5leHBvcnQgY29uc3Qga2V5VG9MYWJlbCA9IChrZXk6IHN0cmluZykgPT5cbiAgYCR7a2V5WzBdLnRvVXBwZXJDYXNlKCl9JHtcbiAgICBrZXkucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywgJyQxICQyJylcbiAgICAgIC5yZXBsYWNlKC8oW19dKShbYS16QS1aXSkvZywgZyA9PiBgICR7Z1sxXS50b1VwcGVyQ2FzZSgpfWApXG4gICAgICAuc3Vic3RyaW5nKDEpXG4gIH1gO1xuXG5leHBvcnQgY29uc3QgdG9EYXNoQ2FzZSA9ICh2YWx1ZT86IHN0cmluZykgPT5cbiAgdmFsdWUgP1xuICAgIHZhbHVlXG4gICAgICAvLyBoYW5kbGUgZGF0ZXMgZm9sbG93ZWQgYnkgY2FwaXRhbCBsZXR0ZXJcbiAgICAgIC5yZXBsYWNlKC8oW1xcZF17NH0pKFtBLVpdezF9KS9nLCBnID0+IGAke2cuc3Vic3RyaW5nKDAsIDQpfS0ke2dbNF0udG9Mb3dlckNhc2UoKX1gKVxuICAgICAgLy8gaGFuZGxlIG1vbGVjdWxlc1xuICAgICAgLnJlcGxhY2UoLyhbXFxkXXsxfVtBLVpdezF9KS9nLCBnID0+IGcudG9Mb3dlckNhc2UoKSlcbiAgICAgIC8vIGhhbmRsZSBhbGwgY2FwaXRhbCBsZXR0ZXJzXG4gICAgICAucmVwbGFjZSgvKFtBLVpdKS9nLCBnID0+IGAtJHtnWzBdLnRvTG93ZXJDYXNlKCl9YClcbiAgICAgIC8vIGhhbmRsZSB5ZWFyc1xuICAgICAgLnJlcGxhY2UoLyhbMC05XXs0fSkvZywgZyA9PiBgLSR7Z31gKSA6XG4gICAgbnVsbDtcblxuY29uc3Qgbm9kZURlZmF1bHRMYWJlbDoge1xuICBbdHlwZSBpbiBOb2RlVHlwZV0/OiAoZGF0YTogSlNPTkxEPGFueT4pID0+IHN0cmluZztcbn0gPSB7XG4gIFtOb2RlVHlwZS5JbXBhY3RBc3Nlc3NtZW50XTogKHsgbmFtZSwgY291bnRyeSwgZW5kRGF0ZSwgcHJvZHVjdCB9OiBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCkgPT5cbiAgICBuYW1lID8gbmFtZS5yZXBsYWNlKGAke3Byb2R1Y3Q/Lm5hbWV9LCBgLCAnJykgOiBbXG4gICAgICBwcm9kdWN0Py5uYW1lLFxuICAgICAgY291bnRyeT8ubmFtZSxcbiAgICAgIGVuZERhdGVcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcsICcpLFxuICBbTm9kZVR5cGUuU2l0ZV06ICh7IG5hbWUsIGRlc2NyaXB0aW9uIH06IElTaXRlSlNPTkxEKSA9PiBuYW1lIHx8IGRlc2NyaXB0aW9uIVxufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMYWJlbCA9IChub2RlPzogYW55KSA9PlxuICBub2RlID8gKFxuICAgIG5vZGVbJ0B0eXBlJ10gaW4gbm9kZURlZmF1bHRMYWJlbCA/IG5vZGVEZWZhdWx0TGFiZWxbbm9kZVsnQHR5cGUnXV0obm9kZSkgOiBub2RlLm5hbWVcbiAgKSB8fCBub2RlWydAaWQnXSB8fCBub2RlLmlkIDogJyc7XG5cbmV4cG9ydCBjb25zdCBpdGVtQ29sb3IgPSAoaW5kZXg6IG51bWJlcikgPT4gZ2V0Q29sb3IoeyB0ZXh0OiBgJHtpbmRleH1gIH0pO1xuXG5leHBvcnQgY29uc3QgbGlzdENvbG9yID0gPFQ+KF92OiBULCBpbmRleDogbnVtYmVyKTogc3RyaW5nID0+IGl0ZW1Db2xvcihpbmRleCk7XG5cbmNvbnN0IHJlZHVjZVZhbHVlcyA9ICh2YWx1ZXM6IGFueVtdKSA9PlxuICB2YWx1ZXMubGVuZ3RoID8gdmFsdWVzLnJlZHVjZSgocCwgdikgPT4gcCArIHByb3BlcnR5VmFsdWUodi52YWx1ZSksIDApIDogdW5kZWZpbmVkO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0RGlmZlZhbHVlcyA9IChvcmlnaW5hbFZhbHVlczogYW55W10gPSBbXSwgcmVjYWxjdWxhdGVkVmFsdWVzOiBhbnlbXSA9IFtdKSA9PiB7XG4gIGNvbnN0IG9yaWdpbmFsVmFsdWVzRmlsdGVyZWQgPSBvcmlnaW5hbFZhbHVlcy5maWx0ZXIoKHZhbHVlKSA9PiAhdmFsdWUuZGVsZXRlZCk7XG4gIGNvbnN0IHJlY2FsY3VsYXRlZFZhbHVlc0ZpbHRlcmVkID0gcmVjYWxjdWxhdGVkVmFsdWVzLmZpbHRlcigodmFsdWUpID0+ICF2YWx1ZS5kZWxldGVkKTtcbiAgY29uc3QgdGVybXMgPSB1bmlxdWUoWy4uLm9yaWdpbmFsVmFsdWVzRmlsdGVyZWQsIC4uLnJlY2FsY3VsYXRlZFZhbHVlc0ZpbHRlcmVkXS5tYXAoKHYpID0+IHYudGVybVsnQGlkJ10pKS5zb3J0KCk7XG4gIGNvbnN0IHZhbHVlcyA9IHRlcm1zLm1hcCgodGVybUlkKSA9PiB7XG4gICAgY29uc3Qgb3JpZ2luYWwgPSBvcmlnaW5hbFZhbHVlc0ZpbHRlcmVkLmZpbHRlcigodikgPT4gdGVybUlkID09PSB2LnRlcm1bJ0BpZCddKTtcbiAgICBjb25zdCByZWNhbGN1bGF0ZWQgPSByZWNhbGN1bGF0ZWRWYWx1ZXNGaWx0ZXJlZC5maWx0ZXIoKHYpID0+IHRlcm1JZCA9PT0gdi50ZXJtWydAaWQnXSk7XG4gICAgY29uc3QgeyB0ZXJtIH0gPSBvcmlnaW5hbFswXSB8fCByZWNhbGN1bGF0ZWRbMF0gfHwgeyB0ZXJtOiB7ICdAaWQnOiB0ZXJtSWQgfSB9O1xuICAgIHJldHVybiB7XG4gICAgICB0ZXJtLFxuICAgICAgb3JpZ2luYWw6IHJlZHVjZVZhbHVlcyhvcmlnaW5hbCksXG4gICAgICByZWNhbGN1bGF0ZWQ6IHJlZHVjZVZhbHVlcyhyZWNhbGN1bGF0ZWQpXG4gICAgfTtcbiAgfSk7XG4gIHJldHVybiB2YWx1ZXM7XG59O1xuXG5leHBvcnQgY29uc3QgZW1wdHlWYWx1ZSA9ICh2YWx1ZTogYW55KSA9PiBpc0VtcHR5KHZhbHVlKSB8fCBpc05hTihwcm9wZXJ0eVZhbHVlKHZhbHVlKSk7XG5cbmV4cG9ydCBjb25zdCByZXBlYXQgPSAodGltZXMgPSAwKSA9PiAoQXJyYXkuZnJvbShBcnJheSh0aW1lcyksIE1hdGgucmFuZG9tKSk7XG5cbmV4cG9ydCBjb25zdCBmaWxlbmFtZVdpdGhvdXRFeHQgPSAoZmlsZW5hbWUgPSAnJykgPT4ge1xuICBjb25zdCBmaWxlID0gZmlsZVRvRXh0KGZpbGVuYW1lLCAnJyk7XG4gIC8vIHJlbW92ZSBsYXN0IC5cbiAgcmV0dXJuIGZpbGUuZW5kc1dpdGgoJy4nKSA/IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGVuZ3RoIC0gMSkgOiBmaWxlO1xufTtcbiJdfQ==
|