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.
@@ -1,27 +1,27 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { inject } from "@angular/core";
3
- import { EnvHelperService } from "../../env-helper.service";
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
- ["metadata.educationalContexts", "ccm:educationalcontext"],
10
- ["metadata.disciplines", "virtual:taxonid"],
11
- ["collections.nodeRef.id.keyword", "virtual:collection_id_primary"],
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
- ["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"]
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(EnvHelperService);
32
+ this.env = inject(ConfigHelperService);
33
33
  }
34
34
  openByReplicationsourceAndIssueTypeWithFilters(source, issue, selectedFilters) {
35
35
  const filters = {};
36
- filters["virtual:audit_filter"] = ["all"];
37
- filters["ccm:oeh_publisher_combined"] = [source];
38
- filters["virtual:editorial_exclusion"] = [ISSUETYPE2FILTERS.get(issue)];
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 = new URL(this.env.eduSharingPath + "/components/editorial-desk");
46
- const params = theUrl.searchParams;
47
- params.set("mode", "audit");
48
- params.set("filters", JSON.stringify(filters));
49
- window.open(theUrl, "editor_frontend");
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["virtual:audit_filter"] = ["all"];
54
- filters["virtual:editorial_exclusion"] = [ISSUETYPE2FILTERS.get(issueType)];
55
- filters["virtual:collection_id_primary"] = [collectionId];
56
- const theUrl = new URL(this.env.eduSharingPath + "/components/editorial-desk");
57
- const params = theUrl.searchParams;
58
- params.set("title", pageTitle);
59
- params.set("mode", "audit");
60
- params.set("filters", JSON.stringify(filters));
61
- window.open(theUrl, "editor_frontend");
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 = new URL(this.env.eduSharingPath + "/components/editorial-desk");
65
- const params = theUrl.searchParams;
66
- params.set("ids", collectionId);
67
- params.set("mode", "render");
68
- window.open(theUrl, "editor_frontend");
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yaWFsLWxpbmsuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvcmlhbC1saW5rLXNlcnZpY2UvZWRpdG9yaWFsLWxpbmsuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRzVEOztHQUVHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsQ0FBaUI7SUFDakQsQ0FBQyw4QkFBOEIsRUFBRSx3QkFBd0IsQ0FBQztJQUMxRCxDQUFDLHNCQUFzQixFQUFFLGlCQUFpQixDQUFDO0lBQzNDLENBQUMsZ0NBQWdDLEVBQUUsK0JBQStCLENBQUM7SUFDbkUsOEdBQThHO0NBQy9HLENBQUMsQ0FBQztBQUNIOztFQUVFO0FBRUYsTUFBTSxpQkFBaUIsR0FBd0IsSUFBSSxHQUFHLENBQWlCO0lBQ3JFLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQztJQUNsQyxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDO0lBQzlDLENBQUMseUJBQXlCLEVBQUUsNEJBQTRCLENBQUM7SUFDekQsQ0FBQyxzQkFBc0IsRUFBRSx3Q0FBd0MsQ0FBQztJQUNsRSxDQUFDLHFCQUFxQixFQUFFLGlCQUFpQixDQUFDO0lBQzFDLENBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUM7SUFDdkMsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQztDQUN2QyxDQUFDLENBQUM7QUFDSDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CO1FBRlEsUUFBRyxHQUFHLE1BQU0sQ0FBQyxn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K0dBM0NVLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRW52SGVscGVyU2VydmljZSB9IGZyb20gXCIuLi8uLi9lbnYtaGVscGVyLnNlcnZpY2VcIjtcblxuXG4vKlxuVGhpcyBpcyBhIG1hcCBmcm9tIHByb3BlcnRpZXMgb2YgYSBkb2N1bWVudCB0byBmaWx0ZXIgbmFtZXNcbiAqL1xuY29uc3QgUFJPUEVSVElFUzJGSUxURVJTID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1xuICBbXCJtZXRhZGF0YS5lZHVjYXRpb25hbENvbnRleHRzXCIsIFwiY2NtOmVkdWNhdGlvbmFsY29udGV4dFwiXSxcbiAgW1wibWV0YWRhdGEuZGlzY2lwbGluZXNcIiwgXCJ2aXJ0dWFsOnRheG9uaWRcIl0sXG4gIFtcImNvbGxlY3Rpb25zLm5vZGVSZWYuaWQua2V5d29yZFwiLCBcInZpcnR1YWw6Y29sbGVjdGlvbl9pZF9wcmltYXJ5XCJdLFxuICAvL1tcInJlc3BvbnNpYmlsaXR5XCIsIFwidmlydHVhbDpjb2xsZWN0aW9uX2lkX3ByaW1hcnlcIl0gLy8gZGFzIHplaWd0IGF1ZiBcInNhbW1sdW5nc3p1Z2Vow7ZyaWdrZWl0XCIgdW5kIGlzdCBmYWxzY2hcbl0pO1xuLypcblRoaXMgbWFwIG91ciBjb2x1bW4gXCJuYW1lc1wiIHRvIHRoZSB2YWxpZCB2YWx1ZXMgb2YgdGhlIHZpcnR1YWw6ZWRpdG9yaWFsX2V4Y2x1c2lvbiBGaWx0ZXJcbiovXG5cbmNvbnN0IElTU1VFVFlQRTJGSUxURVJTOiBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1xuICBbXCJ3aXRob3V0X3RpdGxlXCIsIFwibWlzc2luZ190aXRsZVwiXSxcbiAgW1wid2l0aG91dF9kZXNjcmlwdGlvblwiLCBcIm1pc3NpbmdfZGVzY3JpcHRpb25cIl0sXG4gIFtcIndpdGhvdXRfZWR1Y2F0aW9uX2xldmVsXCIsIFwibWlzc2luZ19lZHVjYXRpb25hbGNvbnRleHRcIl0sXG4gIFtcIndpdGhvdXRfdGFyZ2V0X2dyb3VwXCIsIFwibWlzc2luZ19lZHVjYXRpb25hbGludGVuZGVkZW5kdXNlcnJvbGVcIl0sXG4gIFtcIndpdGhvdXRfdGF4b25vbXlfaWRcIiwgXCJtaXNzaW5nX3RheG9uaWRcIl0sXG4gIFtcIndpdGhvdXRfY2F0ZWdvcnlcIiwgXCJtaXNzaW5nX29laF9scnRcIl0sXG4gIFtcIndpdGhvdXRfbGljZW5zZVwiLCBcIm1pc3NpbmdfbGljZW5zZVwiXVxuXSk7XG4vKlxuaW50ZXJlc3RpbmdseSBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGNvbWJpbmUgdGhlIG5vZGVSZWYuaWRcbndpdGggaHR0cHM6Ly92b2NhYnMub3BlbmVkdWh1Yi5kZS93M2lkLm9yZy9vcGVuZWR1aHViL3ZvY2Ficy9vZWgtdG9waWNzL3tub2RlUmVmLmlkfVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFZGl0b3JpYWxMaW5rU2VydmljZSB7XG4gIHByaXZhdGUgZW52ID0gaW5qZWN0KEVudkhlbHBlclNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHVibGljIG9wZW5CeVJlcGxpY2F0aW9uc291cmNlQW5kSXNzdWVUeXBlV2l0aEZpbHRlcnMoc291cmNlOiBzdHJpbmcsIGlzc3VlOiBzdHJpbmcgLCBzZWxlY3RlZEZpbHRlcnM6eyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB8IHVuZGVmaW5lZH0pOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJzOiBhbnkgPSB7fTtcbiAgICBmaWx0ZXJzW1widmlydHVhbDphdWRpdF9maWx0ZXJcIl0gPSBbXCJhbGxcIl07XG4gICAgZmlsdGVyc1tcImNjbTpvZWhfcHVibGlzaGVyX2NvbWJpbmVkXCJdID0gW3NvdXJjZV07XG4gICAgZmlsdGVyc1tcInZpcnR1YWw6ZWRpdG9yaWFsX2V4Y2x1c2lvblwiXSA9IFsgSVNTVUVUWVBFMkZJTFRFUlMuZ2V0KCBpc3N1ZSApXTtcbiAgICBmb3IgKCBjb25zdCBbZmllbGQsIHZhbHVlc10gb2YgT2JqZWN0LmVudHJpZXMoc2VsZWN0ZWRGaWx0ZXJzKSAgKSB7XG4gICAgICBpZiAodmFsdWVzICYmIHZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZWRpdG9yaWFsRmlsdGVybmFtZSA9IFBST1BFUlRJRVMyRklMVEVSUy5nZXQoZmllbGQpIGFzIHN0cmluZztcbiAgICAgICAgZmlsdGVyc1tlZGl0b3JpYWxGaWx0ZXJuYW1lXSA9IHZhbHVlc1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHRoZVVybDogVVJMID0gbmV3IFVSTCh0aGlzLmVudi5lZHVTaGFyaW5nUGF0aCArIFwiL2NvbXBvbmVudHMvZWRpdG9yaWFsLWRlc2tcIik7XG4gICAgY29uc3QgcGFyYW1zID0gdGhlVXJsLnNlYXJjaFBhcmFtcztcbiAgICBwYXJhbXMuc2V0KFwibW9kZVwiLCBcImF1ZGl0XCIpO1xuICAgIHBhcmFtcy5zZXQoXCJmaWx0ZXJzXCIsIEpTT04uc3RyaW5naWZ5KGZpbHRlcnMpICk7XG4gICAgd2luZG93Lm9wZW4odGhlVXJsLCBcImVkaXRvcl9mcm9udGVuZFwiKVxuICB9XG4gIHB1YmxpYyBvcGVuQnlDb2xsZWN0aW9uQW5kSXNzdWVUeXBlKGNvbGxlY3Rpb25JZDogc3RyaW5nLCBpc3N1ZVR5cGU6IHN0cmluZywgcGFnZVRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJzOiBhbnkgPSB7fTtcbiAgICBmaWx0ZXJzW1widmlydHVhbDphdWRpdF9maWx0ZXJcIl0gPSBbXCJhbGxcIl07XG4gICAgZmlsdGVyc1tcInZpcnR1YWw6ZWRpdG9yaWFsX2V4Y2x1c2lvblwiXSA9IFsgSVNTVUVUWVBFMkZJTFRFUlMuZ2V0KCBpc3N1ZVR5cGUgKV07XG4gICAgZmlsdGVyc1tcInZpcnR1YWw6Y29sbGVjdGlvbl9pZF9wcmltYXJ5XCJdID0gW2NvbGxlY3Rpb25JZF07XG4gICAgY29uc3QgdGhlVXJsOiBVUkwgPSBuZXcgVVJMKHRoaXMuZW52LmVkdVNoYXJpbmdQYXRoICsgXCIvY29tcG9uZW50cy9lZGl0b3JpYWwtZGVza1wiKTtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGVVcmwuc2VhcmNoUGFyYW1zO1xuICAgIHBhcmFtcy5zZXQoXCJ0aXRsZVwiLCBwYWdlVGl0bGUpXG4gICAgcGFyYW1zLnNldChcIm1vZGVcIiwgXCJhdWRpdFwiKTtcbiAgICBwYXJhbXMuc2V0KFwiZmlsdGVyc1wiLCBKU09OLnN0cmluZ2lmeShmaWx0ZXJzKSApO1xuICAgIHdpbmRvdy5vcGVuKHRoZVVybCwgXCJlZGl0b3JfZnJvbnRlbmRcIilcbiAgfVxuXG4gIHB1YmxpYyBvcGVuQnlDb2xsZWN0aW9uSWQoY29sbGVjdGlvbklkOiBzdHJpbmcpOiB2b2lkIHtcblxuICAgIGNvbnN0IHRoZVVybDogVVJMID0gbmV3IFVSTCh0aGlzLmVudi5lZHVTaGFyaW5nUGF0aCArIFwiL2NvbXBvbmVudHMvZWRpdG9yaWFsLWRlc2tcIik7XG4gICAgY29uc3QgcGFyYW1zID0gdGhlVXJsLnNlYXJjaFBhcmFtcztcbiAgICBwYXJhbXMuc2V0KFwiaWRzXCIsIGNvbGxlY3Rpb25JZCk7XG4gICAgcGFyYW1zLnNldChcIm1vZGVcIiwgXCJyZW5kZXJcIik7XG4gICAgd2luZG93Lm9wZW4odGhlVXJsLCBcImVkaXRvcl9mcm9udGVuZFwiKVxuICB9XG59XG4iXX0=
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}.trending_up{color:#4abeff}.trending_down{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"] }] }); }
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}.trending_up{color:#4abeff}.trending_down{color:#c20808}\n"] }]
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 { EnvHelperService } from './env-helper.service';
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
- EnvHelperService,
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbWV0YS13aWRnZXRzLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1tZXRhLXdpZGdldHMtbGliL3NyYy9saWIvbmctbWV0YS13aWRnZXRzLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsSUFBSSxhQUFhLEVBQUUsYUFBYSxJQUFJLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWlDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUNMLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsa0JBQWtCLEdBQ25CLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7QUFpRHJFLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBNkIsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQzNELG9IQUFvSDtJQUN0SCxDQUFDO0lBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFxQztRQUNsRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUU7Z0JBQ1QsZ0JBQWdCO2dCQUNoQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtnQkFDdkM7b0JBQ0UsT0FBTyxFQUFFLFVBQVU7b0JBQ25CLFVBQVUsRUFBRSxHQUFHLEVBQUU7d0JBQ2YsT0FBTyxJQUFJLFVBQVUsQ0FBQzs0QkFDcEIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPOzRCQUN4QixlQUFlLEVBQUUsSUFBSTt5QkFDdEIsQ0FBQyxDQUFDO29CQUNMLENBQUM7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOytHQXJCVSxzQkFBc0I7Z0hBQXRCLHNCQUFzQixpQkE1Qy9CLHlCQUF5QjtZQUN6Qiw4QkFBOEI7WUFDOUIsa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0QixtQkFBbUI7WUFDbkIsY0FBYyxhQUlkLGFBQWEsZ0JBRWIsYUFBYTtZQUNiLGFBQWE7WUFDYix1QkFBdUI7WUFDdkIsYUFBYTtZQUNiLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsZUFBZTtZQUNmLHdCQUF3QjtZQUN4QixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsT0FBTztZQUNQLGFBQWE7WUFDYixXQUFXO1lBQ1gsZUFBZTtZQUNmLDRCQUE0QjtZQUM1QixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixtQkFBbUIsYUFqQ1gsOEJBQThCLEVBQUUseUJBQXlCO2dIQXFDeEQsc0JBQXNCLGFBRnRCLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUMsWUFqQ2pHLGFBQWE7WUFDYixhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDN0MsYUFBYTtZQUNiLGFBQWE7WUFDYix1QkFBdUI7WUFDdkIsYUFBYTtZQUNiLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsZUFBZTtZQUNmLHdCQUF3QjtZQUN4QixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixhQUFhO1lBRWIsYUFBYTtZQUNiLFdBQVc7WUFDWCxlQUFlO1lBQ2YsNEJBQTRCO1lBQzVCLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUVsQixhQUFhO1lBQ2IsbUJBQW1COzs0RkFJVixzQkFBc0I7a0JBOUNsQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWix5QkFBeUI7d0JBQ3pCLDhCQUE4Qjt3QkFDOUIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSx5QkFBeUIsQ0FBQztvQkFDcEUsT0FBTyxFQUFFO3dCQUNQLGFBQWE7d0JBQ2IsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO3dCQUM3QyxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2QixhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLDRCQUE0Qjt3QkFDNUIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsbUJBQW1CO3FCQUNwQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEVBQUUsYUFBYSxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQztpQkFDcEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xuaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0U2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0R3JpZExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ncmlkLWxpc3QnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IEFwaU1vZHVsZSBhcyBKYXZhQXBpTW9kdWxlLCBDb25maWd1cmF0aW9uIGFzIEphdmFDb25maWcgfSBmcm9tICcuL2phdmEtYXBpJztcbmltcG9ydCB7IFRyZWVTZWFyY2hDb3VudHNDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtc2VhcmNoLWNvdW50cy90cmVlLXNlYXJjaC1jb3VudHMuY29tcG9uZW50JztcbmltcG9ydCB7IFRyZWVDb2xsZWN0aW9uRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vdHJlZS1jb2xsZWN0aW9uLWRldGFpbHMvdHJlZS1jb2xsZWN0aW9uLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IFdyYXBPYnNlcnZhYmxlUGlwZSB9IGZyb20gJy4vd3JhcC1vYnNlcnZhYmxlLnBpcGUnO1xuaW1wb3J0IHsgRW52SGVscGVyU2VydmljZSwgTmdNZXRhV2lkZ2V0c0xpYkNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2Vudi1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBwcm92aWRlSHR0cENsaWVudCwgd2l0aEludGVyY2VwdG9yc0Zyb21EaSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdFNvcnQsIE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1hdENoZWNrYm94IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgUXVhbGl0eU1hdHJpeEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWx0ZXIvcXVhbGl0eS1tYXRyaXgtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFF1YWxpdHlNYXRyaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVhbGl0eS1tYXRyaXgvcXVhbGl0eV9tYXRyaXgnO1xuaW1wb3J0IHtcbiAgTWF0RGF0ZXBpY2tlcixcbiAgTWF0RGF0ZXBpY2tlcklucHV0LFxuICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICBNYXREYXRlcGlja2VyVG9nZ2xlLFxuICBNYXREYXRlUmFuZ2VJbnB1dCxcbiAgTWF0RGF0ZVJhbmdlUGlja2VyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IERhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsdGVyL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9udXRDaGFydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kb251dC1jaGFydC9kb251dC1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9udXRDaGFydFBpcGUgfSBmcm9tICcuL2NvbXBvbmVudHMvZG9udXQtY2hhcnQvZG9udXQtY2hhcnQucGlwZSc7XG5pbXBvcnQgeyBwcm92aWRlQ2hhcnRzLCB3aXRoRGVmYXVsdFJlZ2lzdGVyYWJsZXMgfSBmcm9tICduZzItY2hhcnRzJztcbmltcG9ydCB7IFN2Z0ljb25zU2VydmljZSB9IGZyb20gJy4vY29yZS9zdmctaWNvbnMuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRyZWVTZWFyY2hDb3VudHNDb21wb25lbnQsXG4gICAgVHJlZUNvbGxlY3Rpb25EZXRhaWxzQ29tcG9uZW50LFxuICAgIFdyYXBPYnNlcnZhYmxlUGlwZSxcbiAgICBRdWFsaXR5TWF0cml4Q29tcG9uZW50LFxuICAgIERvbnV0Q2hhcnRDb21wb25lbnQsXG4gICAgRG9udXRDaGFydFBpcGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtUcmVlQ29sbGVjdGlvbkRldGFpbHNDb21wb25lbnQsIFRyZWVTZWFyY2hDb3VudHNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQnJvd3Nlck1vZHVsZSxcbiAgICBKYXZhQXBpTW9kdWxlLmZvclJvb3QoKCkgPT4gbmV3IEphdmFDb25maWcoKSksXG4gICAgTWF0Q2FyZE1vZHVsZSxcbiAgICBNYXRUcmVlTW9kdWxlLFxuICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0U2xpZGVyTW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0R3JpZExpc3RNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdFNvcnQsXG4gICAgTWF0U29ydE1vZHVsZSxcbiAgICBNYXRDaGVja2JveCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUXVhbGl0eU1hdHJpeEZpbHRlckNvbXBvbmVudCxcbiAgICBNYXREYXRlUmFuZ2VJbnB1dCxcbiAgICBNYXREYXRlcGlja2VyVG9nZ2xlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0RGF0ZVJhbmdlUGlja2VyLFxuICAgIE1hdERhdGVwaWNrZXJJbnB1dCxcbiAgICBNYXREYXRlcGlja2VyLFxuICAgIERhdGVwaWNrZXJDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVIdHRwQ2xpZW50KHdpdGhJbnRlcmNlcHRvcnNGcm9tRGkoKSksIHByb3ZpZGVDaGFydHMod2l0aERlZmF1bHRSZWdpc3RlcmFibGVzKCkpXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdNZXRhV2lkZ2V0c0xpYk1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3ZnSWNvbnNTZXJ2aWNlOiBTdmdJY29uc1NlcnZpY2UpIHtcbiAgICAvLyB3ZSBpbmplY3QgdGhlIHNlcnZpY2UgaGVyZSB0byBtYWtlIHN1cmUgdGhlIGljb25zIGFyZSByZWdpc3RlcmVkICh0aGUgaW5pdCgpIG1ldGhvZCBpcyBjYWxsZWQgaW4gdGhlIGNvbnN0cnVjdG9yKVxuICB9XG4gIHN0YXRpYyBmb3JSb290KHBhcmFtczogTmdNZXRhV2lkZ2V0c0xpYkNvbmZpZ3VyYXRpb24pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5nTWV0YVdpZGdldHNMaWJNb2R1bGU+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 "../env-helper.service";
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.EnvHelperService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
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.EnvHelperService }, { type: i0.ChangeDetectorRef }], propDecorators: { pageTitle: [{
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==
@@ -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/env-helper.service';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMseURBQXlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5nLW1ldGEtd2lkZ2V0cy1saWJcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZy1tZXRhLXdpZGdldHMtbGliLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuLy4vbGliL3RyZWUtY29sbGVjdGlvbi1kZXRhaWxzL3RyZWUtY29sbGVjdGlvbi1kZXRhaWxzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuLy4vbGliL3RyZWUtc2VhcmNoLWNvdW50cy90cmVlLXNlYXJjaC1jb3VudHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Vudi1oZWxwZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3F1YWxpdHktbWF0cml4L3F1YWxpdHlfbWF0cml4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb24tY291bnQtaGlzdG9yeS9jb2xsZWN0aW9uLWNvdW50LWhpc3RvcnkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGVyaWFsdHlwZXMtYnktc291cmNlcy9tYXRlcmlhbHR5cGVzLWJ5LXNvdXJjZXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvdW50cy13aXRoLWhpc3RvcnkvY291bnRzLXdpdGgtaGlzdG9yeS5jb21wb25lbnQnO1xuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMseURBQXlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5nLW1ldGEtd2lkZ2V0cy1saWJcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZy1tZXRhLXdpZGdldHMtbGliLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuLy4vbGliL3RyZWUtY29sbGVjdGlvbi1kZXRhaWxzL3RyZWUtY29sbGVjdGlvbi1kZXRhaWxzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuLy4vbGliL3RyZWUtc2VhcmNoLWNvdW50cy90cmVlLXNlYXJjaC1jb3VudHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZy1oZWxwZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3F1YWxpdHktbWF0cml4L3F1YWxpdHlfbWF0cml4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb24tY291bnQtaGlzdG9yeS9jb2xsZWN0aW9uLWNvdW50LWhpc3RvcnkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hdGVyaWFsdHlwZXMtYnktc291cmNlcy9tYXRlcmlhbHR5cGVzLWJ5LXNvdXJjZXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvdW50cy13aXRoLWhpc3RvcnkvY291bnRzLXdpdGgtaGlzdG9yeS5jb21wb25lbnQnO1xuIl19