@hestia-earth/ui-components 0.0.1
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/README.md +24 -0
- package/auth/auth.service.d.ts +10 -0
- package/auth/public-api.d.ts +1 -0
- package/bibliographies/bibliographies-search-confirm/bibliographies-search-confirm.component.d.ts +40 -0
- package/bibliographies/bibliographies.module.d.ts +10 -0
- package/bibliographies/public-api.d.ts +2 -0
- package/bundles/hestia-earth-ui-components.umd.js +7570 -0
- package/bundles/hestia-earth-ui-components.umd.js.map +1 -0
- package/common/bind-once.directive.d.ts +10 -0
- package/common/blank-node-diffs/blank-node-diffs.component.d.ts +18 -0
- package/common/blank-node-state/blank-node-state.component.d.ts +36 -0
- package/common/blank-node-state-notice/blank-node-state-notice.component.d.ts +9 -0
- package/common/blank-node-value-delta/blank-node-value-delta.component.d.ts +13 -0
- package/common/click-outside.directive.d.ts +10 -0
- package/common/clipboard/clipboard.component.d.ts +16 -0
- package/common/common.module.d.ts +37 -0
- package/common/common.service.d.ts +11 -0
- package/common/default.pipe.d.ts +7 -0
- package/common/ellipsis.pipe.d.ts +7 -0
- package/common/get.pipe.d.ts +7 -0
- package/common/key-to-label.pipe.d.ts +7 -0
- package/common/keys.pipe.d.ts +7 -0
- package/common/link-key-value/link-key-value.component.d.ts +16 -0
- package/common/logs-utils.d.ts +17 -0
- package/common/maps-drawing-confirm/maps-drawing-confirm.component.d.ts +28 -0
- package/common/maps-utils.d.ts +70 -0
- package/common/pluralize.pipe.d.ts +7 -0
- package/common/popover/popover.component.d.ts +16 -0
- package/common/popover-confirm/popover-confirm.component.d.ts +15 -0
- package/common/precision.pipe.d.ts +7 -0
- package/common/public-api.d.ts +30 -0
- package/common/schema-version-link/schema-version-link.component.d.ts +10 -0
- package/common/skeleton-text/skeleton-text.component.d.ts +11 -0
- package/common/social-tags/social-tags.component.d.ts +12 -0
- package/common/tags-input.directive.d.ts +20 -0
- package/common/times.pipe.d.ts +7 -0
- package/common/toast/toast.component.d.ts +19 -0
- package/common/toast.service.d.ts +16 -0
- package/common/unit-converter/unit-converter.component.d.ts +25 -0
- package/common/utils.d.ts +88 -0
- package/cycles/cycles-activity/cycles-activity.component.d.ts +31 -0
- package/cycles/cycles-activity-logs/cycles-activity-logs.component.d.ts +25 -0
- package/cycles/cycles-completeness/cycles-completeness.component.d.ts +14 -0
- package/cycles/cycles-emissions/cycles-emissions.component.d.ts +40 -0
- package/cycles/cycles-emissions-chart/cycles-emissions-chart.component.d.ts +18 -0
- package/cycles/cycles-emissions-logs/cycles-emissions-logs.component.d.ts +23 -0
- package/cycles/cycles-functional-unit-measure/cycles-functional-unit-measure.component.d.ts +8 -0
- package/cycles/cycles-result/cycles-result.component.d.ts +13 -0
- package/cycles/cycles-suggest-form/cycles-suggest-form.component.d.ts +24 -0
- package/cycles/cycles.model.d.ts +7 -0
- package/cycles/cycles.module.d.ts +19 -0
- package/cycles/public-api.d.ts +10 -0
- package/engine/aggregation-engine.service.d.ts +71 -0
- package/engine/engine.service.d.ts +61 -0
- package/engine/public-api.d.ts +2 -0
- package/esm2015/auth/auth.service.js +19 -0
- package/esm2015/auth/public-api.js +2 -0
- package/esm2015/bibliographies/bibliographies-search-confirm/bibliographies-search-confirm.component.js +100 -0
- package/esm2015/bibliographies/bibliographies.module.js +30 -0
- package/esm2015/bibliographies/public-api.js +3 -0
- package/esm2015/common/bind-once.directive.js +23 -0
- package/esm2015/common/blank-node-diffs/blank-node-diffs.component.js +47 -0
- package/esm2015/common/blank-node-state/blank-node-state.component.js +90 -0
- package/esm2015/common/blank-node-state-notice/blank-node-state-notice.component.js +27 -0
- package/esm2015/common/blank-node-value-delta/blank-node-value-delta.component.js +41 -0
- package/esm2015/common/click-outside.directive.js +28 -0
- package/esm2015/common/clipboard/clipboard.component.js +69 -0
- package/esm2015/common/common.module.js +144 -0
- package/esm2015/common/common.service.js +29 -0
- package/esm2015/common/default.pipe.js +23 -0
- package/esm2015/common/ellipsis.pipe.js +17 -0
- package/esm2015/common/get.pipe.js +17 -0
- package/esm2015/common/key-to-label.pipe.js +18 -0
- package/esm2015/common/keys.pipe.js +20 -0
- package/esm2015/common/link-key-value/link-key-value.component.js +55 -0
- package/esm2015/common/logs-utils.js +49 -0
- package/esm2015/common/maps-drawing-confirm/maps-drawing-confirm.component.js +89 -0
- package/esm2015/common/maps-utils.js +101 -0
- package/esm2015/common/pluralize.pipe.js +17 -0
- package/esm2015/common/popover/popover.component.js +37 -0
- package/esm2015/common/popover-confirm/popover-confirm.component.js +38 -0
- package/esm2015/common/precision.pipe.js +20 -0
- package/esm2015/common/public-api.js +31 -0
- package/esm2015/common/schema-version-link/schema-version-link.component.js +39 -0
- package/esm2015/common/skeleton-text/skeleton-text.component.js +44 -0
- package/esm2015/common/social-tags/social-tags.component.js +37 -0
- package/esm2015/common/tags-input.directive.js +74 -0
- package/esm2015/common/times.pipe.js +16 -0
- package/esm2015/common/toast/toast.component.js +37 -0
- package/esm2015/common/toast.service.js +36 -0
- package/esm2015/common/unit-converter/unit-converter.component.js +73 -0
- package/esm2015/common/utils.js +245 -0
- package/esm2015/cycles/cycles-activity/cycles-activity.component.js +92 -0
- package/esm2015/cycles/cycles-activity-logs/cycles-activity-logs.component.js +48 -0
- package/esm2015/cycles/cycles-completeness/cycles-completeness.component.js +41 -0
- package/esm2015/cycles/cycles-emissions/cycles-emissions.component.js +121 -0
- package/esm2015/cycles/cycles-emissions-chart/cycles-emissions-chart.component.js +93 -0
- package/esm2015/cycles/cycles-emissions-logs/cycles-emissions-logs.component.js +63 -0
- package/esm2015/cycles/cycles-functional-unit-measure/cycles-functional-unit-measure.component.js +22 -0
- package/esm2015/cycles/cycles-result/cycles-result.component.js +92 -0
- package/esm2015/cycles/cycles-suggest-form/cycles-suggest-form.component.js +83 -0
- package/esm2015/cycles/cycles.model.js +2 -0
- package/esm2015/cycles/cycles.module.js +66 -0
- package/esm2015/cycles/public-api.js +11 -0
- package/esm2015/engine/aggregation-engine.service.js +126 -0
- package/esm2015/engine/engine.service.js +78 -0
- package/esm2015/engine/public-api.js +3 -0
- package/esm2015/files/files-error.model.js +180 -0
- package/esm2015/files/files-form/files-form.component.js +439 -0
- package/esm2015/files/files-form.model.js +548 -0
- package/esm2015/files/files.module.js +42 -0
- package/esm2015/files/public-api.js +3 -0
- package/esm2015/fontawesome/fontawesome.module.js +36 -0
- package/esm2015/fontawesome/public-api.js +2 -0
- package/esm2015/hestia-earth-ui-components.js +5 -0
- package/esm2015/impact-assessments/impact-assessments-indicator-breakdown-chart/impact-assessments-indicator-breakdown-chart.component.js +161 -0
- package/esm2015/impact-assessments/impact-assessments-indicators-chart/impact-assessments-indicators-chart.component.js +142 -0
- package/esm2015/impact-assessments/impact-assessments-products/impact-assessments-products.component.js +252 -0
- package/esm2015/impact-assessments/impact-assessments-products-logs/impact-assessments-products-logs.component.js +68 -0
- package/esm2015/impact-assessments/impact-assessments.model.js +2 -0
- package/esm2015/impact-assessments/impact-assessments.module.js +47 -0
- package/esm2015/impact-assessments/public-api.js +7 -0
- package/esm2015/mendeley/mendeley.service.js +35 -0
- package/esm2015/mendeley/public-api.js +2 -0
- package/esm2015/node/node-csv-export-confirm/node-csv-export-confirm.component.js +65 -0
- package/esm2015/node/node-csv-select-headers/node-csv-select-headers.component.js +119 -0
- package/esm2015/node/node-csv.service.js +24 -0
- package/esm2015/node/node-diffs/node-diffs.component.js +67 -0
- package/esm2015/node/node-diffs/node-diffs.model.js +6 -0
- package/esm2015/node/node-icon/node-icon.component.js +37 -0
- package/esm2015/node/node-link/node-link.component.js +33 -0
- package/esm2015/node/node-logs-file/node-logs-file.component.js +63 -0
- package/esm2015/node/node-logs-models/node-logs-models.component.js +188 -0
- package/esm2015/node/node-missing-lookup-factors/node-missing-lookup-factors.component.js +34 -0
- package/esm2015/node/node-value-details/node-value-details.component.js +46 -0
- package/esm2015/node/node.module.js +67 -0
- package/esm2015/node/node.service.js +113 -0
- package/esm2015/node/public-api.js +13 -0
- package/esm2015/public-api.js +16 -0
- package/esm2015/schema/public-api.js +2 -0
- package/esm2015/schema/schema.service.js +167 -0
- package/esm2015/search/public-api.js +4 -0
- package/esm2015/search/search.model.js +204 -0
- package/esm2015/search/search.module.js +13 -0
- package/esm2015/search/search.service.js +99 -0
- package/esm2015/sites/public-api.js +6 -0
- package/esm2015/sites/sites-maps/sites-maps.component.js +162 -0
- package/esm2015/sites/sites-measurements/sites-measurements.component.js +78 -0
- package/esm2015/sites/sites-measurements-logs/sites-measurements-logs.component.js +63 -0
- package/esm2015/sites/sites.model.js +10 -0
- package/esm2015/sites/sites.module.js +42 -0
- package/esm2015/terms/public-api.js +2 -0
- package/esm2015/terms/terms.model.js +184 -0
- package/esm2015/users/public-api.js +2 -0
- package/esm2015/users/users.service.js +17 -0
- package/fesm2015/hestia-earth-ui-components.js +5920 -0
- package/fesm2015/hestia-earth-ui-components.js.map +1 -0
- package/files/files-error.model.d.ts +40 -0
- package/files/files-form/files-form.component.d.ts +94 -0
- package/files/files-form.model.d.ts +113 -0
- package/files/files.module.d.ts +13 -0
- package/files/public-api.d.ts +2 -0
- package/fontawesome/fontawesome.module.d.ts +10 -0
- package/fontawesome/public-api.d.ts +1 -0
- package/hestia-earth-ui-components.d.ts +5 -0
- package/impact-assessments/impact-assessments-indicator-breakdown-chart/impact-assessments-indicator-breakdown-chart.component.d.ts +28 -0
- package/impact-assessments/impact-assessments-indicators-chart/impact-assessments-indicators-chart.component.d.ts +25 -0
- package/impact-assessments/impact-assessments-products/impact-assessments-products.component.d.ts +77 -0
- package/impact-assessments/impact-assessments-products-logs/impact-assessments-products-logs.component.d.ts +25 -0
- package/impact-assessments/impact-assessments.model.d.ts +6 -0
- package/impact-assessments/impact-assessments.module.d.ts +15 -0
- package/impact-assessments/public-api.d.ts +6 -0
- package/mendeley/mendeley.service.d.ts +25 -0
- package/mendeley/public-api.d.ts +1 -0
- package/node/node-csv-export-confirm/node-csv-export-confirm.component.d.ts +32 -0
- package/node/node-csv-select-headers/node-csv-select-headers.component.d.ts +42 -0
- package/node/node-csv.service.d.ts +9 -0
- package/node/node-diffs/node-diffs.component.d.ts +23 -0
- package/node/node-diffs/node-diffs.model.d.ts +4 -0
- package/node/node-icon/node-icon.component.d.ts +8 -0
- package/node/node-link/node-link.component.d.ts +11 -0
- package/node/node-logs-file/node-logs-file.component.d.ts +31 -0
- package/node/node-logs-models/node-logs-models.component.d.ts +72 -0
- package/node/node-missing-lookup-factors/node-missing-lookup-factors.component.d.ts +14 -0
- package/node/node-value-details/node-value-details.component.d.ts +17 -0
- package/node/node.module.d.ts +20 -0
- package/node/node.service.d.ts +70 -0
- package/node/public-api.d.ts +12 -0
- package/package.json +53 -0
- package/public-api.d.ts +15 -0
- package/schema/public-api.d.ts +1 -0
- package/schema/schema.service.d.ts +51 -0
- package/search/public-api.d.ts +3 -0
- package/search/search.model.d.ts +243 -0
- package/search/search.module.d.ts +7 -0
- package/search/search.service.d.ts +129 -0
- package/sites/public-api.d.ts +5 -0
- package/sites/sites-maps/sites-maps.component.d.ts +35 -0
- package/sites/sites-measurements/sites-measurements.component.d.ts +31 -0
- package/sites/sites-measurements-logs/sites-measurements-logs.component.d.ts +23 -0
- package/sites/sites.model.d.ts +10 -0
- package/sites/sites.module.d.ts +13 -0
- package/styles.scss +197 -0
- package/terms/public-api.d.ts +1 -0
- package/terms/terms.model.d.ts +21 -0
- package/users/public-api.d.ts +1 -0
- package/users/users.service.d.ts +7 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { HeCommonModule } from '../common/common.module';
|
|
5
|
+
import { HeNodeModule } from '../node/node.module';
|
|
6
|
+
import { HeBibliographiesModule } from '../bibliographies/bibliographies.module';
|
|
7
|
+
import { HeSitesModule } from '../sites/sites.module';
|
|
8
|
+
import { FilesFormComponent } from './files-form/files-form.component';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
const components = [
|
|
11
|
+
FilesFormComponent
|
|
12
|
+
];
|
|
13
|
+
export class HeFilesModule {
|
|
14
|
+
}
|
|
15
|
+
HeFilesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeFilesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
HeFilesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeFilesModule, declarations: [FilesFormComponent], imports: [CommonModule, FormsModule,
|
|
17
|
+
HeCommonModule,
|
|
18
|
+
HeNodeModule,
|
|
19
|
+
HeBibliographiesModule,
|
|
20
|
+
HeSitesModule], exports: [FilesFormComponent] });
|
|
21
|
+
HeFilesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeFilesModule, imports: [[
|
|
22
|
+
CommonModule, FormsModule,
|
|
23
|
+
HeCommonModule,
|
|
24
|
+
HeNodeModule,
|
|
25
|
+
HeBibliographiesModule,
|
|
26
|
+
HeSitesModule
|
|
27
|
+
]] });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeFilesModule, decorators: [{
|
|
29
|
+
type: NgModule,
|
|
30
|
+
args: [{
|
|
31
|
+
declarations: components,
|
|
32
|
+
exports: components,
|
|
33
|
+
imports: [
|
|
34
|
+
CommonModule, FormsModule,
|
|
35
|
+
HeCommonModule,
|
|
36
|
+
HeNodeModule,
|
|
37
|
+
HeBibliographiesModule,
|
|
38
|
+
HeSitesModule
|
|
39
|
+
]
|
|
40
|
+
}]
|
|
41
|
+
}] });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZpbGVzL2ZpbGVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBRXZFLE1BQU0sVUFBVSxHQUFHO0lBQ2pCLGtCQUFrQjtDQUNuQixDQUFDO0FBYUYsTUFBTSxPQUFPLGFBQWE7OzJHQUFiLGFBQWE7NEdBQWIsYUFBYSxpQkFkeEIsa0JBQWtCLGFBT2hCLFlBQVksRUFBRSxXQUFXO1FBQ3pCLGNBQWM7UUFDZCxZQUFZO1FBQ1osc0JBQXNCO1FBQ3RCLGFBQWEsYUFYZixrQkFBa0I7NEdBY1AsYUFBYSxZQVJmO1lBQ1AsWUFBWSxFQUFFLFdBQVc7WUFDekIsY0FBYztZQUNkLFlBQVk7WUFDWixzQkFBc0I7WUFDdEIsYUFBYTtTQUNkOzRGQUVVLGFBQWE7a0JBWHpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLFVBQVU7b0JBQ3hCLE9BQU8sRUFBRSxVQUFVO29CQUNuQixPQUFPLEVBQUU7d0JBQ1AsWUFBWSxFQUFFLFdBQVc7d0JBQ3pCLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixzQkFBc0I7d0JBQ3RCLGFBQWE7cUJBQ2Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBIZUNvbW1vbk1vZHVsZSB9IGZyb20gJy4uL2NvbW1vbi9jb21tb24ubW9kdWxlJztcbmltcG9ydCB7IEhlTm9kZU1vZHVsZSB9IGZyb20gJy4uL25vZGUvbm9kZS5tb2R1bGUnO1xuaW1wb3J0IHsgSGVCaWJsaW9ncmFwaGllc01vZHVsZSB9IGZyb20gJy4uL2JpYmxpb2dyYXBoaWVzL2JpYmxpb2dyYXBoaWVzLm1vZHVsZSc7XG5pbXBvcnQgeyBIZVNpdGVzTW9kdWxlIH0gZnJvbSAnLi4vc2l0ZXMvc2l0ZXMubW9kdWxlJztcblxuaW1wb3J0IHsgRmlsZXNGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlcy1mb3JtL2ZpbGVzLWZvcm0uY29tcG9uZW50JztcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgRmlsZXNGb3JtQ29tcG9uZW50XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IGNvbXBvbmVudHMsXG4gIGV4cG9ydHM6IGNvbXBvbmVudHMsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLFxuICAgIEhlQ29tbW9uTW9kdWxlLFxuICAgIEhlTm9kZU1vZHVsZSxcbiAgICBIZUJpYmxpb2dyYXBoaWVzTW9kdWxlLFxuICAgIEhlU2l0ZXNNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBIZUZpbGVzTW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './files.module';
|
|
2
|
+
export { FilesFormComponent } from './files-form/files-form.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWxlcy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpbGVzLm1vZHVsZSc7XG5cbmV4cG9ydCB7IEZpbGVzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vZmlsZXMtZm9ybS9maWxlcy1mb3JtLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
4
|
+
import { faClone as farClone, faCircle as farCircle, faIdBadge as farIdBadge } from '@fortawesome/free-regular-svg-icons';
|
|
5
|
+
import { faAngleDoubleLeft, faAngleDoubleRight, faAngleDown, faAngleLeft, faAngleRight, faBookOpen, faBuilding, faCalculator, faChartBar, faCheck, faClipboard, faClipboardList, faClone, faComments, faDownload, faDrawPolygon, faEdit, faExclamationTriangle, faExternalLinkAlt, faFilter, faList, faLongArrowAltDown, faLongArrowAltUp, faLongArrowAltLeft, faLongArrowAltRight, faMap, faMapMarked, faMapMarkedAlt, faPlus, faPlusCircle, faSearch, faSeedling, faSpellCheck, faSpinner, faTimes, faUser } from '@fortawesome/free-solid-svg-icons';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@fortawesome/angular-fontawesome";
|
|
8
|
+
export class HeFontawesomeModule {
|
|
9
|
+
constructor(library) {
|
|
10
|
+
library.addIcons(
|
|
11
|
+
// free-regular
|
|
12
|
+
farClone, farCircle, farIdBadge,
|
|
13
|
+
// free-solid
|
|
14
|
+
faAngleDoubleLeft, faAngleDoubleRight, faAngleDown, faAngleLeft, faAngleRight, faBookOpen, faBuilding, faCalculator, faChartBar, faCheck, faClipboard, faClipboardList, faClone, faComments, faDownload, faDrawPolygon, faEdit, faExclamationTriangle, faExternalLinkAlt, faFilter, faList, faLongArrowAltDown, faLongArrowAltUp, faLongArrowAltLeft, faLongArrowAltRight, faMap, faMapMarked, faMapMarkedAlt, faPlus, faPlusCircle, faSearch, faSeedling, faSpellCheck, faSpinner, faTimes, faUser);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
HeFontawesomeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeFontawesomeModule, deps: [{ token: i1.FaIconLibrary }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
+
HeFontawesomeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeFontawesomeModule, imports: [CommonModule,
|
|
19
|
+
FontAwesomeModule], exports: [FontAwesomeModule] });
|
|
20
|
+
HeFontawesomeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeFontawesomeModule, imports: [[
|
|
21
|
+
CommonModule,
|
|
22
|
+
FontAwesomeModule
|
|
23
|
+
], FontAwesomeModule] });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HeFontawesomeModule, decorators: [{
|
|
25
|
+
type: NgModule,
|
|
26
|
+
args: [{
|
|
27
|
+
imports: [
|
|
28
|
+
CommonModule,
|
|
29
|
+
FontAwesomeModule
|
|
30
|
+
],
|
|
31
|
+
exports: [
|
|
32
|
+
FontAwesomeModule
|
|
33
|
+
]
|
|
34
|
+
}]
|
|
35
|
+
}], ctorParameters: function () { return [{ type: i1.FaIconLibrary }]; } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9udGF3ZXNvbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZvbnRhd2Vzb21lL2ZvbnRhd2Vzb21lLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0sa0NBQWtDLENBQUM7QUFDcEYsT0FBTyxFQUNMLE9BQU8sSUFBSSxRQUFRLEVBQ25CLFFBQVEsSUFBSSxTQUFTLEVBQ3JCLFNBQVMsSUFBSSxVQUFVLEVBQ3hCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLFdBQVcsRUFDWCxZQUFZLEVBQ1osVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLE9BQU8sRUFDUCxXQUFXLEVBQ1gsZUFBZSxFQUNmLE9BQU8sRUFDUCxVQUFVLEVBQ1YsVUFBVSxFQUNWLGFBQWEsRUFDYixNQUFNLEVBQ04scUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxFQUNOLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixLQUFLLEVBQ0wsV0FBVyxFQUNYLGNBQWMsRUFDZCxNQUFNLEVBQ04sWUFBWSxFQUNaLFFBQVEsRUFDUixVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsRUFDVCxPQUFPLEVBQ1AsTUFBTSxFQUNQLE1BQU0sbUNBQW1DLENBQUM7OztBQVczQyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQVksT0FBc0I7UUFDaEMsT0FBTyxDQUFDLFFBQVE7UUFDZCxlQUFlO1FBQ2YsUUFBUSxFQUNSLFNBQVMsRUFDVCxVQUFVO1FBQ1YsYUFBYTtRQUNiLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLFdBQVcsRUFDWCxZQUFZLEVBQ1osVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLE9BQU8sRUFDUCxXQUFXLEVBQ1gsZUFBZSxFQUNmLE9BQU8sRUFDUCxVQUFVLEVBQ1YsVUFBVSxFQUNWLGFBQWEsRUFDYixNQUFNLEVBQ04scUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxFQUNOLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixLQUFLLEVBQ0wsV0FBVyxFQUNYLGNBQWMsRUFDZCxNQUFNLEVBQ04sWUFBWSxFQUNaLFFBQVEsRUFDUixVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsRUFDVCxPQUFPLEVBQ1AsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDOztpSEE3Q1UsbUJBQW1CO2tIQUFuQixtQkFBbUIsWUFQNUIsWUFBWTtRQUNaLGlCQUFpQixhQUdqQixpQkFBaUI7a0hBR1IsbUJBQW1CLFlBUnJCO1lBQ1AsWUFBWTtZQUNaLGlCQUFpQjtTQUNsQixFQUVDLGlCQUFpQjs0RkFHUixtQkFBbUI7a0JBVC9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osaUJBQWlCO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsaUJBQWlCO3FCQUNsQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUsIEZhSWNvbkxpYnJhcnkgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQge1xuICBmYUNsb25lIGFzIGZhckNsb25lLFxuICBmYUNpcmNsZSBhcyBmYXJDaXJjbGUsXG4gIGZhSWRCYWRnZSBhcyBmYXJJZEJhZGdlXG59IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXJlZ3VsYXItc3ZnLWljb25zJztcbmltcG9ydCB7XG4gIGZhQW5nbGVEb3VibGVMZWZ0LFxuICBmYUFuZ2xlRG91YmxlUmlnaHQsXG4gIGZhQW5nbGVEb3duLFxuICBmYUFuZ2xlTGVmdCxcbiAgZmFBbmdsZVJpZ2h0LFxuICBmYUJvb2tPcGVuLFxuICBmYUJ1aWxkaW5nLFxuICBmYUNhbGN1bGF0b3IsXG4gIGZhQ2hhcnRCYXIsXG4gIGZhQ2hlY2ssXG4gIGZhQ2xpcGJvYXJkLFxuICBmYUNsaXBib2FyZExpc3QsXG4gIGZhQ2xvbmUsXG4gIGZhQ29tbWVudHMsXG4gIGZhRG93bmxvYWQsXG4gIGZhRHJhd1BvbHlnb24sXG4gIGZhRWRpdCxcbiAgZmFFeGNsYW1hdGlvblRyaWFuZ2xlLFxuICBmYUV4dGVybmFsTGlua0FsdCxcbiAgZmFGaWx0ZXIsXG4gIGZhTGlzdCxcbiAgZmFMb25nQXJyb3dBbHREb3duLFxuICBmYUxvbmdBcnJvd0FsdFVwLFxuICBmYUxvbmdBcnJvd0FsdExlZnQsXG4gIGZhTG9uZ0Fycm93QWx0UmlnaHQsXG4gIGZhTWFwLFxuICBmYU1hcE1hcmtlZCxcbiAgZmFNYXBNYXJrZWRBbHQsXG4gIGZhUGx1cyxcbiAgZmFQbHVzQ2lyY2xlLFxuICBmYVNlYXJjaCxcbiAgZmFTZWVkbGluZyxcbiAgZmFTcGVsbENoZWNrLFxuICBmYVNwaW5uZXIsXG4gIGZhVGltZXMsXG4gIGZhVXNlclxufSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvbnRBd2Vzb21lTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBGb250QXdlc29tZU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEhlRm9udGF3ZXNvbWVNb2R1bGUge1xuICBjb25zdHJ1Y3RvcihsaWJyYXJ5OiBGYUljb25MaWJyYXJ5KSB7XG4gICAgbGlicmFyeS5hZGRJY29ucyhcbiAgICAgIC8vIGZyZWUtcmVndWxhclxuICAgICAgZmFyQ2xvbmUsXG4gICAgICBmYXJDaXJjbGUsXG4gICAgICBmYXJJZEJhZGdlLFxuICAgICAgLy8gZnJlZS1zb2xpZFxuICAgICAgZmFBbmdsZURvdWJsZUxlZnQsXG4gICAgICBmYUFuZ2xlRG91YmxlUmlnaHQsXG4gICAgICBmYUFuZ2xlRG93bixcbiAgICAgIGZhQW5nbGVMZWZ0LFxuICAgICAgZmFBbmdsZVJpZ2h0LFxuICAgICAgZmFCb29rT3BlbixcbiAgICAgIGZhQnVpbGRpbmcsXG4gICAgICBmYUNhbGN1bGF0b3IsXG4gICAgICBmYUNoYXJ0QmFyLFxuICAgICAgZmFDaGVjayxcbiAgICAgIGZhQ2xpcGJvYXJkLFxuICAgICAgZmFDbGlwYm9hcmRMaXN0LFxuICAgICAgZmFDbG9uZSxcbiAgICAgIGZhQ29tbWVudHMsXG4gICAgICBmYURvd25sb2FkLFxuICAgICAgZmFEcmF3UG9seWdvbixcbiAgICAgIGZhRWRpdCxcbiAgICAgIGZhRXhjbGFtYXRpb25UcmlhbmdsZSxcbiAgICAgIGZhRXh0ZXJuYWxMaW5rQWx0LFxuICAgICAgZmFGaWx0ZXIsXG4gICAgICBmYUxpc3QsXG4gICAgICBmYUxvbmdBcnJvd0FsdERvd24sXG4gICAgICBmYUxvbmdBcnJvd0FsdFVwLFxuICAgICAgZmFMb25nQXJyb3dBbHRMZWZ0LFxuICAgICAgZmFMb25nQXJyb3dBbHRSaWdodCxcbiAgICAgIGZhTWFwLFxuICAgICAgZmFNYXBNYXJrZWQsXG4gICAgICBmYU1hcE1hcmtlZEFsdCxcbiAgICAgIGZhUGx1cyxcbiAgICAgIGZhUGx1c0NpcmNsZSxcbiAgICAgIGZhU2VhcmNoLFxuICAgICAgZmFTZWVkbGluZyxcbiAgICAgIGZhU3BlbGxDaGVjayxcbiAgICAgIGZhU3Bpbm5lcixcbiAgICAgIGZhVGltZXMsXG4gICAgICBmYVVzZXJcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './fontawesome.module';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mb250YXdlc29tZS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZvbnRhd2Vzb21lLm1vZHVsZSc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVzdGlhLWVhcnRoLXVpLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVzdGlhLWVhcnRoLXVpLWNvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
3
|
+
import { of } from 'rxjs';
|
|
4
|
+
import { filter, groupBy, map, mergeAll, mergeMap, toArray } from 'rxjs/operators';
|
|
5
|
+
import { Chart } from 'chart.js';
|
|
6
|
+
import ChartDataLabels from 'chartjs-plugin-datalabels';
|
|
7
|
+
import { DataState } from '@hestia-earth/api';
|
|
8
|
+
import { NodeType, TermTermType } from '@hestia-earth/schema';
|
|
9
|
+
import { toPrecision } from '@hestia-earth/utils';
|
|
10
|
+
import { matchTermType, matchType } from '../../search/search.model';
|
|
11
|
+
import { Level, parseLines, parseMessage } from '../../common/logs-utils';
|
|
12
|
+
import { listColor } from '../../common/utils';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/platform-browser";
|
|
15
|
+
import * as i2 from "../../search/search.service";
|
|
16
|
+
import * as i3 from "../../node/node.service";
|
|
17
|
+
import * as i4 from "@fortawesome/angular-fontawesome";
|
|
18
|
+
import * as i5 from "@angular/forms";
|
|
19
|
+
import * as i6 from "@angular/common";
|
|
20
|
+
const parseLog = (data) => ({
|
|
21
|
+
indicator: data['key/term'],
|
|
22
|
+
emission: data.node,
|
|
23
|
+
value: +data.value * +data.coefficient
|
|
24
|
+
});
|
|
25
|
+
const filterTermTypes = [
|
|
26
|
+
TermTermType.emission,
|
|
27
|
+
TermTermType.characterisedIndicator
|
|
28
|
+
];
|
|
29
|
+
const toCsv = (logs) => [
|
|
30
|
+
[
|
|
31
|
+
'Indicator',
|
|
32
|
+
'Emission',
|
|
33
|
+
'Value'
|
|
34
|
+
].join(','),
|
|
35
|
+
...logs
|
|
36
|
+
.sort((a, b) => a.indicator.localeCompare(b.indicator))
|
|
37
|
+
.map(({ indicator, emission, value }) => [indicator, emission, value].join(','))
|
|
38
|
+
].join('\n');
|
|
39
|
+
export class ImpactAssessmentsIndicatorBreakdownChartComponent {
|
|
40
|
+
constructor(domSanitizer, searchService, nodeService) {
|
|
41
|
+
this.domSanitizer = domSanitizer;
|
|
42
|
+
this.searchService = searchService;
|
|
43
|
+
this.nodeService = nodeService;
|
|
44
|
+
this.logs = [];
|
|
45
|
+
this.emissions = [];
|
|
46
|
+
this.indicators = [];
|
|
47
|
+
this.loading = true;
|
|
48
|
+
this.terms = [];
|
|
49
|
+
this.noData = false;
|
|
50
|
+
}
|
|
51
|
+
ngOnInit() {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
this.terms = this.indicators.map(({ term }) => term);
|
|
54
|
+
this.logs = (yield of(Object.assign(Object.assign({}, this.impactAssessment), { dataState: DataState.recalculated })).pipe(mergeMap(node => this.nodeService.getLog(node)), map(value => value ? parseLines(value) : []), mergeAll(), filter(({ data }) => data.logger === 'hestia_earth.models' && data.level === Level.debug), map(({ data }) => parseMessage(data.message)), filter(message => 'node' in message), map(parseLog), filter(log => !isNaN(log.value) && log.value > 0), groupBy(log => [log.indicator, log.emission].join('/')), mergeMap(group => group.pipe(toArray())), map(values => {
|
|
55
|
+
const total = values.reduce((prev, curr) => prev + curr.value, 0);
|
|
56
|
+
return Object.assign(Object.assign({}, values[0]), { value: total });
|
|
57
|
+
}), toArray()).toPromise());
|
|
58
|
+
this.csvContent = this.domSanitizer.bypassSecurityTrustResourceUrl(`data:text/html;charset=utf-8,${encodeURIComponent(toCsv(this.logs))}`);
|
|
59
|
+
const { results: emissions } = yield this.searchService.search({
|
|
60
|
+
fields: ['@type', '@id', 'name'],
|
|
61
|
+
limit: 1000,
|
|
62
|
+
query: {
|
|
63
|
+
bool: {
|
|
64
|
+
must: [
|
|
65
|
+
matchType(NodeType.Term)
|
|
66
|
+
],
|
|
67
|
+
should: filterTermTypes.map(termType => matchTermType(termType)),
|
|
68
|
+
minimum_should_match: 1
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
this.emissions = emissions;
|
|
73
|
+
this.loading = false;
|
|
74
|
+
this.selectedTerm = this.terms[0];
|
|
75
|
+
this.updateChart();
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
get id() {
|
|
79
|
+
return this.impactAssessment['@id'] || this.impactAssessment.id;
|
|
80
|
+
}
|
|
81
|
+
updateChart() {
|
|
82
|
+
var _a, _b, _c;
|
|
83
|
+
const logs = this.logs
|
|
84
|
+
.filter(({ indicator }) => indicator === this.selectedTerm['@id'])
|
|
85
|
+
.sort((a, b) => b.value - a.value);
|
|
86
|
+
this.noData = logs.length === 0;
|
|
87
|
+
const labels = logs.map(({ emission }) => { var _a; return ((_a = this.emissions.find(v => v['@id'] === emission)) === null || _a === void 0 ? void 0 : _a.name) || emission; });
|
|
88
|
+
const datasets = [{
|
|
89
|
+
label: (_b = (_a = this.selectedTerm) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '',
|
|
90
|
+
data: logs.map(({ value }) => value),
|
|
91
|
+
backgroundColor: logs.map(listColor),
|
|
92
|
+
borderColor: logs.map(listColor)
|
|
93
|
+
}];
|
|
94
|
+
const total = logs.reduce((prev, curr) => prev + curr.value, 0);
|
|
95
|
+
if (this.chart) {
|
|
96
|
+
this.chart.destroy();
|
|
97
|
+
}
|
|
98
|
+
this.chart = new Chart((_c = this.chartRef) === null || _c === void 0 ? void 0 : _c.nativeElement, {
|
|
99
|
+
type: 'horizontalBar',
|
|
100
|
+
data: {
|
|
101
|
+
labels,
|
|
102
|
+
datasets
|
|
103
|
+
},
|
|
104
|
+
plugins: [ChartDataLabels],
|
|
105
|
+
options: {
|
|
106
|
+
plugins: {
|
|
107
|
+
datalabels: {
|
|
108
|
+
color: 'black',
|
|
109
|
+
formatter: (value) => {
|
|
110
|
+
const ratio = toPrecision(value * 100 / total, 2);
|
|
111
|
+
return `${toPrecision(value, 3)} (${ratio}%)`;
|
|
112
|
+
},
|
|
113
|
+
align: 'end'
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
responsive: true,
|
|
117
|
+
maintainAspectRatio: false,
|
|
118
|
+
legend: {
|
|
119
|
+
display: false
|
|
120
|
+
},
|
|
121
|
+
tooltips: {
|
|
122
|
+
enabled: false,
|
|
123
|
+
callbacks: {
|
|
124
|
+
title: (tooltipItems, data) => { var _a; return ((_a = data.datasets[tooltipItems[0].datasetIndex]) === null || _a === void 0 ? void 0 : _a.label) || ''; },
|
|
125
|
+
label: (tooltipItem) => {
|
|
126
|
+
const value = +(tooltipItem.value || '0');
|
|
127
|
+
const ratio = toPrecision(value * 100 / total, 2);
|
|
128
|
+
return `${toPrecision(value, 3)} (${ratio}%)`;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
scales: {
|
|
133
|
+
xAxes: [{
|
|
134
|
+
display: true
|
|
135
|
+
}],
|
|
136
|
+
yAxes: [{
|
|
137
|
+
position: 'left'
|
|
138
|
+
}]
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
ImpactAssessmentsIndicatorBreakdownChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ImpactAssessmentsIndicatorBreakdownChartComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.HeSearchService }, { token: i3.HeNodeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
145
|
+
ImpactAssessmentsIndicatorBreakdownChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ImpactAssessmentsIndicatorBreakdownChartComponent, selector: "he-impact-assessments-indicator-breakdown-chart", inputs: { impactAssessment: "impactAssessment", indicators: "indicators" }, viewQueries: [{ propertyName: "chartRef", first: true, predicate: ["chart"], descendants: true }], ngImport: i0, template: "<div class=\"p-3\" [class.is-hidden]=\"loading || !terms?.length\">\n <div class=\"columns\">\n <div class=\"column\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <span class=\"button is-small is-static\">Select an Indicator</span>\n </div>\n <div class=\"control is-expanded\">\n <div class=\"select is-fullwidth is-small\">\n <select (change)=\"updateChart()\" [(ngModel)]=\"selectedTerm\" id=\"selectedTerm\">\n <option *ngFor=\"let term of terms\" [ngValue]=\"term\">{{term.name}} ({{term.units}})</option>\n </select>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <a class=\"button is-dark is-outlined is-small\" [href]=\"csvContent\" [download]=\"id + '-logs.csv'\">\n <fa-icon icon=\"download\"></fa-icon>\n <span class=\"pl-2\">Download All (CSV)</span>\n </a>\n </div>\n </div>\n\n <div class=\"mt-1\">\n <p *ngIf=\"noData\" class=\"has-text-centered\">No breakdown available for {{selectedTerm?.name}}.</p>\n <div class=\"chart-container h-100\">\n <canvas #chart></canvas>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"loading\">\n <div class=\"has-text-center py-3\">\n <fa-icon icon=\"spinner\" [pulse]=\"true\" size=\"lg\"></fa-icon>\n </div>\n</ng-container>\n", styles: [":host{display:block;overflow:visible}.chart-container{height:400px;position:relative}\n"], components: [{ type: i4.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }], directives: [{ type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ImpactAssessmentsIndicatorBreakdownChartComponent, decorators: [{
|
|
147
|
+
type: Component,
|
|
148
|
+
args: [{
|
|
149
|
+
selector: 'he-impact-assessments-indicator-breakdown-chart',
|
|
150
|
+
templateUrl: './impact-assessments-indicator-breakdown-chart.component.html',
|
|
151
|
+
styleUrls: ['./impact-assessments-indicator-breakdown-chart.component.scss']
|
|
152
|
+
}]
|
|
153
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i2.HeSearchService }, { type: i3.HeNodeService }]; }, propDecorators: { chartRef: [{
|
|
154
|
+
type: ViewChild,
|
|
155
|
+
args: ['chart']
|
|
156
|
+
}], impactAssessment: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], indicators: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}] } });
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wYWN0LWFzc2Vzc21lbnRzLWluZGljYXRvci1icmVha2Rvd24tY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGFjdC1hc3Nlc3NtZW50cy9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9yLWJyZWFrZG93bi1jaGFydC9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9yLWJyZWFrZG93bi1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvaW1wYWN0LWFzc2Vzc21lbnRzL2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3ItYnJlYWtkb3duLWNoYXJ0L2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3ItYnJlYWtkb3duLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sZUFBZSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQW1ELFFBQVEsRUFBUSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNySCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUdyRSxPQUFPLEVBQUUsS0FBSyxFQUFF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Q1QsUUFBUSxFQUFFLGlEQUFpRDtvQkFDM0QsV0FBVyxFQUFFLCtEQUErRDtvQkFDNUUsU0FBUyxFQUFFLENBQUMsK0RBQStELENBQUM7aUJBQzdFOzZKQU1TLFFBQVE7c0JBRGYsU0FBUzt1QkFBQyxPQUFPO2dCQUtYLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFHQyxVQUFVO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBncm91cEJ5LCBtYXAsIG1lcmdlQWxsLCBtZXJnZU1hcCwgdG9BcnJheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENoYXJ0IH0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0IENoYXJ0RGF0YUxhYmVscyBmcm9tICdjaGFydGpzLXBsdWdpbi1kYXRhbGFiZWxzJztcbmltcG9ydCB7IERhdGFTdGF0ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvYXBpJztcbmltcG9ydCB7IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxELCBJbmRpY2F0b3IsIElUZXJtSlNPTkxELCBOb2RlVHlwZSwgVGVybSwgVGVybVRlcm1UeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgdG9QcmVjaXNpb24gfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcblxuaW1wb3J0IHsgbWF0Y2hUZXJtVHlwZSwgbWF0Y2hUeXBlIH0gZnJvbSAnLi4vLi4vc2VhcmNoL3NlYXJjaC5tb2RlbCc7XG5pbXBvcnQgeyBIZVNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZWFyY2gvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVOb2RlU2VydmljZSB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS5zZXJ2aWNlJztcbmltcG9ydCB7IExldmVsLCBwYXJzZUxpbmVzLCBwYXJzZU1lc3NhZ2UgfSBmcm9tICcuLi8uLi9jb21tb24vbG9ncy11dGlscyc7XG5pbXBvcnQgeyBsaXN0Q29sb3IgfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbHMnO1xuXG5pbnRlcmZhY2UgSUxvZyB7XG4gIGluZGljYXRvcjogc3RyaW5nO1xuICBlbWlzc2lvbjogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xufVxuXG5jb25zdCBwYXJzZUxvZyA9IChkYXRhOiBhbnkpOiBJTG9nID0+ICh7XG4gIGluZGljYXRvcjogZGF0YVsna2V5L3Rlcm0nXSxcbiAgZW1pc3Npb246IGRhdGEubm9kZSxcbiAgdmFsdWU6ICtkYXRhLnZhbHVlICogK2RhdGEuY29lZmZpY2llbnRcbn0pO1xuXG5jb25zdCBmaWx0ZXJUZXJtVHlwZXMgPSBbXG4gIFRlcm1UZXJtVHlwZS5lbWlzc2lvbixcbiAgVGVybVRlcm1UeXBlLmNoYXJhY3RlcmlzZWRJbmRpY2F0b3Jcbl07XG5cbmNvbnN0IHRvQ3N2ID0gKGxvZ3M6IElMb2dbXSkgPT4gW1xuICBbXG4gICAgJ0luZGljYXRvcicsXG4gICAgJ0VtaXNzaW9uJyxcbiAgICAnVmFsdWUnXG4gIF0uam9pbignLCcpLFxuICAuLi5sb2dzXG4gICAgLnNvcnQoKGEsIGIpID0+IGEuaW5kaWNhdG9yLmxvY2FsZUNvbXBhcmUoYi5pbmRpY2F0b3IpKVxuICAgIC5tYXAoKHsgaW5kaWNhdG9yLCBlbWlzc2lvbiwgdmFsdWUgfSkgPT4gW2luZGljYXRvciwgZW1pc3Npb24sIHZhbHVlXS5qb2luKCcsJykpXG5dLmpvaW4oJ1xcbicpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZS1pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9yLWJyZWFrZG93bi1jaGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9yLWJyZWFrZG93bi1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3ItYnJlYWtkb3duLWNoYXJ0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW1wYWN0QXNzZXNzbWVudHNJbmRpY2F0b3JCcmVha2Rvd25DaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgbG9nczogSUxvZ1tdID0gW107XG4gIHByaXZhdGUgZW1pc3Npb25zOiBJVGVybUpTT05MRFtdID0gW107XG5cbiAgQFZpZXdDaGlsZCgnY2hhcnQnKVxuICBwcml2YXRlIGNoYXJ0UmVmPzogRWxlbWVudFJlZjtcbiAgcHJpdmF0ZSBjaGFydDogYW55O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbXBhY3RBc3Nlc3NtZW50PzogSUltcGFjdEFzc2Vzc21lbnRKU09OTEQ7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmRpY2F0b3JzOiBJbmRpY2F0b3JbXSA9IFtdO1xuXG4gIHB1YmxpYyBsb2FkaW5nID0gdHJ1ZTtcbiAgcHVibGljIHRlcm1zOiBUZXJtW10gPSBbXTtcbiAgcHVibGljIHNlbGVjdGVkVGVybT86IFRlcm07XG4gIHB1YmxpYyBub0RhdGEgPSBmYWxzZTtcbiAgcHVibGljIGNzdkNvbnRlbnQ/OiBTYWZlUmVzb3VyY2VVcmw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IEhlU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIG5vZGVTZXJ2aWNlOiBIZU5vZGVTZXJ2aWNlXG4gICkgeyB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50ZXJtcyA9IHRoaXMuaW5kaWNhdG9ycy5tYXAoKHsgdGVybSB9KSA9PiB0ZXJtISk7XG5cbiAgICB0aGlzLmxvZ3MgPSAoYXdhaXQgb2Yoe1xuICAgICAgLi4udGhpcy5pbXBhY3RBc3Nlc3NtZW50LFxuICAgICAgZGF0YVN0YXRlOiBEYXRhU3RhdGUucmVjYWxjdWxhdGVkXG4gICAgfSkucGlwZShcbiAgICAgIG1lcmdlTWFwKG5vZGUgPT4gdGhpcy5ub2RlU2VydmljZS5nZXRMb2cobm9kZSkpLFxuICAgICAgbWFwKHZhbHVlID0+IHZhbHVlID8gcGFyc2VMaW5lcyh2YWx1ZSkgOiBbXSksXG4gICAgICBtZXJnZUFsbCgpLFxuICAgICAgZmlsdGVyKCh7IGRhdGEgfSkgPT4gZGF0YS5sb2dnZXIgPT09ICdoZXN0aWFfZWFydGgubW9kZWxzJyAmJiBkYXRhLmxldmVsID09PSBMZXZlbC5kZWJ1ZyksXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiBwYXJzZU1lc3NhZ2UoZGF0YS5tZXNzYWdlKSksXG4gICAgICBmaWx0ZXIobWVzc2FnZSA9PiAnbm9kZScgaW4gbWVzc2FnZSksXG4gICAgICBtYXAocGFyc2VMb2cpLFxuICAgICAgZmlsdGVyKGxvZyA9PiAhaXNOYU4obG9nLnZhbHVlKSAmJiBsb2cudmFsdWUgPiAwKSxcbiAgICAgIGdyb3VwQnkobG9nID0+IFtsb2cuaW5kaWNhdG9yLCBsb2cuZW1pc3Npb25dLmpvaW4oJy8nKSksXG4gICAgICBtZXJnZU1hcChncm91cCA9PiBncm91cC5waXBlKHRvQXJyYXkoKSkpLFxuICAgICAgbWFwKHZhbHVlcyA9PiB7XG4gICAgICAgIGNvbnN0IHRvdGFsID0gdmFsdWVzLnJlZHVjZSgocHJldiwgY3VycikgPT4gcHJldiArIGN1cnIudmFsdWUsIDApO1xuICAgICAgICByZXR1cm4geyAuLi52YWx1ZXNbMF0sIHZhbHVlOiB0b3RhbCB9O1xuICAgICAgfSksXG4gICAgICB0b0FycmF5KClcbiAgICApLnRvUHJvbWlzZSgpKSBhcyBJTG9nW107XG4gICAgdGhpcy5jc3ZDb250ZW50ID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKFxuICAgICAgYGRhdGE6dGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgsJHtlbmNvZGVVUklDb21wb25lbnQodG9Dc3YodGhpcy5sb2dzKSl9YFxuICAgICk7XG5cbiAgICBjb25zdCB7IHJlc3VsdHM6IGVtaXNzaW9ucyB9ID0gYXdhaXQgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaDxJVGVybUpTT05MRCwgTm9kZVR5cGUuVGVybT4oe1xuICAgICAgZmllbGRzOiBbJ0B0eXBlJywgJ0BpZCcsICduYW1lJ10sXG4gICAgICBsaW1pdDogMTAwMCxcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIGJvb2w6IHtcbiAgICAgICAgICBtdXN0OiBbXG4gICAgICAgICAgICBtYXRjaFR5cGUoTm9kZVR5cGUuVGVybSlcbiAgICAgICAgICBdLFxuICAgICAgICAgIHNob3VsZDogZmlsdGVyVGVybVR5cGVzLm1hcCh0ZXJtVHlwZSA9PiBtYXRjaFRlcm1UeXBlKHRlcm1UeXBlKSksXG4gICAgICAgICAgbWluaW11bV9zaG91bGRfbWF0Y2g6IDFcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZW1pc3Npb25zID0gZW1pc3Npb25zO1xuXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG5cbiAgICB0aGlzLnNlbGVjdGVkVGVybSA9IHRoaXMudGVybXNbMF07XG4gICAgdGhpcy51cGRhdGVDaGFydCgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbXBhY3RBc3Nlc3NtZW50IVsnQGlkJ10gfHwgKHRoaXMuaW1wYWN0QXNzZXNzbWVudCBhcyBhbnkpLmlkO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNoYXJ0KCkge1xuICAgIGNvbnN0IGxvZ3MgPSB0aGlzLmxvZ3NcbiAgICAgIC5maWx0ZXIoKHsgaW5kaWNhdG9yIH0pID0+IGluZGljYXRvciA9PT0gdGhpcy5zZWxlY3RlZFRlcm0hWydAaWQnXSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBiLnZhbHVlIC0gYS52YWx1ZSk7XG4gICAgdGhpcy5ub0RhdGEgPSBsb2dzLmxlbmd0aCA9PT0gMDtcblxuICAgIGNvbnN0IGxhYmVscyA9IGxvZ3MubWFwKCh7IGVtaXNzaW9uIH0pID0+IHRoaXMuZW1pc3Npb25zLmZpbmQodiA9PiB2WydAaWQnXSA9PT0gZW1pc3Npb24pPy5uYW1lIHx8IGVtaXNzaW9uKTtcbiAgICBjb25zdCBkYXRhc2V0cyA9IFt7XG4gICAgICBsYWJlbDogdGhpcy5zZWxlY3RlZFRlcm0/Lm5hbWUgPz8gJycsXG4gICAgICBkYXRhOiBsb2dzLm1hcCgoeyB2YWx1ZSB9KSA9PiB2YWx1ZSksXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGxvZ3MubWFwKGxpc3RDb2xvciksXG4gICAgICBib3JkZXJDb2xvcjogbG9ncy5tYXAobGlzdENvbG9yKVxuICAgIH1dO1xuICAgIGNvbnN0IHRvdGFsID0gbG9ncy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHByZXYgKyBjdXJyLnZhbHVlLCAwKTtcblxuICAgIGlmICh0aGlzLmNoYXJ0KSB7XG4gICAgICB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcbiAgICB9XG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmNoYXJ0UmVmPy5uYXRpdmVFbGVtZW50LCB7XG4gICAgICB0eXBlOiAnaG9yaXpvbnRhbEJhcicsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGxhYmVscyxcbiAgICAgICAgZGF0YXNldHNcbiAgICAgIH0sXG4gICAgICBwbHVnaW5zOiBbQ2hhcnREYXRhTGFiZWxzXSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgcGx1Z2luczoge1xuICAgICAgICAgIGRhdGFsYWJlbHM6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLFxuICAgICAgICAgICAgZm9ybWF0dGVyOiAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcmF0aW8gPSB0b1ByZWNpc2lvbih2YWx1ZSAqIDEwMCAvIHRvdGFsLCAyKTtcbiAgICAgICAgICAgICAgcmV0dXJuIGAke3RvUHJlY2lzaW9uKHZhbHVlLCAzKX0gKCR7cmF0aW99JSlgO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFsaWduOiAnZW5kJ1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICAgIGxlZ2VuZDoge1xuICAgICAgICAgIGRpc3BsYXk6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIHRvb2x0aXBzOiB7XG4gICAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgICAgICB0aXRsZTogKHRvb2x0aXBJdGVtcywgZGF0YSkgPT4gZGF0YS5kYXRhc2V0cyFbdG9vbHRpcEl0ZW1zWzBdLmRhdGFzZXRJbmRleCFdPy5sYWJlbCB8fCAnJyxcbiAgICAgICAgICAgIGxhYmVsOiAodG9vbHRpcEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSArKHRvb2x0aXBJdGVtLnZhbHVlIHx8ICcwJyk7XG4gICAgICAgICAgICAgIGNvbnN0IHJhdGlvID0gdG9QcmVjaXNpb24odmFsdWUgKiAxMDAgLyB0b3RhbCwgMik7XG4gICAgICAgICAgICAgIHJldHVybiBgJHt0b1ByZWNpc2lvbih2YWx1ZSwgMyl9ICgke3JhdGlvfSUpYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNjYWxlczoge1xuICAgICAgICAgIHhBeGVzOiBbe1xuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZVxuICAgICAgICAgIH1dLFxuICAgICAgICAgIHlBeGVzOiBbe1xuICAgICAgICAgICAgcG9zaXRpb246ICdsZWZ0J1xuICAgICAgICAgIH1dXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInAtM1wiIFtjbGFzcy5pcy1oaWRkZW5dPVwibG9hZGluZyB8fCAhdGVybXM/Lmxlbmd0aFwiPlxuICA8ZGl2IGNsYXNzPVwiY29sdW1uc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBoYXMtYWRkb25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24gaXMtc21hbGwgaXMtc3RhdGljXCI+U2VsZWN0IGFuIEluZGljYXRvcjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sIGlzLWV4cGFuZGVkXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdCBpcy1mdWxsd2lkdGggaXMtc21hbGxcIj5cbiAgICAgICAgICAgIDxzZWxlY3QgKGNoYW5nZSk9XCJ1cGRhdGVDaGFydCgpXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFRlcm1cIiBpZD1cInNlbGVjdGVkVGVybVwiPlxuICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB0ZXJtIG9mIHRlcm1zXCIgW25nVmFsdWVdPVwidGVybVwiPnt7dGVybS5uYW1lfX0gKHt7dGVybS51bml0c319KTwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1uYXJyb3dcIj5cbiAgICAgIDxhIGNsYXNzPVwiYnV0dG9uIGlzLWRhcmsgaXMtb3V0bGluZWQgaXMtc21hbGxcIiBbaHJlZl09XCJjc3ZDb250ZW50XCIgW2Rvd25sb2FkXT1cImlkICsgJy1sb2dzLmNzdidcIj5cbiAgICAgICAgPGZhLWljb24gaWNvbj1cImRvd25sb2FkXCI+PC9mYS1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInBsLTJcIj5Eb3dubG9hZCBBbGwgKENTVik8L3NwYW4+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtdC0xXCI+XG4gICAgPHAgKm5nSWY9XCJub0RhdGFcIiBjbGFzcz1cImhhcy10ZXh0LWNlbnRlcmVkXCI+Tm8gYnJlYWtkb3duIGF2YWlsYWJsZSBmb3Ige3tzZWxlY3RlZFRlcm0/Lm5hbWV9fS48L3A+XG4gICAgPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lciBoLTEwMFwiPlxuICAgICAgPGNhbnZhcyAjY2hhcnQ+PC9jYW52YXM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gIDxkaXYgY2xhc3M9XCJoYXMtdGV4dC1jZW50ZXIgcHktM1wiPlxuICAgIDxmYS1pY29uIGljb249XCJzcGlubmVyXCIgW3B1bHNlXT1cInRydWVcIiBzaXplPVwibGdcIj48L2ZhLWljb24+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { Chart } from 'chart.js';
|
|
3
|
+
import { groupNodesByTerm, defaultLabel, itemColor, listColor } from '../../common/utils';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/forms";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
const impactValue = (impact, values) => { var _a; return (((_a = values[impact['@id']]) === null || _a === void 0 ? void 0 : _a.nodes[0]) || { value: 0 }).value; };
|
|
8
|
+
const impactName = (impact, index) => `${index + 1}. ${defaultLabel(impact)}`;
|
|
9
|
+
const impactAssessmentDataset = (values) => (impact, index) => {
|
|
10
|
+
const label = impactName(impact, index);
|
|
11
|
+
const color = itemColor(index);
|
|
12
|
+
const data = [impactValue(impact, values)];
|
|
13
|
+
return {
|
|
14
|
+
label,
|
|
15
|
+
axis: 'y',
|
|
16
|
+
data,
|
|
17
|
+
backgroundColor: color,
|
|
18
|
+
borderColor: color
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export class ImpactAssessmentsIndicatorsChartComponent {
|
|
22
|
+
constructor() {
|
|
23
|
+
this.impactAssessments = [];
|
|
24
|
+
this.key = 'impacts';
|
|
25
|
+
this.indicatorPerImpactAssessment = {};
|
|
26
|
+
this.terms = [];
|
|
27
|
+
}
|
|
28
|
+
ngAfterViewInit() {
|
|
29
|
+
return this.init();
|
|
30
|
+
}
|
|
31
|
+
ngOnChanges(changes) {
|
|
32
|
+
if ('impactAssessments' in changes && !changes.impactAssessments.firstChange) {
|
|
33
|
+
return this.init();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
termAllowed(term) {
|
|
37
|
+
var _a;
|
|
38
|
+
return !((_a = this.filterTermTypes) === null || _a === void 0 ? void 0 : _a.length) || (this.filterTermTypes || []).includes(term === null || term === void 0 ? void 0 : term.termType);
|
|
39
|
+
}
|
|
40
|
+
init() {
|
|
41
|
+
this.indicatorPerImpactAssessment = groupNodesByTerm(this.impactAssessments, this.key);
|
|
42
|
+
this.terms = Object.values(this.indicatorPerImpactAssessment)
|
|
43
|
+
.filter(({ term, values }) => this.termAllowed(term) && Object.values(values).some(({ nodes: [{ value }] }) => value > 0))
|
|
44
|
+
.map(({ term }) => term);
|
|
45
|
+
this.selectedTerm = this.terms.includes(this.selectedTerm) ? this.selectedTerm : this.terms[0];
|
|
46
|
+
return this.selectedTerm ? this.updateCharts() : null;
|
|
47
|
+
}
|
|
48
|
+
updateBarChart() {
|
|
49
|
+
var _a, _b, _c;
|
|
50
|
+
const labels = [(_b = (_a = this.selectedTerm) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : ''];
|
|
51
|
+
const { values } = this.indicatorPerImpactAssessment[this.selectedTerm['@id']];
|
|
52
|
+
const datasets = this.impactAssessments.map(impactAssessmentDataset(values));
|
|
53
|
+
if (this.barChart) {
|
|
54
|
+
this.barChart.destroy();
|
|
55
|
+
}
|
|
56
|
+
this.barChart = new Chart((_c = this.barChartRef) === null || _c === void 0 ? void 0 : _c.nativeElement, {
|
|
57
|
+
type: 'bar',
|
|
58
|
+
data: {
|
|
59
|
+
labels,
|
|
60
|
+
datasets
|
|
61
|
+
},
|
|
62
|
+
options: {
|
|
63
|
+
responsive: true,
|
|
64
|
+
maintainAspectRatio: false,
|
|
65
|
+
legend: {
|
|
66
|
+
display: false
|
|
67
|
+
},
|
|
68
|
+
scales: {
|
|
69
|
+
xAxes: [{
|
|
70
|
+
display: false
|
|
71
|
+
}],
|
|
72
|
+
yAxes: [{
|
|
73
|
+
position: 'left',
|
|
74
|
+
ticks: {
|
|
75
|
+
min: 0
|
|
76
|
+
}
|
|
77
|
+
}]
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
updatePieChart() {
|
|
83
|
+
var _a, _b, _c;
|
|
84
|
+
const { values } = this.indicatorPerImpactAssessment[this.selectedTerm['@id']];
|
|
85
|
+
const labels = this.impactAssessments.map(impactName);
|
|
86
|
+
const colors = this.impactAssessments.map(listColor);
|
|
87
|
+
const data = this.impactAssessments.map(impact => impactValue(impact, values));
|
|
88
|
+
const datasets = [{
|
|
89
|
+
label: (_b = (_a = this.selectedTerm) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '',
|
|
90
|
+
data,
|
|
91
|
+
backgroundColor: colors,
|
|
92
|
+
hoverOffset: 4
|
|
93
|
+
}];
|
|
94
|
+
if (this.pieChart) {
|
|
95
|
+
this.pieChart.destroy();
|
|
96
|
+
}
|
|
97
|
+
this.pieChart = new Chart((_c = this.pieChartRef) === null || _c === void 0 ? void 0 : _c.nativeElement, {
|
|
98
|
+
type: 'pie',
|
|
99
|
+
data: {
|
|
100
|
+
labels,
|
|
101
|
+
datasets
|
|
102
|
+
},
|
|
103
|
+
options: {
|
|
104
|
+
responsive: true,
|
|
105
|
+
maintainAspectRatio: false,
|
|
106
|
+
legend: {
|
|
107
|
+
display: false
|
|
108
|
+
},
|
|
109
|
+
layout: {
|
|
110
|
+
padding: 0
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
updateCharts() {
|
|
116
|
+
this.updateBarChart();
|
|
117
|
+
this.updatePieChart();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
ImpactAssessmentsIndicatorsChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ImpactAssessmentsIndicatorsChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
121
|
+
ImpactAssessmentsIndicatorsChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ImpactAssessmentsIndicatorsChartComponent, selector: "he-impact-assessments-indicators-chart", inputs: { impactAssessments: "impactAssessments", key: "key", filterTermTypes: "filterTermTypes" }, viewQueries: [{ propertyName: "barChartRef", first: true, predicate: ["barChart"], descendants: true }, { propertyName: "pieChartRef", first: true, predicate: ["pieChart"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"p-3\" [class.is-hidden]=\"!terms?.length\">\n <div class=\"field is-horizontal\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"selectedTerm\">\n <span>Select a column</span>\n </label>\n </div>\n <div class=\"field-body\">\n <div class=\"control\">\n <div class=\"select is-small\">\n <select (change)=\"updateCharts()\" [(ngModel)]=\"selectedTerm\" id=\"selectedTerm\">\n <option *ngFor=\"let term of terms\" [ngValue]=\"term\">{{term.name}}</option>\n </select>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mt-1\">\n <div class=\"columns h-100\">\n <div class=\"column is-12 chart-container\">\n <canvas #barChart></canvas>\n </div>\n <div class=\"column is-4 chart-container is-hidden\">\n <canvas #pieChart></canvas>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;overflow:visible}.chart-container{height:400px;position:relative}\n"], directives: [{ type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
|
|
122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ImpactAssessmentsIndicatorsChartComponent, decorators: [{
|
|
123
|
+
type: Component,
|
|
124
|
+
args: [{
|
|
125
|
+
selector: 'he-impact-assessments-indicators-chart',
|
|
126
|
+
templateUrl: './impact-assessments-indicators-chart.component.html',
|
|
127
|
+
styleUrls: ['./impact-assessments-indicators-chart.component.scss']
|
|
128
|
+
}]
|
|
129
|
+
}], propDecorators: { barChartRef: [{
|
|
130
|
+
type: ViewChild,
|
|
131
|
+
args: ['barChart']
|
|
132
|
+
}], pieChartRef: [{
|
|
133
|
+
type: ViewChild,
|
|
134
|
+
args: ['pieChart']
|
|
135
|
+
}], impactAssessments: [{
|
|
136
|
+
type: Input
|
|
137
|
+
}], key: [{
|
|
138
|
+
type: Input
|
|
139
|
+
}], filterTermTypes: [{
|
|
140
|
+
type: Input
|
|
141
|
+
}] } });
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wYWN0LWFzc2Vzc21lbnRzLWluZGljYXRvcnMtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGFjdC1hc3Nlc3NtZW50cy9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9ycy1jaGFydC9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9ycy1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvaW1wYWN0LWFzc2Vzc21lbnRzL2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3JzLWNoYXJ0L2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3JzLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixTQUFTLEVBQTZCLE1BQU0sZUFBZSxDQUFDO0FBRWpILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFakMsT0FBTyxFQUNVLGdCQUFnQixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUNwRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBRTVCLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBK0IsRUFBRSxNQUFzQyxFQUFFLEVBQUUsV0FDOUYsT0FBQSxDQUFDLENBQUEsTUFBQSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLDBDQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQSxFQUFBLENBQUM7QUFFMUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUErQixFQUFFLEtBQWEsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxLQUFLLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0FBRS9HLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxNQUFzQyxFQUFF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S2IsaUJBQWlCO3NCQUR4QixLQUFLO2dCQUdFLEdBQUc7c0JBRFYsS0FBSztnQkFHQyxlQUFlO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBWaWV3Q2hpbGQsIFNpbXBsZUNoYW5nZXMsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxELCBJbmRpY2F0b3IsIFRlcm0sIFRlcm1UZXJtVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IENoYXJ0IH0gZnJvbSAnY2hhcnQuanMnO1xuXG5pbXBvcnQge1xuICBJR3JvdXBlZE5vZGVzLCBncm91cE5vZGVzQnlUZXJtLCBkZWZhdWx0TGFiZWwsIGl0ZW1Db2xvciwgbGlzdENvbG9yLCBJR3JvdXBlZE5vZGVzVmFsdWVzXG59IGZyb20gJy4uLy4uL2NvbW1vbi91dGlscyc7XG5cbmNvbnN0IGltcGFjdFZhbHVlID0gKGltcGFjdDogSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIHZhbHVlczogSUdyb3VwZWROb2Rlc1ZhbHVlczxJbmRpY2F0b3I+KSA9PlxuICAodmFsdWVzW2ltcGFjdFsnQGlkJ11dPy5ub2Rlc1swXSB8fCB7IHZhbHVlOiAwIH0pLnZhbHVlO1xuXG5jb25zdCBpbXBhY3ROYW1lID0gKGltcGFjdDogSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIGluZGV4OiBudW1iZXIpID0+IGAke2luZGV4ICsgMX0uICR7ZGVmYXVsdExhYmVsKGltcGFjdCl9YDtcblxuY29uc3QgaW1wYWN0QXNzZXNzbWVudERhdGFzZXQgPSAodmFsdWVzOiBJR3JvdXBlZE5vZGVzVmFsdWVzPEluZGljYXRvcj4pID0+IChcbiAgaW1wYWN0OiBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCwgaW5kZXg6IG51bWJlclxuKSA9PiB7XG4gIGNvbnN0IGxhYmVsID0gaW1wYWN0TmFtZShpbXBhY3QsIGluZGV4KTtcbiAgY29uc3QgY29sb3IgPSBpdGVtQ29sb3IoaW5kZXgpO1xuICBjb25zdCBkYXRhID0gW2ltcGFjdFZhbHVlKGltcGFjdCwgdmFsdWVzKV07XG4gIHJldHVybiB7XG4gICAgbGFiZWwsXG4gICAgYXhpczogJ3knLFxuICAgIGRhdGEsXG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcixcbiAgICBib3JkZXJDb2xvcjogY29sb3JcbiAgfTtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3JzLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3JzLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW1wYWN0LWFzc2Vzc21lbnRzLWluZGljYXRvcnMtY2hhcnQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbXBhY3RBc3Nlc3NtZW50c0luZGljYXRvcnNDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBWaWV3Q2hpbGQoJ2JhckNoYXJ0JylcbiAgcHJpdmF0ZSBiYXJDaGFydFJlZj86IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgYmFyQ2hhcnQ6IGFueTtcblxuICBAVmlld0NoaWxkKCdwaWVDaGFydCcpXG4gIHByaXZhdGUgcGllQ2hhcnRSZWY/OiBFbGVtZW50UmVmO1xuICBwcml2YXRlIHBpZUNoYXJ0OiBhbnk7XG5cbiAgQElucHV0KClcbiAgcHJpdmF0ZSBpbXBhY3RBc3Nlc3NtZW50czogSUltcGFjdEFzc2Vzc21lbnRKU09OTERbXSA9IFtdO1xuICBASW5wdXQoKVxuICBwcml2YXRlIGtleTogJ2ltcGFjdHMnIHwgJ2VtaXNzaW9uc1Jlc291cmNlVXNlJyA9ICdpbXBhY3RzJztcbiAgQElucHV0KClcbiAgcHVibGljIGZpbHRlclRlcm1UeXBlcz86IFRlcm1UZXJtVHlwZVtdO1xuXG4gIHB1YmxpYyBpbmRpY2F0b3JQZXJJbXBhY3RBc3Nlc3NtZW50OiBJR3JvdXBlZE5vZGVzPEluZGljYXRvcj4gPSB7fTtcbiAgcHVibGljIHRlcm1zOiBUZXJtW10gPSBbXTtcbiAgcHVibGljIHNlbGVjdGVkVGVybT86IFRlcm07XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHJldHVybiB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoJ2ltcGFjdEFzc2Vzc21lbnRzJyBpbiBjaGFuZ2VzICYmICFjaGFuZ2VzLmltcGFjdEFzc2Vzc21lbnRzLmZpcnN0Q2hhbmdlKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbml0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0ZXJtQWxsb3dlZCh0ZXJtPzogVGVybSkge1xuICAgIHJldHVybiAhdGhpcy5maWx0ZXJUZXJtVHlwZXM/Lmxlbmd0aCB8fCAodGhpcy5maWx0ZXJUZXJtVHlwZXMgfHwgW10pLmluY2x1ZGVzKHRlcm0/LnRlcm1UeXBlISk7XG4gIH1cblxuICBwcml2YXRlIGluaXQoKSB7XG4gICAgdGhpcy5pbmRpY2F0b3JQZXJJbXBhY3RBc3Nlc3NtZW50ID0gZ3JvdXBOb2Rlc0J5VGVybTxJSW1wYWN0QXNzZXNzbWVudEpTT05MRCwgSW5kaWNhdG9yPihcbiAgICAgIHRoaXMuaW1wYWN0QXNzZXNzbWVudHMsIHRoaXMua2V5XG4gICAgKTtcbiAgICB0aGlzLnRlcm1zID0gT2JqZWN0LnZhbHVlcyh0aGlzLmluZGljYXRvclBlckltcGFjdEFzc2Vzc21lbnQpXG4gICAgICAuZmlsdGVyKCh7IHRlcm0sIHZhbHVlcyB9OiBhbnkpID0+XG4gICAgICAgIHRoaXMudGVybUFsbG93ZWQodGVybSkgJiYgT2JqZWN0LnZhbHVlcyh2YWx1ZXMpLnNvbWUoKHsgbm9kZXM6IFt7IHZhbHVlIH1dIH06IGFueSkgPT4gdmFsdWUgPiAwKVxuICAgICAgKVxuICAgICAgLm1hcCgoeyB0ZXJtIH06IGFueSkgPT4gdGVybSk7XG4gICAgdGhpcy5zZWxlY3RlZFRlcm0gPSB0aGlzLnRlcm1zLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRUZXJtISkgPyB0aGlzLnNlbGVjdGVkVGVybSA6IHRoaXMudGVybXNbMF07XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRUZXJtID8gdGhpcy51cGRhdGVDaGFydHMoKSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUJhckNoYXJ0KCkge1xuICAgIGNvbnN0IGxhYmVscyA9IFt0aGlzLnNlbGVjdGVkVGVybT8ubmFtZSA/PyAnJ107XG4gICAgY29uc3QgeyB2YWx1ZXMgfSA9IHRoaXMuaW5kaWNhdG9yUGVySW1wYWN0QXNzZXNzbWVudFt0aGlzLnNlbGVjdGVkVGVybSFbJ0BpZCddXTtcbiAgICBjb25zdCBkYXRhc2V0cyA9IHRoaXMuaW1wYWN0QXNzZXNzbWVudHMubWFwKGltcGFjdEFzc2Vzc21lbnREYXRhc2V0KHZhbHVlcykpO1xuXG4gICAgaWYgKHRoaXMuYmFyQ2hhcnQpIHtcbiAgICAgIHRoaXMuYmFyQ2hhcnQuZGVzdHJveSgpO1xuICAgIH1cbiAgICB0aGlzLmJhckNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuYmFyQ2hhcnRSZWY/Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIHR5cGU6ICdiYXInLFxuICAgICAgZGF0YToge1xuICAgICAgICBsYWJlbHMsXG4gICAgICAgIGRhdGFzZXRzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcbiAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgZGlzcGxheTogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgc2NhbGVzOiB7XG4gICAgICAgICAgeEF4ZXM6IFt7XG4gICAgICAgICAgICBkaXNwbGF5OiBmYWxzZVxuICAgICAgICAgIH1dLFxuICAgICAgICAgIHlBeGVzOiBbe1xuICAgICAgICAgICAgcG9zaXRpb246ICdsZWZ0JyxcbiAgICAgICAgICAgIHRpY2tzOiB7XG4gICAgICAgICAgICAgIG1pbjogMFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1dXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGllQ2hhcnQoKSB7XG4gICAgY29uc3QgeyB2YWx1ZXMgfSA9IHRoaXMuaW5kaWNhdG9yUGVySW1wYWN0QXNzZXNzbWVudFt0aGlzLnNlbGVjdGVkVGVybSFbJ0BpZCddXTtcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLmltcGFjdEFzc2Vzc21lbnRzLm1hcChpbXBhY3ROYW1lKTtcbiAgICBjb25zdCBjb2xvcnMgPSB0aGlzLmltcGFjdEFzc2Vzc21lbnRzLm1hcChsaXN0Q29sb3IpO1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmltcGFjdEFzc2Vzc21lbnRzLm1hcChpbXBhY3QgPT4gaW1wYWN0VmFsdWUoaW1wYWN0LCB2YWx1ZXMpKTtcbiAgICBjb25zdCBkYXRhc2V0cyA9IFt7XG4gICAgICBsYWJlbDogdGhpcy5zZWxlY3RlZFRlcm0/Lm5hbWUgPz8gJycsXG4gICAgICBkYXRhLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMgYXMgc3RyaW5nW10sXG4gICAgICBob3Zlck9mZnNldDogNFxuICAgIH1dO1xuXG4gICAgaWYgKHRoaXMucGllQ2hhcnQpIHtcbiAgICAgIHRoaXMucGllQ2hhcnQuZGVzdHJveSgpO1xuICAgIH1cbiAgICB0aGlzLnBpZUNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMucGllQ2hhcnRSZWY/Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIHR5cGU6ICdwaWUnLFxuICAgICAgZGF0YToge1xuICAgICAgICBsYWJlbHMsXG4gICAgICAgIGRhdGFzZXRzXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcbiAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgZGlzcGxheTogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgcGFkZGluZzogMFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQ2hhcnRzKCkge1xuICAgIHRoaXMudXBkYXRlQmFyQ2hhcnQoKTtcbiAgICB0aGlzLnVwZGF0ZVBpZUNoYXJ0KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwLTNcIiBbY2xhc3MuaXMtaGlkZGVuXT1cIiF0ZXJtcz8ubGVuZ3RoXCI+XG4gIDxkaXYgY2xhc3M9XCJmaWVsZCBpcy1ob3Jpem9udGFsXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkLWxhYmVsIGlzLW5vcm1hbFwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBmb3I9XCJzZWxlY3RlZFRlcm1cIj5cbiAgICAgICAgPHNwYW4+U2VsZWN0IGEgY29sdW1uPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQtYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdCBpcy1zbWFsbFwiPlxuICAgICAgICAgIDxzZWxlY3QgKGNoYW5nZSk9XCJ1cGRhdGVDaGFydHMoKVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUZXJtXCIgaWQ9XCJzZWxlY3RlZFRlcm1cIj5cbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHRlcm0gb2YgdGVybXNcIiBbbmdWYWx1ZV09XCJ0ZXJtXCI+e3t0ZXJtLm5hbWV9fTwvb3B0aW9uPlxuICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibXQtMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5zIGgtMTAwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGlzLTEyIGNoYXJ0LWNvbnRhaW5lclwiPlxuICAgICAgICA8Y2FudmFzICNiYXJDaGFydD48L2NhbnZhcz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy00IGNoYXJ0LWNvbnRhaW5lciBpcy1oaWRkZW5cIj5cbiAgICAgICAgPGNhbnZhcyAjcGllQ2hhcnQ+PC9jYW52YXM+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|