ngx-edu-sharing-metaqs2 0.9.25 → 0.9.26
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/esm2022/lib/components/editorial-link-service/editorial-link.service.mjs +37 -37
- package/esm2022/lib/config-helper.service.mjs +31 -0
- package/esm2022/lib/counts-with-history/counts-with-history.component.mjs +2 -2
- package/esm2022/lib/ng-meta-widgets-lib.module.mjs +3 -3
- package/esm2022/lib/tree-search-counts/tree-search-counts.component.mjs +4 -4
- package/esm2022/public-api.mjs +2 -2
- package/fesm2022/ngx-edu-sharing-metaqs2.mjs +45 -45
- package/fesm2022/ngx-edu-sharing-metaqs2.mjs.map +1 -1
- package/lib/{env-helper.service.d.ts → config-helper.service.d.ts} +5 -5
- package/lib/ng-meta-widgets-lib.module.d.ts +1 -1
- package/lib/tree-search-counts/tree-search-counts.component.d.ts +2 -2
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/esm2022/lib/env-helper.service.mjs +0 -31
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { inject } from
|
|
3
|
-
import {
|
|
2
|
+
import { inject } from '@angular/core';
|
|
3
|
+
import { ConfigHelperService } from '../../config-helper.service';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
/*
|
|
6
6
|
This is a map from properties of a document to filter names
|
|
7
7
|
*/
|
|
8
8
|
const PROPERTIES2FILTERS = new Map([
|
|
9
|
-
[
|
|
10
|
-
[
|
|
11
|
-
[
|
|
9
|
+
['metadata.educationalContexts', 'ccm:educationalcontext'],
|
|
10
|
+
['metadata.disciplines', 'virtual:taxonid'],
|
|
11
|
+
['collections.nodeRef.id.keyword', 'virtual:collection_id_primary'],
|
|
12
12
|
//["responsibility", "virtual:collection_id_primary"] // das zeigt auf "sammlungszugehörigkeit" und ist falsch
|
|
13
13
|
]);
|
|
14
14
|
/*
|
|
15
15
|
This map our column "names" to the valid values of the virtual:editorial_exclusion Filter
|
|
16
16
|
*/
|
|
17
17
|
const ISSUETYPE2FILTERS = new Map([
|
|
18
|
-
[
|
|
19
|
-
[
|
|
20
|
-
[
|
|
21
|
-
[
|
|
22
|
-
[
|
|
23
|
-
[
|
|
24
|
-
[
|
|
18
|
+
['without_title', 'missing_title'],
|
|
19
|
+
['without_description', 'missing_description'],
|
|
20
|
+
['without_education_level', 'missing_educationalcontext'],
|
|
21
|
+
['without_target_group', 'missing_educationalintendedenduserrole'],
|
|
22
|
+
['without_taxonomy_id', 'missing_taxonid'],
|
|
23
|
+
['without_category', 'missing_oeh_lrt'],
|
|
24
|
+
['without_license', 'missing_license'],
|
|
25
25
|
]);
|
|
26
26
|
/*
|
|
27
27
|
interestingly it is not necessary to combine the nodeRef.id
|
|
@@ -29,43 +29,43 @@ with https://vocabs.openeduhub.de/w3id.org/openeduhub/vocabs/oeh-topics/{nodeRef
|
|
|
29
29
|
*/
|
|
30
30
|
export class EditorialLinkService {
|
|
31
31
|
constructor() {
|
|
32
|
-
this.env = inject(
|
|
32
|
+
this.env = inject(ConfigHelperService);
|
|
33
33
|
}
|
|
34
34
|
openByReplicationsourceAndIssueTypeWithFilters(source, issue, selectedFilters) {
|
|
35
35
|
const filters = {};
|
|
36
|
-
filters[
|
|
37
|
-
filters[
|
|
38
|
-
filters[
|
|
36
|
+
filters['virtual:audit_filter'] = ['all'];
|
|
37
|
+
filters['ccm:oeh_publisher_combined'] = [source];
|
|
38
|
+
filters['virtual:editorial_exclusion'] = [ISSUETYPE2FILTERS.get(issue)];
|
|
39
39
|
for (const [field, values] of Object.entries(selectedFilters)) {
|
|
40
40
|
if (values && values.length) {
|
|
41
41
|
const editorialFiltername = PROPERTIES2FILTERS.get(field);
|
|
42
42
|
filters[editorialFiltername] = values;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
const theUrl =
|
|
46
|
-
const params =
|
|
47
|
-
params.set(
|
|
48
|
-
params.set(
|
|
49
|
-
window.open(theUrl
|
|
45
|
+
const theUrl = this.env.eduSharingPath + '/components/editorial-desk';
|
|
46
|
+
const params = new URLSearchParams();
|
|
47
|
+
params.set('mode', 'audit');
|
|
48
|
+
params.set('filters', JSON.stringify(filters));
|
|
49
|
+
window.open(`${theUrl}?${params}`, 'editor_frontend');
|
|
50
50
|
}
|
|
51
51
|
openByCollectionAndIssueType(collectionId, issueType, pageTitle) {
|
|
52
52
|
const filters = {};
|
|
53
|
-
filters[
|
|
54
|
-
filters[
|
|
55
|
-
filters[
|
|
56
|
-
const theUrl =
|
|
57
|
-
const params =
|
|
58
|
-
params.set(
|
|
59
|
-
params.set(
|
|
60
|
-
params.set(
|
|
61
|
-
window.open(theUrl
|
|
53
|
+
filters['virtual:audit_filter'] = ['all'];
|
|
54
|
+
filters['virtual:editorial_exclusion'] = [ISSUETYPE2FILTERS.get(issueType)];
|
|
55
|
+
filters['virtual:collection_id_primary'] = [collectionId];
|
|
56
|
+
const theUrl = this.env.eduSharingPath + '/components/editorial-desk';
|
|
57
|
+
const params = new URLSearchParams();
|
|
58
|
+
params.set('title', pageTitle);
|
|
59
|
+
params.set('mode', 'audit');
|
|
60
|
+
params.set('filters', JSON.stringify(filters));
|
|
61
|
+
window.open(`${theUrl}?${params}`, 'editor_frontend');
|
|
62
62
|
}
|
|
63
63
|
openByCollectionId(collectionId) {
|
|
64
|
-
const theUrl =
|
|
65
|
-
const params =
|
|
66
|
-
params.set(
|
|
67
|
-
params.set(
|
|
68
|
-
window.open(theUrl
|
|
64
|
+
const theUrl = this.env.eduSharingPath + '/components/editorial-desk';
|
|
65
|
+
const params = new URLSearchParams();
|
|
66
|
+
params.set('ids', collectionId);
|
|
67
|
+
params.set('mode', 'render');
|
|
68
|
+
window.open(`${theUrl}?${params}`, 'editor_frontend');
|
|
69
69
|
}
|
|
70
70
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditorialLinkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
71
71
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditorialLinkService, providedIn: 'root' }); }
|
|
@@ -73,7 +73,7 @@ export class EditorialLinkService {
|
|
|
73
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditorialLinkService, decorators: [{
|
|
74
74
|
type: Injectable,
|
|
75
75
|
args: [{
|
|
76
|
-
providedIn: 'root'
|
|
76
|
+
providedIn: 'root',
|
|
77
77
|
}]
|
|
78
78
|
}], ctorParameters: () => [] });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yaWFsLWxpbmsuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvcmlhbC1saW5rLXNlcnZpY2UvZWRpdG9yaWFsLWxpbmsuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRWxFOztHQUVHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsQ0FBaUI7SUFDakQsQ0FBQyw4QkFBOEIsRUFBRSx3QkFBd0IsQ0FBQztJQUMxRCxDQUFDLHNCQUFzQixFQUFFLGlCQUFpQixDQUFDO0lBQzNDLENBQUMsZ0NBQWdDLEVBQUUsK0JBQStCLENBQUM7SUFDbkUsOEdBQThHO0NBQy9HLENBQUMsQ0FBQztBQUNIOztFQUVFO0FBRUYsTUFBTSxpQkFBaUIsR0FBd0IsSUFBSSxHQUFHLENBQWlCO0lBQ3JFLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQztJQUNsQyxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDO0lBQzlDLENBQUMseUJBQXlCLEVBQUUsNEJBQTRCLENBQUM7SUFDekQsQ0FBQyxzQkFBc0IsRUFBRSx3Q0FBd0MsQ0FBQztJQUNsRSxDQUFDLHFCQUFxQixFQUFFLGlCQUFpQixDQUFDO0lBQzFDLENBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUM7SUFDdkMsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQztDQUN2QyxDQUFDLENBQUM7QUFDSDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CO1FBRlEsUUFBRyxHQUFHLE1BQU0sQ0FBQyxt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OytHQTlDVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWdIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uZmlnLWhlbHBlci5zZXJ2aWNlJztcblxuLypcblRoaXMgaXMgYSBtYXAgZnJvbSBwcm9wZXJ0aWVzIG9mIGEgZG9jdW1lbnQgdG8gZmlsdGVyIG5hbWVzXG4gKi9cbmNvbnN0IFBST1BFUlRJRVMyRklMVEVSUyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtcbiAgWydtZXRhZGF0YS5lZHVjYXRpb25hbENvbnRleHRzJywgJ2NjbTplZHVjYXRpb25hbGNvbnRleHQnXSxcbiAgWydtZXRhZGF0YS5kaXNjaXBsaW5lcycsICd2aXJ0dWFsOnRheG9uaWQnXSxcbiAgWydjb2xsZWN0aW9ucy5ub2RlUmVmLmlkLmtleXdvcmQnLCAndmlydHVhbDpjb2xsZWN0aW9uX2lkX3ByaW1hcnknXSxcbiAgLy9bXCJyZXNwb25zaWJpbGl0eVwiLCBcInZpcnR1YWw6Y29sbGVjdGlvbl9pZF9wcmltYXJ5XCJdIC8vIGRhcyB6ZWlndCBhdWYgXCJzYW1tbHVuZ3N6dWdlaMO2cmlna2VpdFwiIHVuZCBpc3QgZmFsc2NoXG5dKTtcbi8qXG5UaGlzIG1hcCBvdXIgY29sdW1uIFwibmFtZXNcIiB0byB0aGUgdmFsaWQgdmFsdWVzIG9mIHRoZSB2aXJ0dWFsOmVkaXRvcmlhbF9leGNsdXNpb24gRmlsdGVyXG4qL1xuXG5jb25zdCBJU1NVRVRZUEUyRklMVEVSUzogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtcbiAgWyd3aXRob3V0X3RpdGxlJywgJ21pc3NpbmdfdGl0bGUnXSxcbiAgWyd3aXRob3V0X2Rlc2NyaXB0aW9uJywgJ21pc3NpbmdfZGVzY3JpcHRpb24nXSxcbiAgWyd3aXRob3V0X2VkdWNhdGlvbl9sZXZlbCcsICdtaXNzaW5nX2VkdWNhdGlvbmFsY29udGV4dCddLFxuICBbJ3dpdGhvdXRfdGFyZ2V0X2dyb3VwJywgJ21pc3NpbmdfZWR1Y2F0aW9uYWxpbnRlbmRlZGVuZHVzZXJyb2xlJ10sXG4gIFsnd2l0aG91dF90YXhvbm9teV9pZCcsICdtaXNzaW5nX3RheG9uaWQnXSxcbiAgWyd3aXRob3V0X2NhdGVnb3J5JywgJ21pc3Npbmdfb2VoX2xydCddLFxuICBbJ3dpdGhvdXRfbGljZW5zZScsICdtaXNzaW5nX2xpY2Vuc2UnXSxcbl0pO1xuLypcbmludGVyZXN0aW5nbHkgaXQgaXMgbm90IG5lY2Vzc2FyeSB0byBjb21iaW5lIHRoZSBub2RlUmVmLmlkXG53aXRoIGh0dHBzOi8vdm9jYWJzLm9wZW5lZHVodWIuZGUvdzNpZC5vcmcvb3BlbmVkdWh1Yi92b2NhYnMvb2VoLXRvcGljcy97bm9kZVJlZi5pZH1cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRvcmlhbExpbmtTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBlbnYgPSBpbmplY3QoQ29uZmlnSGVscGVyU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBvcGVuQnlSZXBsaWNhdGlvbnNvdXJjZUFuZElzc3VlVHlwZVdpdGhGaWx0ZXJzKFxuICAgIHNvdXJjZTogc3RyaW5nLFxuICAgIGlzc3VlOiBzdHJpbmcsXG4gICAgc2VsZWN0ZWRGaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIHwgdW5kZWZpbmVkIH1cbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyczogYW55ID0ge307XG4gICAgZmlsdGVyc1sndmlydHVhbDphdWRpdF9maWx0ZXInXSA9IFsnYWxsJ107XG4gICAgZmlsdGVyc1snY2NtOm9laF9wdWJsaXNoZXJfY29tYmluZWQnXSA9IFtzb3VyY2VdO1xuICAgIGZpbHRlcnNbJ3ZpcnR1YWw6ZWRpdG9yaWFsX2V4Y2x1c2lvbiddID0gW0lTU1VFVFlQRTJGSUxURVJTLmdldChpc3N1ZSldO1xuICAgIGZvciAoY29uc3QgW2ZpZWxkLCB2YWx1ZXNdIG9mIE9iamVjdC5lbnRyaWVzKHNlbGVjdGVkRmlsdGVycykpIHtcbiAgICAgIGlmICh2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBlZGl0b3JpYWxGaWx0ZXJuYW1lID0gUFJPUEVSVElFUzJGSUxURVJTLmdldChmaWVsZCkgYXMgc3RyaW5nO1xuICAgICAgICBmaWx0ZXJzW2VkaXRvcmlhbEZpbHRlcm5hbWVdID0gdmFsdWVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHRoZVVybDogc3RyaW5nID0gdGhpcy5lbnYuZWR1U2hhcmluZ1BhdGggKyAnL2NvbXBvbmVudHMvZWRpdG9yaWFsLWRlc2snO1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBwYXJhbXMuc2V0KCdtb2RlJywgJ2F1ZGl0Jyk7XG4gICAgcGFyYW1zLnNldCgnZmlsdGVycycsIEpTT04uc3RyaW5naWZ5KGZpbHRlcnMpKTtcbiAgICB3aW5kb3cub3BlbihgJHt0aGVVcmx9PyR7cGFyYW1zfWAsICdlZGl0b3JfZnJvbnRlbmQnKTtcbiAgfVxuICBwdWJsaWMgb3BlbkJ5Q29sbGVjdGlvbkFuZElzc3VlVHlwZShjb2xsZWN0aW9uSWQ6IHN0cmluZywgaXNzdWVUeXBlOiBzdHJpbmcsIHBhZ2VUaXRsZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyczogYW55ID0ge307XG4gICAgZmlsdGVyc1sndmlydHVhbDphdWRpdF9maWx0ZXInXSA9IFsnYWxsJ107XG4gICAgZmlsdGVyc1sndmlydHVhbDplZGl0b3JpYWxfZXhjbHVzaW9uJ10gPSBbSVNTVUVUWVBFMkZJTFRFUlMuZ2V0KGlzc3VlVHlwZSldO1xuICAgIGZpbHRlcnNbJ3ZpcnR1YWw6Y29sbGVjdGlvbl9pZF9wcmltYXJ5J10gPSBbY29sbGVjdGlvbklkXTtcbiAgICBjb25zdCB0aGVVcmw6IHN0cmluZyA9IHRoaXMuZW52LmVkdVNoYXJpbmdQYXRoICsgJy9jb21wb25lbnRzL2VkaXRvcmlhbC1kZXNrJztcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgcGFyYW1zLnNldCgndGl0bGUnLCBwYWdlVGl0bGUpO1xuICAgIHBhcmFtcy5zZXQoJ21vZGUnLCAnYXVkaXQnKTtcbiAgICBwYXJhbXMuc2V0KCdmaWx0ZXJzJywgSlNPTi5zdHJpbmdpZnkoZmlsdGVycykpO1xuICAgIHdpbmRvdy5vcGVuKGAke3RoZVVybH0/JHtwYXJhbXN9YCwgJ2VkaXRvcl9mcm9udGVuZCcpO1xuICB9XG5cbiAgcHVibGljIG9wZW5CeUNvbGxlY3Rpb25JZChjb2xsZWN0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHRoZVVybDogc3RyaW5nID0gdGhpcy5lbnYuZWR1U2hhcmluZ1BhdGggKyAnL2NvbXBvbmVudHMvZWRpdG9yaWFsLWRlc2snO1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBwYXJhbXMuc2V0KCdpZHMnLCBjb2xsZWN0aW9uSWQpO1xuICAgIHBhcmFtcy5zZXQoJ21vZGUnLCAncmVuZGVyJyk7XG4gICAgd2luZG93Lm9wZW4oYCR7dGhlVXJsfT8ke3BhcmFtc31gLCAnZWRpdG9yX2Zyb250ZW5kJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NgMetaWidgetsLibConfiguration {
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* helper class to provide configuration values
|
|
7
|
+
*/
|
|
8
|
+
export class ConfigHelperService {
|
|
9
|
+
constructor(config) {
|
|
10
|
+
this.config = config;
|
|
11
|
+
// apply api path given in window url
|
|
12
|
+
}
|
|
13
|
+
patchConfig(config) {
|
|
14
|
+
this.config = { ...this.config, ...config };
|
|
15
|
+
}
|
|
16
|
+
get apiPath() {
|
|
17
|
+
return this.config.apiPath;
|
|
18
|
+
}
|
|
19
|
+
get eduSharingPath() {
|
|
20
|
+
return this.config.eduSharingPath;
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigHelperService, deps: [{ token: 'config' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
23
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigHelperService }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigHelperService, decorators: [{
|
|
26
|
+
type: Injectable
|
|
27
|
+
}], ctorParameters: () => [{ type: NgMetaWidgetsLibConfiguration, decorators: [{
|
|
28
|
+
type: Inject,
|
|
29
|
+
args: ['config']
|
|
30
|
+
}] }] });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWV0YS13aWRnZXRzLWxpYi9zcmMvbGliL2NvbmZpZy1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFbkQsTUFBTSxPQUFPLDZCQUE2QjtDQUd6QztBQUVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUFxQyxNQUFxQztRQUFyQyxXQUFNLEdBQU4sTUFBTSxDQUErQjtRQUN4RSxxQ0FBcUM7SUFDdkMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxNQUE4QztRQUMvRCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztJQUNwQyxDQUFDOytHQWZVLG1CQUFtQixrQkFDVixRQUFRO21IQURqQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQUVJLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgTmdNZXRhV2lkZ2V0c0xpYkNvbmZpZ3VyYXRpb24ge1xuICBhcGlQYXRoOiBzdHJpbmc7XG4gIGVkdVNoYXJpbmdQYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogaGVscGVyIGNsYXNzIHRvIHByb3ZpZGUgY29uZmlndXJhdGlvbiB2YWx1ZXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbmZpZ0hlbHBlclNlcnZpY2UgaW1wbGVtZW50cyBDb25maWdIZWxwZXIge1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdjb25maWcnKSBwdWJsaWMgY29uZmlnOiBOZ01ldGFXaWRnZXRzTGliQ29uZmlndXJhdGlvbikge1xuICAgIC8vIGFwcGx5IGFwaSBwYXRoIGdpdmVuIGluIHdpbmRvdyB1cmxcbiAgfVxuXG4gIHB1YmxpYyBwYXRjaENvbmZpZyhjb25maWc6IFBhcnRpYWw8TmdNZXRhV2lkZ2V0c0xpYkNvbmZpZ3VyYXRpb24+KSB7XG4gICAgdGhpcy5jb25maWcgPSB7IC4uLnRoaXMuY29uZmlnLCAuLi5jb25maWcgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXBpUGF0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuYXBpUGF0aDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZWR1U2hhcmluZ1BhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmVkdVNoYXJpbmdQYXRoO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnSGVscGVyIHtcbiAgZ2V0IGFwaVBhdGgoKTogc3RyaW5nO1xuXG4gIGdldCBlZHVTaGFyaW5nUGF0aCgpOiBzdHJpbmc7XG5cbiAgcGF0Y2hDb25maWcoY29uZmlnOiBQYXJ0aWFsPE5nTWV0YVdpZGdldHNMaWJDb25maWd1cmF0aW9uPik6IHZvaWQ7XG59XG4iXX0=
|
|
@@ -130,7 +130,7 @@ export class CountsWithHistoryComponent {
|
|
|
130
130
|
this.destroyed$.complete();
|
|
131
131
|
}
|
|
132
132
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CountsWithHistoryComponent, deps: [{ token: i1.MetaApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
133
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CountsWithHistoryComponent, isStandalone: true, selector: "metaqs2-counts-with-history", inputs: { apiMethod: "apiMethod", columnTranslationkey: "columnTranslationkey", pageTitle: "pageTitle" }, ngImport: i0, template: "<mat-card appearance=\"raised\">\n <mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title data-test-id=\"page-title\">\n Qualit\u00E4tsmetrik: {{ pageTitle | translate}}{{isLoading() ? \": Lade neue Daten.\" : \"\"}}\n </mat-card-title>\n </mat-card-header>\n <!-- consider to put the filter in the table header to avoid that it is scrolled out of view-->\n <!-- show the filter after the values are loaded to avoid loading current data twice -->\n <mat-card-content *ngIf=\"timeFilterLoaded()\">\n <metaqs2-datepicker [disabled]=\"isLoading()\" [inputGroup]=\"range\" ></metaqs2-datepicker>\n </mat-card-content>\n</mat-card>\n<mat-card>\n <table [ngClass]=\"{'while-loading': isLoading()}\" mat-table [dataSource]=\"recentTypeCount$.value.rows\" class=\"quality-matrix\">\n <!-- Define columns of table -->\n <!-- Row Header Column -->\n <ng-container matColumnDef=\"label-col\" sticky>\n <th rowspan=\"2\" mat-header-cell *matHeaderCellDef>Quelle</th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n matTooltip=\"{{row.meta.alt_label}}\"\n class=\"label-col\"\n >\n {{row.meta.label}}\n </td>\n </ng-container>\n <!-- one column for each type -->\n <ng-container *ngFor=\"let col of recentTypeCount$.value.columns; trackBy:columnIdent\" [matColumnDef]=\"col.id + '_type'\">\n <th colspan=\"2\" mat-header-cell *matHeaderCellDef matTooltip=\"{{col.label}}\" >\n {{columnTranslationkey ? (columnTranslationkey + col.label | translate ) : col.label }}\n </th>\n </ng-container>\n <!-- one column for each type for the most current date-->\n <ng-container *ngFor=\"let col of recentTypeCount$.value.columns; trackBy:columnIdent\" [matColumnDef]=\"col.id + '_recent'\">\n <th class=\"recent-data-cell\" mat-header-cell *matHeaderCellDef matTooltip=\"no tooltip\" >{{ range.controls.end.value.toLocaleString(DateTime.DATE_SHORT) }}</th>\n <td class=\"recent-data-cell\" mat-cell *matCellDef=\"let row\">{{ row.counts[col.id] ?? 'n/a' }}</td>\n </ng-container>\n <!-- one column for each type for the older date-->\n <ng-container *ngFor=\"let col of recentTypeCount$.value.columns; trackBy:columnIdent\" [matColumnDef]=\"col.id + '_past'\">\n <th class=\"past-data-cell\" mat-header-cell *matHeaderCellDef matTooltip=\"no tooltip\" >\n {{ pastTypeCount$.value.rows.length ? range.controls.start.value.toLocaleString(DateTime.DATE_SHORT) : 'no past data' }}\n </th>\n <td class=\"past-data-cell\" mat-cell *matCellDef=\"let row;\">\n <ng-container *ngIf=\"pastTypeCount$.value.rows.length && pastTypeCount(row, col.id) as trend\">\n <span [ngClass]=\"trend.trend\"> {{ trend.value ?? 'n/a' }}<mat-icon aria-hidden=\"false\" [attr.aria-label]=\"trend.trend\" [fontIcon]=\"trend.trend!\" /></span>\n <span class=\"cdk-visually-hidden\">{{trend.trend}}</span>\n </ng-container>\n </td>\n </ng-container>\n <!-- generate actual table -->\n <tr mat-header-row *matHeaderRowDef=\"['label-col'].concat(typeColumns); sticky:true;\"></tr>\n <tr mat-header-row *matHeaderRowDef=\"allColumns; sticky: true;\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['label-col'].concat(allColumns)\"></tr>\n\n </table>\n</mat-card>", styles: ["tr:nth-child(2n){background-color:#e4e4e4}tr:nth-child(2n)>td.label-col,tr:nth-child(2n) td.recent-data-cell{border-right:1px solid white}tr:nth-child(odd){background-color:#fff}tr:nth-child(odd)>td.label-col,tr:nth-child(odd) td.recent-data-cell{border-right:1px solid #e4e4e4}td.label-col{text-align:left}.mat-mdc-header-cell,.mat-mdc-cell{text-align:center}.mat-mdc-header-cell a,.mat-mdc-cell a{cursor:pointer;text-decoration:underline}.mat-mdc-header-cell a:hover,.mat-mdc-cell a:hover{text-decoration:underline}.mat-mdc-header-cell mat-icon,.mat-mdc-cell mat-icon{margin-left:5px;vertical-align:middle}.
|
|
133
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CountsWithHistoryComponent, isStandalone: true, selector: "metaqs2-counts-with-history", inputs: { apiMethod: "apiMethod", columnTranslationkey: "columnTranslationkey", pageTitle: "pageTitle" }, ngImport: i0, template: "<mat-card appearance=\"raised\">\n <mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title data-test-id=\"page-title\">\n Qualit\u00E4tsmetrik: {{ pageTitle | translate}}{{isLoading() ? \": Lade neue Daten.\" : \"\"}}\n </mat-card-title>\n </mat-card-header>\n <!-- consider to put the filter in the table header to avoid that it is scrolled out of view-->\n <!-- show the filter after the values are loaded to avoid loading current data twice -->\n <mat-card-content *ngIf=\"timeFilterLoaded()\">\n <metaqs2-datepicker [disabled]=\"isLoading()\" [inputGroup]=\"range\" ></metaqs2-datepicker>\n </mat-card-content>\n</mat-card>\n<mat-card>\n <table [ngClass]=\"{'while-loading': isLoading()}\" mat-table [dataSource]=\"recentTypeCount$.value.rows\" class=\"quality-matrix\">\n <!-- Define columns of table -->\n <!-- Row Header Column -->\n <ng-container matColumnDef=\"label-col\" sticky>\n <th rowspan=\"2\" mat-header-cell *matHeaderCellDef>Quelle</th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n matTooltip=\"{{row.meta.alt_label}}\"\n class=\"label-col\"\n >\n {{row.meta.label}}\n </td>\n </ng-container>\n <!-- one column for each type -->\n <ng-container *ngFor=\"let col of recentTypeCount$.value.columns; trackBy:columnIdent\" [matColumnDef]=\"col.id + '_type'\">\n <th colspan=\"2\" mat-header-cell *matHeaderCellDef matTooltip=\"{{col.label}}\" >\n {{columnTranslationkey ? (columnTranslationkey + col.label | translate ) : col.label }}\n </th>\n </ng-container>\n <!-- one column for each type for the most current date-->\n <ng-container *ngFor=\"let col of recentTypeCount$.value.columns; trackBy:columnIdent\" [matColumnDef]=\"col.id + '_recent'\">\n <th class=\"recent-data-cell\" mat-header-cell *matHeaderCellDef matTooltip=\"no tooltip\" >{{ range.controls.end.value.toLocaleString(DateTime.DATE_SHORT) }}</th>\n <td class=\"recent-data-cell\" mat-cell *matCellDef=\"let row\">{{ row.counts[col.id] ?? 'n/a' }}</td>\n </ng-container>\n <!-- one column for each type for the older date-->\n <ng-container *ngFor=\"let col of recentTypeCount$.value.columns; trackBy:columnIdent\" [matColumnDef]=\"col.id + '_past'\">\n <th class=\"past-data-cell\" mat-header-cell *matHeaderCellDef matTooltip=\"no tooltip\" >\n {{ pastTypeCount$.value.rows.length ? range.controls.start.value.toLocaleString(DateTime.DATE_SHORT) : 'no past data' }}\n </th>\n <td class=\"past-data-cell\" mat-cell *matCellDef=\"let row;\">\n <ng-container *ngIf=\"pastTypeCount$.value.rows.length && pastTypeCount(row, col.id) as trend\">\n <span [ngClass]=\"trend.trend\"> {{ trend.value ?? 'n/a' }}<mat-icon aria-hidden=\"false\" [attr.aria-label]=\"trend.trend\" [fontIcon]=\"trend.trend!\" /></span>\n <span class=\"cdk-visually-hidden\">{{trend.trend}}</span>\n </ng-container>\n </td>\n </ng-container>\n <!-- generate actual table -->\n <tr mat-header-row *matHeaderRowDef=\"['label-col'].concat(typeColumns); sticky:true;\"></tr>\n <tr mat-header-row *matHeaderRowDef=\"allColumns; sticky: true;\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['label-col'].concat(allColumns)\"></tr>\n\n </table>\n</mat-card>", styles: ["tr:nth-child(2n){background-color:#e4e4e4}tr:nth-child(2n)>td.label-col,tr:nth-child(2n) td.recent-data-cell{border-right:1px solid white}tr:nth-child(odd){background-color:#fff}tr:nth-child(odd)>td.label-col,tr:nth-child(odd) td.recent-data-cell{border-right:1px solid #e4e4e4}td.label-col{text-align:left}.mat-mdc-header-cell,.mat-mdc-cell{text-align:center}.mat-mdc-header-cell a,.mat-mdc-cell a{cursor:pointer;text-decoration:underline}.mat-mdc-header-cell a:hover,.mat-mdc-cell a:hover{text-decoration:underline}.mat-mdc-header-cell mat-icon,.mat-mdc-cell mat-icon{margin-left:5px;vertical-align:middle}.trending_down{color:#4abeff}.trending_up{color:#c20808}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: DatepickerComponent, selector: "metaqs2-datepicker", inputs: ["disabled", "inputGroup"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
134
134
|
}
|
|
135
135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CountsWithHistoryComponent, decorators: [{
|
|
136
136
|
type: Component,
|
|
@@ -154,7 +154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
154
154
|
MatIcon,
|
|
155
155
|
NgIf,
|
|
156
156
|
AsyncPipe,
|
|
157
|
-
], template: "<mat-card appearance=\"raised\">\n <mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title data-test-id=\"page-title\">\n Qualit\u00E4tsmetrik: {{ pageTitle | translate}}{{isLoading() ? \": Lade neue Daten.\" : \"\"}}\n </mat-card-title>\n </mat-card-header>\n <!-- consider to put the filter in the table header to avoid that it is scrolled out of view-->\n <!-- show the filter after the values are loaded to avoid loading current data twice -->\n <mat-card-content *ngIf=\"timeFilterLoaded()\">\n <metaqs2-datepicker [disabled]=\"isLoading()\" [inputGroup]=\"range\" ></metaqs2-datepicker>\n </mat-card-content>\n</mat-card>\n<mat-card>\n <table [ngClass]=\"{'while-loading': isLoading()}\" mat-table [dataSource]=\"recentTypeCount$.value.rows\" class=\"quality-matrix\">\n <!-- Define columns of table -->\n <!-- Row Header Column -->\n <ng-container matColumnDef=\"label-col\" sticky>\n <th rowspan=\"2\" mat-header-cell *matHeaderCellDef>Quelle</th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n matTooltip=\"{{row.meta.alt_label}}\"\n class=\"label-col\"\n >\n {{row.meta.label}}\n </td>\n </ng-container>\n <!-- one column for each type -->\n <ng-container *ngFor=\"let col of recentTypeCount$.value.columns; trackBy:columnIdent\" [matColumnDef]=\"col.id + '_type'\">\n <th colspan=\"2\" mat-header-cell *matHeaderCellDef matTooltip=\"{{col.label}}\" >\n {{columnTranslationkey ? (columnTranslationkey + col.label | translate ) : col.label }}\n </th>\n </ng-container>\n <!-- one column for each type for the most current date-->\n <ng-container *ngFor=\"let col of recentTypeCount$.value.columns; trackBy:columnIdent\" [matColumnDef]=\"col.id + '_recent'\">\n <th class=\"recent-data-cell\" mat-header-cell *matHeaderCellDef matTooltip=\"no tooltip\" >{{ range.controls.end.value.toLocaleString(DateTime.DATE_SHORT) }}</th>\n <td class=\"recent-data-cell\" mat-cell *matCellDef=\"let row\">{{ row.counts[col.id] ?? 'n/a' }}</td>\n </ng-container>\n <!-- one column for each type for the older date-->\n <ng-container *ngFor=\"let col of recentTypeCount$.value.columns; trackBy:columnIdent\" [matColumnDef]=\"col.id + '_past'\">\n <th class=\"past-data-cell\" mat-header-cell *matHeaderCellDef matTooltip=\"no tooltip\" >\n {{ pastTypeCount$.value.rows.length ? range.controls.start.value.toLocaleString(DateTime.DATE_SHORT) : 'no past data' }}\n </th>\n <td class=\"past-data-cell\" mat-cell *matCellDef=\"let row;\">\n <ng-container *ngIf=\"pastTypeCount$.value.rows.length && pastTypeCount(row, col.id) as trend\">\n <span [ngClass]=\"trend.trend\"> {{ trend.value ?? 'n/a' }}<mat-icon aria-hidden=\"false\" [attr.aria-label]=\"trend.trend\" [fontIcon]=\"trend.trend!\" /></span>\n <span class=\"cdk-visually-hidden\">{{trend.trend}}</span>\n </ng-container>\n </td>\n </ng-container>\n <!-- generate actual table -->\n <tr mat-header-row *matHeaderRowDef=\"['label-col'].concat(typeColumns); sticky:true;\"></tr>\n <tr mat-header-row *matHeaderRowDef=\"allColumns; sticky: true;\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['label-col'].concat(allColumns)\"></tr>\n\n </table>\n</mat-card>", styles: ["tr:nth-child(2n){background-color:#e4e4e4}tr:nth-child(2n)>td.label-col,tr:nth-child(2n) td.recent-data-cell{border-right:1px solid white}tr:nth-child(odd){background-color:#fff}tr:nth-child(odd)>td.label-col,tr:nth-child(odd) td.recent-data-cell{border-right:1px solid #e4e4e4}td.label-col{text-align:left}.mat-mdc-header-cell,.mat-mdc-cell{text-align:center}.mat-mdc-header-cell a,.mat-mdc-cell a{cursor:pointer;text-decoration:underline}.mat-mdc-header-cell a:hover,.mat-mdc-cell a:hover{text-decoration:underline}.mat-mdc-header-cell mat-icon,.mat-mdc-cell mat-icon{margin-left:5px;vertical-align:middle}.
|
|
157
|
+
], template: "<mat-card appearance=\"raised\">\n <mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title data-test-id=\"page-title\">\n Qualit\u00E4tsmetrik: {{ pageTitle | translate}}{{isLoading() ? \": Lade neue Daten.\" : \"\"}}\n </mat-card-title>\n </mat-card-header>\n <!-- consider to put the filter in the table header to avoid that it is scrolled out of view-->\n <!-- show the filter after the values are loaded to avoid loading current data twice -->\n <mat-card-content *ngIf=\"timeFilterLoaded()\">\n <metaqs2-datepicker [disabled]=\"isLoading()\" [inputGroup]=\"range\" ></metaqs2-datepicker>\n </mat-card-content>\n</mat-card>\n<mat-card>\n <table [ngClass]=\"{'while-loading': isLoading()}\" mat-table [dataSource]=\"recentTypeCount$.value.rows\" class=\"quality-matrix\">\n <!-- Define columns of table -->\n <!-- Row Header Column -->\n <ng-container matColumnDef=\"label-col\" sticky>\n <th rowspan=\"2\" mat-header-cell *matHeaderCellDef>Quelle</th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n matTooltip=\"{{row.meta.alt_label}}\"\n class=\"label-col\"\n >\n {{row.meta.label}}\n </td>\n </ng-container>\n <!-- one column for each type -->\n <ng-container *ngFor=\"let col of recentTypeCount$.value.columns; trackBy:columnIdent\" [matColumnDef]=\"col.id + '_type'\">\n <th colspan=\"2\" mat-header-cell *matHeaderCellDef matTooltip=\"{{col.label}}\" >\n {{columnTranslationkey ? (columnTranslationkey + col.label | translate ) : col.label }}\n </th>\n </ng-container>\n <!-- one column for each type for the most current date-->\n <ng-container *ngFor=\"let col of recentTypeCount$.value.columns; trackBy:columnIdent\" [matColumnDef]=\"col.id + '_recent'\">\n <th class=\"recent-data-cell\" mat-header-cell *matHeaderCellDef matTooltip=\"no tooltip\" >{{ range.controls.end.value.toLocaleString(DateTime.DATE_SHORT) }}</th>\n <td class=\"recent-data-cell\" mat-cell *matCellDef=\"let row\">{{ row.counts[col.id] ?? 'n/a' }}</td>\n </ng-container>\n <!-- one column for each type for the older date-->\n <ng-container *ngFor=\"let col of recentTypeCount$.value.columns; trackBy:columnIdent\" [matColumnDef]=\"col.id + '_past'\">\n <th class=\"past-data-cell\" mat-header-cell *matHeaderCellDef matTooltip=\"no tooltip\" >\n {{ pastTypeCount$.value.rows.length ? range.controls.start.value.toLocaleString(DateTime.DATE_SHORT) : 'no past data' }}\n </th>\n <td class=\"past-data-cell\" mat-cell *matCellDef=\"let row;\">\n <ng-container *ngIf=\"pastTypeCount$.value.rows.length && pastTypeCount(row, col.id) as trend\">\n <span [ngClass]=\"trend.trend\"> {{ trend.value ?? 'n/a' }}<mat-icon aria-hidden=\"false\" [attr.aria-label]=\"trend.trend\" [fontIcon]=\"trend.trend!\" /></span>\n <span class=\"cdk-visually-hidden\">{{trend.trend}}</span>\n </ng-container>\n </td>\n </ng-container>\n <!-- generate actual table -->\n <tr mat-header-row *matHeaderRowDef=\"['label-col'].concat(typeColumns); sticky:true;\"></tr>\n <tr mat-header-row *matHeaderRowDef=\"allColumns; sticky: true;\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['label-col'].concat(allColumns)\"></tr>\n\n </table>\n</mat-card>", styles: ["tr:nth-child(2n){background-color:#e4e4e4}tr:nth-child(2n)>td.label-col,tr:nth-child(2n) td.recent-data-cell{border-right:1px solid white}tr:nth-child(odd){background-color:#fff}tr:nth-child(odd)>td.label-col,tr:nth-child(odd) td.recent-data-cell{border-right:1px solid #e4e4e4}td.label-col{text-align:left}.mat-mdc-header-cell,.mat-mdc-cell{text-align:center}.mat-mdc-header-cell a,.mat-mdc-cell a{cursor:pointer;text-decoration:underline}.mat-mdc-header-cell a:hover,.mat-mdc-cell a:hover{text-decoration:underline}.mat-mdc-header-cell mat-icon,.mat-mdc-cell mat-icon{margin-left:5px;vertical-align:middle}.trending_down{color:#4abeff}.trending_up{color:#c20808}\n"] }]
|
|
158
158
|
}], ctorParameters: () => [{ type: i1.MetaApiService }], propDecorators: { apiMethod: [{
|
|
159
159
|
type: Input,
|
|
160
160
|
args: [{ required: true }]
|
|
@@ -19,7 +19,7 @@ import { ApiModule as JavaApiModule, Configuration as JavaConfig } from './java-
|
|
|
19
19
|
import { TreeSearchCountsComponent } from './tree-search-counts/tree-search-counts.component';
|
|
20
20
|
import { TreeCollectionDetailsComponent } from './tree-collection-details/tree-collection-details.component';
|
|
21
21
|
import { WrapObservablePipe } from './wrap-observable.pipe';
|
|
22
|
-
import {
|
|
22
|
+
import { ConfigHelperService } from './config-helper.service';
|
|
23
23
|
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
|
|
24
24
|
import { BrowserModule } from '@angular/platform-browser';
|
|
25
25
|
import { MatListModule } from '@angular/material/list';
|
|
@@ -45,7 +45,7 @@ export class NgMetaWidgetsLibModule {
|
|
|
45
45
|
return {
|
|
46
46
|
ngModule: NgMetaWidgetsLibModule,
|
|
47
47
|
providers: [
|
|
48
|
-
|
|
48
|
+
ConfigHelperService,
|
|
49
49
|
{ provide: 'config', useValue: params },
|
|
50
50
|
{
|
|
51
51
|
provide: JavaConfig,
|
|
@@ -175,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
175
175
|
providers: [provideHttpClient(withInterceptorsFromDi()), provideCharts(withDefaultRegisterables())],
|
|
176
176
|
}]
|
|
177
177
|
}], ctorParameters: () => [{ type: i1.SvgIconsService }] });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbWV0YS13aWRnZXRzLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1tZXRhLXdpZGdldHMtbGliL3NyYy9saWIvbmctbWV0YS13aWRnZXRzLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0Qs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b0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLDRCQUE0Qjt3QkFDNUIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsbUJBQW1CO3FCQUNwQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEVBQUUsYUFBYSxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQztpQkFDcEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xuaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0U2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0R3JpZExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ncmlkLWxpc3QnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IEFwaU1vZHVsZSBhcyBKYXZhQXBpTW9kdWxlLCBDb25maWd1cmF0aW9uIGFzIEphdmFDb25maWcgfSBmcm9tICcuL2phdmEtYXBpJztcbmltcG9ydCB7IFRyZWVTZWFyY2hDb3VudHNDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtc2VhcmNoLWNvdW50cy90cmVlLXNlYXJjaC1jb3VudHMuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVDb2xsZWN0aW9uRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vdHJlZS1jb2xsZWN0aW9uLWRldGFpbHMvdHJlZS1jb2xsZWN0aW9uLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IFdyYXBPYnNlcnZhYmxlUGlwZSB9IGZyb20gJy4vd3JhcC1vYnNlcnZhYmxlLnBpcGUnO1xuaW1wb3J0IHsgRW52SGVscGVyU2VydmljZSwgTmdNZXRhV2lkZ2V0c0xpYkNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2Vudi1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBwcm92aWRlSHR0cENsaWVudCwgd2l0aEludGVyY2VwdG9yc0Zyb21EaSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdFNvcnQsIE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1hdENoZWNrYm94IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgUXVhbGl0eU1hdHJpeEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWx0ZXIvcXVhbGl0eS1tYXRyaXgtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFF1YWxpdHlNYXRyaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVhbGl0eS1tYXRyaXgvcXVhbGl0eV9tYXRyaXgnO1xuaW1wb3J0IHtcbiAgTWF0RGF0ZXBpY2tlcixcbiAgTWF0RGF0ZXBpY2tlcklucHV0LFxuICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICBNYXREYXRlcGlja2VyVG9nZ2xlLFxuICBNYXREYXRlUmFuZ2VJbnB1dCxcbiAgTWF0RGF0ZVJhbmdlUGlja2VyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IERhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsdGVyL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9udXRDaGFydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kb251dC1jaGFydC9kb251dC1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9udXRDaGFydFBpcGUgfSBmcm9tICcuL2NvbXBvbmVudHMvZG9udXQtY2hhcnQvZG9udXQtY2hhcnQucGlwZSc7XG5pbXBvcnQgeyBwcm92aWRlQ2hhcnRzLCB3aXRoRGVmYXVsdFJlZ2lzdGVyYWJsZXMgfSBmcm9tICduZzItY2hhcnRzJztcbmltcG9ydCB7IFN2Z0ljb25zU2VydmljZSB9IGZyb20gJy4vY29yZS9zdmctaWNvbnMuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRyZWVTZWFyY2hDb3VudHNDb21wb25lbnQsXG4gICAgVHJlZUNvbGxlY3Rpb25EZXRhaWxzQ29tcG9uZW50LFxuICAgIFdyYXBPYnNlcnZhYmxlUGlwZSxcbiAgICBRdWFsaXR5TWF0cml4Q29tcG9uZW50LFxuICAgIERvbnV0Q2hhcnRDb21wb25lbnQsXG4gICAgRG9udXRDaGFydFBpcGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtUcmVlQ29sbGVjdGlvbkRldGFpbHNDb21wb25lbnQsIFRyZWVTZWFyY2hDb3VudHNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQnJvd3Nlck1vZHVsZSxcbiAgICBKYXZhQXBpTW9kdWxlLmZvclJvb3QoKCkgPT4gbmV3IEphdmFDb25maWcoKSksXG4gICAgTWF0Q2FyZE1vZHVsZSxcbiAgICBNYXRUcmVlTW9kdWxlLFxuICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0U2xpZGVyTW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0R3JpZExpc3RNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdFNvcnQsXG4gICAgTWF0U29ydE1vZHVsZSxcbiAgICBNYXRDaGVja2JveCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUXVhbGl0eU1hdHJpeEZpbHRlckNvbXBvbmVudCxcbiAgICBNYXREYXRlUmFuZ2VJbnB1dCxcbiAgICBNYXREYXRlcGlja2VyVG9nZ2xlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0RGF0ZVJhbmdlUGlja2VyLFxuICAgIE1hdERhdGVwaWNrZXJJbnB1dCxcbiAgICBNYXREYXRlcGlja2VyLFxuICAgIERhdGVwaWNrZXJDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVIdHRwQ2xpZW50KHdpdGhJbnRlcmNlcHRvcnNGcm9tRGkoKSksIHByb3ZpZGVDaGFydHMod2l0aERlZmF1bHRSZWdpc3RlcmFibGVzKCkpXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdNZXRhV2lkZ2V0c0xpYk1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3ZnSWNvbnNTZXJ2aWNlOiBTdmdJY29uc1NlcnZpY2UpIHtcbiAgICAvLyB3ZSBpbmplY3QgdGhlIHNlcnZpY2UgaGVyZSB0byBtYWtlIHN1cmUgdGhlIGljb25zIGFyZSByZWdpc3RlcmVkICh0aGUgaW5pdCgpIG1ldGhvZCBpcyBjYWxsZWQgaW4gdGhlIGNvbnN0cnVjdG9yKVxuICB9XG4gIHN0YXRpYyBmb3JSb290KHBhcmFtczogTmdNZXRhV2lkZ2V0c0xpYkNvbmZpZ3VyYXRpb24pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5nTWV0YVdpZGdldHNMaWJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE5nTWV0YVdpZGdldHNMaWJNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgRW52SGVscGVyU2VydmljZSxcbiAgICAgICAgeyBwcm92aWRlOiAnY29uZmlnJywgdXNlVmFsdWU6IHBhcmFtcyB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogSmF2YUNvbmZpZyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEphdmFDb25maWcoe1xuICAgICAgICAgICAgICBiYXNlUGF0aDogcGFyYW1zLmFwaVBhdGgsXG4gICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbWV0YS13aWRnZXRzLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1tZXRhLXdpZGdldHMtbGliL3NyYy9saWIvbmctbWV0YS13aWRnZXRzLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0Qs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b0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLDRCQUE0Qjt3QkFDNUIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsbUJBQW1CO3FCQUNwQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEVBQUUsYUFBYSxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQztpQkFDcEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xuaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0U2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0R3JpZExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ncmlkLWxpc3QnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IEFwaU1vZHVsZSBhcyBKYXZhQXBpTW9kdWxlLCBDb25maWd1cmF0aW9uIGFzIEphdmFDb25maWcgfSBmcm9tICcuL2phdmEtYXBpJztcbmltcG9ydCB7IFRyZWVTZWFyY2hDb3VudHNDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtc2VhcmNoLWNvdW50cy90cmVlLXNlYXJjaC1jb3VudHMuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVDb2xsZWN0aW9uRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vdHJlZS1jb2xsZWN0aW9uLWRldGFpbHMvdHJlZS1jb2xsZWN0aW9uLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IFdyYXBPYnNlcnZhYmxlUGlwZSB9IGZyb20gJy4vd3JhcC1vYnNlcnZhYmxlLnBpcGUnO1xuaW1wb3J0IHsgQ29uZmlnSGVscGVyU2VydmljZSwgTmdNZXRhV2lkZ2V0c0xpYkNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2NvbmZpZy1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBwcm92aWRlSHR0cENsaWVudCwgd2l0aEludGVyY2VwdG9yc0Zyb21EaSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdFNvcnQsIE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1hdENoZWNrYm94IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgUXVhbGl0eU1hdHJpeEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWx0ZXIvcXVhbGl0eS1tYXRyaXgtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFF1YWxpdHlNYXRyaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVhbGl0eS1tYXRyaXgvcXVhbGl0eV9tYXRyaXgnO1xuaW1wb3J0IHtcbiAgTWF0RGF0ZXBpY2tlcixcbiAgTWF0RGF0ZXBpY2tlcklucHV0LFxuICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICBNYXREYXRlcGlja2VyVG9nZ2xlLFxuICBNYXREYXRlUmFuZ2VJbnB1dCxcbiAgTWF0RGF0ZVJhbmdlUGlja2VyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IERhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsdGVyL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9udXRDaGFydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kb251dC1jaGFydC9kb251dC1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9udXRDaGFydFBpcGUgfSBmcm9tICcuL2NvbXBvbmVudHMvZG9udXQtY2hhcnQvZG9udXQtY2hhcnQucGlwZSc7XG5pbXBvcnQgeyBwcm92aWRlQ2hhcnRzLCB3aXRoRGVmYXVsdFJlZ2lzdGVyYWJsZXMgfSBmcm9tICduZzItY2hhcnRzJztcbmltcG9ydCB7IFN2Z0ljb25zU2VydmljZSB9IGZyb20gJy4vY29yZS9zdmctaWNvbnMuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRyZWVTZWFyY2hDb3VudHNDb21wb25lbnQsXG4gICAgVHJlZUNvbGxlY3Rpb25EZXRhaWxzQ29tcG9uZW50LFxuICAgIFdyYXBPYnNlcnZhYmxlUGlwZSxcbiAgICBRdWFsaXR5TWF0cml4Q29tcG9uZW50LFxuICAgIERvbnV0Q2hhcnRDb21wb25lbnQsXG4gICAgRG9udXRDaGFydFBpcGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtUcmVlQ29sbGVjdGlvbkRldGFpbHNDb21wb25lbnQsIFRyZWVTZWFyY2hDb3VudHNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQnJvd3Nlck1vZHVsZSxcbiAgICBKYXZhQXBpTW9kdWxlLmZvclJvb3QoKCkgPT4gbmV3IEphdmFDb25maWcoKSksXG4gICAgTWF0Q2FyZE1vZHVsZSxcbiAgICBNYXRUcmVlTW9kdWxlLFxuICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0U2xpZGVyTW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0R3JpZExpc3RNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdFNvcnQsXG4gICAgTWF0U29ydE1vZHVsZSxcbiAgICBNYXRDaGVja2JveCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUXVhbGl0eU1hdHJpeEZpbHRlckNvbXBvbmVudCxcbiAgICBNYXREYXRlUmFuZ2VJbnB1dCxcbiAgICBNYXREYXRlcGlja2VyVG9nZ2xlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0RGF0ZVJhbmdlUGlja2VyLFxuICAgIE1hdERhdGVwaWNrZXJJbnB1dCxcbiAgICBNYXREYXRlcGlja2VyLFxuICAgIERhdGVwaWNrZXJDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVIdHRwQ2xpZW50KHdpdGhJbnRlcmNlcHRvcnNGcm9tRGkoKSksIHByb3ZpZGVDaGFydHMod2l0aERlZmF1bHRSZWdpc3RlcmFibGVzKCkpXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdNZXRhV2lkZ2V0c0xpYk1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3ZnSWNvbnNTZXJ2aWNlOiBTdmdJY29uc1NlcnZpY2UpIHtcbiAgICAvLyB3ZSBpbmplY3QgdGhlIHNlcnZpY2UgaGVyZSB0byBtYWtlIHN1cmUgdGhlIGljb25zIGFyZSByZWdpc3RlcmVkICh0aGUgaW5pdCgpIG1ldGhvZCBpcyBjYWxsZWQgaW4gdGhlIGNvbnN0cnVjdG9yKVxuICB9XG4gIHN0YXRpYyBmb3JSb290KHBhcmFtczogTmdNZXRhV2lkZ2V0c0xpYkNvbmZpZ3VyYXRpb24pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5nTWV0YVdpZGdldHNMaWJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE5nTWV0YVdpZGdldHNMaWJNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQ29uZmlnSGVscGVyU2VydmljZSxcbiAgICAgICAgeyBwcm92aWRlOiAnY29uZmlnJywgdXNlVmFsdWU6IHBhcmFtcyB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogSmF2YUNvbmZpZyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEphdmFDb25maWcoe1xuICAgICAgICAgICAgICBiYXNlUGF0aDogcGFyYW1zLmFwaVBhdGgsXG4gICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -5,7 +5,7 @@ import { FormControl } from '@angular/forms';
|
|
|
5
5
|
import { InlineWorker } from './inline-worker';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "../meta-api.service";
|
|
8
|
-
import * as i2 from "../
|
|
8
|
+
import * as i2 from "../config-helper.service";
|
|
9
9
|
import * as i3 from "@angular/common";
|
|
10
10
|
import * as i4 from "@angular/material/card";
|
|
11
11
|
import * as i5 from "@angular/material/icon";
|
|
@@ -186,13 +186,13 @@ export class TreeSearchCountsComponent {
|
|
|
186
186
|
get alternatingDataColumns() {
|
|
187
187
|
return this.collectionColumns.flatMap((e, i) => [e, this.searchColumns[i]]);
|
|
188
188
|
}
|
|
189
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TreeSearchCountsComponent, deps: [{ token: i1.MetaApiService }, { token: i2.
|
|
189
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TreeSearchCountsComponent, deps: [{ token: i1.MetaApiService }, { token: i2.ConfigHelperService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
190
190
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TreeSearchCountsComponent, selector: "metaqs2-tree-search-counts", inputs: { pageTitle: "pageTitle" }, ngImport: i0, template: "<mat-card appearance=\"raised\">\n<mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title>\n Material in Sammlungen{{isLoading() ? \": Lade neue Daten.\" : \"\"}}</mat-card-title\n >\n</mat-card-header>\n<mat-card-content>\n<!-- consider to put the filter in the table header to avoid that it is scrolled out of view-->\n <metaqs2-qm-filter\n aria-disabled=\"true\"\n [label]=\"'Sammlung'\"\n [options]=\"collections$ | async\"\n [multiple]=\"false\"\n [inputFormControl]=\"selectedCollection\"\n >\n </metaqs2-qm-filter>\n\n</mat-card-content>\n</mat-card>\n<mat-card>\n <table [ngClass]=\"{'while-loading': isLoading()}\" mat-table [dataSource]=\"materialCounts.rows\" *ngIf=\"columns\" class=\"quality-matrix\">\n <!-- Define columns of table -->\n <!-- Label Column -->\n <ng-container matColumnDef=\"label-col\" sticky>\n <th rowspan=\"2\" mat-header-cell *matHeaderCellDef>Sammlung\n <div >\n <mat-slide-toggle labelPosition=\"before\" class=\"toggle\" [formControl]=\"showOERonly\" >\n zeige nur OER\n </mat-slide-toggle>\n </div>\n <div>\n <mat-slide-toggle labelPosition=\"before\" class=\"toggle\" [formControl]=\"showAllColumns\" >\n zeige alle Typen\n </mat-slide-toggle>\n </div>\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n matTooltip=\"{{row.meta.alt_label}}\"\n class=\"label-col {{'mat-cell-level-' + (row.meta.level+1)}}\"\n >\n <a (click)=\"openCollection(row.meta.id)\">\n <mat-icon [svgIcon]=\"row.meta.level<=1?'layers':'child'\" />\n {{ row.meta.label }}\n </a>\n </td>\n </ng-container>\n <!-- one column for the MaterialType spanning the collection and search columns-->\n <ng-container *ngFor=\"let col of filteredColumns; trackBy:columnIdent\" [matColumnDef]=\"col.id + '_type'\">\n <th [attr.colspan]=\"2\" mat-header-cell *matHeaderCellDef class='mat-cell-level-\"{{col.level}}\"' matTooltip=\"{{col.label}}\" >{{col.label}}</th>\n </ng-container>\n <!-- /source -->\n <!-- collection Data Columns -->\n <ng-container *ngFor=\"let column of filteredColumns; trackBy:columnIdent\" [matColumnDef]=\"column.id + COLLECTION_POSTFIX\">\n <th mat-header-cell *matHeaderCellDef matTooltip=\"{{column.label}}\" >in Sammlung</th>\n <td [class.noMaterial]=\"!row.counts[column.id]?.sufficient || row.counts[column.id]?.sufficient <= 1\"\n [class.fewMaterials]=\"1 < row.counts[column.id]?.sufficient && row.counts[column.id]?.sufficient <= 3\"\n class=\"collection-data-cell\"\n mat-cell *matCellDef=\"let row\">\n <a (click)=\"showCollectionItems(row.meta.id, row.meta.label, column.id)\">\n {{ row.counts[column.id]?.sufficient || '0' }}\n </a>\n </td>\n </ng-container>\n <!-- /collection Data Columns -->\n <!-- search Data Columns -->\n <ng-container *ngFor=\"let column of filteredColumns let index = index; trackBy:columnIdent\" [matColumnDef]=\"column.id + SEARCH_POSTFIX\">\n <th mat-header-cell *matHeaderCellDef>Suche</th>\n <td class=\"search-data-cell\" mat-cell *matCellDef=\"let row\">\n <a (click)=\"searchInEditor(column.id, row.meta.label)\">\n <ng-container *ngIf=\"(( searchCounts | async)?.has(column.id + '_' + row.meta.id) ) else zeroOrLoading\">\n {{ (searchCounts | async)?.get(column.id + '_' + row.meta.id) }}\n </ng-container>\n <ng-template #zeroOrLoading>\n <ng-container *ngIf=\"rowsLoaded.has(row.meta.id) else loadingBlock\"> 0 </ng-container>\n </ng-template>\n <ng-template #loadingBlock>\n loading\u2026\n </ng-template>\n </a>\n </td>\n </ng-container>\n <!-- /search Data Columns -->\n <!-- Generate actual table -->\n <tr mat-header-row *matHeaderRowDef=\"['label-col'].concat( typeColumns ); sticky: true;\"></tr>\n <tr mat-header-row *matHeaderRowDef=\"alternatingDataColumns; sticky: true;\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['label-col'].concat(alternatingDataColumns)\"></tr>\n </table>\n</mat-card>", styles: ["tr:nth-child(2n){background-color:#e4e4e4}tr:nth-child(2n)>.mat-column-label-col,tr:nth-child(2n) .search-data-cell{border-right-color:#fff}.search-data-cell,.mat-mdc-header-cell,.mat-column-label-col{border-right:1px solid #e4e4e4}.search-data-cell mat-icon,.mat-mdc-header-cell mat-icon,.mat-column-label-col mat-icon{color:var(--mat-table-row-item-label-text-color);height:16px;padding-right:5px;font-size:16px}.mat-mdc-header-cell,.mat-mdc-cell{padding-left:5px;text-align:center}.mat-mdc-header-cell a,.mat-mdc-cell a{cursor:pointer;text-decoration:underline}.mat-mdc-header-cell a:hover,.mat-mdc-cell a:hover{text-decoration:underline}.label-col a{text-decoration:none;align-items:center;display:flex}.mat-column-totals_collection.noMaterial{background-color:#fad6da}.mat-column-totals_collection.fewMaterials{background-color:#fff1d6}.mat-cell-level-1{padding-left:20px!important;text-align:left}.mat-cell-level-2{padding-left:40px!important;text-align:left}.mat-cell-level-3{padding-left:60px!important;text-align:left}.mat-cell-level-4{padding-left:80px!important;text-align:left}.mat-cell-level-5{padding-left:100px!important;text-align:left}.mat-cell-level-6{padding-left:120px!important;text-align:left}.mat-cell-level-7{padding-left:140px!important;text-align:left}.mat-cell-level-8{padding-left:160px!important;text-align:left}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i4.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i10.QualityMatrixFilterComponent, selector: "metaqs2-qm-filter", inputs: ["options", "inputFormControl", "label", "multiple"], outputs: ["changedFilters"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
191
191
|
}
|
|
192
192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TreeSearchCountsComponent, decorators: [{
|
|
193
193
|
type: Component,
|
|
194
194
|
args: [{ selector: 'metaqs2-tree-search-counts', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card appearance=\"raised\">\n<mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title>\n Material in Sammlungen{{isLoading() ? \": Lade neue Daten.\" : \"\"}}</mat-card-title\n >\n</mat-card-header>\n<mat-card-content>\n<!-- consider to put the filter in the table header to avoid that it is scrolled out of view-->\n <metaqs2-qm-filter\n aria-disabled=\"true\"\n [label]=\"'Sammlung'\"\n [options]=\"collections$ | async\"\n [multiple]=\"false\"\n [inputFormControl]=\"selectedCollection\"\n >\n </metaqs2-qm-filter>\n\n</mat-card-content>\n</mat-card>\n<mat-card>\n <table [ngClass]=\"{'while-loading': isLoading()}\" mat-table [dataSource]=\"materialCounts.rows\" *ngIf=\"columns\" class=\"quality-matrix\">\n <!-- Define columns of table -->\n <!-- Label Column -->\n <ng-container matColumnDef=\"label-col\" sticky>\n <th rowspan=\"2\" mat-header-cell *matHeaderCellDef>Sammlung\n <div >\n <mat-slide-toggle labelPosition=\"before\" class=\"toggle\" [formControl]=\"showOERonly\" >\n zeige nur OER\n </mat-slide-toggle>\n </div>\n <div>\n <mat-slide-toggle labelPosition=\"before\" class=\"toggle\" [formControl]=\"showAllColumns\" >\n zeige alle Typen\n </mat-slide-toggle>\n </div>\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n matTooltip=\"{{row.meta.alt_label}}\"\n class=\"label-col {{'mat-cell-level-' + (row.meta.level+1)}}\"\n >\n <a (click)=\"openCollection(row.meta.id)\">\n <mat-icon [svgIcon]=\"row.meta.level<=1?'layers':'child'\" />\n {{ row.meta.label }}\n </a>\n </td>\n </ng-container>\n <!-- one column for the MaterialType spanning the collection and search columns-->\n <ng-container *ngFor=\"let col of filteredColumns; trackBy:columnIdent\" [matColumnDef]=\"col.id + '_type'\">\n <th [attr.colspan]=\"2\" mat-header-cell *matHeaderCellDef class='mat-cell-level-\"{{col.level}}\"' matTooltip=\"{{col.label}}\" >{{col.label}}</th>\n </ng-container>\n <!-- /source -->\n <!-- collection Data Columns -->\n <ng-container *ngFor=\"let column of filteredColumns; trackBy:columnIdent\" [matColumnDef]=\"column.id + COLLECTION_POSTFIX\">\n <th mat-header-cell *matHeaderCellDef matTooltip=\"{{column.label}}\" >in Sammlung</th>\n <td [class.noMaterial]=\"!row.counts[column.id]?.sufficient || row.counts[column.id]?.sufficient <= 1\"\n [class.fewMaterials]=\"1 < row.counts[column.id]?.sufficient && row.counts[column.id]?.sufficient <= 3\"\n class=\"collection-data-cell\"\n mat-cell *matCellDef=\"let row\">\n <a (click)=\"showCollectionItems(row.meta.id, row.meta.label, column.id)\">\n {{ row.counts[column.id]?.sufficient || '0' }}\n </a>\n </td>\n </ng-container>\n <!-- /collection Data Columns -->\n <!-- search Data Columns -->\n <ng-container *ngFor=\"let column of filteredColumns let index = index; trackBy:columnIdent\" [matColumnDef]=\"column.id + SEARCH_POSTFIX\">\n <th mat-header-cell *matHeaderCellDef>Suche</th>\n <td class=\"search-data-cell\" mat-cell *matCellDef=\"let row\">\n <a (click)=\"searchInEditor(column.id, row.meta.label)\">\n <ng-container *ngIf=\"(( searchCounts | async)?.has(column.id + '_' + row.meta.id) ) else zeroOrLoading\">\n {{ (searchCounts | async)?.get(column.id + '_' + row.meta.id) }}\n </ng-container>\n <ng-template #zeroOrLoading>\n <ng-container *ngIf=\"rowsLoaded.has(row.meta.id) else loadingBlock\"> 0 </ng-container>\n </ng-template>\n <ng-template #loadingBlock>\n loading\u2026\n </ng-template>\n </a>\n </td>\n </ng-container>\n <!-- /search Data Columns -->\n <!-- Generate actual table -->\n <tr mat-header-row *matHeaderRowDef=\"['label-col'].concat( typeColumns ); sticky: true;\"></tr>\n <tr mat-header-row *matHeaderRowDef=\"alternatingDataColumns; sticky: true;\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['label-col'].concat(alternatingDataColumns)\"></tr>\n </table>\n</mat-card>", styles: ["tr:nth-child(2n){background-color:#e4e4e4}tr:nth-child(2n)>.mat-column-label-col,tr:nth-child(2n) .search-data-cell{border-right-color:#fff}.search-data-cell,.mat-mdc-header-cell,.mat-column-label-col{border-right:1px solid #e4e4e4}.search-data-cell mat-icon,.mat-mdc-header-cell mat-icon,.mat-column-label-col mat-icon{color:var(--mat-table-row-item-label-text-color);height:16px;padding-right:5px;font-size:16px}.mat-mdc-header-cell,.mat-mdc-cell{padding-left:5px;text-align:center}.mat-mdc-header-cell a,.mat-mdc-cell a{cursor:pointer;text-decoration:underline}.mat-mdc-header-cell a:hover,.mat-mdc-cell a:hover{text-decoration:underline}.label-col a{text-decoration:none;align-items:center;display:flex}.mat-column-totals_collection.noMaterial{background-color:#fad6da}.mat-column-totals_collection.fewMaterials{background-color:#fff1d6}.mat-cell-level-1{padding-left:20px!important;text-align:left}.mat-cell-level-2{padding-left:40px!important;text-align:left}.mat-cell-level-3{padding-left:60px!important;text-align:left}.mat-cell-level-4{padding-left:80px!important;text-align:left}.mat-cell-level-5{padding-left:100px!important;text-align:left}.mat-cell-level-6{padding-left:120px!important;text-align:left}.mat-cell-level-7{padding-left:140px!important;text-align:left}.mat-cell-level-8{padding-left:160px!important;text-align:left}\n"] }]
|
|
195
|
-
}], ctorParameters: () => [{ type: i1.MetaApiService }, { type: i2.
|
|
195
|
+
}], ctorParameters: () => [{ type: i1.MetaApiService }, { type: i2.ConfigHelperService }, { type: i0.ChangeDetectorRef }], propDecorators: { pageTitle: [{
|
|
196
196
|
type: Input
|
|
197
197
|
}] } });
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWFyY2gtY291bnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi90cmVlLXNlYXJjaC1jb3VudHMvdHJlZS1zZWFyY2gtY291bnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi90cmVlLXNlYXJjaC1jb3VudHMvdHJlZS1zZWFyY2gtY291bnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7OztBQWUvQyxNQUFNLE9BQU8seUJBQXlCO0lBd0JwQyxZQUNtQixPQUF1QixFQUNoQyxHQUFxQixFQUNaLGNBQWlDO1FBRmpDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ2hDLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ1osbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBMUJwRDs7V0FFRztRQUNNLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6Qix1QkFBa0IsR0FBRyxhQUFhLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxTQUFTLENBQUM7UUFDM0IsaUJBQVksR0FBbUMsSUFBSSxlQUFlLENBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RGLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQXNCLElBQUks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VztRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDOytHQWpOVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixzR0N0QnRDLHNwSUF5Rlc7OzRGRG5FRSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0UsNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNO2tKQXdCckMsU0FBUztzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWV0YUFwaVNlcnZpY2UgfSBmcm9tICcuLi9tZXRhLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEVudkhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi9lbnYtaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsdGVyVmFsdWUsIFF1YWxpdHlNYXRyaXggfSBmcm9tICcuLi9qYXZhLWFwaSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElubGluZVdvcmtlciB9IGZyb20gJy4vaW5saW5lLXdvcmtlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUNvbHVtbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgbGV2ZWw/OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21ldGFxczItdHJlZS1zZWFyY2gtY291bnRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtc2VhcmNoLWNvdW50cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RyZWUtc2VhcmNoLWNvdW50cy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHJlZVNlYXJjaENvdW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIGRlZmF1bHQgbWF4IGNvdW50IG9mIGNvbHVtbnMgdGhhdCBzaG91bGQgYmUgc2hvd25cbiAgICovXG4gIHJlYWRvbmx5IERFRkFVTFRfQ09MVU1OX0xJTUlUID0gNjtcbiAgcmVhZG9ubHkgQ09MTEVDVElPTl9QT1NURklYID0gJ19jb2xsZWN0aW9uJztcbiAgcmVhZG9ubHkgU0VBUkNIX1BPU1RGSVggPSAnX3NlYXJjaCc7XG4gIHJlYWRvbmx5IGNvbGxlY3Rpb25zJDogQmVoYXZpb3JTdWJqZWN0PEZpbHRlclZhbHVlW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJWYWx1ZVtdPihbXSk7XG4gIHJlYWRvbmx5IHNlYXJjaENvdW50cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPHN0cmluZywgbnVtYmVyPj4obmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKSk7XG4gIHJlYWRvbmx5IHNob3dPRVJvbmx5ID0gbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHRydWUsIGRpc2FibGVkOiBmYWxzZSB9LCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICByZWFkb25seSBzaG93QWxsQ29sdW1ucyA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiBmYWxzZSwgZGlzYWJsZWQ6IGZhbHNlIH0sIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gIHJlYWRvbmx5IHNlbGVjdGVkQ29sbGVjdGlvbiA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuXG4gIC8vIGNvbnZlcnQgdGhpcyBpbiBhbiBPYmVzZXJ2YWJsZVxuICBwcm90ZWN0ZWQgbWF0ZXJpYWxDb3VudHM6IFF1YWxpdHlNYXRyaXg7XG4gIHB1YmxpYyBjb2x1bW5zOiBEYXRhQ29sdW1uW107XG4gIHByb3RlY3RlZCByb3dzTG9hZGVkOiBNYXA8c3RyaW5nLCBib29sZWFuPiA9IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpO1xuXG4gIGlzTG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgcHJpdmF0ZSB3b3JrZXI6IElubGluZVdvcmtlcjtcblxuICBASW5wdXQoKVxuICBwcm90ZWN0ZWQgcGFnZVRpdGxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXRhQXBpOiBNZXRhQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGVudjogRW52SGVscGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0Q29sbGVjdGlvbnNGaWx0ZXIoKTtcbiAgICB0aGlzLmluaXRPZXJGaWx0ZXIoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLndvcmtlcikge1xuICAgICAgdGhpcy53b3JrZXIudGVybWluYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsZXRUaGVXb3JrZXJTZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hDb3VudHMubmV4dChuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpKTtcbiAgICB0aGlzLnJvd3NMb2FkZWQuY2xlYXIoKTtcbiAgICBpZiAodGhpcy53b3JrZXIpIHtcbiAgICAgIHRoaXMud29ya2VyLnRlcm1pbmF0ZSgpO1xuICAgIH1cbiAgICB0aGlzLndvcmtlciA9IG5ldyBJbmxpbmVXb3JrZXIoeyBiYXNlUGF0aDogdGhpcy5lbnYuYXBpUGF0aCB9KTtcbiAgICB0aGlzLndvcmtlci5vbm1lc3NhZ2UoKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAvLyBvbmUgbWVzc2FnZSBwZXIgcm93XG4gICAgICBsZXQgdG90YWwgPSAwO1xuXG4gICAgICBPYmplY3QuZW50cmllcyhldmVudC5kYXRhLmRhdGEpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAvLyBrZXkgaXMgdGhlIG1hdGVyaWFsIHR5cGUsIHZhbHVlIGlzIHRoZSBjb3VudFxuICAgICAgICBjb25zdCBjb2x1bW5LZXkgPSBrZXkgKyAnXycgKyBldmVudC5kYXRhLmNvbGxlY3Rpb25JZDtcbiAgICAgICAgdG90YWwgKz0gdmFsdWUgYXMgbnVtYmVyO1xuICAgICAgICB0aGlzLnNlYXJjaENvdW50cy52YWx1ZS5zZXQoY29sdW1uS2V5LCB2YWx1ZSBhcyBudW1iZXIpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnNlYXJjaENvdW50cy52YWx1ZS5zZXQoJ3RvdGFsc18nICsgZXZlbnQuZGF0YS5jb2xsZWN0aW9uSWQsIHRvdGFsKTtcbiAgICAgIHRoaXMuc2VhcmNoQ291bnRzLm5leHQodGhpcy5zZWFyY2hDb3VudHMudmFsdWUpO1xuICAgICAgdGhpcy5yb3dzTG9hZGVkLnNldChldmVudC5kYXRhLmNvbGxlY3Rpb25JZCwgdHJ1ZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLndvcmtlci5vbmVycm9yKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKCdpbiBtYWluIHRocmVhZCcsIGRhdGEpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5tYXRlcmlhbENvdW50cy5yb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgdGhpcy53b3JrZXIucG9zdE1lc3NhZ2Uoe1xuICAgICAgICBjb2xsZWN0aW9uSWQ6IHJvdy5tZXRhLmlkLFxuICAgICAgICBzZWFyY2hUZXJtOiByb3cubWV0YS5sYWJlbCxcbiAgICAgICAgb2VyT25seTogdGhpcy5zaG93T0VSb25seS52YWx1ZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0T2VyRmlsdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd09FUm9ubHkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBjb2xsZWN0aW9uSWQgPSB0aGlzLmV4dHJhY3RDb2xsZWN0aW9uSWRGcm9tVm9jYWJVcmwodGhpcy5zZWxlY3RlZENvbGxlY3Rpb24udmFsdWUpO1xuICAgICAgdGhpcy5sb2FkRGF0YUZvckNvbGxlY3Rpb24oY29sbGVjdGlvbklkKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENvbGxlY3Rpb25zRmlsdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xsZWN0aW9uLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGNvbGxlY3Rpb25JZFZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBpZCA9IHRoaXMuZXh0cmFjdENvbGxlY3Rpb25JZEZyb21Wb2NhYlVybChjb2xsZWN0aW9uSWRWYWx1ZSk7XG4gICAgICB0aGlzLmxvYWREYXRhRm9yQ29sbGVjdGlvbihpZCk7XG4gICAgfSk7XG4gICAgdGhpcy5tZXRhQXBpXG4gICAgICAuZ2V0Q29sbGVjdGlvbnNGaWx0ZXIoKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNvbGxlY3Rpb25zKSA9PiB7XG4gICAgICAgIGNvbnN0IHNvcnRlZENvbGxlY3Rpb25zID0gY29sbGVjdGlvbnMuc29ydCgoYSwgYikgPT4gYS5sYWJlbC5sb2NhbGVDb21wYXJlKGIubGFiZWwpKTtcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9ucyQubmV4dChzb3J0ZWRDb2xsZWN0aW9ucyk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2xsZWN0aW9uLnNldFZhbHVlKHNvcnRlZENvbGxlY3Rpb25zWzBdLmlkKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkRGF0YUZvckNvbGxlY3Rpb24oY29sbGVjdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5tYXRlcmlhbENvdW50cyA9IGF3YWl0IHRoaXMubWV0YUFwaVxuICAgICAgLmdldE1hdGVyaWFsQ291bnRNYXRyaXhQZXJDb2xsZWN0aW9uKGNvbGxlY3Rpb25JZCwgdGhpcy5zaG93T0VSb25seS52YWx1ZSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgICAvL1RPRE86IHRyeSB0byBhdm9pZCB0byByZWNhbGN1bGF0ZSB0aGUgY29sdW1ucyBvbiBldmVyeSBjaGFuZ2VcbiAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLm1hdGVyaWFsQ291bnRzLmNvbHVtbnMubWFwKChjKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogYy5pZCxcbiAgICAgICAgaWNvbjogJ3RvdGFsJyxcbiAgICAgICAgbGFiZWw6IGMubGFiZWwsXG4gICAgICAgIGxldmVsOiBjLmxldmVsLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHRoaXMubGV0VGhlV29ya2VyU2VhcmNoKCk7XG5cbiAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0Q29sbGVjdGlvbklkRnJvbVZvY2FiVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXJsLnN1YnN0cmluZyh1cmwubGFzdEluZGV4T2YoJy8nKSArIDEpO1xuICB9XG5cbiAgb3BlbkNvbGxlY3Rpb24oaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25JZCA9IHRoaXMuZXh0cmFjdENvbGxlY3Rpb25JZEZyb21Wb2NhYlVybChpZCk7XG4gICAgd2luZG93Lm9wZW4oXG4gICAgICB0aGlzLmVudi5lZHVTaGFyaW5nUGF0aCArXG4gICAgICAgICcvY29tcG9uZW50cy9lZGl0b3JpYWwtZGVzay8/bW9kZT1yZW5kZXImdmlld1R5cGU9c2luZ2xlJmlkcz0nICtcbiAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KGNvbGxlY3Rpb25JZClcbiAgICApO1xuICB9XG5cbiAgc2VhcmNoSW5FZGl0b3IobWF0ZXJpYWxUeXBlOiBzdHJpbmcsIHNlYXJjaFRlcm06IHN0cmluZykge1xuICAgIGNvbnN0IGZpbHRlcnM6IGFueSA9IHt9O1xuICAgIGlmIChtYXRlcmlhbFR5cGUgIT09ICd0b3RhbHMnKSB7XG4gICAgICBmaWx0ZXJzWydjY206b2VoX2xydF9hZ2dyZWdhdGVkJ10gPSBbbWF0ZXJpYWxUeXBlXTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd09FUm9ubHkudmFsdWUpIHtcbiAgICAgIGZpbHRlcnNbJ3ZpcnR1YWw6ZWRpdG9yaWFsX2xpY2Vuc2UnXSA9IFsnb2VyJ107XG4gICAgfVxuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLmVudi5lZHVTaGFyaW5nUGF0aCArXG4gICAgICAnL2NvbXBvbmVudHMvZWRpdG9yaWFsLWRlc2s/bW9kZT1hdWRpdF9tZXRhcXMmJyArXG4gICAgICAncT0nICtcbiAgICAgIGVuY29kZVVSSUNvbXBvbmVudChzZWFyY2hUZXJtKSArXG4gICAgICAnJicgK1xuICAgICAgJ3RpdGxlPScgK1xuICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KCdNZXRhUVMgLSBTdWNoZXJnZWJuaXNzZSBmw7xyIFwiJyArIHNlYXJjaFRlcm0gKyAnXCInKSArXG4gICAgICAnJicgK1xuICAgICAgJ2ZpbHRlcnM9JyArXG4gICAgICBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZmlsdGVycykpICtcbiAgICAgICcmJyArXG4gICAgICAncGFuZWw9Y29udGVudHMmdGFiPTQmJztcblxuICAgIGNvbnN0IHJlZiA9IHdpbmRvdy5vcGVuKHVybCk7XG4gIH1cblxuICBzaG93Q29sbGVjdGlvbkl0ZW1zKGNvbGxlY3Rpb25JZDogc3RyaW5nLCBjb2xsZWN0aW9uTmFtZTogc3RyaW5nLCBtYXRlcmlhbFR5cGU6IHN0cmluZykge1xuICAgIGNvbnN0IGlkID0gdGhpcy5leHRyYWN0Q29sbGVjdGlvbklkRnJvbVZvY2FiVXJsKGNvbGxlY3Rpb25JZCk7XG4gICAgY29uc3QgZmlsdGVyczogYW55ID0ge1xuICAgICAgLy9cInZpcnR1YWw6Y29sbGVjdGlvbl9pZF9wcmltYXJ5XCI6IFtpZF0sIC8vd29ya3Mgb2Z0ZW4sIGJ1dCBub3QgYWx3YXlzXG4gICAgICAndmlydHVhbDptZXRhcXNfY29sbGVjdGlvbl9pZCc6IFtpZF0sXG4gICAgfTtcbiAgICBpZiAobWF0ZXJpYWxUeXBlICE9PSAndG90YWxzJykge1xuICAgICAgZmlsdGVyc1snY2NtOm9laF9scnRfYWdncmVnYXRlZCddID0gW21hdGVyaWFsVHlwZV07XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dPRVJvbmx5LnZhbHVlKSB7XG4gICAgICBmaWx0ZXJzWyd2aXJ0dWFsOmVkaXRvcmlhbF9saWNlbnNlJ10gPSBbJ29lciddO1xuICAgIH1cbiAgICB3aW5kb3cub3BlbihcbiAgICAgIHRoaXMuZW52LmVkdVNoYXJpbmdQYXRoICtcbiAgICAgICAgJy9jb21wb25lbnRzL2VkaXRvcmlhbC1kZXNrP21vZGU9YXVkaXRfbWV0YXFzJicgK1xuICAgICAgICAndGl0bGU9JyArXG4gICAgICAgIGVuY29kZVVSSUNvbXBvbmVudCgnTWV0YVFTIC0gU2FtbWx1bmdzaW5oYWx0ZSBmw7xyIFwiJyArIGNvbGxlY3Rpb25OYW1lICsgJ1wiJykgK1xuICAgICAgICAnJicgK1xuICAgICAgICAnZmlsdGVycz0nICtcbiAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGZpbHRlcnMpKSArXG4gICAgICAgICcmJyArXG4gICAgICAgICdwYW5lbD1jb250ZW50cyZ0YWI9NCYnXG4gICAgKTtcbiAgfVxuXG4gIGNvbHVtbklkZW50KF9pbmRleDogbnVtYmVyLCBjb2w6IHsgaWQ6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIGNvbC5pZDtcbiAgfVxuXG4gIGdldCBmaWx0ZXJlZENvbHVtbnMoKSB7XG4gICAgLy8gcmV0dXJuIGVpdGhlciBhbGwgb3IganVzdCBhIGdpdmVuIGFtb3VudCBvZiBjb2x1bW5zXG4gICAgcmV0dXJuIHRoaXMuc2hvd0FsbENvbHVtbnMudmFsdWUgPyB0aGlzLmNvbHVtbnMgOiB0aGlzLmNvbHVtbnMuc2xpY2UoMCwgdGhpcy5ERUZBVUxUX0NPTFVNTl9MSU1JVCk7XG4gIH1cblxuICBnZXQgY29sdW1uTmFtZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRDb2x1bW5zLm1hcCgoYykgPT4gYy5pZCk7XG4gIH1cblxuICBnZXQgdHlwZUNvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbk5hbWVzLm1hcCgoYykgPT4gYyArICdfdHlwZScpO1xuICB9XG5cbiAgZ2V0IGNvbGxlY3Rpb25Db2x1bW5zKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5OYW1lcy5tYXAoKGMpID0+IGMgKyB0aGlzLkNPTExFQ1RJT05fUE9TVEZJWCk7XG4gIH1cblxuICBnZXQgc2VhcmNoQ29sdW1ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uTmFtZXMubWFwKChjKSA9PiBjICsgdGhpcy5TRUFSQ0hfUE9TVEZJWCk7XG4gIH1cblxuICBnZXQgYWx0ZXJuYXRpbmdEYXRhQ29sdW1ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbkNvbHVtbnMuZmxhdE1hcCgoZSwgaSkgPT4gW2UsIHRoaXMuc2VhcmNoQ29sdW1uc1tpXV0pO1xuICB9XG59XG4iLCI8bWF0LWNhcmQgYXBwZWFyYW5jZT1cInJhaXNlZFwiPlxuPG1hdC1jYXJkLWhlYWRlciAqbmdJZj1cInBhZ2VUaXRsZVwiPlxuICA8bWF0LWNhcmQtdGl0bGU+XG4gICAgTWF0ZXJpYWwgaW4gU2FtbWx1bmdlbnt7aXNMb2FkaW5nKCkgPyBcIjogTGFkZSBuZXVlIERhdGVuLlwiIDogXCJcIn19PC9tYXQtY2FyZC10aXRsZVxuICA+XG48L21hdC1jYXJkLWhlYWRlcj5cbjxtYXQtY2FyZC1jb250ZW50PlxuPCEtLSBjb25zaWRlciB0byBwdXQgdGhlIGZpbHRlciBpbiB0aGUgdGFibGUgaGVhZGVyIHRvIGF2b2lkIHRoYXQgaXQgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXctLT5cbiAgICA8bWV0YXFzMi1xbS1maWx0ZXJcbiAgICAgIGFyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJcbiAgICAgIFtsYWJlbF09XCInU2FtbWx1bmcnXCJcbiAgICAgIFtvcHRpb25zXT1cImNvbGxlY3Rpb25zJCB8IGFzeW5jXCJcbiAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgICBbaW5wdXRGb3JtQ29udHJvbF09XCJzZWxlY3RlZENvbGxlY3Rpb25cIlxuICAgID5cbiAgICA8L21ldGFxczItcW0tZmlsdGVyPlxuXG48L21hdC1jYXJkLWNvbnRlbnQ+XG48L21hdC1jYXJkPlxuPG1hdC1jYXJkPlxuICA8dGFibGUgW25nQ2xhc3NdPVwieyd3aGlsZS1sb2FkaW5nJzogaXNMb2FkaW5nKCl9XCIgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cIm1hdGVyaWFsQ291bnRzLnJvd3NcIiAqbmdJZj1cImNvbHVtbnNcIiBjbGFzcz1cInF1YWxpdHktbWF0cml4XCI+XG4gICAgPCEtLSBEZWZpbmUgY29sdW1ucyBvZiB0YWJsZSAtLT5cbiAgICA8IS0tIExhYmVsIENvbHVtbiAtLT5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImxhYmVsLWNvbFwiIHN0aWNreT5cbiAgICAgIDx0aCByb3dzcGFuPVwiMlwiIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5TYW1tbHVuZ1xuICAgICAgPGRpdiA+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGxhYmVsUG9zaXRpb249XCJiZWZvcmVcIiBjbGFzcz1cInRvZ2dsZVwiIFtmb3JtQ29udHJvbF09XCJzaG93T0VSb25seVwiID5cbiAgICAgICAgICB6ZWlnZSBudXIgT0VSXG4gICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBsYWJlbFBvc2l0aW9uPVwiYmVmb3JlXCIgY2xhc3M9XCJ0b2dnbGVcIiBbZm9ybUNvbnRyb2xdPVwic2hvd0FsbENvbHVtbnNcIiA+XG4gICAgICAgICAgemVpZ2UgYWxsZSBUeXBlblxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90aD5cbiAgICAgIDx0ZFxuICAgICAgICBtYXQtY2VsbFxuICAgICAgICAqbWF0Q2VsbERlZj1cImxldCByb3dcIlxuICAgICAgICBtYXRUb29sdGlwPVwie3tyb3cubWV0YS5hbHRfbGFiZWx9fVwiXG4gICAgICAgIGNsYXNzPVwibGFiZWwtY29sIHt7J21hdC1jZWxsLWxldmVsLScgKyAocm93Lm1ldGEubGV2ZWwrMSl9fVwiXG4gICAgICA+XG4gICAgICAgIDxhIChjbGljayk9XCJvcGVuQ29sbGVjdGlvbihyb3cubWV0YS5pZClcIj5cbiAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwicm93Lm1ldGEubGV2ZWw8PTE/J2xheWVycyc6J2NoaWxkJ1wiIC8+XG4gICAgICAgICAge3sgcm93Lm1ldGEubGFiZWwgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIG9uZSBjb2x1bW4gZm9yIHRoZSBNYXRlcmlhbFR5cGUgc3Bhbm5pbmcgdGhlIGNvbGxlY3Rpb24gYW5kIHNlYXJjaCBjb2x1bW5zLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGZpbHRlcmVkQ29sdW1uczsgdHJhY2tCeTpjb2x1bW5JZGVudFwiIFttYXRDb2x1bW5EZWZdPVwiY29sLmlkICsgJ190eXBlJ1wiPlxuICAgICAgPHRoIFthdHRyLmNvbHNwYW5dPVwiMlwiIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz0nbWF0LWNlbGwtbGV2ZWwtXCJ7e2NvbC5sZXZlbH19XCInIG1hdFRvb2x0aXA9XCJ7e2NvbC5sYWJlbH19XCIgPnt7Y29sLmxhYmVsfX08L3RoPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gL3NvdXJjZSAtLT5cbiAgICA8IS0tIGNvbGxlY3Rpb24gRGF0YSBDb2x1bW5zIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBmaWx0ZXJlZENvbHVtbnM7IHRyYWNrQnk6Y29sdW1uSWRlbnRcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5pZCArIENPTExFQ1RJT05fUE9TVEZJWFwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXRUb29sdGlwPVwie3tjb2x1bW4ubGFiZWx9fVwiID5pbiBTYW1tbHVuZzwvdGg+XG4gICAgICA8dGQgW2NsYXNzLm5vTWF0ZXJpYWxdPVwiIXJvdy5jb3VudHNbY29sdW1uLmlkXT8uc3VmZmljaWVudCB8fCByb3cuY291bnRzW2NvbHVtbi5pZF0/LnN1ZmZpY2llbnQgPD0gMVwiXG4gICAgICAgICAgW2NsYXNzLmZld01hdGVyaWFsc109XCIxIDwgcm93LmNvdW50c1tjb2x1bW4uaWRdPy5zdWZmaWNpZW50ICYmIHJvdy5jb3VudHNbY29sdW1uLmlkXT8uc3VmZmljaWVudCA8PSAzXCJcbiAgICAgICAgICBjbGFzcz1cImNvbGxlY3Rpb24tZGF0YS1jZWxsXCJcbiAgICAgICAgICBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cbiAgICAgICAgICAgIDxhIChjbGljayk9XCJzaG93Q29sbGVjdGlvbkl0ZW1zKHJvdy5tZXRhLmlkLCByb3cubWV0YS5sYWJlbCwgY29sdW1uLmlkKVwiPlxuICAgICAgICAgICAgICB7eyByb3cuY291bnRzW2NvbHVtbi5pZF0/LnN1ZmZpY2llbnQgfHwgJzAnIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gL2NvbGxlY3Rpb24gRGF0YSBDb2x1bW5zIC0tPlxuICAgIDwhLS0gc2VhcmNoIERhdGEgQ29sdW1ucyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZmlsdGVyZWRDb2x1bW5zIGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OmNvbHVtbklkZW50XCIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4uaWQgKyBTRUFSQ0hfUE9TVEZJWFwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5TdWNoZTwvdGg+XG4gICAgICA8dGQgY2xhc3M9XCJzZWFyY2gtZGF0YS1jZWxsXCIgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XG4gICAgICAgIDxhIChjbGljayk9XCJzZWFyY2hJbkVkaXRvcihjb2x1bW4uaWQsIHJvdy5tZXRhLmxhYmVsKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoKCBzZWFyY2hDb3VudHMgfCBhc3luYyk/Lmhhcyhjb2x1bW4uaWQgKyAnXycgKyByb3cubWV0YS5pZCkgKSBlbHNlIHplcm9PckxvYWRpbmdcIj5cbiAgICAgICAgICAgIHt7IChzZWFyY2hDb3VudHMgfCBhc3luYyk/LmdldChjb2x1bW4uaWQgKyAnXycgKyByb3cubWV0YS5pZCkgfX1cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3plcm9PckxvYWRpbmc+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93c0xvYWRlZC5oYXMocm93Lm1ldGEuaWQpIGVsc2UgbG9hZGluZ0Jsb2NrXCI+IDAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmdCbG9jaz5cbiAgICAgICAgICAgIGxvYWRpbmfigKZcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2E+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gL3NlYXJjaCBEYXRhIENvbHVtbnMgLS0+XG4gICAgICA8IS0tIEdlbmVyYXRlIGFjdHVhbCB0YWJsZSAtLT5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cIlsnbGFiZWwtY29sJ10uY29uY2F0KCB0eXBlQ29sdW1ucyApOyBzdGlja3k6IHRydWU7XCI+PC90cj5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImFsdGVybmF0aW5nRGF0YUNvbHVtbnM7IHN0aWNreTogdHJ1ZTtcIj48L3RyPlxuICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBbJ2xhYmVsLWNvbCddLmNvbmNhdChhbHRlcm5hdGluZ0RhdGFDb2x1bW5zKVwiPjwvdHI+XG4gIDwvdGFibGU+XG48L21hdC1jYXJkPiJdfQ==
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWFyY2gtY291bnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi90cmVlLXNlYXJjaC1jb3VudHMvdHJlZS1zZWFyY2gtY291bnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi90cmVlLXNlYXJjaC1jb3VudHMvdHJlZS1zZWFyY2gtY291bnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7OztBQWUvQyxNQUFNLE9BQU8seUJBQXlCO0lBd0JwQyxZQUNtQixPQUF1QixFQUNoQyxHQUF3QixFQUNmLGNBQWlDO1FBRmpDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ2hDLFFBQUcsR0FBSCxHQUFHLENBQXFCO1FBQ2YsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBMUJwRDs7V0FFRztRQUNNLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6Qix1QkFBa0IsR0FBRyxhQUFhLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxTQUFTLENBQUM7UUFDM0IsaUJBQVksR0FBbUMsSUFBSSxlQUFlLENBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RGLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQXNCLElBQUks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VztRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDOytHQWpOVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixzR0N0QnRDLHNwSUF5Rlc7OzRGRG5FRSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0UsNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNO3FKQXdCckMsU0FBUztzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWV0YUFwaVNlcnZpY2UgfSBmcm9tICcuLi9tZXRhLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpZ0hlbHBlclNlcnZpY2UgfSBmcm9tICcuLi9jb25maWctaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsdGVyVmFsdWUsIFF1YWxpdHlNYXRyaXggfSBmcm9tICcuLi9qYXZhLWFwaSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElubGluZVdvcmtlciB9IGZyb20gJy4vaW5saW5lLXdvcmtlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUNvbHVtbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgbGV2ZWw/OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21ldGFxczItdHJlZS1zZWFyY2gtY291bnRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtc2VhcmNoLWNvdW50cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RyZWUtc2VhcmNoLWNvdW50cy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHJlZVNlYXJjaENvdW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIGRlZmF1bHQgbWF4IGNvdW50IG9mIGNvbHVtbnMgdGhhdCBzaG91bGQgYmUgc2hvd25cbiAgICovXG4gIHJlYWRvbmx5IERFRkFVTFRfQ09MVU1OX0xJTUlUID0gNjtcbiAgcmVhZG9ubHkgQ09MTEVDVElPTl9QT1NURklYID0gJ19jb2xsZWN0aW9uJztcbiAgcmVhZG9ubHkgU0VBUkNIX1BPU1RGSVggPSAnX3NlYXJjaCc7XG4gIHJlYWRvbmx5IGNvbGxlY3Rpb25zJDogQmVoYXZpb3JTdWJqZWN0PEZpbHRlclZhbHVlW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJWYWx1ZVtdPihbXSk7XG4gIHJlYWRvbmx5IHNlYXJjaENvdW50cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPHN0cmluZywgbnVtYmVyPj4obmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKSk7XG4gIHJlYWRvbmx5IHNob3dPRVJvbmx5ID0gbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHRydWUsIGRpc2FibGVkOiBmYWxzZSB9LCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICByZWFkb25seSBzaG93QWxsQ29sdW1ucyA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiBmYWxzZSwgZGlzYWJsZWQ6IGZhbHNlIH0sIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gIHJlYWRvbmx5IHNlbGVjdGVkQ29sbGVjdGlvbiA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuXG4gIC8vIGNvbnZlcnQgdGhpcyBpbiBhbiBPYmVzZXJ2YWJsZVxuICBwcm90ZWN0ZWQgbWF0ZXJpYWxDb3VudHM6IFF1YWxpdHlNYXRyaXg7XG4gIHB1YmxpYyBjb2x1bW5zOiBEYXRhQ29sdW1uW107XG4gIHByb3RlY3RlZCByb3dzTG9hZGVkOiBNYXA8c3RyaW5nLCBib29sZWFuPiA9IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpO1xuXG4gIGlzTG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgcHJpdmF0ZSB3b3JrZXI6IElubGluZVdvcmtlcjtcblxuICBASW5wdXQoKVxuICBwcm90ZWN0ZWQgcGFnZVRpdGxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXRhQXBpOiBNZXRhQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGVudjogQ29uZmlnSGVscGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0Q29sbGVjdGlvbnNGaWx0ZXIoKTtcbiAgICB0aGlzLmluaXRPZXJGaWx0ZXIoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLndvcmtlcikge1xuICAgICAgdGhpcy53b3JrZXIudGVybWluYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsZXRUaGVXb3JrZXJTZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hDb3VudHMubmV4dChuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpKTtcbiAgICB0aGlzLnJvd3NMb2FkZWQuY2xlYXIoKTtcbiAgICBpZiAodGhpcy53b3JrZXIpIHtcbiAgICAgIHRoaXMud29ya2VyLnRlcm1pbmF0ZSgpO1xuICAgIH1cbiAgICB0aGlzLndvcmtlciA9IG5ldyBJbmxpbmVXb3JrZXIoeyBiYXNlUGF0aDogdGhpcy5lbnYuYXBpUGF0aCB9KTtcbiAgICB0aGlzLndvcmtlci5vbm1lc3NhZ2UoKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAvLyBvbmUgbWVzc2FnZSBwZXIgcm93XG4gICAgICBsZXQgdG90YWwgPSAwO1xuXG4gICAgICBPYmplY3QuZW50cmllcyhldmVudC5kYXRhLmRhdGEpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAvLyBrZXkgaXMgdGhlIG1hdGVyaWFsIHR5cGUsIHZhbHVlIGlzIHRoZSBjb3VudFxuICAgICAgICBjb25zdCBjb2x1bW5LZXkgPSBrZXkgKyAnXycgKyBldmVudC5kYXRhLmNvbGxlY3Rpb25JZDtcbiAgICAgICAgdG90YWwgKz0gdmFsdWUgYXMgbnVtYmVyO1xuICAgICAgICB0aGlzLnNlYXJjaENvdW50cy52YWx1ZS5zZXQoY29sdW1uS2V5LCB2YWx1ZSBhcyBudW1iZXIpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnNlYXJjaENvdW50cy52YWx1ZS5zZXQoJ3RvdGFsc18nICsgZXZlbnQuZGF0YS5jb2xsZWN0aW9uSWQsIHRvdGFsKTtcbiAgICAgIHRoaXMuc2VhcmNoQ291bnRzLm5leHQodGhpcy5zZWFyY2hDb3VudHMudmFsdWUpO1xuICAgICAgdGhpcy5yb3dzTG9hZGVkLnNldChldmVudC5kYXRhLmNvbGxlY3Rpb25JZCwgdHJ1ZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLndvcmtlci5vbmVycm9yKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKCdpbiBtYWluIHRocmVhZCcsIGRhdGEpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5tYXRlcmlhbENvdW50cy5yb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgdGhpcy53b3JrZXIucG9zdE1lc3NhZ2Uoe1xuICAgICAgICBjb2xsZWN0aW9uSWQ6IHJvdy5tZXRhLmlkLFxuICAgICAgICBzZWFyY2hUZXJtOiByb3cubWV0YS5sYWJlbCxcbiAgICAgICAgb2VyT25seTogdGhpcy5zaG93T0VSb25seS52YWx1ZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0T2VyRmlsdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd09FUm9ubHkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBjb2xsZWN0aW9uSWQgPSB0aGlzLmV4dHJhY3RDb2xsZWN0aW9uSWRGcm9tVm9jYWJVcmwodGhpcy5zZWxlY3RlZENvbGxlY3Rpb24udmFsdWUpO1xuICAgICAgdGhpcy5sb2FkRGF0YUZvckNvbGxlY3Rpb24oY29sbGVjdGlvbklkKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENvbGxlY3Rpb25zRmlsdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xsZWN0aW9uLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGNvbGxlY3Rpb25JZFZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBpZCA9IHRoaXMuZXh0cmFjdENvbGxlY3Rpb25JZEZyb21Wb2NhYlVybChjb2xsZWN0aW9uSWRWYWx1ZSk7XG4gICAgICB0aGlzLmxvYWREYXRhRm9yQ29sbGVjdGlvbihpZCk7XG4gICAgfSk7XG4gICAgdGhpcy5tZXRhQXBpXG4gICAgICAuZ2V0Q29sbGVjdGlvbnNGaWx0ZXIoKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNvbGxlY3Rpb25zKSA9PiB7XG4gICAgICAgIGNvbnN0IHNvcnRlZENvbGxlY3Rpb25zID0gY29sbGVjdGlvbnMuc29ydCgoYSwgYikgPT4gYS5sYWJlbC5sb2NhbGVDb21wYXJlKGIubGFiZWwpKTtcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9ucyQubmV4dChzb3J0ZWRDb2xsZWN0aW9ucyk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2xsZWN0aW9uLnNldFZhbHVlKHNvcnRlZENvbGxlY3Rpb25zWzBdLmlkKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkRGF0YUZvckNvbGxlY3Rpb24oY29sbGVjdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5tYXRlcmlhbENvdW50cyA9IGF3YWl0IHRoaXMubWV0YUFwaVxuICAgICAgLmdldE1hdGVyaWFsQ291bnRNYXRyaXhQZXJDb2xsZWN0aW9uKGNvbGxlY3Rpb25JZCwgdGhpcy5zaG93T0VSb25seS52YWx1ZSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgICAvL1RPRE86IHRyeSB0byBhdm9pZCB0byByZWNhbGN1bGF0ZSB0aGUgY29sdW1ucyBvbiBldmVyeSBjaGFuZ2VcbiAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLm1hdGVyaWFsQ291bnRzLmNvbHVtbnMubWFwKChjKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogYy5pZCxcbiAgICAgICAgaWNvbjogJ3RvdGFsJyxcbiAgICAgICAgbGFiZWw6IGMubGFiZWwsXG4gICAgICAgIGxldmVsOiBjLmxldmVsLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHRoaXMubGV0VGhlV29ya2VyU2VhcmNoKCk7XG5cbiAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0Q29sbGVjdGlvbklkRnJvbVZvY2FiVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXJsLnN1YnN0cmluZyh1cmwubGFzdEluZGV4T2YoJy8nKSArIDEpO1xuICB9XG5cbiAgb3BlbkNvbGxlY3Rpb24oaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25JZCA9IHRoaXMuZXh0cmFjdENvbGxlY3Rpb25JZEZyb21Wb2NhYlVybChpZCk7XG4gICAgd2luZG93Lm9wZW4oXG4gICAgICB0aGlzLmVudi5lZHVTaGFyaW5nUGF0aCArXG4gICAgICAgICcvY29tcG9uZW50cy9lZGl0b3JpYWwtZGVzay8/bW9kZT1yZW5kZXImdmlld1R5cGU9c2luZ2xlJmlkcz0nICtcbiAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KGNvbGxlY3Rpb25JZClcbiAgICApO1xuICB9XG5cbiAgc2VhcmNoSW5FZGl0b3IobWF0ZXJpYWxUeXBlOiBzdHJpbmcsIHNlYXJjaFRlcm06IHN0cmluZykge1xuICAgIGNvbnN0IGZpbHRlcnM6IGFueSA9IHt9O1xuICAgIGlmIChtYXRlcmlhbFR5cGUgIT09ICd0b3RhbHMnKSB7XG4gICAgICBmaWx0ZXJzWydjY206b2VoX2xydF9hZ2dyZWdhdGVkJ10gPSBbbWF0ZXJpYWxUeXBlXTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd09FUm9ubHkudmFsdWUpIHtcbiAgICAgIGZpbHRlcnNbJ3ZpcnR1YWw6ZWRpdG9yaWFsX2xpY2Vuc2UnXSA9IFsnb2VyJ107XG4gICAgfVxuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLmVudi5lZHVTaGFyaW5nUGF0aCArXG4gICAgICAnL2NvbXBvbmVudHMvZWRpdG9yaWFsLWRlc2s/bW9kZT1hdWRpdF9tZXRhcXMmJyArXG4gICAgICAncT0nICtcbiAgICAgIGVuY29kZVVSSUNvbXBvbmVudChzZWFyY2hUZXJtKSArXG4gICAgICAnJicgK1xuICAgICAgJ3RpdGxlPScgK1xuICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KCdNZXRhUVMgLSBTdWNoZXJnZWJuaXNzZSBmw7xyIFwiJyArIHNlYXJjaFRlcm0gKyAnXCInKSArXG4gICAgICAnJicgK1xuICAgICAgJ2ZpbHRlcnM9JyArXG4gICAgICBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZmlsdGVycykpICtcbiAgICAgICcmJyArXG4gICAgICAncGFuZWw9Y29udGVudHMmdGFiPTQmJztcblxuICAgIGNvbnN0IHJlZiA9IHdpbmRvdy5vcGVuKHVybCk7XG4gIH1cblxuICBzaG93Q29sbGVjdGlvbkl0ZW1zKGNvbGxlY3Rpb25JZDogc3RyaW5nLCBjb2xsZWN0aW9uTmFtZTogc3RyaW5nLCBtYXRlcmlhbFR5cGU6IHN0cmluZykge1xuICAgIGNvbnN0IGlkID0gdGhpcy5leHRyYWN0Q29sbGVjdGlvbklkRnJvbVZvY2FiVXJsKGNvbGxlY3Rpb25JZCk7XG4gICAgY29uc3QgZmlsdGVyczogYW55ID0ge1xuICAgICAgLy9cInZpcnR1YWw6Y29sbGVjdGlvbl9pZF9wcmltYXJ5XCI6IFtpZF0sIC8vd29ya3Mgb2Z0ZW4sIGJ1dCBub3QgYWx3YXlzXG4gICAgICAndmlydHVhbDptZXRhcXNfY29sbGVjdGlvbl9pZCc6IFtpZF0sXG4gICAgfTtcbiAgICBpZiAobWF0ZXJpYWxUeXBlICE9PSAndG90YWxzJykge1xuICAgICAgZmlsdGVyc1snY2NtOm9laF9scnRfYWdncmVnYXRlZCddID0gW21hdGVyaWFsVHlwZV07XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dPRVJvbmx5LnZhbHVlKSB7XG4gICAgICBmaWx0ZXJzWyd2aXJ0dWFsOmVkaXRvcmlhbF9saWNlbnNlJ10gPSBbJ29lciddO1xuICAgIH1cbiAgICB3aW5kb3cub3BlbihcbiAgICAgIHRoaXMuZW52LmVkdVNoYXJpbmdQYXRoICtcbiAgICAgICAgJy9jb21wb25lbnRzL2VkaXRvcmlhbC1kZXNrP21vZGU9YXVkaXRfbWV0YXFzJicgK1xuICAgICAgICAndGl0bGU9JyArXG4gICAgICAgIGVuY29kZVVSSUNvbXBvbmVudCgnTWV0YVFTIC0gU2FtbWx1bmdzaW5oYWx0ZSBmw7xyIFwiJyArIGNvbGxlY3Rpb25OYW1lICsgJ1wiJykgK1xuICAgICAgICAnJicgK1xuICAgICAgICAnZmlsdGVycz0nICtcbiAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGZpbHRlcnMpKSArXG4gICAgICAgICcmJyArXG4gICAgICAgICdwYW5lbD1jb250ZW50cyZ0YWI9NCYnXG4gICAgKTtcbiAgfVxuXG4gIGNvbHVtbklkZW50KF9pbmRleDogbnVtYmVyLCBjb2w6IHsgaWQ6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIGNvbC5pZDtcbiAgfVxuXG4gIGdldCBmaWx0ZXJlZENvbHVtbnMoKSB7XG4gICAgLy8gcmV0dXJuIGVpdGhlciBhbGwgb3IganVzdCBhIGdpdmVuIGFtb3VudCBvZiBjb2x1bW5zXG4gICAgcmV0dXJuIHRoaXMuc2hvd0FsbENvbHVtbnMudmFsdWUgPyB0aGlzLmNvbHVtbnMgOiB0aGlzLmNvbHVtbnMuc2xpY2UoMCwgdGhpcy5ERUZBVUxUX0NPTFVNTl9MSU1JVCk7XG4gIH1cblxuICBnZXQgY29sdW1uTmFtZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRDb2x1bW5zLm1hcCgoYykgPT4gYy5pZCk7XG4gIH1cblxuICBnZXQgdHlwZUNvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbk5hbWVzLm1hcCgoYykgPT4gYyArICdfdHlwZScpO1xuICB9XG5cbiAgZ2V0IGNvbGxlY3Rpb25Db2x1bW5zKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5OYW1lcy5tYXAoKGMpID0+IGMgKyB0aGlzLkNPTExFQ1RJT05fUE9TVEZJWCk7XG4gIH1cblxuICBnZXQgc2VhcmNoQ29sdW1ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uTmFtZXMubWFwKChjKSA9PiBjICsgdGhpcy5TRUFSQ0hfUE9TVEZJWCk7XG4gIH1cblxuICBnZXQgYWx0ZXJuYXRpbmdEYXRhQ29sdW1ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbkNvbHVtbnMuZmxhdE1hcCgoZSwgaSkgPT4gW2UsIHRoaXMuc2VhcmNoQ29sdW1uc1tpXV0pO1xuICB9XG59XG4iLCI8bWF0LWNhcmQgYXBwZWFyYW5jZT1cInJhaXNlZFwiPlxuPG1hdC1jYXJkLWhlYWRlciAqbmdJZj1cInBhZ2VUaXRsZVwiPlxuICA8bWF0LWNhcmQtdGl0bGU+XG4gICAgTWF0ZXJpYWwgaW4gU2FtbWx1bmdlbnt7aXNMb2FkaW5nKCkgPyBcIjogTGFkZSBuZXVlIERhdGVuLlwiIDogXCJcIn19PC9tYXQtY2FyZC10aXRsZVxuICA+XG48L21hdC1jYXJkLWhlYWRlcj5cbjxtYXQtY2FyZC1jb250ZW50PlxuPCEtLSBjb25zaWRlciB0byBwdXQgdGhlIGZpbHRlciBpbiB0aGUgdGFibGUgaGVhZGVyIHRvIGF2b2lkIHRoYXQgaXQgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXctLT5cbiAgICA8bWV0YXFzMi1xbS1maWx0ZXJcbiAgICAgIGFyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJcbiAgICAgIFtsYWJlbF09XCInU2FtbWx1bmcnXCJcbiAgICAgIFtvcHRpb25zXT1cImNvbGxlY3Rpb25zJCB8IGFzeW5jXCJcbiAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgICBbaW5wdXRGb3JtQ29udHJvbF09XCJzZWxlY3RlZENvbGxlY3Rpb25cIlxuICAgID5cbiAgICA8L21ldGFxczItcW0tZmlsdGVyPlxuXG48L21hdC1jYXJkLWNvbnRlbnQ+XG48L21hdC1jYXJkPlxuPG1hdC1jYXJkPlxuICA8dGFibGUgW25nQ2xhc3NdPVwieyd3aGlsZS1sb2FkaW5nJzogaXNMb2FkaW5nKCl9XCIgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cIm1hdGVyaWFsQ291bnRzLnJvd3NcIiAqbmdJZj1cImNvbHVtbnNcIiBjbGFzcz1cInF1YWxpdHktbWF0cml4XCI+XG4gICAgPCEtLSBEZWZpbmUgY29sdW1ucyBvZiB0YWJsZSAtLT5cbiAgICA8IS0tIExhYmVsIENvbHVtbiAtLT5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImxhYmVsLWNvbFwiIHN0aWNreT5cbiAgICAgIDx0aCByb3dzcGFuPVwiMlwiIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5TYW1tbHVuZ1xuICAgICAgPGRpdiA+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGxhYmVsUG9zaXRpb249XCJiZWZvcmVcIiBjbGFzcz1cInRvZ2dsZVwiIFtmb3JtQ29udHJvbF09XCJzaG93T0VSb25seVwiID5cbiAgICAgICAgICB6ZWlnZSBudXIgT0VSXG4gICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBsYWJlbFBvc2l0aW9uPVwiYmVmb3JlXCIgY2xhc3M9XCJ0b2dnbGVcIiBbZm9ybUNvbnRyb2xdPVwic2hvd0FsbENvbHVtbnNcIiA+XG4gICAgICAgICAgemVpZ2UgYWxsZSBUeXBlblxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90aD5cbiAgICAgIDx0ZFxuICAgICAgICBtYXQtY2VsbFxuICAgICAgICAqbWF0Q2VsbERlZj1cImxldCByb3dcIlxuICAgICAgICBtYXRUb29sdGlwPVwie3tyb3cubWV0YS5hbHRfbGFiZWx9fVwiXG4gICAgICAgIGNsYXNzPVwibGFiZWwtY29sIHt7J21hdC1jZWxsLWxldmVsLScgKyAocm93Lm1ldGEubGV2ZWwrMSl9fVwiXG4gICAgICA+XG4gICAgICAgIDxhIChjbGljayk9XCJvcGVuQ29sbGVjdGlvbihyb3cubWV0YS5pZClcIj5cbiAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwicm93Lm1ldGEubGV2ZWw8PTE/J2xheWVycyc6J2NoaWxkJ1wiIC8+XG4gICAgICAgICAge3sgcm93Lm1ldGEubGFiZWwgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIG9uZSBjb2x1bW4gZm9yIHRoZSBNYXRlcmlhbFR5cGUgc3Bhbm5pbmcgdGhlIGNvbGxlY3Rpb24gYW5kIHNlYXJjaCBjb2x1bW5zLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGZpbHRlcmVkQ29sdW1uczsgdHJhY2tCeTpjb2x1bW5JZGVudFwiIFttYXRDb2x1bW5EZWZdPVwiY29sLmlkICsgJ190eXBlJ1wiPlxuICAgICAgPHRoIFthdHRyLmNvbHNwYW5dPVwiMlwiIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz0nbWF0LWNlbGwtbGV2ZWwtXCJ7e2NvbC5sZXZlbH19XCInIG1hdFRvb2x0aXA9XCJ7e2NvbC5sYWJlbH19XCIgPnt7Y29sLmxhYmVsfX08L3RoPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gL3NvdXJjZSAtLT5cbiAgICA8IS0tIGNvbGxlY3Rpb24gRGF0YSBDb2x1bW5zIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBmaWx0ZXJlZENvbHVtbnM7IHRyYWNrQnk6Y29sdW1uSWRlbnRcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5pZCArIENPTExFQ1RJT05fUE9TVEZJWFwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXRUb29sdGlwPVwie3tjb2x1bW4ubGFiZWx9fVwiID5pbiBTYW1tbHVuZzwvdGg+XG4gICAgICA8dGQgW2NsYXNzLm5vTWF0ZXJpYWxdPVwiIXJvdy5jb3VudHNbY29sdW1uLmlkXT8uc3VmZmljaWVudCB8fCByb3cuY291bnRzW2NvbHVtbi5pZF0/LnN1ZmZpY2llbnQgPD0gMVwiXG4gICAgICAgICAgW2NsYXNzLmZld01hdGVyaWFsc109XCIxIDwgcm93LmNvdW50c1tjb2x1bW4uaWRdPy5zdWZmaWNpZW50ICYmIHJvdy5jb3VudHNbY29sdW1uLmlkXT8uc3VmZmljaWVudCA8PSAzXCJcbiAgICAgICAgICBjbGFzcz1cImNvbGxlY3Rpb24tZGF0YS1jZWxsXCJcbiAgICAgICAgICBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cbiAgICAgICAgICAgIDxhIChjbGljayk9XCJzaG93Q29sbGVjdGlvbkl0ZW1zKHJvdy5tZXRhLmlkLCByb3cubWV0YS5sYWJlbCwgY29sdW1uLmlkKVwiPlxuICAgICAgICAgICAgICB7eyByb3cuY291bnRzW2NvbHVtbi5pZF0/LnN1ZmZpY2llbnQgfHwgJzAnIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gL2NvbGxlY3Rpb24gRGF0YSBDb2x1bW5zIC0tPlxuICAgIDwhLS0gc2VhcmNoIERhdGEgQ29sdW1ucyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZmlsdGVyZWRDb2x1bW5zIGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OmNvbHVtbklkZW50XCIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4uaWQgKyBTRUFSQ0hfUE9TVEZJWFwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5TdWNoZTwvdGg+XG4gICAgICA8dGQgY2xhc3M9XCJzZWFyY2gtZGF0YS1jZWxsXCIgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XG4gICAgICAgIDxhIChjbGljayk9XCJzZWFyY2hJbkVkaXRvcihjb2x1bW4uaWQsIHJvdy5tZXRhLmxhYmVsKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoKCBzZWFyY2hDb3VudHMgfCBhc3luYyk/Lmhhcyhjb2x1bW4uaWQgKyAnXycgKyByb3cubWV0YS5pZCkgKSBlbHNlIHplcm9PckxvYWRpbmdcIj5cbiAgICAgICAgICAgIHt7IChzZWFyY2hDb3VudHMgfCBhc3luYyk/LmdldChjb2x1bW4uaWQgKyAnXycgKyByb3cubWV0YS5pZCkgfX1cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3plcm9PckxvYWRpbmc+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93c0xvYWRlZC5oYXMocm93Lm1ldGEuaWQpIGVsc2UgbG9hZGluZ0Jsb2NrXCI+IDAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmdCbG9jaz5cbiAgICAgICAgICAgIGxvYWRpbmfigKZcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2E+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gL3NlYXJjaCBEYXRhIENvbHVtbnMgLS0+XG4gICAgICA8IS0tIEdlbmVyYXRlIGFjdHVhbCB0YWJsZSAtLT5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cIlsnbGFiZWwtY29sJ10uY29uY2F0KCB0eXBlQ29sdW1ucyApOyBzdGlja3k6IHRydWU7XCI+PC90cj5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImFsdGVybmF0aW5nRGF0YUNvbHVtbnM7IHN0aWNreTogdHJ1ZTtcIj48L3RyPlxuICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBbJ2xhYmVsLWNvbCddLmNvbmNhdChhbHRlcm5hdGluZ0RhdGFDb2x1bW5zKVwiPjwvdHI+XG4gIDwvdGFibGU+XG48L21hdC1jYXJkPiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
export * from './lib/ng-meta-widgets-lib.module';
|
|
5
5
|
export * from '././lib/tree-collection-details/tree-collection-details.component';
|
|
6
6
|
export * from '././lib/tree-search-counts/tree-search-counts.component';
|
|
7
|
-
export * from './lib/
|
|
7
|
+
export * from './lib/config-helper.service';
|
|
8
8
|
export * from './lib/components/quality-matrix/quality_matrix';
|
|
9
9
|
export * from './lib/collection-count-history/collection-count-history.component';
|
|
10
10
|
export * from './lib/materialtypes-by-sources/materialtypes-by-sources.component';
|
|
11
11
|
export * from './lib/counts-with-history/counts-with-history.component';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMseURBQXlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5nLW1ldGEtd2lkZ2V0cy1saWJcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZy1tZXRhLXdpZGdldHMtbGliLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuLy4vbGliL3RyZWUtY29sbGVjdGlvbi1kZXRhaWxzL3RyZWUtY29sbGVjdGlvbi1kZXRhaWxzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuLy4vbGliL3RyZWUtc2VhcmNoLWNvdW50cy90cmVlLXNlYXJjaC1jb3VudHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZy1oZWxwZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3F1YWxpdHktbWF0cml4L3F1YWxpdHlfbWF0cml4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb24tY291bnQtaGlzdG9yeS9jb2xsZWN0aW9uLWNvdW50LWhpc3RvcnkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGVyaWFsdHlwZXMtYnktc291cmNlcy9tYXRlcmlhbHR5cGVzLWJ5LXNvdXJjZXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvdW50cy13aXRoLWhpc3RvcnkvY291bnRzLXdpdGgtaGlzdG9yeS5jb21wb25lbnQnO1xuIl19
|