@hestia-earth/ui-components 0.0.19 → 0.0.22
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 +183 -452
- package/bundles/hestia-earth-ui-components.umd.js.map +1 -1
- package/cycles/cycles-activity/cycles-activity.component.d.ts +4 -2
- package/cycles/cycles-completeness/cycles-completeness.component.d.ts +3 -1
- package/cycles/cycles-emissions/cycles-emissions.component.d.ts +3 -11
- package/cycles/cycles-emissions-chart/cycles-emissions-chart.component.d.ts +2 -1
- package/cycles/cycles-practices/cycles-practices.component.d.ts +3 -11
- package/cycles/cycles-result/cycles-result.component.d.ts +3 -1
- package/cycles/cycles.module.d.ts +5 -6
- package/cycles/index.d.ts +0 -1
- package/esm2015/cycles/cycles-activity/cycles-activity.component.js +17 -23
- package/esm2015/cycles/cycles-completeness/cycles-completeness.component.js +8 -2
- package/esm2015/cycles/cycles-emissions/cycles-emissions.component.js +17 -56
- package/esm2015/cycles/cycles-emissions-chart/cycles-emissions-chart.component.js +18 -8
- package/esm2015/cycles/cycles-practices/cycles-practices.component.js +16 -55
- package/esm2015/cycles/cycles-result/cycles-result.component.js +19 -6
- package/esm2015/cycles/cycles.module.js +4 -8
- package/esm2015/cycles/index.js +1 -2
- package/esm2015/files/files-error.model.js +3 -3
- package/esm2015/files/files-form/files-form.component.js +1 -1
- package/esm2015/impact-assessments/impact-assessments-indicators-chart/impact-assessments-indicators-chart.component.js +24 -54
- package/esm2015/impact-assessments/impact-assessments-products/impact-assessments-products.component.js +30 -131
- package/esm2015/node/node-csv-select-headers/node-csv-select-headers.component.js +11 -7
- package/esm2015/sites/sites-maps/sites-maps.component.js +10 -3
- package/esm2015/sites/sites-measurements/sites-measurements.component.js +8 -2
- package/fesm2015/hestia-earth-ui-components.js +125 -350
- package/fesm2015/hestia-earth-ui-components.js.map +1 -1
- package/impact-assessments/impact-assessments-indicators-chart/impact-assessments-indicators-chart.component.d.ts +5 -8
- package/impact-assessments/impact-assessments-products/impact-assessments-products.component.d.ts +5 -30
- package/node/node-csv-select-headers/node-csv-select-headers.component.d.ts +9 -3
- package/package.json +1 -1
- package/sites/sites-maps/sites-maps.component.d.ts +3 -1
- package/sites/sites-measurements/sites-measurements.component.d.ts +3 -1
- package/cycles/cycles-suggest-form/cycles-suggest-form.component.d.ts +0 -23
- package/esm2015/cycles/cycles-suggest-form/cycles-suggest-form.component.js +0 -83
|
@@ -10,10 +10,12 @@ declare enum View {
|
|
|
10
10
|
export declare class CyclesActivityComponent implements OnChanges {
|
|
11
11
|
originalValues: ICycleJSONLD[];
|
|
12
12
|
cycles: ICycleJSONLD[];
|
|
13
|
+
selected: string[];
|
|
13
14
|
dataState?: DataState;
|
|
14
15
|
enableCompare: boolean;
|
|
15
16
|
baseUrl: string;
|
|
16
17
|
propertyValue: (value: string | number | (string | number)[], termId?: string) => number;
|
|
18
|
+
defaultLabel: (node?: any) => any;
|
|
17
19
|
showDownload: boolean;
|
|
18
20
|
View: typeof View;
|
|
19
21
|
selectedView: View;
|
|
@@ -24,8 +26,8 @@ export declare class CyclesActivityComponent implements OnChanges {
|
|
|
24
26
|
get isOriginal(): boolean;
|
|
25
27
|
private update;
|
|
26
28
|
togglePopover(popover: any, context: any): any;
|
|
27
|
-
|
|
29
|
+
isSelected(cycle: ICycleJSONLD): boolean;
|
|
28
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<CyclesActivityComponent, never>;
|
|
29
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesActivityComponent, "he-cycles-activity", never, { "originalValues": "originalValues"; "cycles": "cycles"; "dataState": "dataState"; "enableCompare": "enableCompare"; }, {}, never, never>;
|
|
31
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesActivityComponent, "he-cycles-activity", never, { "originalValues": "originalValues"; "cycles": "cycles"; "selected": "selected"; "dataState": "dataState"; "enableCompare": "enableCompare"; }, {}, never, never>;
|
|
30
32
|
}
|
|
31
33
|
export {};
|
|
@@ -3,12 +3,14 @@ import { ICycleJSONLD } from '@hestia-earth/schema';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class CyclesCompletenessComponent {
|
|
5
5
|
cycles: ICycleJSONLD[];
|
|
6
|
+
private selected;
|
|
6
7
|
dataState?: DataState;
|
|
7
8
|
baseUrl: string;
|
|
8
9
|
defaultLabel: (node?: any) => any;
|
|
9
10
|
keyToLabel: (key: string) => string;
|
|
10
11
|
trackById(_index: number, item: ICycleJSONLD): string;
|
|
11
12
|
get completenessKeys(): string[];
|
|
13
|
+
isSelected(cycle: ICycleJSONLD): boolean;
|
|
12
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<CyclesCompletenessComponent, never>;
|
|
13
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesCompletenessComponent, "he-cycles-completeness", never, { "cycles": "cycles"; "dataState": "dataState"; }, {}, never, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesCompletenessComponent, "he-cycles-completeness", never, { "cycles": "cycles"; "selected": "selected"; "dataState": "dataState"; }, {}, never, never>;
|
|
14
16
|
}
|
|
@@ -11,30 +11,22 @@ declare enum View {
|
|
|
11
11
|
export declare class CyclesEmissionsComponent implements OnChanges {
|
|
12
12
|
originalValues: ICycleJSONLD[];
|
|
13
13
|
cycles: ICycleJSONLD[];
|
|
14
|
+
selected: string[];
|
|
14
15
|
dataState?: DataState;
|
|
15
|
-
enableCompare: boolean;
|
|
16
16
|
baseUrl: string;
|
|
17
17
|
propertyValue: (value: string | number | (string | number)[], termId?: string) => number;
|
|
18
|
-
|
|
18
|
+
defaultLabel: (node?: any) => any;
|
|
19
19
|
showDownload: boolean;
|
|
20
20
|
View: typeof View;
|
|
21
21
|
selectedView: View;
|
|
22
|
-
selectedCycles: ICycleJSONLD[];
|
|
23
22
|
emissions: IGroupedKeys<Emission>[];
|
|
24
23
|
ngOnChanges(changes: SimpleChanges): void;
|
|
25
24
|
trackById(_index: number, item: ICycleJSONLD): string;
|
|
26
25
|
get isOriginal(): boolean;
|
|
27
26
|
private update;
|
|
28
27
|
togglePopover(popover: any, context: any): any;
|
|
29
|
-
addCycle(cycle: ICycleJSONLD): Promise<void>;
|
|
30
|
-
private selectAllCycles;
|
|
31
|
-
private unselectAllCycles;
|
|
32
|
-
toggleAllCycles(): void;
|
|
33
|
-
private selectCycle;
|
|
34
|
-
private unselectCycle;
|
|
35
|
-
toggleCycle(cycle: ICycleJSONLD): void;
|
|
36
28
|
isSelected(cycle: ICycleJSONLD): boolean;
|
|
37
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<CyclesEmissionsComponent, never>;
|
|
38
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesEmissionsComponent, "he-cycles-emissions", never, { "originalValues": "originalValues"; "cycles": "cycles"; "
|
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesEmissionsComponent, "he-cycles-emissions", never, { "originalValues": "originalValues"; "cycles": "cycles"; "selected": "selected"; "dataState": "dataState"; }, {}, never, never>;
|
|
39
31
|
}
|
|
40
32
|
export {};
|
|
@@ -6,6 +6,7 @@ export declare class CyclesEmissionsChartComponent implements AfterViewInit, OnC
|
|
|
6
6
|
private chartRef?;
|
|
7
7
|
private chart;
|
|
8
8
|
private cycles;
|
|
9
|
+
private selected;
|
|
9
10
|
emissionPerCycle: IGroupedNodes<Emission>;
|
|
10
11
|
terms: ITermJSONLD[];
|
|
11
12
|
selectedTerm?: ITermJSONLD;
|
|
@@ -14,5 +15,5 @@ export declare class CyclesEmissionsChartComponent implements AfterViewInit, OnC
|
|
|
14
15
|
private init;
|
|
15
16
|
updateChart(): void;
|
|
16
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<CyclesEmissionsChartComponent, never>;
|
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesEmissionsChartComponent, "he-cycles-emissions-chart", never, { "cycles": "cycles"; }, {}, never, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesEmissionsChartComponent, "he-cycles-emissions-chart", never, { "cycles": "cycles"; "selected": "selected"; }, {}, never, never>;
|
|
18
19
|
}
|
|
@@ -10,30 +10,22 @@ declare enum View {
|
|
|
10
10
|
export declare class CyclesPracticesComponent implements OnChanges {
|
|
11
11
|
originalValues: ICycleJSONLD[];
|
|
12
12
|
cycles: ICycleJSONLD[];
|
|
13
|
+
selected: string[];
|
|
13
14
|
dataState?: DataState;
|
|
14
|
-
enableCompare: boolean;
|
|
15
15
|
baseUrl: string;
|
|
16
16
|
propertyValue: (value: string | number | (string | number)[], termId?: string) => number;
|
|
17
|
-
|
|
17
|
+
defaultLabel: (node?: any) => any;
|
|
18
18
|
showDownload: boolean;
|
|
19
19
|
View: typeof View;
|
|
20
20
|
selectedView: View;
|
|
21
|
-
selectedCycles: ICycleJSONLD[];
|
|
22
21
|
practices: IGroupedKeys<Practice>[];
|
|
23
22
|
ngOnChanges(changes: SimpleChanges): void;
|
|
24
23
|
trackById(_index: number, item: ICycleJSONLD): string;
|
|
25
24
|
get isOriginal(): boolean;
|
|
26
25
|
private update;
|
|
27
26
|
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
27
|
isSelected(cycle: ICycleJSONLD): boolean;
|
|
36
28
|
static ɵfac: i0.ɵɵFactoryDeclaration<CyclesPracticesComponent, never>;
|
|
37
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesPracticesComponent, "he-cycles-practices", never, { "originalValues": "originalValues"; "cycles": "cycles"; "
|
|
29
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesPracticesComponent, "he-cycles-practices", never, { "originalValues": "originalValues"; "cycles": "cycles"; "selected": "selected"; "dataState": "dataState"; }, {}, never, never>;
|
|
38
30
|
}
|
|
39
31
|
export {};
|
|
@@ -4,10 +4,12 @@ export declare class CyclesResultComponent implements AfterViewInit, OnChanges {
|
|
|
4
4
|
private chartRef?;
|
|
5
5
|
private chart;
|
|
6
6
|
private cycles;
|
|
7
|
+
private selected;
|
|
7
8
|
ngAfterViewInit(): void;
|
|
8
9
|
ngOnChanges(changes: SimpleChanges): void;
|
|
10
|
+
private isSelected;
|
|
9
11
|
private init;
|
|
10
12
|
private updateChart;
|
|
11
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<CyclesResultComponent, never>;
|
|
12
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesResultComponent, "he-cycles-result", never, { "cycles": "cycles"; }, {}, never, never>;
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesResultComponent, "he-cycles-result", never, { "cycles": "cycles"; "selected": "selected"; }, {}, never, never>;
|
|
13
15
|
}
|
|
@@ -9,13 +9,12 @@ import * as i7 from "./cycles-functional-unit-measure/cycles-functional-unit-mea
|
|
|
9
9
|
import * as i8 from "./cycles-practices/cycles-practices.component";
|
|
10
10
|
import * as i9 from "./cycles-practices-logs/cycles-practices-logs.component";
|
|
11
11
|
import * as i10 from "./cycles-result/cycles-result.component";
|
|
12
|
-
import * as i11 from "
|
|
13
|
-
import * as i12 from "@angular/
|
|
14
|
-
import * as i13 from "
|
|
15
|
-
import * as i14 from "../
|
|
16
|
-
import * as i15 from "../node/node.module";
|
|
12
|
+
import * as i11 from "@angular/common";
|
|
13
|
+
import * as i12 from "@angular/forms";
|
|
14
|
+
import * as i13 from "../common/common.module";
|
|
15
|
+
import * as i14 from "../node/node.module";
|
|
17
16
|
export declare class HeCyclesModule {
|
|
18
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<HeCyclesModule, never>;
|
|
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
|
|
18
|
+
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.CommonModule, typeof i12.FormsModule, typeof i12.ReactiveFormsModule, typeof i13.HeCommonModule, typeof i14.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]>;
|
|
20
19
|
static ɵinj: i0.ɵɵInjectorDeclaration<HeCyclesModule>;
|
|
21
20
|
}
|
package/cycles/index.d.ts
CHANGED
|
@@ -10,4 +10,3 @@ export { CyclesFunctionalUnitMeasureComponent } from './cycles-functional-unit-m
|
|
|
10
10
|
export { CyclesPracticesComponent } from './cycles-practices/cycles-practices.component';
|
|
11
11
|
export { CyclesPracticesLogsComponent } from './cycles-practices-logs/cycles-practices-logs.component';
|
|
12
12
|
export { CyclesResultComponent } from './cycles-result/cycles-result.component';
|
|
13
|
-
export { CyclesSuggestFormComponent } from './cycles-suggest-form/cycles-suggest-form.component';
|
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
1
|
import { Component, Input } from '@angular/core';
|
|
3
2
|
import { DataState } from '@hestia-earth/api';
|
|
4
|
-
import { propertyValue, groupNodesByTerm, grouppedKeys } from '../../common/utils';
|
|
5
|
-
import { baseUrl } from '../../common/utils';
|
|
3
|
+
import { baseUrl, propertyValue, groupNodesByTerm, grouppedKeys, defaultLabel } from '../../common/utils';
|
|
6
4
|
import * as i0 from "@angular/core";
|
|
7
5
|
import * as i1 from "@fortawesome/angular-fontawesome";
|
|
8
6
|
import * as i2 from "../../node/node-link/node-link.component";
|
|
9
7
|
import * as i3 from "../cycles-functional-unit-measure/cycles-functional-unit-measure.component";
|
|
10
8
|
import * as i4 from "../../common/blank-node-state/blank-node-state.component";
|
|
11
9
|
import * as i5 from "../../common/blank-node-state-notice/blank-node-state-notice.component";
|
|
12
|
-
import * as i6 from "../cycles-
|
|
13
|
-
import * as i7 from "
|
|
14
|
-
import * as i8 from "../../node/node-
|
|
15
|
-
import * as i9 from "
|
|
16
|
-
import * as i10 from "@
|
|
17
|
-
import * as i11 from "
|
|
18
|
-
import * as i12 from "../../common/
|
|
19
|
-
import * as i13 from "../../common/
|
|
20
|
-
import * as i14 from "../../common/precision.pipe";
|
|
10
|
+
import * as i6 from "../cycles-activity-logs/cycles-activity-logs.component";
|
|
11
|
+
import * as i7 from "../../node/node-csv-export-confirm/node-csv-export-confirm.component";
|
|
12
|
+
import * as i8 from "../../node/node-value-details/node-value-details.component";
|
|
13
|
+
import * as i9 from "@angular/common";
|
|
14
|
+
import * as i10 from "@ng-bootstrap/ng-bootstrap";
|
|
15
|
+
import * as i11 from "../../common/ellipsis.pipe";
|
|
16
|
+
import * as i12 from "../../common/default.pipe";
|
|
17
|
+
import * as i13 from "../../common/precision.pipe";
|
|
21
18
|
const orderBy = require('lodash.orderby');
|
|
22
19
|
var View;
|
|
23
20
|
(function (View) {
|
|
@@ -28,9 +25,11 @@ export class CyclesActivityComponent {
|
|
|
28
25
|
constructor() {
|
|
29
26
|
this.originalValues = [];
|
|
30
27
|
this.cycles = [];
|
|
28
|
+
this.selected = [];
|
|
31
29
|
this.enableCompare = true;
|
|
32
30
|
this.baseUrl = baseUrl();
|
|
33
31
|
this.propertyValue = propertyValue;
|
|
32
|
+
this.defaultLabel = defaultLabel;
|
|
34
33
|
this.showDownload = false;
|
|
35
34
|
this.View = View;
|
|
36
35
|
this.selectedView = View.table;
|
|
@@ -60,19 +59,12 @@ export class CyclesActivityComponent {
|
|
|
60
59
|
togglePopover(popover, context) {
|
|
61
60
|
return popover.isOpen() ? popover.close() : popover.open(context);
|
|
62
61
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
-
this.cycles = [
|
|
67
|
-
...this.cycles,
|
|
68
|
-
cycle
|
|
69
|
-
];
|
|
70
|
-
return this.update();
|
|
71
|
-
});
|
|
62
|
+
isSelected(cycle) {
|
|
63
|
+
return this.selected.length === 0 || this.selected.includes(cycle['@id']);
|
|
72
64
|
}
|
|
73
65
|
}
|
|
74
66
|
CyclesActivityComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CyclesActivityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
75
|
-
CyclesActivityComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CyclesActivityComponent, selector: "he-cycles-activity", inputs: { originalValues: "originalValues", cycles: "cycles", dataState: "dataState", enableCompare: "enableCompare" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"inputs.length || products.length; else emptyTable\">\n <div class=\"columns is-variable is-2 m-0\">\n <div class=\"column is-hidden-mobile\"></div>\n <div class=\"column is-narrow\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.table\" (click)=\"selectedView = View.table\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"list\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Table view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"!isOriginal && cycles.length === 1\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.logs\" (click)=\"selectedView = View.logs\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"calculator\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Recalculations logs</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"px-3 pb-3\" [class.is-hidden]=\"selectedView !== View.table\">\n <div class=\"has-text-right mb-2\">\n <button class=\"button is-dark is-outlined is-small\" (click)=\"showDownload = true\">\n <fa-icon icon=\"download\"></fa-icon>\n <span class=\"pl-2\">Download (CSV)</span>\n </button>\n </div>\n\n <div class=\"table-container data-table-container mb-1\">\n <table class=\"table is-narrow data-table has-children-{{inputs.length + products.length}}\">\n <thead>\n <tr>\n <th class=\"width-auto\"></th>\n <th></th>\n <th *ngFor=\"let product of products\"\n [attr.title]=\"product.value.term.name\"\n >\n <he-node-link [node]=\"product.value.term\">\n <span>{{product.value.term.name | ellipsis:30}}</span>\n </he-node-link>\n </th>\n <th *ngFor=\"let input of inputs\"\n [attr.title]=\"input.value.term.name\"\n >\n <he-node-link [node]=\"input.value.term\">\n <span>{{input.value.term.name | ellipsis:30}}</span>\n </he-node-link>\n </th>\n </tr>\n <tr>\n <th class=\"width-auto\"></th>\n <th>\n <a [href]=\"baseUrl + '/schema/Cycle#functionalUnit'\" target=\"_blank\">Functional unit</a>\n </th>\n <th *ngFor=\"let product of products\"\n [attr.title]=\"product.value.term.units\"\n >{{product.value.term.units}}</th>\n <th *ngFor=\"let input of inputs\"\n [attr.title]=\"input.value.term.units\"\n >{{input.value.term.units}}</th>\n </tr>\n </thead>\n <tbody>\n <
|
|
67
|
+
CyclesActivityComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CyclesActivityComponent, selector: "he-cycles-activity", inputs: { originalValues: "originalValues", cycles: "cycles", selected: "selected", dataState: "dataState", enableCompare: "enableCompare" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"inputs.length || products.length; else emptyTable\">\n <div class=\"columns is-variable is-2 m-0\">\n <div class=\"column is-hidden-mobile\"></div>\n <div class=\"column is-narrow\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.table\" (click)=\"selectedView = View.table\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"list\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Table view</span>\n </button>\n </div>\n <div class=\"control\" *ngIf=\"!isOriginal && cycles.length === 1\">\n <button class=\"button is-small\" [class.is-active]=\"selectedView === View.logs\" (click)=\"selectedView = View.logs\">\n <span class=\"icon is-small\">\n <fa-icon icon=\"calculator\" aria-hidden=\"true\"></fa-icon>\n </span>\n <span>Recalculations logs</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"px-3 pb-3\" [class.is-hidden]=\"selectedView !== View.table\">\n <div class=\"has-text-right mb-2\">\n <button class=\"button is-dark is-outlined is-small\" (click)=\"showDownload = true\">\n <fa-icon icon=\"download\"></fa-icon>\n <span class=\"pl-2\">Download (CSV)</span>\n </button>\n </div>\n\n <div class=\"table-container data-table-container mb-1\">\n <table class=\"table is-narrow data-table has-children-{{inputs.length + products.length}}\">\n <thead>\n <tr>\n <th class=\"width-auto\"></th>\n <th></th>\n <th *ngFor=\"let product of products\"\n [attr.title]=\"product.value.term.name\"\n >\n <he-node-link [node]=\"product.value.term\">\n <span>{{product.value.term.name | ellipsis:30}}</span>\n </he-node-link>\n </th>\n <th *ngFor=\"let input of inputs\"\n [attr.title]=\"input.value.term.name\"\n >\n <he-node-link [node]=\"input.value.term\">\n <span>{{input.value.term.name | ellipsis:30}}</span>\n </he-node-link>\n </th>\n </tr>\n <tr>\n <th class=\"width-auto\"></th>\n <th>\n <a [href]=\"baseUrl + '/schema/Cycle#functionalUnit'\" target=\"_blank\">Functional unit</a>\n </th>\n <th *ngFor=\"let product of products\"\n [attr.title]=\"product.value.term.units\"\n >{{product.value.term.units}}</th>\n <th *ngFor=\"let input of inputs\"\n [attr.title]=\"input.value.term.units\"\n >{{input.value.term.units}}</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let cycle of cycles; trackBy: trackById; let i = index\">\n <tr *ngIf=\"isSelected(cycle)\">\n <td class=\"width-auto\" [attr.title]=\"defaultLabel(cycle)\">\n <he-node-link [node]=\"cycle\">\n <span class=\"is-nowrap has-text-ellipsis\">{{i + 1}}. {{defaultLabel(cycle)}}</span>\n </he-node-link>\n </td>\n <td>\n <he-cycles-functional-unit-measure [cycle]=\"cycle\"></he-cycles-functional-unit-measure>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let product of products\">\n <span *ngIf=\"product.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\" [autoClose]=\"'outside'\"\n triggers=\"manual\" #p=\"ngbPopover\" placement=\"left\" container=\"body\"\n (click)=\"togglePopover(p, { data: product.value.values[cycle['@id']], cycle: cycle, key: 'products' })\"\n >\n <span pointer>{{propertyValue(product.value.values[cycle['@id']].value, product.value.term['@id']) | precision:3 | default:'-'}}</span>\n <he-blank-node-state class=\"ml-1\"\n [node]=\"product.value.values[cycle['@id']].nodes[0]\"\n key=\"value\"\n ></he-blank-node-state>\n </span>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let input of inputs\">\n <span *ngIf=\"input.value.values[cycle['@id']]; else emptyValue\"\n class=\"trigger-popover\"\n [ngbPopover]=\"details\" [autoClose]=\"'outside'\"\n triggers=\"manual\" #p=\"ngbPopover\" placement=\"left\" container=\"body\"\n (click)=\"togglePopover(p, { data: input.value.values[cycle['@id']], cycle: cycle, key: 'inputs' })\"\n >\n <span pointer>{{propertyValue(input.value.values[cycle['@id']].value, input.value.term['@id']) | precision:3 | default:'-'}}</span>\n <he-blank-node-state class=\"ml-1\"\n [node]=\"input.value.values[cycle['@id']].nodes[0]\"\n key=\"value\"\n ></he-blank-node-state>\n </span>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n\n <he-blank-node-state-notice [dataState]=\"dataState\"></he-blank-node-state-notice>\n </div>\n\n <he-cycles-activity-logs *ngIf=\"selectedView === View.logs && !isOriginal\"\n [original]=\"originalValues[0]\"\n [recalculated]=\"cycles[0]\"\n ></he-cycles-activity-logs>\n</ng-container>\n\n<he-node-csv-export-confirm *ngIf=\"showDownload\"\n [nodes]=\"cycles\" filename=\"cycle-inputs-products.csv\" [isUpload]=\"false\"\n [headerKeys]=\"['cycle.id', 'cycle.@id', 'cycle.inputs.', 'cycle.products.']\"\n (closed)=\"showDownload = false\"\n></he-node-csv-export-confirm>\n\n<ng-template #emptyTable>\n <div class=\"panel-block\">\n <span>No activity data</span>\n </div>\n</ng-template>\n\n<ng-template #emptyValue>\n <span>-</span>\n</ng-template>\n\n<ng-template #details let-node=\"cycle\" let-data=\"data\" let-key=\"key\">\n <p><b>{{node.name}}</b></p>\n <he-node-value-details\n [data]=\"data\" [nodeType]=\"node['@type']\" [dataKey]=\"key\"\n ></he-node-value-details>\n</ng-template>\n", styles: ["fa-icon{display:inline-block;width:10px}\n"], components: [{ type: i1.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { type: i2.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink"] }, { type: i3.CyclesFunctionalUnitMeasureComponent, selector: "he-cycles-functional-unit-measure", inputs: ["cycle"] }, { type: i4.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["nodeType", "dataKey", "key", "node", "state"] }, { type: i5.BlankNodeStateNoticeComponent, selector: "he-blank-node-state-notice", inputs: ["dataState", "showAggregated", "showDeleted", "showUnchanged"] }, { type: i6.CyclesActivityLogsComponent, selector: "he-cycles-activity-logs", inputs: ["original", "recalculated"] }, { type: i7.NodeCsvExportConfirmComponent, selector: "he-node-csv-export-confirm", inputs: ["nodes", "filename", "headerKeys", "extension", "isUpload"], outputs: ["closed"] }, { type: i8.NodeValueDetailsComponent, selector: "he-node-value-details", inputs: ["data", "nodeType", "dataKey"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disablePopover", "popoverClass", "openDelay", "closeDelay", "ngbPopover", "popoverTitle"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }], pipes: { "ellipsis": i11.EllipsisPipe, "default": i12.DefaultPipe, "precision": i13.PrecisionPipe } });
|
|
76
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CyclesActivityComponent, decorators: [{
|
|
77
69
|
type: Component,
|
|
78
70
|
args: [{
|
|
@@ -84,9 +76,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
84
76
|
type: Input
|
|
85
77
|
}], cycles: [{
|
|
86
78
|
type: Input
|
|
79
|
+
}], selected: [{
|
|
80
|
+
type: Input
|
|
87
81
|
}], dataState: [{
|
|
88
82
|
type: Input
|
|
89
83
|
}], enableCompare: [{
|
|
90
84
|
type: Input
|
|
91
85
|
}] } });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWFjdGl2aXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jeWNsZXMvY3ljbGVzLWFjdGl2aXR5L2N5Y2xlcy1hY3Rpdml0eS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1hY3Rpdml0eS9jeWNsZXMtYWN0aXZpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBZ0IsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBSDdDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBSzFDLElBQUssSUFHSjtBQUhELFdBQUssSUFBSTtJQUNQLHVCQUFlLENBQUE7SUFDZixxQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhJLElBQUksS0FBSixJQUFJLFFBR1I7QUFPRCxNQUFNLE9BQU8sdUJBQXVCO0lBTHBDO1FBT1MsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO1FBRXBDLFdBQU0sR0FBbUIsRUFBRSxDQUFDO1FBSTVCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBRXJCLFlBQU8sR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osaUJBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRTFCLFdBQU0sR0FBZ0MsRUFBRSxDQUFDO1FBQ3pDLGFBQVEsR0FBNEIsRUFBRSxDQUFDO0tBdUMvQztJQXJDQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxRQUFRLElBQUksT0FBTyxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3RCO1FBQ0QsSUFBSSxXQUFXLElBQUksT0FBTyxFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNoQztJQUNILENBQUM7SUFFTSxTQUFTLENBQUMsTUFBYyxFQUFFLElBQWtCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDL0MsQ0FBQztJQUVPLE1BQU07UUFDWixNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBNEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUF3QixJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUFZLEVBQUUsT0FBWTtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxzQkFBc0I7SUFFVCxRQUFRLENBQUMsS0FBbUI7O1lBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUc7Z0JBQ1osR0FBRyxJQUFJLENBQUMsTUFBTTtnQkFDZCxLQUFLO2FBQ04sQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLENBQUM7S0FBQTs7cUhBdkRVLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLHVNQ2xCcEMsOHVNQStJQTs0RkQ3SGEsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxrQ0FBa0M7b0JBQy9DLFNBQVMsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO2lCQUNoRDs4QkFHUSxjQUFjO3NCQURwQixLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0MsYUFBYTtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVN0YXRlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgSUN5Y2xlSlNPTkxELCBJbnB1dCBhcyBIZXN0aWFJbnB1dCwgUHJvZHVjdCB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmNvbnN0IG9yZGVyQnkgPSByZXF1aXJlKCdsb2Rhc2gub3JkZXJieScpO1xuXG5pbXBvcnQgeyBwcm9wZXJ0eVZhbHVlLCBncm91cE5vZGVzQnlUZXJtLCBJR3JvdXBlZEtleXMsIGdyb3VwcGVkS2V5cyB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBiYXNlVXJsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcblxuZW51bSBWaWV3IHtcbiAgdGFibGUgPSAndGFibGUnLFxuICBsb2dzID0gJ2xvZ3MnXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWN5Y2xlcy1hY3Rpdml0eScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jeWNsZXMtYWN0aXZpdHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jeWNsZXMtYWN0aXZpdHkuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDeWNsZXNBY3Rpdml0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcmlnaW5hbFZhbHVlczogSUN5Y2xlSlNPTkxEW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGN5Y2xlczogSUN5Y2xlSlNPTkxEW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGRhdGFTdGF0ZT86IERhdGFTdGF0ZTtcbiAgQElucHV0KClcbiAgcHVibGljIGVuYWJsZUNvbXBhcmUgPSB0cnVlO1xuXG4gIHB1YmxpYyBiYXNlVXJsID0gYmFzZVVybCgpO1xuICBwdWJsaWMgcHJvcGVydHlWYWx1ZSA9IHByb3BlcnR5VmFsdWU7XG4gIHB1YmxpYyBzaG93RG93bmxvYWQgPSBmYWxzZTtcbiAgcHVibGljIFZpZXcgPSBWaWV3O1xuICBwdWJsaWMgc2VsZWN0ZWRWaWV3ID0gVmlldy50YWJsZTtcblxuICBwdWJsaWMgaW5wdXRzOiBJR3JvdXBlZEtleXM8SGVzdGlhSW5wdXQ+W10gPSBbXTtcbiAgcHVibGljIHByb2R1Y3RzOiBJR3JvdXBlZEtleXM8UHJvZHVjdD5bXSA9IFtdO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoJ2N5Y2xlcycgaW4gY2hhbmdlcykge1xuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuICAgIGlmICgnZGF0YVN0YXRlJyBpbiBjaGFuZ2VzKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmlldyA9IFZpZXcudGFibGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRyYWNrQnlJZChfaW5kZXg6IG51bWJlciwgaXRlbTogSUN5Y2xlSlNPTkxEKSB7XG4gICAgcmV0dXJuIGl0ZW1bJ0BpZCddO1xuICB9XG5cbiAgcHVibGljIGdldCBpc09yaWdpbmFsKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGFTdGF0ZSA9PT0gRGF0YVN0YXRlLm9yaWdpbmFsO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGUoKSB7XG4gICAgY29uc3QgaW5wdXRzUGVyQ3ljbGUgPSBncm91cE5vZGVzQnlUZXJtPElDeWNsZUpTT05MRCwgSGVzdGlhSW5wdXQ+KHRoaXMuY3ljbGVzLCAnaW5wdXRzJywgdGhpcy5vcmlnaW5hbFZhbHVlcyk7XG4gICAgdGhpcy5pbnB1dHMgPSBvcmRlckJ5KGdyb3VwcGVkS2V5cyhpbnB1dHNQZXJDeWNsZSksIFsna2V5J10sIFsnYXNjJ10pO1xuICAgIGNvbnN0IHByb2R1Y3RzUGVyQ3ljbGUgPSBncm91cE5vZGVzQnlUZXJtPElDeWNsZUpTT05MRCwgUHJvZHVjdD4odGhpcy5jeWNsZXMsICdwcm9kdWN0cycsIHRoaXMub3JpZ2luYWxWYWx1ZXMpO1xuICAgIHRoaXMucHJvZHVjdHMgPSBvcmRlckJ5KGdyb3VwcGVkS2V5cyhwcm9kdWN0c1BlckN5Y2xlKSwgWydrZXknXSwgWydhc2MnXSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUG9wb3Zlcihwb3BvdmVyOiBhbnksIGNvbnRleHQ6IGFueSkge1xuICAgIHJldHVybiBwb3BvdmVyLmlzT3BlbigpID8gcG9wb3Zlci5jbG9zZSgpIDogcG9wb3Zlci5vcGVuKGNvbnRleHQpO1xuICB9XG5cbiAgLy8gQWRkIGZyb20gc3VnZ2VzdGlvblxuXG4gIHB1YmxpYyBhc3luYyBhZGRDeWNsZShjeWNsZTogSUN5Y2xlSlNPTkxEKSB7XG4gICAgdGhpcy5jeWNsZXMgPSBbXG4gICAgICAuLi50aGlzLmN5Y2xlcyxcbiAgICAgIGN5Y2xlXG4gICAgXTtcbiAgICByZXR1cm4gdGhpcy51cGRhdGUoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0cy5sZW5ndGggfHwgcHJvZHVjdHMubGVuZ3RoOyBlbHNlIGVtcHR5VGFibGVcIj5cbiAgPGRpdiBjbGFzcz1cImNvbHVtbnMgaXMtdmFyaWFibGUgaXMtMiBtLTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGlzLWhpZGRlbi1tb2JpbGVcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGlzLW5hcnJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhhcy1hZGRvbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsXCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcudGFibGVcIiAoY2xpY2spPVwic2VsZWN0ZWRWaWV3ID0gVmlldy50YWJsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIGlzLXNtYWxsXCI+XG4gICAgICAgICAgICAgIDxmYS1pY29uIGljb249XCJsaXN0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9mYS1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+VGFibGUgdmlldzwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sXCIgKm5nSWY9XCIhaXNPcmlnaW5hbCAmJiBjeWNsZXMubGVuZ3RoID09PSAxXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbFwiIFtjbGFzcy5pcy1hY3RpdmVdPVwic2VsZWN0ZWRWaWV3ID09PSBWaWV3LmxvZ3NcIiAoY2xpY2spPVwic2VsZWN0ZWRWaWV3ID0gVmlldy5sb2dzXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgICAgPGZhLWljb24gaWNvbj1cImNhbGN1bGF0b3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2ZhLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5SZWNhbGN1bGF0aW9ucyBsb2dzPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicHgtMyBwYi0zXCIgW2NsYXNzLmlzLWhpZGRlbl09XCJzZWxlY3RlZFZpZXcgIT09IFZpZXcudGFibGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGFzLXRleHQtcmlnaHQgbWItMlwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1kYXJrIGlzLW91dGxpbmVkIGlzLXNtYWxsXCIgKGNsaWNrKT1cInNob3dEb3dubG9hZCA9IHRydWVcIj5cbiAgICAgICAgPGZhLWljb24gaWNvbj1cImRvd25sb2FkXCI+PC9mYS1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInBsLTJcIj5Eb3dubG9hZCAoQ1NWKTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbnRhaW5lciBkYXRhLXRhYmxlLWNvbnRhaW5lciBtYi0xXCI+XG4gICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBpcy1uYXJyb3cgZGF0YS10YWJsZSBoYXMtY2hpbGRyZW4te3tpbnB1dHMubGVuZ3RoICsgcHJvZHVjdHMubGVuZ3RofX1cIj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIndpZHRoLWF1dG9cIj48L3RoPlxuICAgICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcHJvZHVjdHNcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJwcm9kdWN0LnZhbHVlLnRlcm0ubmFtZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxoZS1ub2RlLWxpbmsgW25vZGVdPVwicHJvZHVjdC52YWx1ZS50ZXJtXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3twcm9kdWN0LnZhbHVlLnRlcm0ubmFtZSB8IGVsbGlwc2lzOjMwfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvaGUtbm9kZS1saW5rPlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgaW5wdXQgb2YgaW5wdXRzXCJcbiAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiaW5wdXQudmFsdWUudGVybS5uYW1lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGhlLW5vZGUtbGluayBbbm9kZV09XCJpbnB1dC52YWx1ZS50ZXJtXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3tpbnB1dC52YWx1ZS50ZXJtLm5hbWUgfCBlbGxpcHNpczozMH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2hlLW5vZGUtbGluaz5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJ3aWR0aC1hdXRvXCI+PC90aD5cbiAgICAgICAgICAgIDx0aD5cbiAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiYmFzZVVybCArICcvc2NoZW1hL0N5Y2xlI2Z1bmN0aW9uYWxVbml0J1wiIHRhcmdldD1cIl9ibGFua1wiPkZ1bmN0aW9uYWwgdW5pdDwvYT5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcHJvZHVjdHNcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJwcm9kdWN0LnZhbHVlLnRlcm0udW5pdHNcIlxuICAgICAgICAgICAgPnt7cHJvZHVjdC52YWx1ZS50ZXJtLnVuaXRzfX08L3RoPlxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBpbnB1dCBvZiBpbnB1dHNcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJpbnB1dC52YWx1ZS50ZXJtLnVuaXRzXCJcbiAgICAgICAgICAgID57e2lucHV0LnZhbHVlLnRlcm0udW5pdHN9fTwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgY3ljbGUgb2YgY3ljbGVzOyB0cmFja0J5OiB0cmFja0J5SWQ7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndpZHRoLWF1dG9cIiBbYXR0ci50aXRsZV09XCJjeWNsZS5uYW1lXCI+XG4gICAgICAgICAgICAgIDxoZS1ub2RlLWxpbmsgW25vZGVdPVwiY3ljbGVcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlzLW5vd3JhcCBoYXMtdGV4dC1lbGxpcHNpc1wiPnt7aSArIDF9fS4ge3tjeWNsZS5uYW1lIHx8IGN5Y2xlLmlkfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvaGUtbm9kZS1saW5rPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPGhlLWN5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZSBbY3ljbGVdPVwiY3ljbGVcIj48L2hlLWN5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZT5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJpcy1ub3dyYXBcIiAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0c1wiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByb2R1Y3QudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV07IGVsc2UgZW1wdHlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmlnZ2VyLXBvcG92ZXJcIlxuICAgICAgICAgICAgICAgIFtuZ2JQb3BvdmVyXT1cImRldGFpbHNcIiBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiXG4gICAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJtYW51YWxcIiAjcD1cIm5nYlBvcG92ZXJcIiBwbGFjZW1lbnQ9XCJsZWZ0XCIgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBvcG92ZXIocCwgeyBkYXRhOiBwcm9kdWN0LnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLCBjeWNsZTogY3ljbGUsIGtleTogJ3Byb2R1Y3RzJyB9KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBwb2ludGVyPnt7cHJvcGVydHlWYWx1ZShwcm9kdWN0LnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLnZhbHVlLCBwcm9kdWN0LnZhbHVlLnRlcm1bJ0BpZCddKSB8IHByZWNpc2lvbjozIHwgZGVmYXVsdDonLSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZSBjbGFzcz1cIm1sLTFcIlxuICAgICAgICAgICAgICAgICAgW25vZGVdPVwicHJvZHVjdC52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXS5ub2Rlc1swXVwiXG4gICAgICAgICAgICAgICAgICBrZXk9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgPjwvaGUtYmxhbmstbm9kZS1zdGF0ZT5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImlzLW5vd3JhcFwiICpuZ0Zvcj1cImxldCBpbnB1dCBvZiBpbnB1dHNcIj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpbnB1dC52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXTsgZWxzZSBlbXB0eVZhbHVlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRyaWdnZXItcG9wb3ZlclwiXG4gICAgICAgICAgICAgICAgW25nYlBvcG92ZXJdPVwiZGV0YWlsc1wiIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCJcbiAgICAgICAgICAgICAgICB0cmlnZ2Vycz1cIm1hbnVhbFwiICNwPVwibmdiUG9wb3ZlclwiIHBsYWNlbWVudD1cImxlZnRcIiBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUG9wb3ZlcihwLCB7IGRhdGE6IGlucHV0LnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLCBjeWNsZTogY3ljbGUsIGtleTogJ2lucHV0cycgfSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gcG9pbnRlcj57e3Byb3BlcnR5VmFsdWUoaW5wdXQudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0udmFsdWUsIGlucHV0LnZhbHVlLnRlcm1bJ0BpZCddKSB8IHByZWNpc2lvbjozIHwgZGVmYXVsdDonLSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZSBjbGFzcz1cIm1sLTFcIlxuICAgICAgICAgICAgICAgICAgW25vZGVdPVwiaW5wdXQudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0ubm9kZXNbMF1cIlxuICAgICAgICAgICAgICAgICAga2V5PVwidmFsdWVcIlxuICAgICAgICAgICAgICAgID48L2hlLWJsYW5rLW5vZGUtc3RhdGU+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG5cbiAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZS1ub3RpY2UgW2RhdGFTdGF0ZV09XCJkYXRhU3RhdGVcIj48L2hlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlPlxuXG4gICAgPGhlLWN5Y2xlcy1zdWdnZXN0LWZvcm0gKm5nSWY9XCJlbmFibGVDb21wYXJlXCIgW2N5Y2xlc109XCJjeWNsZXNcIiAoY3ljbGVBZGRlZCk9XCJhZGRDeWNsZSgkZXZlbnQpXCI+PC9oZS1jeWNsZXMtc3VnZ2VzdC1mb3JtPlxuICA8L2Rpdj5cblxuICA8aGUtY3ljbGVzLWFjdGl2aXR5LWxvZ3MgKm5nSWY9XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcubG9ncyAmJiAhaXNPcmlnaW5hbFwiXG4gICAgW29yaWdpbmFsXT1cIm9yaWdpbmFsVmFsdWVzWzBdXCJcbiAgICBbcmVjYWxjdWxhdGVkXT1cImN5Y2xlc1swXVwiXG4gID48L2hlLWN5Y2xlcy1hY3Rpdml0eS1sb2dzPlxuPC9uZy1jb250YWluZXI+XG5cbjxoZS1ub2RlLWNzdi1leHBvcnQtY29uZmlybSAqbmdJZj1cInNob3dEb3dubG9hZFwiXG4gIFtub2Rlc109XCJjeWNsZXNcIiBmaWxlbmFtZT1cImN5Y2xlLWlucHV0cy1wcm9kdWN0cy5jc3ZcIiBbaXNVcGxvYWRdPVwiZmFsc2VcIlxuICBbaGVhZGVyS2V5c109XCJbJ2N5Y2xlLmlkJywgJ2N5Y2xlLkBpZCcsICdjeWNsZS5pbnB1dHMuJywgJ2N5Y2xlLnByb2R1Y3RzLiddXCJcbiAgKGNsb3NlZCk9XCJzaG93RG93bmxvYWQgPSBmYWxzZVwiXG4+PC9oZS1ub2RlLWNzdi1leHBvcnQtY29uZmlybT5cblxuPG5nLXRlbXBsYXRlICNlbXB0eVRhYmxlPlxuICA8ZGl2IGNsYXNzPVwicGFuZWwtYmxvY2tcIj5cbiAgICA8c3Bhbj5ObyBhY3Rpdml0eSBkYXRhPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlWYWx1ZT5cbiAgPHNwYW4+LTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlscyBsZXQtbm9kZT1cImN5Y2xlXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LWtleT1cImtleVwiPlxuICA8cD48Yj57e25vZGUubmFtZX19PC9iPjwvcD5cbiAgPGhlLW5vZGUtdmFsdWUtZGV0YWlsc1xuICAgIFtkYXRhXT1cImRhdGFcIiBbbm9kZVR5cGVdPVwibm9kZVsnQHR5cGUnXVwiIFtkYXRhS2V5XT1cImtleVwiXG4gID48L2hlLW5vZGUtdmFsdWUtZGV0YWlscz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWFjdGl2aXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jeWNsZXMvY3ljbGVzLWFjdGl2aXR5L2N5Y2xlcy1hY3Rpdml0eS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1hY3Rpdml0eS9jeWNsZXMtYWN0aXZpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUk5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBZ0IsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFGeEgsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFJMUMsSUFBSyxJQUdKO0FBSEQsV0FBSyxJQUFJO0lBQ1AsdUJBQWUsQ0FBQTtJQUNmLHFCQUFhLENBQUE7QUFDZixDQUFDLEVBSEksSUFBSSxLQUFKLElBQUksUUFHUjtBQU9ELE1BQU0sT0FBTyx1QkFBdUI7SUFMcEM7UUFPUyxtQkFBYyxHQUFtQixFQUFFLENBQUM7UUFFcEMsV0FBTSxHQUFtQixFQUFFLENBQUM7UUFFNUIsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUl4QixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUVyQixZQUFPLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDcEIsa0JBQWEsR0FBRyxhQUFhLENBQUM7UUFDOUIsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFDNUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsU0FBSSxHQUFHLElBQUksQ0FBQztRQUNaLGlCQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUxQixXQUFNLEdBQWdDLEVBQUUsQ0FBQztRQUN6QyxhQUFRLEdBQTRCLEVBQUUsQ0FBQztLQWlDL0M7SUEvQkMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksUUFBUSxJQUFJLE9BQU8sRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN0QjtRQUNELElBQUksV0FBVyxJQUFJLE9BQU8sRUFBRTtZQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRU0sU0FBUyxDQUFDLE1BQWMsRUFBRSxJQUFrQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQy9DLENBQUM7SUFFTyxNQUFNO1FBQ1osTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQTRCLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvRyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEUsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBd0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxhQUFhLENBQUMsT0FBWSxFQUFFLE9BQVk7UUFDN0MsT0FBTyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQW1CO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7O3FIQXBEVSx1QkFBdUI7eUdBQXZCLHVCQUF1Qiw2TkNqQnBDLDB3TUErSUE7NEZEOUhhLHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixXQUFXLEVBQUUsa0NBQWtDO29CQUMvQyxTQUFTLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQztpQkFDaEQ7OEJBR1EsY0FBYztzQkFEcEIsS0FBSztnQkFHQyxNQUFNO3NCQURaLEtBQUs7Z0JBR0MsUUFBUTtzQkFEZCxLQUFLO2dCQUdDLFNBQVM7c0JBRGYsS0FBSztnQkFHQyxhQUFhO3NCQURuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhU3RhdGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQgeyBJQ3ljbGVKU09OTEQsIElucHV0IGFzIEhlc3RpYUlucHV0LCBQcm9kdWN0IH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuY29uc3Qgb3JkZXJCeSA9IHJlcXVpcmUoJ2xvZGFzaC5vcmRlcmJ5Jyk7XG5cbmltcG9ydCB7IGJhc2VVcmwsIHByb3BlcnR5VmFsdWUsIGdyb3VwTm9kZXNCeVRlcm0sIElHcm91cGVkS2V5cywgZ3JvdXBwZWRLZXlzLCBkZWZhdWx0TGFiZWwgfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbHMnO1xuXG5lbnVtIFZpZXcge1xuICB0YWJsZSA9ICd0YWJsZScsXG4gIGxvZ3MgPSAnbG9ncydcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtY3ljbGVzLWFjdGl2aXR5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N5Y2xlcy1hY3Rpdml0eS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N5Y2xlcy1hY3Rpdml0eS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEN5Y2xlc0FjdGl2aXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgcHVibGljIG9yaWdpbmFsVmFsdWVzOiBJQ3ljbGVKU09OTERbXSA9IFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgY3ljbGVzOiBJQ3ljbGVKU09OTERbXSA9IFtdO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWQ6IHN0cmluZ1tdID0gW107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkYXRhU3RhdGU/OiBEYXRhU3RhdGU7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbmFibGVDb21wYXJlID0gdHJ1ZTtcblxuICBwdWJsaWMgYmFzZVVybCA9IGJhc2VVcmwoKTtcbiAgcHVibGljIHByb3BlcnR5VmFsdWUgPSBwcm9wZXJ0eVZhbHVlO1xuICBwdWJsaWMgZGVmYXVsdExhYmVsID0gZGVmYXVsdExhYmVsO1xuICBwdWJsaWMgc2hvd0Rvd25sb2FkID0gZmFsc2U7XG4gIHB1YmxpYyBWaWV3ID0gVmlldztcbiAgcHVibGljIHNlbGVjdGVkVmlldyA9IFZpZXcudGFibGU7XG5cbiAgcHVibGljIGlucHV0czogSUdyb3VwZWRLZXlzPEhlc3RpYUlucHV0PltdID0gW107XG4gIHB1YmxpYyBwcm9kdWN0czogSUdyb3VwZWRLZXlzPFByb2R1Y3Q+W10gPSBbXTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCdjeWNsZXMnIGluIGNoYW5nZXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cbiAgICBpZiAoJ2RhdGFTdGF0ZScgaW4gY2hhbmdlcykge1xuICAgICAgdGhpcy5zZWxlY3RlZFZpZXcgPSBWaWV3LnRhYmxlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0cmFja0J5SWQoX2luZGV4OiBudW1iZXIsIGl0ZW06IElDeWNsZUpTT05MRCkge1xuICAgIHJldHVybiBpdGVtWydAaWQnXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcmlnaW5hbCgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU3RhdGUgPT09IERhdGFTdGF0ZS5vcmlnaW5hbDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlKCkge1xuICAgIGNvbnN0IGlucHV0c1BlckN5Y2xlID0gZ3JvdXBOb2Rlc0J5VGVybTxJQ3ljbGVKU09OTEQsIEhlc3RpYUlucHV0Pih0aGlzLmN5Y2xlcywgJ2lucHV0cycsIHRoaXMub3JpZ2luYWxWYWx1ZXMpO1xuICAgIHRoaXMuaW5wdXRzID0gb3JkZXJCeShncm91cHBlZEtleXMoaW5wdXRzUGVyQ3ljbGUpLCBbJ2tleSddLCBbJ2FzYyddKTtcbiAgICBjb25zdCBwcm9kdWN0c1BlckN5Y2xlID0gZ3JvdXBOb2Rlc0J5VGVybTxJQ3ljbGVKU09OTEQsIFByb2R1Y3Q+KHRoaXMuY3ljbGVzLCAncHJvZHVjdHMnLCB0aGlzLm9yaWdpbmFsVmFsdWVzKTtcbiAgICB0aGlzLnByb2R1Y3RzID0gb3JkZXJCeShncm91cHBlZEtleXMocHJvZHVjdHNQZXJDeWNsZSksIFsna2V5J10sIFsnYXNjJ10pO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVBvcG92ZXIocG9wb3ZlcjogYW55LCBjb250ZXh0OiBhbnkpIHtcbiAgICByZXR1cm4gcG9wb3Zlci5pc09wZW4oKSA/IHBvcG92ZXIuY2xvc2UoKSA6IHBvcG92ZXIub3Blbihjb250ZXh0KTtcbiAgfVxuXG4gIHB1YmxpYyBpc1NlbGVjdGVkKGN5Y2xlOiBJQ3ljbGVKU09OTEQpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZC5sZW5ndGggPT09IDAgfHwgdGhpcy5zZWxlY3RlZC5pbmNsdWRlcyhjeWNsZVsnQGlkJ10pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRzLmxlbmd0aCB8fCBwcm9kdWN0cy5sZW5ndGg7IGVsc2UgZW1wdHlUYWJsZVwiPlxuICA8ZGl2IGNsYXNzPVwiY29sdW1ucyBpcy12YXJpYWJsZSBpcy0yIG0tMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4gaXMtaGlkZGVuLW1vYmlsZVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4gaXMtbmFycm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaGFzLWFkZG9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gaXMtc21hbGxcIiBbY2xhc3MuaXMtYWN0aXZlXT1cInNlbGVjdGVkVmlldyA9PT0gVmlldy50YWJsZVwiIChjbGljayk9XCJzZWxlY3RlZFZpZXcgPSBWaWV3LnRhYmxlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgICAgPGZhLWljb24gaWNvbj1cImxpc3RcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2ZhLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5UYWJsZSB2aWV3PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIiAqbmdJZj1cIiFpc09yaWdpbmFsICYmIGN5Y2xlcy5sZW5ndGggPT09IDFcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsXCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcubG9nc1wiIChjbGljayk9XCJzZWxlY3RlZFZpZXcgPSBWaWV3LmxvZ3NcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBpcy1zbWFsbFwiPlxuICAgICAgICAgICAgICA8ZmEtaWNvbiBpY29uPVwiY2FsY3VsYXRvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPlJlY2FsY3VsYXRpb25zIGxvZ3M8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJweC0zIHBiLTNcIiBbY2xhc3MuaXMtaGlkZGVuXT1cInNlbGVjdGVkVmlldyAhPT0gVmlldy50YWJsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJoYXMtdGV4dC1yaWdodCBtYi0yXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLWRhcmsgaXMtb3V0bGluZWQgaXMtc21hbGxcIiAoY2xpY2spPVwic2hvd0Rvd25sb2FkID0gdHJ1ZVwiPlxuICAgICAgICA8ZmEtaWNvbiBpY29uPVwiZG93bmxvYWRcIj48L2ZhLWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGwtMlwiPkRvd25sb2FkIChDU1YpPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29udGFpbmVyIGRhdGEtdGFibGUtY29udGFpbmVyIG1iLTFcIj5cbiAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGlzLW5hcnJvdyBkYXRhLXRhYmxlIGhhcy1jaGlsZHJlbi17e2lucHV0cy5sZW5ndGggKyBwcm9kdWN0cy5sZW5ndGh9fVwiPlxuICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwid2lkdGgtYXV0b1wiPjwvdGg+XG4gICAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0c1wiXG4gICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cInByb2R1Y3QudmFsdWUudGVybS5uYW1lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGhlLW5vZGUtbGluayBbbm9kZV09XCJwcm9kdWN0LnZhbHVlLnRlcm1cIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57e3Byb2R1Y3QudmFsdWUudGVybS5uYW1lIHwgZWxsaXBzaXM6MzB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9oZS1ub2RlLWxpbms+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBpbnB1dCBvZiBpbnB1dHNcIlxuICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJpbnB1dC52YWx1ZS50ZXJtLm5hbWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aGUtbm9kZS1saW5rIFtub2RlXT1cImlucHV0LnZhbHVlLnRlcm1cIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57e2lucHV0LnZhbHVlLnRlcm0ubmFtZSB8IGVsbGlwc2lzOjMwfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvaGUtbm9kZS1saW5rPlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIndpZHRoLWF1dG9cIj48L3RoPlxuICAgICAgICAgICAgPHRoPlxuICAgICAgICAgICAgICA8YSBbaHJlZl09XCJiYXNlVXJsICsgJy9zY2hlbWEvQ3ljbGUjZnVuY3Rpb25hbFVuaXQnXCIgdGFyZ2V0PVwiX2JsYW5rXCI+RnVuY3Rpb25hbCB1bml0PC9hPlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0c1wiXG4gICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cInByb2R1Y3QudmFsdWUudGVybS51bml0c1wiXG4gICAgICAgICAgICA+e3twcm9kdWN0LnZhbHVlLnRlcm0udW5pdHN9fTwvdGg+XG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGlucHV0IG9mIGlucHV0c1wiXG4gICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImlucHV0LnZhbHVlLnRlcm0udW5pdHNcIlxuICAgICAgICAgICAgPnt7aW5wdXQudmFsdWUudGVybS51bml0c319PC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY3ljbGUgb2YgY3ljbGVzOyB0cmFja0J5OiB0cmFja0J5SWQ7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDx0ciAqbmdJZj1cImlzU2VsZWN0ZWQoY3ljbGUpXCI+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndpZHRoLWF1dG9cIiBbYXR0ci50aXRsZV09XCJkZWZhdWx0TGFiZWwoY3ljbGUpXCI+XG4gICAgICAgICAgICAgICAgPGhlLW5vZGUtbGluayBbbm9kZV09XCJjeWNsZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpcy1ub3dyYXAgaGFzLXRleHQtZWxsaXBzaXNcIj57e2kgKyAxfX0uIHt7ZGVmYXVsdExhYmVsKGN5Y2xlKX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvaGUtbm9kZS1saW5rPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgPGhlLWN5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZSBbY3ljbGVdPVwiY3ljbGVcIj48L2hlLWN5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZT5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaXMtbm93cmFwXCIgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcHJvZHVjdHNcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByb2R1Y3QudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV07IGVsc2UgZW1wdHlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRyaWdnZXItcG9wb3ZlclwiXG4gICAgICAgICAgICAgICAgICBbbmdiUG9wb3Zlcl09XCJkZXRhaWxzXCIgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIlxuICAgICAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJtYW51YWxcIiAjcD1cIm5nYlBvcG92ZXJcIiBwbGFjZW1lbnQ9XCJsZWZ0XCIgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUG9wb3ZlcihwLCB7IGRhdGE6IHByb2R1Y3QudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0sIGN5Y2xlOiBjeWNsZSwga2V5OiAncHJvZHVjdHMnIH0pXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBwb2ludGVyPnt7cHJvcGVydHlWYWx1ZShwcm9kdWN0LnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLnZhbHVlLCBwcm9kdWN0LnZhbHVlLnRlcm1bJ0BpZCddKSB8IHByZWNpc2lvbjozIHwgZGVmYXVsdDonLSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxoZS1ibGFuay1ub2RlLXN0YXRlIGNsYXNzPVwibWwtMVwiXG4gICAgICAgICAgICAgICAgICAgIFtub2RlXT1cInByb2R1Y3QudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0ubm9kZXNbMF1cIlxuICAgICAgICAgICAgICAgICAgICBrZXk9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICA+PC9oZS1ibGFuay1ub2RlLXN0YXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaXMtbm93cmFwXCIgKm5nRm9yPVwibGV0IGlucHV0IG9mIGlucHV0c1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaW5wdXQudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV07IGVsc2UgZW1wdHlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRyaWdnZXItcG9wb3ZlclwiXG4gICAgICAgICAgICAgICAgICBbbmdiUG9wb3Zlcl09XCJkZXRhaWxzXCIgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIlxuICAgICAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJtYW51YWxcIiAjcD1cIm5nYlBvcG92ZXJcIiBwbGFjZW1lbnQ9XCJsZWZ0XCIgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUG9wb3ZlcihwLCB7IGRhdGE6IGlucHV0LnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLCBjeWNsZTogY3ljbGUsIGtleTogJ2lucHV0cycgfSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIHBvaW50ZXI+e3twcm9wZXJ0eVZhbHVlKGlucHV0LnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLnZhbHVlLCBpbnB1dC52YWx1ZS50ZXJtWydAaWQnXSkgfCBwcmVjaXNpb246MyB8IGRlZmF1bHQ6Jy0nfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZSBjbGFzcz1cIm1sLTFcIlxuICAgICAgICAgICAgICAgICAgICBbbm9kZV09XCJpbnB1dC52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXS5ub2Rlc1swXVwiXG4gICAgICAgICAgICAgICAgICAgIGtleT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgID48L2hlLWJsYW5rLW5vZGUtc3RhdGU+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG5cbiAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZS1ub3RpY2UgW2RhdGFTdGF0ZV09XCJkYXRhU3RhdGVcIj48L2hlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlPlxuICA8L2Rpdj5cblxuICA8aGUtY3ljbGVzLWFjdGl2aXR5LWxvZ3MgKm5nSWY9XCJzZWxlY3RlZFZpZXcgPT09IFZpZXcubG9ncyAmJiAhaXNPcmlnaW5hbFwiXG4gICAgW29yaWdpbmFsXT1cIm9yaWdpbmFsVmFsdWVzWzBdXCJcbiAgICBbcmVjYWxjdWxhdGVkXT1cImN5Y2xlc1swXVwiXG4gID48L2hlLWN5Y2xlcy1hY3Rpdml0eS1sb2dzPlxuPC9uZy1jb250YWluZXI+XG5cbjxoZS1ub2RlLWNzdi1leHBvcnQtY29uZmlybSAqbmdJZj1cInNob3dEb3dubG9hZFwiXG4gIFtub2Rlc109XCJjeWNsZXNcIiBmaWxlbmFtZT1cImN5Y2xlLWlucHV0cy1wcm9kdWN0cy5jc3ZcIiBbaXNVcGxvYWRdPVwiZmFsc2VcIlxuICBbaGVhZGVyS2V5c109XCJbJ2N5Y2xlLmlkJywgJ2N5Y2xlLkBpZCcsICdjeWNsZS5pbnB1dHMuJywgJ2N5Y2xlLnByb2R1Y3RzLiddXCJcbiAgKGNsb3NlZCk9XCJzaG93RG93bmxvYWQgPSBmYWxzZVwiXG4+PC9oZS1ub2RlLWNzdi1leHBvcnQtY29uZmlybT5cblxuPG5nLXRlbXBsYXRlICNlbXB0eVRhYmxlPlxuICA8ZGl2IGNsYXNzPVwicGFuZWwtYmxvY2tcIj5cbiAgICA8c3Bhbj5ObyBhY3Rpdml0eSBkYXRhPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlWYWx1ZT5cbiAgPHNwYW4+LTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlscyBsZXQtbm9kZT1cImN5Y2xlXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LWtleT1cImtleVwiPlxuICA8cD48Yj57e25vZGUubmFtZX19PC9iPjwvcD5cbiAgPGhlLW5vZGUtdmFsdWUtZGV0YWlsc1xuICAgIFtkYXRhXT1cImRhdGFcIiBbbm9kZVR5cGVdPVwibm9kZVsnQHR5cGUnXVwiIFtkYXRhS2V5XT1cImtleVwiXG4gID48L2hlLW5vZGUtdmFsdWUtZGV0YWlscz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -12,6 +12,7 @@ const ignoreKeys = [
|
|
|
12
12
|
export class CyclesCompletenessComponent {
|
|
13
13
|
constructor() {
|
|
14
14
|
this.cycles = [];
|
|
15
|
+
this.selected = [];
|
|
15
16
|
this.baseUrl = baseUrl();
|
|
16
17
|
this.defaultLabel = defaultLabel;
|
|
17
18
|
this.keyToLabel = keyToLabel;
|
|
@@ -23,9 +24,12 @@ export class CyclesCompletenessComponent {
|
|
|
23
24
|
const [cycle] = this.cycles;
|
|
24
25
|
return Object.keys((cycle === null || cycle === void 0 ? void 0 : cycle.dataCompleteness) || {}).filter(key => !ignoreKeys.includes(key)).sort();
|
|
25
26
|
}
|
|
27
|
+
isSelected(cycle) {
|
|
28
|
+
return this.selected.length === 0 || this.selected.includes(cycle['@id']);
|
|
29
|
+
}
|
|
26
30
|
}
|
|
27
31
|
CyclesCompletenessComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CyclesCompletenessComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
-
CyclesCompletenessComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CyclesCompletenessComponent, selector: "he-cycles-completeness", inputs: { cycles: "cycles", dataState: "dataState" }, ngImport: i0, template: "<div class=\"p-3\" *ngIf=\"cycles.length; else emptyTable\">\n <div class=\"table-container data-table-container mb-1\">\n <table class=\"table is-narrow data-table has-children-{{cycles.length}}\">\n <thead>\n <tr>\n <th class=\"width-auto\"></th>\n <th *ngFor=\"let completeness of completenessKeys\"\n [attr.title]=\"completeness\"\n ><a [href]=\"baseUrl + '/schema/Completeness#' + completeness\" target=\"_blank\">{{keyToLabel(completeness)}}</a></th>\n </tr>\n </thead>\n <tbody>\n <
|
|
32
|
+
CyclesCompletenessComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CyclesCompletenessComponent, selector: "he-cycles-completeness", inputs: { cycles: "cycles", selected: "selected", dataState: "dataState" }, ngImport: i0, template: "<div class=\"p-3\" *ngIf=\"cycles.length; else emptyTable\">\n <div class=\"table-container data-table-container mb-1\">\n <table class=\"table is-narrow data-table has-children-{{cycles.length}}\">\n <thead>\n <tr>\n <th class=\"width-auto\"></th>\n <th *ngFor=\"let completeness of completenessKeys\"\n [attr.title]=\"completeness\"\n ><a [href]=\"baseUrl + '/schema/Completeness#' + completeness\" target=\"_blank\">{{keyToLabel(completeness)}}</a></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let cycle of cycles; trackBy: trackById; let i = index\">\n <tr *ngIf=\"isSelected(cycle)\">\n <td class=\"width-auto\" [attr.title]=\"defaultLabel(cycle)\">\n <he-node-link [node]=\"cycle\">\n <span class=\"is-nowrap has-text-ellipsis\">{{i + 1}}. {{defaultLabel(cycle)}}</span>\n </he-node-link>\n </td>\n <td class=\"is-nowrap\" *ngFor=\"let completeness of completenessKeys\">\n <span>{{cycle.dataCompleteness[completeness] ? 'Complete' : 'Incomplete'}}</span>\n <he-blank-node-state class=\"ml-1\"\n [node]=\"cycle.dataCompleteness\"\n [key]=\"completeness\"\n ></he-blank-node-state>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n <he-blank-node-state-notice [dataState]=\"dataState\" [showAggregated]=\"false\"></he-blank-node-state-notice>\n</div>\n\n<ng-template #emptyTable>\n <div class=\"panel-block\">\n <span>No completeness data</span>\n </div>\n</ng-template>\n", styles: [""], components: [{ type: i1.NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink"] }, { type: i2.BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["nodeType", "dataKey", "key", "node", "state"] }, { type: i3.BlankNodeStateNoticeComponent, selector: "he-blank-node-state-notice", inputs: ["dataState", "showAggregated", "showDeleted", "showUnchanged"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
29
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CyclesCompletenessComponent, decorators: [{
|
|
30
34
|
type: Component,
|
|
31
35
|
args: [{
|
|
@@ -35,7 +39,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
35
39
|
}]
|
|
36
40
|
}], propDecorators: { cycles: [{
|
|
37
41
|
type: Input
|
|
42
|
+
}], selected: [{
|
|
43
|
+
type: Input
|
|
38
44
|
}], dataState: [{
|
|
39
45
|
type: Input
|
|
40
46
|
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWNvbXBsZXRlbmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1jb21wbGV0ZW5lc3MvY3ljbGVzLWNvbXBsZXRlbmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1jb21wbGV0ZW5lc3MvY3ljbGVzLWNvbXBsZXRlbmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBRTdDLE1BQU0sVUFBVSxHQUFHO0lBQ2pCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0I7Q0FDOUQsQ0FBQztBQU9GLE1BQU0sT0FBTywyQkFBMkI7SUFMeEM7UUFPUyxXQUFNLEdBQW1CLEVBQUUsQ0FBQztRQUUzQixhQUFRLEdBQWEsRUFBRSxDQUFDO1FBSXpCLFlBQU8sR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNwQixpQkFBWSxHQUFHLFlBQVksQ0FBQztRQUM1QixlQUFVLEdBQUcsVUFBVSxDQUFDO0tBY2hDO0lBWlEsU0FBUyxDQUFDLE1BQWMsRUFBRSxJQUFrQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGdCQUFnQixLQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BHLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBbUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQzs7eUhBdkJVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLDBJQ2hCeEMsa3BEQXVDQTs0RkR2QmEsMkJBQTJCO2tCQUx2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFdBQVcsRUFBRSxzQ0FBc0M7b0JBQ25ELFNBQVMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2lCQUNwRDs4QkFHUSxNQUFNO3NCQURaLEtBQUs7Z0JBR0UsUUFBUTtzQkFEZixLQUFLO2dCQUdDLFNBQVM7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGFTdGF0ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvYXBpJztcbmltcG9ydCB7IElDeWNsZUpTT05MRCB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcblxuaW1wb3J0IHsgZGVmYXVsdExhYmVsLCBrZXlUb0xhYmVsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcbmltcG9ydCB7IGJhc2VVcmwgfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbHMnO1xuXG5jb25zdCBpZ25vcmVLZXlzID0gW1xuICAnQHR5cGUnLCAnYWRkZWQnLCAndXBkYXRlZCcsICdhZGRlZFZlcnNpb24nLCAndXBkYXRlZFZlcnNpb24nXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZS1jeWNsZXMtY29tcGxldGVuZXNzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N5Y2xlcy1jb21wbGV0ZW5lc3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jeWNsZXMtY29tcGxldGVuZXNzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3ljbGVzQ29tcGxldGVuZXNzQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgcHVibGljIGN5Y2xlczogSUN5Y2xlSlNPTkxEW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHJpdmF0ZSBzZWxlY3RlZDogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGRhdGFTdGF0ZT86IERhdGFTdGF0ZTtcblxuICBwdWJsaWMgYmFzZVVybCA9IGJhc2VVcmwoKTtcbiAgcHVibGljIGRlZmF1bHRMYWJlbCA9IGRlZmF1bHRMYWJlbDtcbiAgcHVibGljIGtleVRvTGFiZWwgPSBrZXlUb0xhYmVsO1xuXG4gIHB1YmxpYyB0cmFja0J5SWQoX2luZGV4OiBudW1iZXIsIGl0ZW06IElDeWNsZUpTT05MRCkge1xuICAgIHJldHVybiBpdGVtWydAaWQnXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29tcGxldGVuZXNzS2V5cygpIHtcbiAgICBjb25zdCBbY3ljbGVdID0gdGhpcy5jeWNsZXM7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGN5Y2xlPy5kYXRhQ29tcGxldGVuZXNzIHx8IHt9KS5maWx0ZXIoa2V5ID0+ICFpZ25vcmVLZXlzLmluY2x1ZGVzKGtleSkpLnNvcnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1NlbGVjdGVkKGN5Y2xlOiBJQ3ljbGVKU09OTEQpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZC5sZW5ndGggPT09IDAgfHwgdGhpcy5zZWxlY3RlZC5pbmNsdWRlcyhjeWNsZVsnQGlkJ10pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicC0zXCIgKm5nSWY9XCJjeWNsZXMubGVuZ3RoOyBlbHNlIGVtcHR5VGFibGVcIj5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbnRhaW5lciBkYXRhLXRhYmxlLWNvbnRhaW5lciBtYi0xXCI+XG4gICAgPHRhYmxlIGNsYXNzPVwidGFibGUgaXMtbmFycm93IGRhdGEtdGFibGUgaGFzLWNoaWxkcmVuLXt7Y3ljbGVzLmxlbmd0aH19XCI+XG4gICAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGggY2xhc3M9XCJ3aWR0aC1hdXRvXCI+PC90aD5cbiAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbXBsZXRlbmVzcyBvZiBjb21wbGV0ZW5lc3NLZXlzXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cImNvbXBsZXRlbmVzc1wiXG4gICAgICAgICAgPjxhIFtocmVmXT1cImJhc2VVcmwgKyAnL3NjaGVtYS9Db21wbGV0ZW5lc3MjJyArIGNvbXBsZXRlbmVzc1wiIHRhcmdldD1cIl9ibGFua1wiPnt7a2V5VG9MYWJlbChjb21wbGV0ZW5lc3MpfX08L2E+PC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGN5Y2xlIG9mIGN5Y2xlczsgdHJhY2tCeTogdHJhY2tCeUlkOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgPHRyICpuZ0lmPVwiaXNTZWxlY3RlZChjeWNsZSlcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndpZHRoLWF1dG9cIiBbYXR0ci50aXRsZV09XCJkZWZhdWx0TGFiZWwoY3ljbGUpXCI+XG4gICAgICAgICAgICAgIDxoZS1ub2RlLWxpbmsgW25vZGVdPVwiY3ljbGVcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlzLW5vd3JhcCBoYXMtdGV4dC1lbGxpcHNpc1wiPnt7aSArIDF9fS4ge3tkZWZhdWx0TGFiZWwoY3ljbGUpfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvaGUtbm9kZS1saW5rPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImlzLW5vd3JhcFwiICpuZ0Zvcj1cImxldCBjb21wbGV0ZW5lc3Mgb2YgY29tcGxldGVuZXNzS2V5c1wiPlxuICAgICAgICAgICAgICA8c3Bhbj57e2N5Y2xlLmRhdGFDb21wbGV0ZW5lc3NbY29tcGxldGVuZXNzXSA/ICdDb21wbGV0ZScgOiAnSW5jb21wbGV0ZSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGhlLWJsYW5rLW5vZGUtc3RhdGUgY2xhc3M9XCJtbC0xXCJcbiAgICAgICAgICAgICAgICBbbm9kZV09XCJjeWNsZS5kYXRhQ29tcGxldGVuZXNzXCJcbiAgICAgICAgICAgICAgICBba2V5XT1cImNvbXBsZXRlbmVzc1wiXG4gICAgICAgICAgICAgID48L2hlLWJsYW5rLW5vZGUtc3RhdGU+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuICA8L2Rpdj5cbiAgPGhlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlIFtkYXRhU3RhdGVdPVwiZGF0YVN0YXRlXCIgW3Nob3dBZ2dyZWdhdGVkXT1cImZhbHNlXCI+PC9oZS1ibGFuay1ub2RlLXN0YXRlLW5vdGljZT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2VtcHR5VGFibGU+XG4gIDxkaXYgY2xhc3M9XCJwYW5lbC1ibG9ja1wiPlxuICAgIDxzcGFuPk5vIGNvbXBsZXRlbmVzcyBkYXRhPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|