ngx-edu-sharing-metaqs2 0.9.32 → 0.9.35

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.
Files changed (58) hide show
  1. package/README.md +31 -0
  2. package/_index.scss +8 -0
  3. package/esm2022/lib/collection-count-history/collection-count-history.component.mjs +46 -32
  4. package/esm2022/lib/collection-count-history/monthpicker/monthpicker.component.mjs +7 -4
  5. package/esm2022/lib/components/donut-chart/donut-chart.component.mjs +14 -14
  6. package/esm2022/lib/components/donut-chart/donut-chart.model.mjs +1 -1
  7. package/esm2022/lib/components/donut-chart/donut-chart.pipe.mjs +6 -5
  8. package/esm2022/lib/components/donut-chart-tooltip/donut-chart-tooltip.component.mjs +79 -0
  9. package/esm2022/lib/components/filter/datepicker/datepicker.component.mjs +3 -8
  10. package/esm2022/lib/components/node-list/node-list.component.mjs +13 -9
  11. package/esm2022/lib/components/quality-matrix/quality_matrix.mjs +195 -36
  12. package/esm2022/lib/components/quality-matrix/scroll-marker.directive.mjs +17 -0
  13. package/esm2022/lib/config-helper.service.mjs +5 -4
  14. package/esm2022/lib/core/tooltip.service.mjs +146 -0
  15. package/esm2022/lib/counts-with-history/counts-with-history.component.mjs +87 -84
  16. package/esm2022/lib/java-api/api/authProxyController.service.mjs +12 -93
  17. package/esm2022/lib/java-api/api/collectionAPI.service.mjs +91 -178
  18. package/esm2022/lib/java-api/api/editorsAPI.service.mjs +14 -102
  19. package/esm2022/lib/java-api/api/filterAPI.service.mjs +50 -129
  20. package/esm2022/lib/java-api/api/replicationSourceAPI.service.mjs +20 -130
  21. package/esm2022/lib/java-api/api.base.service.mjs +66 -0
  22. package/esm2022/lib/java-api/configuration.mjs +9 -1
  23. package/esm2022/lib/java-api/model/missingAttributeResult.mjs +2 -0
  24. package/esm2022/lib/java-api/model/models.mjs +2 -1
  25. package/esm2022/lib/ng-meta-widgets-lib.module.mjs +19 -12
  26. package/esm2022/lib/tree-collection-details/tree-collection-details.component.mjs +3 -7
  27. package/esm2022/lib/tree-search-counts/tree-search-counts.component.mjs +4 -6
  28. package/esm2022/public-api.mjs +6 -4
  29. package/esm2022/web-components.mjs +36 -0
  30. package/fesm2022/ngx-edu-sharing-metaqs2.mjs +1170 -1239
  31. package/fesm2022/ngx-edu-sharing-metaqs2.mjs.map +1 -1
  32. package/lib/collection-count-history/collection-count-history.component.d.ts +1 -0
  33. package/lib/collection-count-history/monthpicker/monthpicker.component.d.ts +2 -1
  34. package/lib/components/donut-chart/donut-chart.component.d.ts +1 -1
  35. package/lib/components/donut-chart/donut-chart.model.d.ts +1 -0
  36. package/lib/components/donut-chart/donut-chart.pipe.d.ts +1 -1
  37. package/lib/components/donut-chart-tooltip/donut-chart-tooltip.component.d.ts +14 -0
  38. package/lib/components/node-list/node-list.component.d.ts +9 -5
  39. package/lib/components/quality-matrix/quality_matrix.d.ts +25 -6
  40. package/lib/components/quality-matrix/scroll-marker.directive.d.ts +7 -0
  41. package/lib/config-helper.service.d.ts +2 -0
  42. package/lib/core/tooltip.service.d.ts +61 -0
  43. package/lib/counts-with-history/counts-with-history.component.d.ts +27 -25
  44. package/lib/java-api/api/authProxyController.service.d.ts +4 -9
  45. package/lib/java-api/api/collectionAPI.service.d.ts +47 -25
  46. package/lib/java-api/api/editorsAPI.service.d.ts +5 -10
  47. package/lib/java-api/api/filterAPI.service.d.ts +27 -9
  48. package/lib/java-api/api/replicationSourceAPI.service.d.ts +4 -9
  49. package/lib/java-api/api.base.service.d.ts +12 -0
  50. package/lib/java-api/configuration.d.ts +3 -1
  51. package/lib/java-api/model/missingAttributeResult.d.ts +16 -0
  52. package/lib/java-api/model/models.d.ts +1 -0
  53. package/lib/ng-meta-widgets-lib.module.d.ts +34 -32
  54. package/package.json +4 -1
  55. package/public-api.d.ts +5 -3
  56. package/web-components.d.ts +7 -0
  57. package/esm2022/lib/materialtypes-by-sources/materialtypes-by-sources.component.mjs +0 -148
  58. package/lib/materialtypes-by-sources/materialtypes-by-sources.component.d.ts +0 -43
@@ -17,7 +17,7 @@ import { MatSelectModule } from '@angular/material/select';
17
17
  import { MatTooltipModule } from '@angular/material/tooltip';
18
18
  import { ApiModule as JavaApiModule, Configuration as JavaConfig } from './java-api';
19
19
  import { WrapObservablePipe } from './wrap-observable.pipe';
20
- import { ConfigHelperService } from './config-helper.service';
20
+ import { ConfigHelperService, NG_META_WIDGETS_LIB_CONFIGURATION, } from './config-helper.service';
21
21
  import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
22
22
  import { BrowserModule } from '@angular/platform-browser';
23
23
  import { MatListModule } from '@angular/material/list';
@@ -36,7 +36,9 @@ import { NodeEntryComponent } from './components/node-entry/node-entry.component
36
36
  import { NodeImageUrlPipe } from './node-image-url.pipe';
37
37
  import { MaterialIssuesComponent } from './components/material-issues/material-issues.component';
38
38
  import { CollectionIssuesComponent } from './components/collection-issues/collection-issues.component';
39
+ import { DonutChartTooltipComponent } from './components/donut-chart-tooltip/donut-chart-tooltip.component';
39
40
  import { ProgressSpinnerComponent } from './components/loading_indicator/progress-spinner/progress-spinner.component';
41
+ import { ScrollMarkerDirective } from './components/quality-matrix/scroll-marker.directive';
40
42
  import * as i0 from "@angular/core";
41
43
  import * as i1 from "./core/svg-icons.service";
42
44
  import * as i2 from "./java-api/api.module";
@@ -50,7 +52,7 @@ export class NgMetaWidgetsLibModule {
50
52
  ngModule: NgMetaWidgetsLibModule,
51
53
  providers: [
52
54
  ConfigHelperService,
53
- { provide: 'config', useValue: params },
55
+ { provide: NG_META_WIDGETS_LIB_CONFIGURATION, useValue: params },
54
56
  {
55
57
  provide: JavaConfig,
56
58
  useFactory: () => {
@@ -65,18 +67,19 @@ export class NgMetaWidgetsLibModule {
65
67
  }
66
68
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgMetaWidgetsLibModule, deps: [{ token: i1.SvgIconsService }], target: i0.ɵɵFactoryTarget.NgModule }); }
67
69
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NgMetaWidgetsLibModule, declarations: [WrapObservablePipe,
68
- QualityMatrixComponent,
69
- DonutChartComponent,
70
- DonutChartPipe,
71
70
  CollectionIssuesComponent,
72
71
  MaterialIssuesComponent,
73
72
  NodeEntryComponent,
74
73
  NodeListComponent,
75
- NodeImageUrlPipe], imports: [BrowserModule, i2.ApiModule, MatCardModule,
74
+ NodeImageUrlPipe,
75
+ DonutChartTooltipComponent], imports: [BrowserModule, i2.ApiModule, MatCardModule,
76
76
  MatTreeModule,
77
+ DonutChartComponent,
78
+ DonutChartPipe,
77
79
  BrowserAnimationsModule,
78
80
  MatIconModule,
79
81
  MatSliderModule,
82
+ QualityMatrixComponent,
80
83
  MatSlideToggleModule,
81
84
  MatButtonModule,
82
85
  MatProgressSpinnerModule,
@@ -102,7 +105,8 @@ export class NgMetaWidgetsLibModule {
102
105
  MatDatepickerInput,
103
106
  MatDatepicker,
104
107
  DatepickerComponent,
105
- ProgressSpinnerComponent], exports: [CollectionIssuesComponent, MaterialIssuesComponent, NodeListComponent] }); }
108
+ ProgressSpinnerComponent,
109
+ ScrollMarkerDirective], exports: [CollectionIssuesComponent, MaterialIssuesComponent, NodeListComponent, QualityMatrixComponent] }); }
106
110
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgMetaWidgetsLibModule, providers: [provideHttpClient(withInterceptorsFromDi()), provideCharts(withDefaultRegisterables())], imports: [BrowserModule,
107
111
  JavaApiModule.forRoot(() => new JavaConfig()),
108
112
  MatCardModule,
@@ -110,6 +114,7 @@ export class NgMetaWidgetsLibModule {
110
114
  BrowserAnimationsModule,
111
115
  MatIconModule,
112
116
  MatSliderModule,
117
+ QualityMatrixComponent,
113
118
  MatSlideToggleModule,
114
119
  MatButtonModule,
115
120
  MatProgressSpinnerModule,
@@ -140,24 +145,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
140
145
  args: [{
141
146
  declarations: [
142
147
  WrapObservablePipe,
143
- QualityMatrixComponent,
144
- DonutChartComponent,
145
- DonutChartPipe,
146
148
  CollectionIssuesComponent,
147
149
  MaterialIssuesComponent,
148
150
  NodeEntryComponent,
149
151
  NodeListComponent,
150
152
  NodeImageUrlPipe,
153
+ DonutChartTooltipComponent,
151
154
  ],
152
- exports: [CollectionIssuesComponent, MaterialIssuesComponent, NodeListComponent],
155
+ exports: [CollectionIssuesComponent, MaterialIssuesComponent, NodeListComponent, QualityMatrixComponent],
153
156
  imports: [
154
157
  BrowserModule,
155
158
  JavaApiModule.forRoot(() => new JavaConfig()),
156
159
  MatCardModule,
157
160
  MatTreeModule,
161
+ DonutChartComponent,
162
+ DonutChartPipe,
158
163
  BrowserAnimationsModule,
159
164
  MatIconModule,
160
165
  MatSliderModule,
166
+ QualityMatrixComponent,
161
167
  MatSlideToggleModule,
162
168
  MatButtonModule,
163
169
  MatProgressSpinnerModule,
@@ -184,8 +190,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
184
190
  MatDatepicker,
185
191
  DatepickerComponent,
186
192
  ProgressSpinnerComponent,
193
+ ScrollMarkerDirective,
187
194
  ],
188
195
  providers: [provideHttpClient(withInterceptorsFromDi()), provideCharts(withDefaultRegisterables())],
189
196
  }]
190
197
  }], ctorParameters: () => [{ type: i1.SvgIconsService }] });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbWV0YS13aWRnZXRzLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1tZXRhLXdpZGdldHMtbGliL3NyYy9saWIvbmctbWV0YS13aWRnZXRzLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0Qs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QkFDdEIsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLHlCQUF5Qjt3QkFDekIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsQ0FBQztvQkFDaEYsT0FBTyxFQUFFO3dCQUNQLGFBQWE7d0JBQ2IsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO3dCQUM3QyxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2QixhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLDRCQUE0Qjt3QkFDNUIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQix3QkFBd0I7cUJBQ3pCO29CQUNELFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLHNCQUFzQixFQUFFLENBQUMsRUFBRSxhQUFhLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO2lCQUNwRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXRUcmVlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XG5pbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBNYXRHcmlkTGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2dyaWQtbGlzdCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQXBpTW9kdWxlIGFzIEphdmFBcGlNb2R1bGUsIENvbmZpZ3VyYXRpb24gYXMgSmF2YUNvbmZpZyB9IGZyb20gJy4vamF2YS1hcGknO1xuaW1wb3J0IHsgV3JhcE9ic2VydmFibGVQaXBlIH0gZnJvbSAnLi93cmFwLW9ic2VydmFibGUucGlwZSc7XG5pbXBvcnQgeyBDb25maWdIZWxwZXJTZXJ2aWNlLCBOZ01ldGFXaWRnZXRzTGliQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vY29uZmlnLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IHByb3ZpZGVIdHRwQ2xpZW50LCB3aXRoSW50ZXJjZXB0b3JzRnJvbURpIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0U29ydCwgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3ggfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBRdWFsaXR5TWF0cml4RmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbHRlci9xdWFsaXR5LW1hdHJpeC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgUXVhbGl0eU1hdHJpeENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWFsaXR5LW1hdHJpeC9xdWFsaXR5X21hdHJpeCc7XG5pbXBvcnQge1xuICBNYXREYXRlcGlja2VyLFxuICBNYXREYXRlcGlja2VySW5wdXQsXG4gIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gIE1hdERhdGVwaWNrZXJUb2dnbGUsXG4gIE1hdERhdGVSYW5nZUlucHV0LFxuICBNYXREYXRlUmFuZ2VQaWNrZXIsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWx0ZXIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb251dENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RvbnV0LWNoYXJ0L2RvbnV0LWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb251dENoYXJ0UGlwZSB9IGZyb20gJy4vY29tcG9uZW50cy9kb251dC1jaGFydC9kb251dC1jaGFydC5waXBlJztcbmltcG9ydCB7IHByb3ZpZGVDaGFydHMsIHdpdGhEZWZhdWx0UmVnaXN0ZXJhYmxlcyB9IGZyb20gJ25nMi1jaGFydHMnO1xuaW1wb3J0IHsgU3ZnSWNvbnNTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlL3N2Zy1pY29ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25vZGUtbGlzdC9ub2RlLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVFbnRyeUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub2RlLWVudHJ5L25vZGUtZW50cnkuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVJbWFnZVVybFBpcGUgfSBmcm9tICcuL25vZGUtaW1hZ2UtdXJsLnBpcGUnO1xuaW1wb3J0IHsgTWF0ZXJpYWxJc3N1ZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWF0ZXJpYWwtaXNzdWVzL21hdGVyaWFsLWlzc3Vlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbklzc3Vlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWlzc3Vlcy9jb2xsZWN0aW9uLWlzc3Vlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvYWRpbmdfaW5kaWNhdG9yL3Byb2dyZXNzLXNwaW5uZXIvcHJvZ3Jlc3Mtc3Bpbm5lci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBXcmFwT2JzZXJ2YWJsZVBpcGUsXG4gICAgUXVhbGl0eU1hdHJpeENvbXBvbmVudCxcbiAgICBEb251dENoYXJ0Q29tcG9uZW50LFxuICAgIERvbnV0Q2hhcnRQaXBlLFxuICAgIENvbGxlY3Rpb25Jc3N1ZXNDb21wb25lbnQsXG4gICAgTWF0ZXJpYWxJc3N1ZXNDb21wb25lbnQsXG4gICAgTm9kZUVudHJ5Q29tcG9uZW50LFxuICAgIE5vZGVMaXN0Q29tcG9uZW50LFxuICAgIE5vZGVJbWFnZVVybFBpcGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtDb2xsZWN0aW9uSXNzdWVzQ29tcG9uZW50LCBNYXRlcmlhbElzc3Vlc0NvbXBvbmVudCwgTm9kZUxpc3RDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQnJvd3Nlck1vZHVsZSxcbiAgICBKYXZhQXBpTW9kdWxlLmZvclJvb3QoKCkgPT4gbmV3IEphdmFDb25maWcoKSksXG4gICAgTWF0Q2FyZE1vZHVsZSxcbiAgICBNYXRUcmVlTW9kdWxlLFxuICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0U2xpZGVyTW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0R3JpZExpc3RNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdFNvcnQsXG4gICAgTWF0U29ydE1vZHVsZSxcbiAgICBNYXRDaGVja2JveCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUXVhbGl0eU1hdHJpeEZpbHRlckNvbXBvbmVudCxcbiAgICBNYXREYXRlUmFuZ2VJbnB1dCxcbiAgICBNYXREYXRlcGlja2VyVG9nZ2xlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0RGF0ZVJhbmdlUGlja2VyLFxuICAgIE1hdERhdGVwaWNrZXJJbnB1dCxcbiAgICBNYXREYXRlcGlja2VyLFxuICAgIERhdGVwaWNrZXJDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NTcGlubmVyQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtwcm92aWRlSHR0cENsaWVudCh3aXRoSW50ZXJjZXB0b3JzRnJvbURpKCkpLCBwcm92aWRlQ2hhcnRzKHdpdGhEZWZhdWx0UmVnaXN0ZXJhYmxlcygpKV0sXG59KVxuZXhwb3J0IGNsYXNzIE5nTWV0YVdpZGdldHNMaWJNb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN2Z0ljb25zU2VydmljZTogU3ZnSWNvbnNTZXJ2aWNlKSB7XG4gICAgLy8gd2UgaW5qZWN0IHRoZSBzZXJ2aWNlIGhlcmUgdG8gbWFrZSBzdXJlIHRoZSBpY29ucyBhcmUgcmVnaXN0ZXJlZCAodGhlIGluaXQoKSBtZXRob2QgaXMgY2FsbGVkIGluIHRoZSBjb25zdHJ1Y3RvcilcbiAgfVxuICBzdGF0aWMgZm9yUm9vdChwYXJhbXM6IE5nTWV0YVdpZGdldHNMaWJDb25maWd1cmF0aW9uKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ01ldGFXaWRnZXRzTGliTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ01ldGFXaWRnZXRzTGliTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIENvbmZpZ0hlbHBlclNlcnZpY2UsXG4gICAgICAgIHsgcHJvdmlkZTogJ2NvbmZpZycsIHVzZVZhbHVlOiBwYXJhbXMgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEphdmFDb25maWcsXG4gICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBKYXZhQ29uZmlnKHtcbiAgICAgICAgICAgICAgYmFzZVBhdGg6IHBhcmFtcy5hcGlQYXRoLFxuICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbWV0YS13aWRnZXRzLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1tZXRhLXdpZGdldHMtbGliL3NyYy9saWIvbmctbWV0YS13aWRnZXRzLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0Qs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QUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO2lCQUNwRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXRUcmVlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XG5pbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRTbGlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZXInO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBNYXRHcmlkTGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2dyaWQtbGlzdCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQXBpTW9kdWxlIGFzIEphdmFBcGlNb2R1bGUsIENvbmZpZ3VyYXRpb24gYXMgSmF2YUNvbmZpZyB9IGZyb20gJy4vamF2YS1hcGknO1xuaW1wb3J0IHsgV3JhcE9ic2VydmFibGVQaXBlIH0gZnJvbSAnLi93cmFwLW9ic2VydmFibGUucGlwZSc7XG5pbXBvcnQge1xuICBDb25maWdIZWxwZXJTZXJ2aWNlLFxuICBOR19NRVRBX1dJREdFVFNfTElCX0NPTkZJR1VSQVRJT04sXG4gIE5nTWV0YVdpZGdldHNMaWJDb25maWd1cmF0aW9uLFxufSBmcm9tICcuL2NvbmZpZy1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBwcm92aWRlSHR0cENsaWVudCwgd2l0aEludGVyY2VwdG9yc0Zyb21EaSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdFNvcnQsIE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1hdENoZWNrYm94IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgUXVhbGl0eU1hdHJpeEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWx0ZXIvcXVhbGl0eS1tYXRyaXgtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFF1YWxpdHlNYXRyaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVhbGl0eS1tYXRyaXgvcXVhbGl0eV9tYXRyaXgnO1xuaW1wb3J0IHtcbiAgTWF0RGF0ZXBpY2tlcixcbiAgTWF0RGF0ZXBpY2tlcklucHV0LFxuICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICBNYXREYXRlcGlja2VyVG9nZ2xlLFxuICBNYXREYXRlUmFuZ2VJbnB1dCxcbiAgTWF0RGF0ZVJhbmdlUGlja2VyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IERhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsdGVyL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9udXRDaGFydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kb251dC1jaGFydC9kb251dC1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9udXRDaGFydFBpcGUgfSBmcm9tICcuL2NvbXBvbmVudHMvZG9udXQtY2hhcnQvZG9udXQtY2hhcnQucGlwZSc7XG5pbXBvcnQgeyBwcm92aWRlQ2hhcnRzLCB3aXRoRGVmYXVsdFJlZ2lzdGVyYWJsZXMgfSBmcm9tICduZzItY2hhcnRzJztcbmltcG9ydCB7IFN2Z0ljb25zU2VydmljZSB9IGZyb20gJy4vY29yZS9zdmctaWNvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub2RlLWxpc3Qvbm9kZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb2RlRW50cnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbm9kZS1lbnRyeS9ub2RlLWVudHJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb2RlSW1hZ2VVcmxQaXBlIH0gZnJvbSAnLi9ub2RlLWltYWdlLXVybC5waXBlJztcbmltcG9ydCB7IE1hdGVyaWFsSXNzdWVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21hdGVyaWFsLWlzc3Vlcy9tYXRlcmlhbC1pc3N1ZXMuY29tcG9uZW50JztcbmltcG9ydCB7IENvbGxlY3Rpb25Jc3N1ZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1pc3N1ZXMvY29sbGVjdGlvbi1pc3N1ZXMuY29tcG9uZW50JztcbmltcG9ydCB7IERvbnV0Q2hhcnRUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RvbnV0LWNoYXJ0LXRvb2x0aXAvZG9udXQtY2hhcnQtdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvYWRpbmdfaW5kaWNhdG9yL3Byb2dyZXNzLXNwaW5uZXIvcHJvZ3Jlc3Mtc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2Nyb2xsTWFya2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL3F1YWxpdHktbWF0cml4L3Njcm9sbC1tYXJrZXIuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgV3JhcE9ic2VydmFibGVQaXBlLFxuICAgIENvbGxlY3Rpb25Jc3N1ZXNDb21wb25lbnQsXG4gICAgTWF0ZXJpYWxJc3N1ZXNDb21wb25lbnQsXG4gICAgTm9kZUVudHJ5Q29tcG9uZW50LFxuICAgIE5vZGVMaXN0Q29tcG9uZW50LFxuICAgIE5vZGVJbWFnZVVybFBpcGUsXG4gICAgRG9udXRDaGFydFRvb2x0aXBDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtDb2xsZWN0aW9uSXNzdWVzQ29tcG9uZW50LCBNYXRlcmlhbElzc3Vlc0NvbXBvbmVudCwgTm9kZUxpc3RDb21wb25lbnQsIFF1YWxpdHlNYXRyaXhDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQnJvd3Nlck1vZHVsZSxcbiAgICBKYXZhQXBpTW9kdWxlLmZvclJvb3QoKCkgPT4gbmV3IEphdmFDb25maWcoKSksXG4gICAgTWF0Q2FyZE1vZHVsZSxcbiAgICBNYXRUcmVlTW9kdWxlLFxuICAgIERvbnV0Q2hhcnRDb21wb25lbnQsXG4gICAgRG9udXRDaGFydFBpcGUsXG4gICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRTbGlkZXJNb2R1bGUsXG4gICAgUXVhbGl0eU1hdHJpeENvbXBvbmVudCxcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdEdyaWRMaXN0TW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRTaWRlbmF2TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBNYXRTb3J0LFxuICAgIE1hdFNvcnRNb2R1bGUsXG4gICAgTWF0Q2hlY2tib3gsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFF1YWxpdHlNYXRyaXhGaWx0ZXJDb21wb25lbnQsXG4gICAgTWF0RGF0ZVJhbmdlSW5wdXQsXG4gICAgTWF0RGF0ZXBpY2tlclRvZ2dsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdERhdGVSYW5nZVBpY2tlcixcbiAgICBNYXREYXRlcGlja2VySW5wdXQsXG4gICAgTWF0RGF0ZXBpY2tlcixcbiAgICBEYXRlcGlja2VyQ29tcG9uZW50LFxuICAgIFByb2dyZXNzU3Bpbm5lckNvbXBvbmVudCxcbiAgICBTY3JvbGxNYXJrZXJEaXJlY3RpdmUsXG4gIF0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVIdHRwQ2xpZW50KHdpdGhJbnRlcmNlcHRvcnNGcm9tRGkoKSksIHByb3ZpZGVDaGFydHMod2l0aERlZmF1bHRSZWdpc3RlcmFibGVzKCkpXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdNZXRhV2lkZ2V0c0xpYk1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3ZnSWNvbnNTZXJ2aWNlOiBTdmdJY29uc1NlcnZpY2UpIHtcbiAgICAvLyB3ZSBpbmplY3QgdGhlIHNlcnZpY2UgaGVyZSB0byBtYWtlIHN1cmUgdGhlIGljb25zIGFyZSByZWdpc3RlcmVkICh0aGUgaW5pdCgpIG1ldGhvZCBpcyBjYWxsZWQgaW4gdGhlIGNvbnN0cnVjdG9yKVxuICB9XG4gIHN0YXRpYyBmb3JSb290KHBhcmFtczogTmdNZXRhV2lkZ2V0c0xpYkNvbmZpZ3VyYXRpb24pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5nTWV0YVdpZGdldHNMaWJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE5nTWV0YVdpZGdldHNMaWJNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQ29uZmlnSGVscGVyU2VydmljZSxcbiAgICAgICAgeyBwcm92aWRlOiBOR19NRVRBX1dJREdFVFNfTElCX0NPTkZJR1VSQVRJT04sIHVzZVZhbHVlOiBwYXJhbXMgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEphdmFDb25maWcsXG4gICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBKYXZhQ29uZmlnKHtcbiAgICAgICAgICAgICAgYmFzZVBhdGg6IHBhcmFtcy5hcGlQYXRoLFxuICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -4,10 +4,8 @@ import { finalize, map, take, tap } from 'rxjs/operators';
4
4
  import { TranslateModule } from '@ngx-translate/core';
5
5
  import { AsyncPipe, NgClass, NgForOf, NgIf } from '@angular/common';
6
6
  import { MatCardModule } from '@angular/material/card';
7
- import { MatTooltip } from '@angular/material/tooltip';
8
7
  import { MatIcon } from '@angular/material/icon';
9
8
  import { MatTableModule } from '@angular/material/table';
10
- import { MatProgressSpinner } from '@angular/material/progress-spinner';
11
9
  import { ProgressSpinnerComponent } from '../components/loading_indicator/progress-spinner/progress-spinner.component';
12
10
  import * as i0 from "@angular/core";
13
11
  import * as i1 from "../meta-api.service";
@@ -64,7 +62,7 @@ export class TreeCollectionDetailsComponent {
64
62
  return this.linkService.openByCollectionAndIssueType(collectionId, issueType, title);
65
63
  }
66
64
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TreeCollectionDetailsComponent, deps: [{ token: i1.MetaApiService }, { token: i2.TranslateService }, { token: i3.EditorialLinkService }], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TreeCollectionDetailsComponent, isStandalone: true, selector: "metaqs2-tree-collection-details", inputs: { collectionId: "collectionId", pageTitle: "pageTitle" }, ngImport: i0, template: "<mat-card>\n <mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title>\n Qualit\u00E4tsmetrik: {{pageTitle | translate}}{{isLoading() ? \": Lade neue Daten.\" : \"\"}}</mat-card-title\n >\n </mat-card-header>\n</mat-card>\n<mat-card>\n <metaqs2-progress-spinner [displayProgressSpinner]=\"isLoading()\"></metaqs2-progress-spinner>\n <table *ngIf=\"!isLoading()\" [ngClass]=\"{'while-loading': isLoading()}\" mat-table [dataSource]=\"recentQualityMatrix$.value.rows\">\n <!-- Define columns of table -->\n <!-- Row Header Column -->\n <ng-container matColumnDef=\"row-header\" sticky>\n <th mat-header-cell *matHeaderCellDef>Sammlung</th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n matTooltip=\"{{row.meta.alt_label}}\"\n class=\"row-header {{'mat-cell-level-' + (row.meta.level+1)}}\"\n >\n <a (click)=\"openCollection(row.meta.id)\">\n <mat-icon [svgIcon]=\"row.meta.level === 1 ? 'tree' : 'child'\"></mat-icon>\n {{row.meta.label}}\n </a>\n </td>\n </ng-container>\n\n <!-- Data Columns -->\n <ng-container *ngFor=\"let column of dataColumns\" [matColumnDef]=\"column.id\">\n <th mat-header-cell *matHeaderCellDef matTooltip=\"{{column.altLabel}}\" >{{ \"quality_matrix.\" + column.label | translate }}</th>\n <td mat-cell *matCellDef=\"let row\" matTooltip=\"{{'cell tooltip' //getCellTooltip(row, column.id)}}\">\n <ng-container *ngIf=\" column.id === 'collection_issues' else countsWithLinks\">\n {{ translateCollectionIssues(row.counts[column.id]) | async }}\n </ng-container>\n <ng-template #countsWithLinks>\n <a *ngIf=\"row.counts[column.id]\" (click)=\"showMaterialWithIssue(row.meta.id, row.meta.label, column.id)\">\n {{ row.counts[column.id] }}\n </a>\n </ng-template>\n\n\n </td>\n </ng-container>\n\n <!-- Generate actual table -->\n <tr mat-header-row *matHeaderRowDef=\"['row-header'].concat(columnIds); sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['row-header'].concat(columnIds)\"></tr>\n </table>\n</mat-card>\n", styles: [".while-loading{filter:blur(2px)}tr:nth-child(2n){background-color:#e4e4e4}tr:nth-child(2n)>.mat-column-row-header,tr:nth-child(2n) .mat-mdc-cell{border-right-color:#fff}.mat-mdc-cell,.mat-mdc-header-cell,.mat-column-row-header{border-right:1px solid #e4e4e4}.mat-mdc-cell mat-icon,.mat-mdc-header-cell mat-icon,.mat-column-row-header 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}.row-header 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}mat-spinner{flex-grow:1;display:flex;align-self:center;justify-self:center;margin-top:20}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i4.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i4.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: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: ProgressSpinnerComponent, selector: "metaqs2-progress-spinner", inputs: ["color", "diameter", "strokeWidth", "backdropEnabled", "positionGloballyCenter", "displayProgressSpinner"] }] }); }
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TreeCollectionDetailsComponent, isStandalone: true, selector: "metaqs2-tree-collection-details", inputs: { collectionId: "collectionId", pageTitle: "pageTitle" }, ngImport: i0, template: "<mat-card>\n <mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title>\n Qualit\u00E4tsmetrik: {{pageTitle | translate}}{{isLoading() ? \": Lade neue Daten.\" : \"\"}}</mat-card-title\n >\n </mat-card-header>\n</mat-card>\n<mat-card>\n <metaqs2-progress-spinner [displayProgressSpinner]=\"isLoading()\"></metaqs2-progress-spinner>\n <table *ngIf=\"!isLoading()\" [ngClass]=\"{'while-loading': isLoading()}\" mat-table [dataSource]=\"recentQualityMatrix$.value.rows\">\n <!-- Define columns of table -->\n <!-- Row Header Column -->\n <ng-container matColumnDef=\"row-header\" sticky>\n <th mat-header-cell *matHeaderCellDef>Sammlung</th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n class=\"row-header {{'mat-cell-level-' + (row.meta.level+1)}}\"\n >\n <a (click)=\"openCollection(row.meta.id)\">\n <mat-icon [svgIcon]=\"row.meta.level === 1 ? 'tree' : 'child'\"></mat-icon>\n {{row.meta.label}}\n </a>\n </td>\n </ng-container>\n\n <!-- Data Columns -->\n <ng-container *ngFor=\"let column of dataColumns\" [matColumnDef]=\"column.id\">\n <th mat-header-cell *matHeaderCellDef>{{ \"quality_matrix.\" + column.label | translate }}</th>\n <td mat-cell *matCellDef=\"let row\">\n <ng-container *ngIf=\" column.id === 'collection_issues' else countsWithLinks\">\n {{ translateCollectionIssues(row.counts[column.id]) | async }}\n </ng-container>\n <ng-template #countsWithLinks>\n <a *ngIf=\"row.counts[column.id]\" (click)=\"showMaterialWithIssue(row.meta.id, row.meta.label, column.id)\">\n {{ row.counts[column.id] }}\n </a>\n </ng-template>\n\n\n </td>\n </ng-container>\n\n <!-- Generate actual table -->\n <tr mat-header-row *matHeaderRowDef=\"['row-header'].concat(columnIds); sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['row-header'].concat(columnIds)\"></tr>\n </table>\n</mat-card>\n", styles: [".while-loading{filter:blur(2px)}tr:nth-child(2n){background-color:#e4e4e4}tr:nth-child(2n)>.mat-column-row-header,tr:nth-child(2n) .mat-mdc-cell{border-right-color:#fff}.mat-mdc-cell,.mat-mdc-header-cell,.mat-column-row-header{border-right:1px solid #e4e4e4}.mat-mdc-cell mat-icon,.mat-mdc-header-cell mat-icon,.mat-column-row-header 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:left}.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}.row-header 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}mat-spinner{flex-grow:1;display:flex;align-self:center;justify-self:center;margin-top:20px}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { 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: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: ProgressSpinnerComponent, selector: "metaqs2-progress-spinner", inputs: ["color", "diameter", "strokeWidth", "backdropEnabled", "positionGloballyCenter", "displayProgressSpinner"] }] }); }
68
66
  }
69
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TreeCollectionDetailsComponent, decorators: [{
70
68
  type: Component,
@@ -73,18 +71,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
73
71
  AsyncPipe,
74
72
  NgClass,
75
73
  MatCardModule,
76
- MatTooltip,
77
74
  MatIcon,
78
75
  NgIf,
79
76
  NgForOf,
80
77
  MatTableModule,
81
- MatProgressSpinner,
82
78
  ProgressSpinnerComponent,
83
- ], template: "<mat-card>\n <mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title>\n Qualit\u00E4tsmetrik: {{pageTitle | translate}}{{isLoading() ? \": Lade neue Daten.\" : \"\"}}</mat-card-title\n >\n </mat-card-header>\n</mat-card>\n<mat-card>\n <metaqs2-progress-spinner [displayProgressSpinner]=\"isLoading()\"></metaqs2-progress-spinner>\n <table *ngIf=\"!isLoading()\" [ngClass]=\"{'while-loading': isLoading()}\" mat-table [dataSource]=\"recentQualityMatrix$.value.rows\">\n <!-- Define columns of table -->\n <!-- Row Header Column -->\n <ng-container matColumnDef=\"row-header\" sticky>\n <th mat-header-cell *matHeaderCellDef>Sammlung</th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n matTooltip=\"{{row.meta.alt_label}}\"\n class=\"row-header {{'mat-cell-level-' + (row.meta.level+1)}}\"\n >\n <a (click)=\"openCollection(row.meta.id)\">\n <mat-icon [svgIcon]=\"row.meta.level === 1 ? 'tree' : 'child'\"></mat-icon>\n {{row.meta.label}}\n </a>\n </td>\n </ng-container>\n\n <!-- Data Columns -->\n <ng-container *ngFor=\"let column of dataColumns\" [matColumnDef]=\"column.id\">\n <th mat-header-cell *matHeaderCellDef matTooltip=\"{{column.altLabel}}\" >{{ \"quality_matrix.\" + column.label | translate }}</th>\n <td mat-cell *matCellDef=\"let row\" matTooltip=\"{{'cell tooltip' //getCellTooltip(row, column.id)}}\">\n <ng-container *ngIf=\" column.id === 'collection_issues' else countsWithLinks\">\n {{ translateCollectionIssues(row.counts[column.id]) | async }}\n </ng-container>\n <ng-template #countsWithLinks>\n <a *ngIf=\"row.counts[column.id]\" (click)=\"showMaterialWithIssue(row.meta.id, row.meta.label, column.id)\">\n {{ row.counts[column.id] }}\n </a>\n </ng-template>\n\n\n </td>\n </ng-container>\n\n <!-- Generate actual table -->\n <tr mat-header-row *matHeaderRowDef=\"['row-header'].concat(columnIds); sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['row-header'].concat(columnIds)\"></tr>\n </table>\n</mat-card>\n", styles: [".while-loading{filter:blur(2px)}tr:nth-child(2n){background-color:#e4e4e4}tr:nth-child(2n)>.mat-column-row-header,tr:nth-child(2n) .mat-mdc-cell{border-right-color:#fff}.mat-mdc-cell,.mat-mdc-header-cell,.mat-column-row-header{border-right:1px solid #e4e4e4}.mat-mdc-cell mat-icon,.mat-mdc-header-cell mat-icon,.mat-column-row-header 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}.row-header 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}mat-spinner{flex-grow:1;display:flex;align-self:center;justify-self:center;margin-top:20}\n"] }]
79
+ ], template: "<mat-card>\n <mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title>\n Qualit\u00E4tsmetrik: {{pageTitle | translate}}{{isLoading() ? \": Lade neue Daten.\" : \"\"}}</mat-card-title\n >\n </mat-card-header>\n</mat-card>\n<mat-card>\n <metaqs2-progress-spinner [displayProgressSpinner]=\"isLoading()\"></metaqs2-progress-spinner>\n <table *ngIf=\"!isLoading()\" [ngClass]=\"{'while-loading': isLoading()}\" mat-table [dataSource]=\"recentQualityMatrix$.value.rows\">\n <!-- Define columns of table -->\n <!-- Row Header Column -->\n <ng-container matColumnDef=\"row-header\" sticky>\n <th mat-header-cell *matHeaderCellDef>Sammlung</th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n class=\"row-header {{'mat-cell-level-' + (row.meta.level+1)}}\"\n >\n <a (click)=\"openCollection(row.meta.id)\">\n <mat-icon [svgIcon]=\"row.meta.level === 1 ? 'tree' : 'child'\"></mat-icon>\n {{row.meta.label}}\n </a>\n </td>\n </ng-container>\n\n <!-- Data Columns -->\n <ng-container *ngFor=\"let column of dataColumns\" [matColumnDef]=\"column.id\">\n <th mat-header-cell *matHeaderCellDef>{{ \"quality_matrix.\" + column.label | translate }}</th>\n <td mat-cell *matCellDef=\"let row\">\n <ng-container *ngIf=\" column.id === 'collection_issues' else countsWithLinks\">\n {{ translateCollectionIssues(row.counts[column.id]) | async }}\n </ng-container>\n <ng-template #countsWithLinks>\n <a *ngIf=\"row.counts[column.id]\" (click)=\"showMaterialWithIssue(row.meta.id, row.meta.label, column.id)\">\n {{ row.counts[column.id] }}\n </a>\n </ng-template>\n\n\n </td>\n </ng-container>\n\n <!-- Generate actual table -->\n <tr mat-header-row *matHeaderRowDef=\"['row-header'].concat(columnIds); sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['row-header'].concat(columnIds)\"></tr>\n </table>\n</mat-card>\n", styles: [".while-loading{filter:blur(2px)}tr:nth-child(2n){background-color:#e4e4e4}tr:nth-child(2n)>.mat-column-row-header,tr:nth-child(2n) .mat-mdc-cell{border-right-color:#fff}.mat-mdc-cell,.mat-mdc-header-cell,.mat-column-row-header{border-right:1px solid #e4e4e4}.mat-mdc-cell mat-icon,.mat-mdc-header-cell mat-icon,.mat-column-row-header 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:left}.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}.row-header 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}mat-spinner{flex-grow:1;display:flex;align-self:center;justify-self:center;margin-top:20px}\n"] }]
84
80
  }], ctorParameters: () => [{ type: i1.MetaApiService }, { type: i2.TranslateService }, { type: i3.EditorialLinkService }], propDecorators: { collectionId: [{
85
81
  type: Input,
86
82
  args: [{ required: true }]
87
83
  }], pageTitle: [{
88
84
  type: Input
89
85
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1jb2xsZWN0aW9uLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWV0YS13aWRnZXRzLWxpYi9zcmMvbGliL3RyZWUtY29sbGVjdGlvbi1kZXRhaWxzL3RyZWUtY29sbGVjdGlvbi1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi90cmVlLWNvbGxlY3Rpb24tZGV0YWlscy90cmVlLWNvbGxlY3Rpb24tZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBR3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1B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QXFCLENBQUMsWUFBb0IsRUFBRSxlQUF1QixFQUFFLFNBQWlCO1FBQzFGLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdkYsTUFBTSxLQUFLLEdBQUcsZUFBZSxHQUFHLEtBQUssR0FBRyxVQUFVLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLDRCQUE0QixDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkYsQ0FBQzsrR0FqRVUsOEJBQThCO21HQUE5Qiw4QkFBOEIsNkpDbEMzQyxnbkVBaURBLHkrQ0Q1QkksZUFBZSx1RkFDZixTQUFTLDhDQUNULE9BQU8sbUZBQ1AsYUFBYSxxVUFDYixVQUFVLGlSQUNWLE9BQU8sMklBQ1AsSUFBSSw2RkFDSixPQUFPLGtIQUNQLGNBQWMsdWdDQUVkLHdCQUF3Qjs7NEZBR2YsOEJBQThCO2tCQW5CMUMsU0FBUzsrQkFDRSxpQ0FBaUMsY0FFL0IsSUFBSSxXQUVQO3dCQUNQLGVBQWU7d0JBQ2YsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixPQUFPO3dCQUNQLElBQUk7d0JBQ0osT0FBTzt3QkFDUCxjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3FCQUN6QjtxSkFNRyxZQUFZO3NCQURmLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQU16QixTQUFTO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgbWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNZXRhQXBpU2VydmljZSB9IGZyb20gJy4uL21ldGEtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBFZGl0b3JpYWxMaW5rU2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZWRpdG9yaWFsLWxpbmstc2VydmljZS9lZGl0b3JpYWwtbGluay5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdHJpeFdpdGhDb3VudHMsIFF1YWxpdHlNYXRyaXhIZWFkZXIgfSBmcm9tICcuLi9qYXZhLWFwaSc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nRm9yT2YsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IFByb2dyZXNzU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbG9hZGluZ19pbmRpY2F0b3IvcHJvZ3Jlc3Mtc3Bpbm5lci9wcm9ncmVzcy1zcGlubmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21ldGFxczItdHJlZS1jb2xsZWN0aW9uLWRldGFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1jb2xsZWN0aW9uLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLWNvbGxlY3Rpb24tZGV0YWlscy5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBOZ0NsYXNzLFxuICAgIE1hdENhcmRNb2R1bGUsXG4gICAgTWF0VG9vbHRpcCxcbiAgICBNYXRJY29uLFxuICAgIE5nSWYsXG4gICAgTmdGb3JPZixcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXIsXG4gICAgUHJvZ3Jlc3NTcGlubmVyQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlQ29sbGVjdGlvbkRldGFpbHNDb21wb25lbnQge1xuICByZWFkb25seSByZWNlbnRRdWFsaXR5TWF0cml4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF0cml4V2l0aENvdW50cz4oeyBjb2x1bW5zOiBbXSwgcm93czogW10gfSk7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgc2V0IGNvbGxlY3Rpb25JZChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2FkRGF0YUZvckNvbGxlY3Rpb24oaWQpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcGFnZVRpdGxlOiBzdHJpbmcgPSAnJztcblxuICBpc0xvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG4gIGRhdGFDb2x1bW5zOiBBcnJheTxRdWFsaXR5TWF0cml4SGVhZGVyPiA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWV0YUFwaTogTWV0YUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaW5rU2VydmljZTogRWRpdG9yaWFsTGlua1NlcnZpY2VcbiAgKSB7fVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZERhdGFGb3JDb2xsZWN0aW9uKGNvbGxlY3Rpb25JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMubWV0YUFwaVxuICAgICAgLmdldENvbGxlY3Rpb25Db21wbGV0ZW5lc3MoY29sbGVjdGlvbklkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKChxbSkgPT4ge1xuICAgICAgICAgIHRoaXMuZGF0YUNvbHVtbnMgPSBxbS5jb2x1bW5zLm1hcCgoYykgPT4gYyk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChxbSkgPT4gdGhpcy5yZWNlbnRRdWFsaXR5TWF0cml4JC5uZXh0KHFtKSk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RDb2xsZWN0aW9uSWRGcm9tVm9jYWJVcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB1cmwuc3Vic3RyaW5nKHVybC5sYXN0SW5kZXhPZignLycpICsgMSk7XG4gIH1cblxuICBnZXQgY29sdW1uSWRzKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb2x1bW5zLm1hcCgoYykgPT4gYy5pZCk7XG4gIH1cblxuICB0cmFuc2xhdGVDb2xsZWN0aW9uSXNzdWVzKGVudHJpZXM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKCFlbnRyaWVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG9mKCcnKTtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxUcmFuc2xhdGlvbnMgPSBmb3JrSm9pbihcbiAgICAgIGVudHJpZXMubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0KGBxdWFsaXR5X21hdHJpeC4ke2VudHJ5fWApLnBpcGUodGFrZSgxKSkgYXMgT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiBhbGxUcmFuc2xhdGlvbnMucGlwZSh0YWtlKDEpKS5waXBlKG1hcCgodHJhbnNsYXRpb25zKSA9PiB0cmFuc2xhdGlvbnMuam9pbignLCAnKSkpO1xuICB9XG5cbiAgb3BlbkNvbGxlY3Rpb24oaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25JZCA9IHRoaXMuZXh0cmFjdENvbGxlY3Rpb25JZEZyb21Wb2NhYlVybChpZCk7XG4gICAgdGhpcy5saW5rU2VydmljZS5vcGVuQnlDb2xsZWN0aW9uSWQoY29sbGVjdGlvbklkKTtcbiAgfVxuXG4gIGFzeW5jIHNob3dNYXRlcmlhbFdpdGhJc3N1ZShjb2xsZWN0aW9uSWQ6IHN0cmluZywgY29sbGVjdGlvblRpdGVsOiBzdHJpbmcsIGlzc3VlVHlwZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdHJhbnNsYXRlZCA9IGF3YWl0IHRoaXMudHJhbnNsYXRlLmdldCgncXVhbGl0eV9tYXRyaXguJyArIGlzc3VlVHlwZSkudG9Qcm9taXNlKCk7XG4gICAgY29uc3QgdGl0bGUgPSBjb2xsZWN0aW9uVGl0ZWwgKyAnIC0gJyArIHRyYW5zbGF0ZWQ7XG4gICAgcmV0dXJuIHRoaXMubGlua1NlcnZpY2Uub3BlbkJ5Q29sbGVjdGlvbkFuZElzc3VlVHlwZShjb2xsZWN0aW9uSWQsIGlzc3VlVHlwZSwgdGl0bGUpO1xuICB9XG59XG4iLCI8bWF0LWNhcmQ+XG4gIDxtYXQtY2FyZC1oZWFkZXIgKm5nSWY9XCJwYWdlVGl0bGVcIj5cbiAgICA8bWF0LWNhcmQtdGl0bGU+XG4gICAgICBRdWFsaXTDpHRzbWV0cmlrOiB7e3BhZ2VUaXRsZSB8IHRyYW5zbGF0ZX19e3tpc0xvYWRpbmcoKSA/IFwiOiBMYWRlIG5ldWUgRGF0ZW4uXCIgOiBcIlwifX08L21hdC1jYXJkLXRpdGxlXG4gICAgPlxuICA8L21hdC1jYXJkLWhlYWRlcj5cbjwvbWF0LWNhcmQ+XG48bWF0LWNhcmQ+XG4gIDxtZXRhcXMyLXByb2dyZXNzLXNwaW5uZXIgW2Rpc3BsYXlQcm9ncmVzc1NwaW5uZXJdPVwiaXNMb2FkaW5nKClcIj48L21ldGFxczItcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgPHRhYmxlICpuZ0lmPVwiIWlzTG9hZGluZygpXCIgW25nQ2xhc3NdPVwieyd3aGlsZS1sb2FkaW5nJzogaXNMb2FkaW5nKCl9XCIgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInJlY2VudFF1YWxpdHlNYXRyaXgkLnZhbHVlLnJvd3NcIj5cbiAgICA8IS0tIERlZmluZSBjb2x1bW5zIG9mIHRhYmxlIC0tPlxuICAgIDwhLS0gUm93IEhlYWRlciBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJyb3ctaGVhZGVyXCIgc3RpY2t5PlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5TYW1tbHVuZzwvdGg+XG4gICAgICA8dGRcbiAgICAgICAgbWF0LWNlbGxcbiAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgcm93XCJcbiAgICAgICAgbWF0VG9vbHRpcD1cInt7cm93Lm1ldGEuYWx0X2xhYmVsfX1cIlxuICAgICAgICBjbGFzcz1cInJvdy1oZWFkZXIge3snbWF0LWNlbGwtbGV2ZWwtJyArIChyb3cubWV0YS5sZXZlbCsxKX19XCJcbiAgICAgID5cbiAgICAgICAgPGEgKGNsaWNrKT1cIm9wZW5Db2xsZWN0aW9uKHJvdy5tZXRhLmlkKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJyb3cubWV0YS5sZXZlbCA9PT0gMSA/ICd0cmVlJyA6ICdjaGlsZCdcIj48L21hdC1pY29uPlxuICAgICAgICB7e3Jvdy5tZXRhLmxhYmVsfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gRGF0YSBDb2x1bW5zIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBkYXRhQ29sdW1uc1wiIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmlkXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdFRvb2x0aXA9XCJ7e2NvbHVtbi5hbHRMYWJlbH19XCIgPnt7IFwicXVhbGl0eV9tYXRyaXguXCIgKyBjb2x1bW4ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIG1hdFRvb2x0aXA9XCJ7eydjZWxsIHRvb2x0aXAnIC8vZ2V0Q2VsbFRvb2x0aXAocm93LCBjb2x1bW4uaWQpfX1cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiBjb2x1bW4uaWQgPT09ICdjb2xsZWN0aW9uX2lzc3VlcycgZWxzZSBjb3VudHNXaXRoTGlua3NcIj5cbiAgICAgICAgICB7eyB0cmFuc2xhdGVDb2xsZWN0aW9uSXNzdWVzKHJvdy5jb3VudHNbY29sdW1uLmlkXSkgfCBhc3luYyB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNjb3VudHNXaXRoTGlua3M+XG4gICAgICAgICAgPGEgKm5nSWY9XCJyb3cuY291bnRzW2NvbHVtbi5pZF1cIiAoY2xpY2spPVwic2hvd01hdGVyaWFsV2l0aElzc3VlKHJvdy5tZXRhLmlkLCByb3cubWV0YS5sYWJlbCwgY29sdW1uLmlkKVwiPlxuICAgICAgICAgICAge3sgcm93LmNvdW50c1tjb2x1bW4uaWRdIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIEdlbmVyYXRlIGFjdHVhbCB0YWJsZSAtLT5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cIlsncm93LWhlYWRlciddLmNvbmNhdChjb2x1bW5JZHMpOyBzdGlja3k6dHJ1ZVwiPjwvdHI+XG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IFsncm93LWhlYWRlciddLmNvbmNhdChjb2x1bW5JZHMpXCI+PC90cj5cbiAgPC90YWJsZT5cbjwvbWF0LWNhcmQ+XG4iXX0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1jb2xsZWN0aW9uLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWV0YS13aWRnZXRzLWxpYi9zcmMvbGliL3RyZWUtY29sbGVjdGlvbi1kZXRhaWxzL3RyZWUtY29sbGVjdGlvbi1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi90cmVlLWNvbGxlY3Rpb24tZGV0YWlscy90cmVlLWNvbGxlY3Rpb24tZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBR3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQzs7Ozs7OztBQW1CdkgsTUFBTSxPQUFPLDhCQUE4QjtJQUd6QyxJQUNJLFlBQVksQ0FBQyxFQUFVO1FBQ3pCLElBQUksQ0FBQyxx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Q0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2RixNQUFNLEtBQUssR0FBRyxlQUFlLEdBQUcsS0FBSyxHQUFHLFVBQVUsQ0FBQztRQUNuRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsNEJBQTRCLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RixDQUFDOytHQWpFVSw4QkFBOEI7bUdBQTlCLDhCQUE4Qiw2SkM5QjNDLDA5REFnREEseStDRDdCSSxlQUFlLHVGQUNmLFNBQVMsOENBQ1QsT0FBTyxtRkFDUCxhQUFhLHFVQUNiLE9BQU8sMklBQ1AsSUFBSSw2RkFDSixPQUFPLGtIQUNQLGNBQWMsdWdDQUNkLHdCQUF3Qjs7NEZBR2YsOEJBQThCO2tCQWpCMUMsU0FBUzsrQkFDRSxpQ0FBaUMsY0FFL0IsSUFBSSxXQUVQO3dCQUNQLGVBQWU7d0JBQ2YsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxJQUFJO3dCQUNKLE9BQU87d0JBQ1AsY0FBYzt3QkFDZCx3QkFBd0I7cUJBQ3pCO3FKQU1HLFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBTXpCLFNBQVM7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCBtYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1ldGFBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vbWV0YS1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEVkaXRvcmlhbExpbmtTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9lZGl0b3JpYWwtbGluay1zZXJ2aWNlL2VkaXRvcmlhbC1saW5rLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0cml4V2l0aENvdW50cywgUXVhbGl0eU1hdHJpeEhlYWRlciB9IGZyb20gJy4uL2phdmEtYXBpJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdGb3JPZiwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IFByb2dyZXNzU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbG9hZGluZ19pbmRpY2F0b3IvcHJvZ3Jlc3Mtc3Bpbm5lci9wcm9ncmVzcy1zcGlubmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21ldGFxczItdHJlZS1jb2xsZWN0aW9uLWRldGFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1jb2xsZWN0aW9uLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLWNvbGxlY3Rpb24tZGV0YWlscy5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBOZ0NsYXNzLFxuICAgIE1hdENhcmRNb2R1bGUsXG4gICAgTWF0SWNvbixcbiAgICBOZ0lmLFxuICAgIE5nRm9yT2YsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgUHJvZ3Jlc3NTcGlubmVyQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlQ29sbGVjdGlvbkRldGFpbHNDb21wb25lbnQge1xuICByZWFkb25seSByZWNlbnRRdWFsaXR5TWF0cml4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF0cml4V2l0aENvdW50cz4oeyBjb2x1bW5zOiBbXSwgcm93czogW10gfSk7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgc2V0IGNvbGxlY3Rpb25JZChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2FkRGF0YUZvckNvbGxlY3Rpb24oaWQpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcGFnZVRpdGxlOiBzdHJpbmcgPSAnJztcblxuICBpc0xvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG4gIGRhdGFDb2x1bW5zOiBBcnJheTxRdWFsaXR5TWF0cml4SGVhZGVyPiA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWV0YUFwaTogTWV0YUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaW5rU2VydmljZTogRWRpdG9yaWFsTGlua1NlcnZpY2VcbiAgKSB7fVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZERhdGFGb3JDb2xsZWN0aW9uKGNvbGxlY3Rpb25JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMubWV0YUFwaVxuICAgICAgLmdldENvbGxlY3Rpb25Db21wbGV0ZW5lc3MoY29sbGVjdGlvbklkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKChxbSkgPT4ge1xuICAgICAgICAgIHRoaXMuZGF0YUNvbHVtbnMgPSBxbS5jb2x1bW5zLm1hcCgoYykgPT4gYyk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChxbSkgPT4gdGhpcy5yZWNlbnRRdWFsaXR5TWF0cml4JC5uZXh0KHFtKSk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RDb2xsZWN0aW9uSWRGcm9tVm9jYWJVcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB1cmwuc3Vic3RyaW5nKHVybC5sYXN0SW5kZXhPZignLycpICsgMSk7XG4gIH1cblxuICBnZXQgY29sdW1uSWRzKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb2x1bW5zLm1hcCgoYykgPT4gYy5pZCk7XG4gIH1cblxuICB0cmFuc2xhdGVDb2xsZWN0aW9uSXNzdWVzKGVudHJpZXM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKCFlbnRyaWVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG9mKCcnKTtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxUcmFuc2xhdGlvbnMgPSBmb3JrSm9pbihcbiAgICAgIGVudHJpZXMubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0KGBxdWFsaXR5X21hdHJpeC4ke2VudHJ5fWApLnBpcGUodGFrZSgxKSkgYXMgT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiBhbGxUcmFuc2xhdGlvbnMucGlwZSh0YWtlKDEpKS5waXBlKG1hcCgodHJhbnNsYXRpb25zKSA9PiB0cmFuc2xhdGlvbnMuam9pbignLCAnKSkpO1xuICB9XG5cbiAgb3BlbkNvbGxlY3Rpb24oaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25JZCA9IHRoaXMuZXh0cmFjdENvbGxlY3Rpb25JZEZyb21Wb2NhYlVybChpZCk7XG4gICAgdGhpcy5saW5rU2VydmljZS5vcGVuQnlDb2xsZWN0aW9uSWQoY29sbGVjdGlvbklkKTtcbiAgfVxuXG4gIGFzeW5jIHNob3dNYXRlcmlhbFdpdGhJc3N1ZShjb2xsZWN0aW9uSWQ6IHN0cmluZywgY29sbGVjdGlvblRpdGVsOiBzdHJpbmcsIGlzc3VlVHlwZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdHJhbnNsYXRlZCA9IGF3YWl0IHRoaXMudHJhbnNsYXRlLmdldCgncXVhbGl0eV9tYXRyaXguJyArIGlzc3VlVHlwZSkudG9Qcm9taXNlKCk7XG4gICAgY29uc3QgdGl0bGUgPSBjb2xsZWN0aW9uVGl0ZWwgKyAnIC0gJyArIHRyYW5zbGF0ZWQ7XG4gICAgcmV0dXJuIHRoaXMubGlua1NlcnZpY2Uub3BlbkJ5Q29sbGVjdGlvbkFuZElzc3VlVHlwZShjb2xsZWN0aW9uSWQsIGlzc3VlVHlwZSwgdGl0bGUpO1xuICB9XG59XG4iLCI8bWF0LWNhcmQ+XG4gIDxtYXQtY2FyZC1oZWFkZXIgKm5nSWY9XCJwYWdlVGl0bGVcIj5cbiAgICA8bWF0LWNhcmQtdGl0bGU+XG4gICAgICBRdWFsaXTDpHRzbWV0cmlrOiB7e3BhZ2VUaXRsZSB8IHRyYW5zbGF0ZX19e3tpc0xvYWRpbmcoKSA/IFwiOiBMYWRlIG5ldWUgRGF0ZW4uXCIgOiBcIlwifX08L21hdC1jYXJkLXRpdGxlXG4gICAgPlxuICA8L21hdC1jYXJkLWhlYWRlcj5cbjwvbWF0LWNhcmQ+XG48bWF0LWNhcmQ+XG4gIDxtZXRhcXMyLXByb2dyZXNzLXNwaW5uZXIgW2Rpc3BsYXlQcm9ncmVzc1NwaW5uZXJdPVwiaXNMb2FkaW5nKClcIj48L21ldGFxczItcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgPHRhYmxlICpuZ0lmPVwiIWlzTG9hZGluZygpXCIgW25nQ2xhc3NdPVwieyd3aGlsZS1sb2FkaW5nJzogaXNMb2FkaW5nKCl9XCIgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInJlY2VudFF1YWxpdHlNYXRyaXgkLnZhbHVlLnJvd3NcIj5cbiAgICA8IS0tIERlZmluZSBjb2x1bW5zIG9mIHRhYmxlIC0tPlxuICAgIDwhLS0gUm93IEhlYWRlciBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJyb3ctaGVhZGVyXCIgc3RpY2t5PlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5TYW1tbHVuZzwvdGg+XG4gICAgICA8dGRcbiAgICAgICAgbWF0LWNlbGxcbiAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgcm93XCJcbiAgICAgICAgY2xhc3M9XCJyb3ctaGVhZGVyIHt7J21hdC1jZWxsLWxldmVsLScgKyAocm93Lm1ldGEubGV2ZWwrMSl9fVwiXG4gICAgICA+XG4gICAgICAgIDxhIChjbGljayk9XCJvcGVuQ29sbGVjdGlvbihyb3cubWV0YS5pZClcIj5cbiAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwicm93Lm1ldGEubGV2ZWwgPT09IDEgPyAndHJlZScgOiAnY2hpbGQnXCI+PC9tYXQtaWNvbj5cbiAgICAgICAge3tyb3cubWV0YS5sYWJlbH19XG4gICAgICAgIDwvYT5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIERhdGEgQ29sdW1ucyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZGF0YUNvbHVtbnNcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5pZFwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj57eyBcInF1YWxpdHlfbWF0cml4LlwiICsgY29sdW1uLmxhYmVsIHwgdHJhbnNsYXRlIH19PC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiBjb2x1bW4uaWQgPT09ICdjb2xsZWN0aW9uX2lzc3VlcycgZWxzZSBjb3VudHNXaXRoTGlua3NcIj5cbiAgICAgICAgICB7eyB0cmFuc2xhdGVDb2xsZWN0aW9uSXNzdWVzKHJvdy5jb3VudHNbY29sdW1uLmlkXSkgfCBhc3luYyB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNjb3VudHNXaXRoTGlua3M+XG4gICAgICAgICAgPGEgKm5nSWY9XCJyb3cuY291bnRzW2NvbHVtbi5pZF1cIiAoY2xpY2spPVwic2hvd01hdGVyaWFsV2l0aElzc3VlKHJvdy5tZXRhLmlkLCByb3cubWV0YS5sYWJlbCwgY29sdW1uLmlkKVwiPlxuICAgICAgICAgICAge3sgcm93LmNvdW50c1tjb2x1bW4uaWRdIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIEdlbmVyYXRlIGFjdHVhbCB0YWJsZSAtLT5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cIlsncm93LWhlYWRlciddLmNvbmNhdChjb2x1bW5JZHMpOyBzdGlja3k6dHJ1ZVwiPjwvdHI+XG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IFsncm93LWhlYWRlciddLmNvbmNhdChjb2x1bW5JZHMpXCI+PC90cj5cbiAgPC90YWJsZT5cbjwvbWF0LWNhcmQ+XG4iXX0=
@@ -5,7 +5,6 @@ import { InlineWorker } from './inline-worker';
5
5
  import { AsyncPipe, DOCUMENT, NgClass, NgForOf, NgIf } from '@angular/common';
6
6
  import { TranslateModule } from '@ngx-translate/core';
7
7
  import { MatCardModule } from '@angular/material/card';
8
- import { MatTooltip } from '@angular/material/tooltip';
9
8
  import { MatIcon } from '@angular/material/icon';
10
9
  import { MatTableModule } from '@angular/material/table';
11
10
  import { MatSlideToggle } from '@angular/material/slide-toggle';
@@ -134,7 +133,7 @@ export class TreeSearchCountsComponent {
134
133
  encodeURIComponent(JSON.stringify(filters)) +
135
134
  '&' +
136
135
  'panel=contents&tab=4&';
137
- const ref = window.open(url);
136
+ window.open(url);
138
137
  }
139
138
  showCollectionItems(collectionId, collectionName, materialType) {
140
139
  const id = this.extractCollectionIdFromVocabUrl(collectionId);
@@ -181,7 +180,7 @@ export class TreeSearchCountsComponent {
181
180
  return this.collectionColumns.flatMap((e, i) => [e, this.searchColumns[i]]);
182
181
  }
183
182
  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: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
184
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TreeSearchCountsComponent, isStandalone: true, selector: "metaqs2-tree-search-counts", inputs: { pageTitle: "pageTitle", collectionId: "collectionId" }, ngImport: i0, template: "<mat-card *ngIf=\"pageTitle\" appearance=\"raised\">\n<mat-card-header >\n <mat-card-title>\n Material in Sammlungen{{isLoading() ? \": Lade neue Daten.\" : \"\"}}</mat-card-title\n >\n</mat-card-header>\n</mat-card>\n<mat-card>\n <metaqs2-progress-spinner [displayProgressSpinner]=\"isLoading()\"></metaqs2-progress-spinner>\n <table *ngIf=\"columns\" [ngClass]=\"{'while-loading': isLoading()}\" mat-table [dataSource]=\"materialCounts.rows\" 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: [".while-loading{filter:blur(2px)}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: "ngmodule", type: TranslateModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3.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: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: 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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ProgressSpinnerComponent, selector: "metaqs2-progress-spinner", inputs: ["color", "diameter", "strokeWidth", "backdropEnabled", "positionGloballyCenter", "displayProgressSpinner"] }] }); }
183
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TreeSearchCountsComponent, isStandalone: true, selector: "metaqs2-tree-search-counts", inputs: { pageTitle: "pageTitle", collectionId: "collectionId" }, ngImport: i0, template: "<mat-card appearance=\"raised\">\n <mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title>Material in Sammlungen{{isLoading() ? \": Lade neue Daten.\" : \"\"}}</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"toolbar\">\n <div style=\"flex: 1 1 auto;\"></div>\n <div class=\"actionbar\">\n <mat-slide-toggle labelPosition=\"before\" class=\"toggle\" [formControl]=\"showOERonly\">\n zeige nur OER\n </mat-slide-toggle>\n <mat-slide-toggle labelPosition=\"before\" class=\"toggle\" [formControl]=\"showAllColumns\">\n zeige alle Typen\n </mat-slide-toggle>\n </div>\n </mat-card-content>\n</mat-card>\n<mat-card>\n <metaqs2-progress-spinner [displayProgressSpinner]=\"isLoading()\"></metaqs2-progress-spinner>\n <table *ngIf=\"columns\" [ngClass]=\"{'while-loading': isLoading()}\" mat-table [dataSource]=\"materialCounts.rows\" 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</th>\n <td\n mat-cell\n *matCellDef=\"let row\"\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}}\">{{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>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>\n", styles: [".while-loading{filter:blur(2px)}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}.toolbar,.actionbar{display:flex;flex-direction:row;justify-content:flex-start;align-items:stretch;gap:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { 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"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: 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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ProgressSpinnerComponent, selector: "metaqs2-progress-spinner", inputs: ["color", "diameter", "strokeWidth", "backdropEnabled", "positionGloballyCenter", "displayProgressSpinner"] }] }); }
185
184
  }
186
185
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TreeSearchCountsComponent, decorators: [{
187
186
  type: Component,
@@ -190,7 +189,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
190
189
  AsyncPipe,
191
190
  NgClass,
192
191
  MatCardModule,
193
- MatTooltip,
194
192
  MatIcon,
195
193
  NgIf,
196
194
  NgForOf,
@@ -198,7 +196,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
198
196
  MatSlideToggle,
199
197
  ReactiveFormsModule,
200
198
  ProgressSpinnerComponent,
201
- ], template: "<mat-card *ngIf=\"pageTitle\" appearance=\"raised\">\n<mat-card-header >\n <mat-card-title>\n Material in Sammlungen{{isLoading() ? \": Lade neue Daten.\" : \"\"}}</mat-card-title\n >\n</mat-card-header>\n</mat-card>\n<mat-card>\n <metaqs2-progress-spinner [displayProgressSpinner]=\"isLoading()\"></metaqs2-progress-spinner>\n <table *ngIf=\"columns\" [ngClass]=\"{'while-loading': isLoading()}\" mat-table [dataSource]=\"materialCounts.rows\" 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: [".while-loading{filter:blur(2px)}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"] }]
199
+ ], template: "<mat-card appearance=\"raised\">\n <mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title>Material in Sammlungen{{isLoading() ? \": Lade neue Daten.\" : \"\"}}</mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"toolbar\">\n <div style=\"flex: 1 1 auto;\"></div>\n <div class=\"actionbar\">\n <mat-slide-toggle labelPosition=\"before\" class=\"toggle\" [formControl]=\"showOERonly\">\n zeige nur OER\n </mat-slide-toggle>\n <mat-slide-toggle labelPosition=\"before\" class=\"toggle\" [formControl]=\"showAllColumns\">\n zeige alle Typen\n </mat-slide-toggle>\n </div>\n </mat-card-content>\n</mat-card>\n<mat-card>\n <metaqs2-progress-spinner [displayProgressSpinner]=\"isLoading()\"></metaqs2-progress-spinner>\n <table *ngIf=\"columns\" [ngClass]=\"{'while-loading': isLoading()}\" mat-table [dataSource]=\"materialCounts.rows\" 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</th>\n <td\n mat-cell\n *matCellDef=\"let row\"\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}}\">{{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>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>\n", styles: [".while-loading{filter:blur(2px)}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}.toolbar,.actionbar{display:flex;flex-direction:row;justify-content:flex-start;align-items:stretch;gap:.5rem}\n"] }]
202
200
  }], ctorParameters: () => [{ type: i1.MetaApiService }, { type: i2.ConfigHelperService }, { type: Document, decorators: [{
203
201
  type: Inject,
204
202
  args: [DOCUMENT]
@@ -208,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
208
206
  type: Input,
209
207
  args: [{ required: true }]
210
208
  }] } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWFyY2gtY291bnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi90cmVlLXNlYXJjaC1jb3VudHMvdHJlZS1zZWFyY2gtY291bnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi90cmVlLXNlYXJjaC1jb3VudHMvdHJlZS1zZWFyY2gtY291bnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFN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b3ksIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1ldGFBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vbWV0YS1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWdIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vY29uZmlnLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IFF1YWxpdHlNYXRyaXggfSBmcm9tICcuLi9qYXZhLWFwaSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElubGluZVdvcmtlciB9IGZyb20gJy4vaW5saW5lLXdvcmtlcic7XG5pbXBvcnQgeyBBc3luY1BpcGUsIERPQ1VNRU5ULCBOZ0NsYXNzLCBOZ0Zvck9mLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2xvYWRpbmdfaW5kaWNhdG9yL3Byb2dyZXNzLXNwaW5uZXIvcHJvZ3Jlc3Mtc3Bpbm5lci5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFDb2x1bW4ge1xuICBpZDogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGxldmVsPzogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZXRhcXMyLXRyZWUtc2VhcmNoLWNvdW50cycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLXNlYXJjaC1jb3VudHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLXNlYXJjaC1jb3VudHMuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBBc3luY1BpcGUsXG4gICAgTmdDbGFzcyxcbiAgICBNYXRDYXJkTW9kdWxlLFxuICAgIE1hdFRvb2x0aXAsXG4gICAgTWF0SWNvbixcbiAgICBOZ0lmLFxuICAgIE5nRm9yT2YsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0U2xpZGVUb2dnbGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBQcm9ncmVzc1NwaW5uZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVTZWFyY2hDb3VudHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBkZWZhdWx0IG1heCBjb3VudCBvZiBjb2x1bW5zIHRoYXQgc2hvdWxkIGJlIHNob3duXG4gICAqL1xuICByZWFkb25seSBERUZBVUxUX0NPTFVNTl9MSU1JVCA9IDY7XG4gIHJlYWRvbmx5IENPTExFQ1RJT05fUE9TVEZJWCA9ICdfY29sbGVjdGlvbic7XG4gIHJlYWRvbmx5IFNFQVJDSF9QT1NURklYID0gJ19zZWFyY2gnO1xuICByZWFkb25seSBzZWFyY2hDb3VudHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hcDxzdHJpbmcsIG51bWJlcj4+KG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCkpO1xuICByZWFkb25seSBzaG93T0VSb25seSA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0cnVlLCBkaXNhYmxlZDogZmFsc2UgfSwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgc2hvd0FsbENvbHVtbnMgPSBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogZmFsc2UsIGRpc2FibGVkOiBmYWxzZSB9LCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuXG4gIC8vIGNvbnZlcnQgdGhpcyBpbiBhbiBPYmVzZXJ2YWJsZVxuICBwcm90ZWN0ZWQgbWF0ZXJpYWxDb3VudHM6IFF1YWxpdHlNYXRyaXg7XG4gIHB1YmxpYyBjb2x1bW5zOiBEYXRhQ29sdW1uW107XG4gIHByb3RlY3RlZCByb3dzTG9hZGVkOiBNYXA8c3RyaW5nLCBib29sZWFuPiA9IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpO1xuXG4gIGlzTG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgcHJpdmF0ZSB3b3JrZXI6IElubGluZVdvcmtlcjtcbiAgcHJpdmF0ZSBzZWxlY3RlZENvbGxlY3Rpb25JZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHBhZ2VUaXRsZTogc3RyaW5nO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHNldCBjb2xsZWN0aW9uSWQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xsZWN0aW9uSWQgPSBpZDtcbiAgICB0aGlzLmxvYWREYXRhRm9yQ29sbGVjdGlvbihpZCk7XG4gIH1cbiAgZ2V0IGNvbGxlY3Rpb25JZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkQ29sbGVjdGlvbklkO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXRhQXBpOiBNZXRhQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGVudjogQ29uZmlnSGVscGVyU2VydmljZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50XG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRPZXJGaWx0ZXIoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLndvcmtlcikge1xuICAgICAgdGhpcy53b3JrZXIudGVybWluYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsZXRUaGVXb3JrZXJTZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hDb3VudHMubmV4dChuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpKTtcbiAgICB0aGlzLnJvd3NMb2FkZWQuY2xlYXIoKTtcbiAgICBpZiAodGhpcy53b3JrZXIpIHtcbiAgICAgIHRoaXMud29ya2VyLnRlcm1pbmF0ZSgpO1xuICAgIH1cbiAgICAvLyBhcHBsaWNhdGlvbnMgdGhhdCB1c2UgdXMsIG1heSBwcm92aWRlIGEgcmVsYXRpdmUgVVJMIGZvciBhcGlQYXRoLlxuICAgIC8vIGJlY2F1c2UgdGhlIFdvcmtlciBydW5zIHVuZGVyIGEgOjpibG9iIHVybCwgd2UgaGF2ZSB0byByZWJhc2UgdGhlIFVSTCB0byB0aGUgc2VhcmNoIEFQSSB0byB0aGUgRG9jdW1lbnQsIHdlIHJ1biBpbi5cbiAgICBjb25zdCB3b3JrZXJVcmwgPSBuZXcgVVJMKHRoaXMuZW52LmFwaVBhdGgsIHRoaXMuZG9jdW1lbnQuYmFzZVVSSSkudG9TdHJpbmcoKTtcbiAgICB0aGlzLndvcmtlciA9IG5ldyBJbmxpbmVXb3JrZXIoeyBiYXNlUGF0aDogd29ya2VyVXJsIH0pO1xuICAgIHRoaXMud29ya2VyLm9ubWVzc2FnZSgpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIC8vIG9uZSBtZXNzYWdlIHBlciByb3dcbiAgICAgIGxldCB0b3RhbCA9IDA7XG5cbiAgICAgIE9iamVjdC5lbnRyaWVzKGV2ZW50LmRhdGEuZGF0YSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIC8vIGtleSBpcyB0aGUgbWF0ZXJpYWwgdHlwZSwgdmFsdWUgaXMgdGhlIGNvdW50XG4gICAgICAgIGNvbnN0IGNvbHVtbktleSA9IGtleSArICdfJyArIGV2ZW50LmRhdGEuY29sbGVjdGlvbklkO1xuICAgICAgICB0b3RhbCArPSB2YWx1ZSBhcyBudW1iZXI7XG4gICAgICAgIHRoaXMuc2VhcmNoQ291bnRzLnZhbHVlLnNldChjb2x1bW5LZXksIHZhbHVlIGFzIG51bWJlcik7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2VhcmNoQ291bnRzLnZhbHVlLnNldCgndG90YWxzXycgKyBldmVudC5kYXRhLmNvbGxlY3Rpb25JZCwgdG90YWwpO1xuICAgICAgdGhpcy5zZWFyY2hDb3VudHMubmV4dCh0aGlzLnNlYXJjaENvdW50cy52YWx1ZSk7XG4gICAgICB0aGlzLnJvd3NMb2FkZWQuc2V0KGV2ZW50LmRhdGEuY29sbGVjdGlvbklkLCB0cnVlKTtcbiAgICB9KTtcblxuICAgIHRoaXMud29ya2VyLm9uZXJyb3IoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2luIG1haW4gdGhyZWFkJywgZGF0YSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLm1hdGVyaWFsQ291bnRzLnJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICB0aGlzLndvcmtlci5wb3N0TWVzc2FnZSh7XG4gICAgICAgIGNvbGxlY3Rpb25JZDogcm93Lm1ldGEuaWQsXG4gICAgICAgIHNlYXJjaFRlcm06IHJvdy5tZXRhLmxhYmVsLFxuICAgICAgICBvZXJPbmx5OiB0aGlzLnNob3dPRVJvbmx5LnZhbHVlLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRPZXJGaWx0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93T0VSb25seS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdzaG93T0VSb25seSBjaGFuZ2VkJywgdGhpcy5jb2xsZWN0aW9uSWQpO1xuICAgICAgdGhpcy5sb2FkRGF0YUZvckNvbGxlY3Rpb24odGhpcy5jb2xsZWN0aW9uSWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkRGF0YUZvckNvbGxlY3Rpb24oY29sbGVjdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5tYXRlcmlhbENvdW50cyA9IGF3YWl0IHRoaXMubWV0YUFwaVxuICAgICAgLmdldE1hdGVyaWFsQ291bnRNYXRyaXhQZXJDb2xsZWN0aW9uKGNvbGxlY3Rpb25JZCwgdGhpcy5zaG93T0VSb25seS52YWx1ZSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgICAvL1RPRE86IHRyeSB0byBhdm9pZCB0byByZWNhbGN1bGF0ZSB0aGUgY29sdW1ucyBvbiBldmVyeSBjaGFuZ2VcbiAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLm1hdGVyaWFsQ291bnRzLmNvbHVtbnMubWFwKChjKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogYy5pZCxcbiAgICAgICAgaWNvbjogJ3RvdGFsJyxcbiAgICAgICAgbGFiZWw6IGMubGFiZWwsXG4gICAgICAgIGxldmVsOiBjLmxldmVsLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHRoaXMubGV0VGhlV29ya2VyU2VhcmNoKCk7XG5cbiAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0Q29sbGVjdGlvbklkRnJvbVZvY2FiVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXJsLnN1YnN0cmluZyh1cmwubGFzdEluZGV4T2YoJy8nKSArIDEpO1xuICB9XG5cbiAgb3BlbkNvbGxlY3Rpb24oaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25JZCA9IHRoaXMuZXh0cmFjdENvbGxlY3Rpb25JZEZyb21Wb2NhYlVybChpZCk7XG4gICAgd2luZG93Lm9wZW4oXG4gICAgICB0aGlzLmVudi5lZHVTaGFyaW5nUGF0aCArXG4gICAgICAgICcvY29tcG9uZW50cy9lZGl0b3JpYWwtZGVzay8/bW9kZT1yZW5kZXImdmlld1R5cGU9c2luZ2xlJmlkcz0nICtcbiAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KGNvbGxlY3Rpb25JZClcbiAgICApO1xuICB9XG5cbiAgc2VhcmNoSW5FZGl0b3IobWF0ZXJpYWxUeXBlOiBzdHJpbmcsIHNlYXJjaFRlcm06IHN0cmluZykge1xuICAgIGNvbnN0IGZpbHRlcnM6IGFueSA9IHt9O1xuICAgIGlmIChtYXRlcmlhbFR5cGUgIT09ICd0b3RhbHMnKSB7XG4gICAgICBmaWx0ZXJzWydjY206b2VoX2xydF9hZ2dyZWdhdGVkJ10gPSBbbWF0ZXJpYWxUeXBlXTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd09FUm9ubHkudmFsdWUpIHtcbiAgICAgIGZpbHRlcnNbJ3ZpcnR1YWw6ZWRpdG9yaWFsX2xpY2Vuc2UnXSA9IFsnb2VyJ107XG4gICAgfVxuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLmVudi5lZHVTaGFyaW5nUGF0aCArXG4gICAgICAnL2NvbXBvbmVudHMvZWRpdG9yaWFsLWRlc2s/bW9kZT1hdWRpdF9tZXRhcXMmJyArXG4gICAgICAncT0nICtcbiAgICAgIGVuY29kZVVSSUNvbXBvbmVudChzZWFyY2hUZXJtKSArXG4gICAgICAnJicgK1xuICAgICAgJ3RpdGxlPScgK1xuICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KCdNZXRhUVMgLSBTdWNoZXJnZWJuaXNzZSBmw7xyIFwiJyArIHNlYXJjaFRlcm0gKyAnXCInKSArXG4gICAgICAnJicgK1xuICAgICAgJ2ZpbHRlcnM9JyArXG4gICAgICBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZmlsdGVycykpICtcbiAgICAgICcmJyArXG4gICAgICAncGFuZWw9Y29udGVudHMmdGFiPTQmJztcblxuICAgIGNvbnN0IHJlZiA9IHdpbmRvdy5vcGVuKHVybCk7XG4gIH1cblxuICBzaG93Q29sbGVjdGlvbkl0ZW1zKGNvbGxlY3Rpb25JZDogc3RyaW5nLCBjb2xsZWN0aW9uTmFtZTogc3RyaW5nLCBtYXRlcmlhbFR5cGU6IHN0cmluZykge1xuICAgIGNvbnN0IGlkID0gdGhpcy5leHRyYWN0Q29sbGVjdGlvbklkRnJvbVZvY2FiVXJsKGNvbGxlY3Rpb25JZCk7XG4gICAgY29uc3QgZmlsdGVyczogYW55ID0ge1xuICAgICAgLy9cInZpcnR1YWw6Y29sbGVjdGlvbl9pZF9wcmltYXJ5XCI6IFtpZF0sIC8vd29ya3Mgb2Z0ZW4sIGJ1dCBub3QgYWx3YXlzXG4gICAgICAndmlydHVhbDptZXRhcXNfY29sbGVjdGlvbl9pZCc6IFtpZF0sXG4gICAgfTtcbiAgICBpZiAobWF0ZXJpYWxUeXBlICE9PSAndG90YWxzJykge1xuICAgICAgZmlsdGVyc1snY2NtOm9laF9scnRfYWdncmVnYXRlZCddID0gW21hdGVyaWFsVHlwZV07XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dPRVJvbmx5LnZhbHVlKSB7XG4gICAgICBmaWx0ZXJzWyd2aXJ0dWFsOmVkaXRvcmlhbF9saWNlbnNlJ10gPSBbJ29lciddO1xuICAgIH1cbiAgICB3aW5kb3cub3BlbihcbiAgICAgIHRoaXMuZW52LmVkdVNoYXJpbmdQYXRoICtcbiAgICAgICAgJy9jb21wb25lbnRzL2VkaXRvcmlhbC1kZXNrP21vZGU9YXVkaXRfbWV0YXFzJicgK1xuICAgICAgICAndGl0bGU9JyArXG4gICAgICAgIGVuY29kZVVSSUNvbXBvbmVudCgnTWV0YVFTIC0gU2FtbWx1bmdzaW5oYWx0ZSBmw7xyIFwiJyArIGNvbGxlY3Rpb25OYW1lICsgJ1wiJykgK1xuICAgICAgICAnJicgK1xuICAgICAgICAnZmlsdGVycz0nICtcbiAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGZpbHRlcnMpKSArXG4gICAgICAgICcmJyArXG4gICAgICAgICdwYW5lbD1jb250ZW50cyZ0YWI9NCYnXG4gICAgKTtcbiAgfVxuXG4gIGNvbHVtbklkZW50KF9pbmRleDogbnVtYmVyLCBjb2w6IHsgaWQ6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIGNvbC5pZDtcbiAgfVxuXG4gIGdldCBmaWx0ZXJlZENvbHVtbnMoKSB7XG4gICAgLy8gcmV0dXJuIGVpdGhlciBhbGwgb3IganVzdCBhIGdpdmVuIGFtb3VudCBvZiBjb2x1bW5zXG4gICAgcmV0dXJuIHRoaXMuc2hvd0FsbENvbHVtbnMudmFsdWUgPyB0aGlzLmNvbHVtbnMgOiB0aGlzLmNvbHVtbnMuc2xpY2UoMCwgdGhpcy5ERUZBVUxUX0NPTFVNTl9MSU1JVCk7XG4gIH1cblxuICBnZXQgY29sdW1uTmFtZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRDb2x1bW5zLm1hcCgoYykgPT4gYy5pZCk7XG4gIH1cblxuICBnZXQgdHlwZUNvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbk5hbWVzLm1hcCgoYykgPT4gYyArICdfdHlwZScpO1xuICB9XG5cbiAgZ2V0IGNvbGxlY3Rpb25Db2x1bW5zKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5OYW1lcy5tYXAoKGMpID0+IGMgKyB0aGlzLkNPTExFQ1RJT05fUE9TVEZJWCk7XG4gIH1cblxuICBnZXQgc2VhcmNoQ29sdW1ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uTmFtZXMubWFwKChjKSA9PiBjICsgdGhpcy5TRUFSQ0hfUE9TVEZJWCk7XG4gIH1cblxuICBnZXQgYWx0ZXJuYXRpbmdEYXRhQ29sdW1ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbkNvbHVtbnMuZmxhdE1hcCgoZSwgaSkgPT4gW2UsIHRoaXMuc2VhcmNoQ29sdW1uc1tpXV0pO1xuICB9XG59XG4iLCI8bWF0LWNhcmQgKm5nSWY9XCJwYWdlVGl0bGVcIiBhcHBlYXJhbmNlPVwicmFpc2VkXCI+XG48bWF0LWNhcmQtaGVhZGVyID5cbiAgPG1hdC1jYXJkLXRpdGxlPlxuICAgIE1hdGVyaWFsIGluIFNhbW1sdW5nZW57e2lzTG9hZGluZygpID8gXCI6IExhZGUgbmV1ZSBEYXRlbi5cIiA6IFwiXCJ9fTwvbWF0LWNhcmQtdGl0bGVcbiAgPlxuPC9tYXQtY2FyZC1oZWFkZXI+XG48L21hdC1jYXJkPlxuPG1hdC1jYXJkPlxuIDxtZXRhcXMyLXByb2dyZXNzLXNwaW5uZXIgW2Rpc3BsYXlQcm9ncmVzc1NwaW5uZXJdPVwiaXNMb2FkaW5nKClcIj48L21ldGFxczItcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgPHRhYmxlICpuZ0lmPVwiY29sdW1uc1wiIFtuZ0NsYXNzXT1cInsnd2hpbGUtbG9hZGluZyc6IGlzTG9hZGluZygpfVwiIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJtYXRlcmlhbENvdW50cy5yb3dzXCIgY2xhc3M9XCJxdWFsaXR5LW1hdHJpeFwiPlxuICAgIDwhLS0gRGVmaW5lIGNvbHVtbnMgb2YgdGFibGUgLS0+XG4gICAgPCEtLSBMYWJlbCBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsYWJlbC1jb2xcIiBzdGlja3k+XG4gICAgICA8dGggcm93c3Bhbj1cIjJcIiBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+U2FtbWx1bmdcbiAgICAgIDxkaXYgPlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBsYWJlbFBvc2l0aW9uPVwiYmVmb3JlXCIgY2xhc3M9XCJ0b2dnbGVcIiBbZm9ybUNvbnRyb2xdPVwic2hvd09FUm9ubHlcIiA+XG4gICAgICAgICAgemVpZ2UgbnVyIE9FUlxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgbGFiZWxQb3NpdGlvbj1cImJlZm9yZVwiIGNsYXNzPVwidG9nZ2xlXCIgW2Zvcm1Db250cm9sXT1cInNob3dBbGxDb2x1bW5zXCIgPlxuICAgICAgICAgIHplaWdlIGFsbGUgVHlwZW5cbiAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGRcbiAgICAgICAgbWF0LWNlbGxcbiAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgcm93XCJcbiAgICAgICAgbWF0VG9vbHRpcD1cInt7cm93Lm1ldGEuYWx0X2xhYmVsfX1cIlxuICAgICAgICBjbGFzcz1cImxhYmVsLWNvbCB7eydtYXQtY2VsbC1sZXZlbC0nICsgKHJvdy5tZXRhLmxldmVsKzEpfX1cIlxuICAgICAgPlxuICAgICAgICA8YSAoY2xpY2spPVwib3BlbkNvbGxlY3Rpb24ocm93Lm1ldGEuaWQpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cInJvdy5tZXRhLmxldmVsPD0xPydsYXllcnMnOidjaGlsZCdcIiAvPlxuICAgICAgICAgIHt7IHJvdy5tZXRhLmxhYmVsIH19XG4gICAgICAgIDwvYT5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBvbmUgY29sdW1uIGZvciB0aGUgTWF0ZXJpYWxUeXBlIHNwYW5uaW5nIHRoZSBjb2xsZWN0aW9uIGFuZCBzZWFyY2ggY29sdW1ucy0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiBmaWx0ZXJlZENvbHVtbnM7IHRyYWNrQnk6Y29sdW1uSWRlbnRcIiBbbWF0Q29sdW1uRGVmXT1cImNvbC5pZCArICdfdHlwZSdcIj5cbiAgICAgIDx0aCBbYXR0ci5jb2xzcGFuXT1cIjJcIiBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9J21hdC1jZWxsLWxldmVsLVwie3tjb2wubGV2ZWx9fVwiJyBtYXRUb29sdGlwPVwie3tjb2wubGFiZWx9fVwiID57e2NvbC5sYWJlbH19PC90aD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIC9zb3VyY2UgLS0+XG4gICAgPCEtLSBjb2xsZWN0aW9uIERhdGEgQ29sdW1ucyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZmlsdGVyZWRDb2x1bW5zOyB0cmFja0J5OmNvbHVtbklkZW50XCIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4uaWQgKyBDT0xMRUNUSU9OX1BPU1RGSVhcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0VG9vbHRpcD1cInt7Y29sdW1uLmxhYmVsfX1cIiA+aW4gU2FtbWx1bmc8L3RoPlxuICAgICAgPHRkIFtjbGFzcy5ub01hdGVyaWFsXT1cIiFyb3cuY291bnRzW2NvbHVtbi5pZF0/LnN1ZmZpY2llbnQgfHwgcm93LmNvdW50c1tjb2x1bW4uaWRdPy5zdWZmaWNpZW50IDw9IDFcIlxuICAgICAgICAgIFtjbGFzcy5mZXdNYXRlcmlhbHNdPVwiMSA8IHJvdy5jb3VudHNbY29sdW1uLmlkXT8uc3VmZmljaWVudCAmJiByb3cuY291bnRzW2NvbHVtbi5pZF0/LnN1ZmZpY2llbnQgPD0gM1wiXG4gICAgICAgICAgY2xhc3M9XCJjb2xsZWN0aW9uLWRhdGEtY2VsbFwiXG4gICAgICAgICAgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XG4gICAgICAgICAgICA8YSAoY2xpY2spPVwic2hvd0NvbGxlY3Rpb25JdGVtcyhyb3cubWV0YS5pZCwgcm93Lm1ldGEubGFiZWwsIGNvbHVtbi5pZClcIj5cbiAgICAgICAgICAgICAge3sgcm93LmNvdW50c1tjb2x1bW4uaWRdPy5zdWZmaWNpZW50IHx8ICcwJyB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIC9jb2xsZWN0aW9uIERhdGEgQ29sdW1ucyAtLT5cbiAgICA8IS0tIHNlYXJjaCBEYXRhIENvbHVtbnMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGZpbHRlcmVkQ29sdW1ucyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTpjb2x1bW5JZGVudFwiIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmlkICsgU0VBUkNIX1BPU1RGSVhcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+U3VjaGU8L3RoPlxuICAgICAgPHRkIGNsYXNzPVwic2VhcmNoLWRhdGEtY2VsbFwiIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiPlxuICAgICAgICA8YSAoY2xpY2spPVwic2VhcmNoSW5FZGl0b3IoY29sdW1uLmlkLCByb3cubWV0YS5sYWJlbClcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKCggc2VhcmNoQ291bnRzIHwgYXN5bmMpPy5oYXMoY29sdW1uLmlkICsgJ18nICsgcm93Lm1ldGEuaWQpICkgZWxzZSB6ZXJvT3JMb2FkaW5nXCI+XG4gICAgICAgICAgICB7eyAoc2VhcmNoQ291bnRzIHwgYXN5bmMpPy5nZXQoY29sdW1uLmlkICsgJ18nICsgcm93Lm1ldGEuaWQpIH19XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN6ZXJvT3JMb2FkaW5nPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvd3NMb2FkZWQuaGFzKHJvdy5tZXRhLmlkKSBlbHNlIGxvYWRpbmdCbG9ja1wiPiAwIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nQmxvY2s+XG4gICAgICAgICAgICBsb2FkaW5n4oCmXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9hPlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIC9zZWFyY2ggRGF0YSBDb2x1bW5zIC0tPlxuICAgICAgPCEtLSBHZW5lcmF0ZSBhY3R1YWwgdGFibGUgLS0+XG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJbJ2xhYmVsLWNvbCddLmNvbmNhdCggdHlwZUNvbHVtbnMgKTsgc3RpY2t5OiB0cnVlO1wiPjwvdHI+XG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJhbHRlcm5hdGluZ0RhdGFDb2x1bW5zOyBzdGlja3k6IHRydWU7XCI+PC90cj5cbiAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogWydsYWJlbC1jb2wnXS5jb25jYXQoYWx0ZXJuYXRpbmdEYXRhQ29sdW1ucylcIj48L3RyPlxuICA8L3RhYmxlPlxuPC9tYXQtY2FyZD4iXX0=
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1zZWFyY2gtY291bnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi90cmVlLXNlYXJjaC1jb3VudHMvdHJlZS1zZWFyY2gtY291bnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi90cmVlLXNlYXJjaC1jb3VudHMvdHJlZS1zZWFyY2gtY291bnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkVBQTZFLENBQUM7Ozs7Ozs7QUE0QnZILE1BQU0sT0FBTyx5QkFBeUI7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LGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDOytHQTVNVSx5QkFBeUIsbUZBbUMxQixRQUFRO21HQW5DUCx5QkFBeUIsd0pDekN0QyxpMUhBNEVBLHFnRERoREksZUFBZSwwQkFDZixTQUFTLDhDQUNULE9BQU8sbUZBQ1AsYUFBYSxtWkFDYixPQUFPLDJJQUNQLElBQUksNkZBQ0osT0FBTyxrSEFDUCxjQUFjLHVnQ0FDZCxjQUFjLHlVQUNkLG1CQUFtQiwwVEFDbkIsd0JBQXdCOzs0RkFHZix5QkFBeUI7a0JBbkJyQyxTQUFTOytCQUNFLDRCQUE0QixjQUMxQixJQUFJLFdBR1A7d0JBQ1AsZUFBZTt3QkFDZixTQUFTO3dCQUNULE9BQU87d0JBQ1AsYUFBYTt3QkFDYixPQUFPO3dCQUNQLElBQUk7d0JBQ0osT0FBTzt3QkFDUCxjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQix3QkFBd0I7cUJBQ3pCOzswQkFxQ0UsTUFBTTsyQkFBQyxRQUFRO3lDQWRsQixTQUFTO3NCQURSLEtBQUs7Z0JBSUYsWUFBWTtzQkFEZixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXRhQXBpU2VydmljZSB9IGZyb20gJy4uL21ldGEtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlnSGVscGVyU2VydmljZSB9IGZyb20gJy4uL2NvbmZpZy1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBRdWFsaXR5TWF0cml4IH0gZnJvbSAnLi4vamF2YS1hcGknO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbmxpbmVXb3JrZXIgfSBmcm9tICcuL2lubGluZS13b3JrZXInO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBET0NVTUVOVCwgTmdDbGFzcywgTmdGb3JPZiwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9sb2FkaW5nX2luZGljYXRvci9wcm9ncmVzcy1zcGlubmVyL3Byb2dyZXNzLXNwaW5uZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhQ29sdW1uIHtcbiAgaWQ6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBsZXZlbD86IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWV0YXFzMi10cmVlLXNlYXJjaC1jb3VudHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1zZWFyY2gtY291bnRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS1zZWFyY2gtY291bnRzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIE5nQ2xhc3MsXG4gICAgTWF0Q2FyZE1vZHVsZSxcbiAgICBNYXRJY29uLFxuICAgIE5nSWYsXG4gICAgTmdGb3JPZixcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRTbGlkZVRvZ2dsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFByb2dyZXNzU3Bpbm5lckNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHJlZVNlYXJjaENvdW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIGRlZmF1bHQgbWF4IGNvdW50IG9mIGNvbHVtbnMgdGhhdCBzaG91bGQgYmUgc2hvd25cbiAgICovXG4gIHJlYWRvbmx5IERFRkFVTFRfQ09MVU1OX0xJTUlUID0gNjtcbiAgcmVhZG9ubHkgQ09MTEVDVElPTl9QT1NURklYID0gJ19jb2xsZWN0aW9uJztcbiAgcmVhZG9ubHkgU0VBUkNIX1BPU1RGSVggPSAnX3NlYXJjaCc7XG4gIHJlYWRvbmx5IHNlYXJjaENvdW50cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPHN0cmluZywgbnVtYmVyPj4obmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKSk7XG4gIHJlYWRvbmx5IHNob3dPRVJvbmx5ID0gbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHRydWUsIGRpc2FibGVkOiBmYWxzZSB9LCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICByZWFkb25seSBzaG93QWxsQ29sdW1ucyA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiBmYWxzZSwgZGlzYWJsZWQ6IGZhbHNlIH0sIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG5cbiAgLy8gY29udmVydCB0aGlzIGluIGFuIE9iZXNlcnZhYmxlXG4gIHByb3RlY3RlZCBtYXRlcmlhbENvdW50czogUXVhbGl0eU1hdHJpeDtcbiAgcHVibGljIGNvbHVtbnM6IERhdGFDb2x1bW5bXTtcbiAgcHJvdGVjdGVkIHJvd3NMb2FkZWQ6IE1hcDxzdHJpbmcsIGJvb2xlYW4+ID0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KCk7XG5cbiAgaXNMb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICBwcml2YXRlIHdvcmtlcjogSW5saW5lV29ya2VyO1xuICBwcml2YXRlIHNlbGVjdGVkQ29sbGVjdGlvbklkOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcGFnZVRpdGxlOiBzdHJpbmc7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgc2V0IGNvbGxlY3Rpb25JZChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZENvbGxlY3Rpb25JZCA9IGlkO1xuICAgIHRoaXMubG9hZERhdGFGb3JDb2xsZWN0aW9uKGlkKTtcbiAgfVxuICBnZXQgY29sbGVjdGlvbklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRDb2xsZWN0aW9uSWQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1ldGFBcGk6IE1ldGFBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZW52OiBDb25maWdIZWxwZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnRcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdE9lckZpbHRlcigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMud29ya2VyKSB7XG4gICAgICB0aGlzLndvcmtlci50ZXJtaW5hdGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxldFRoZVdvcmtlclNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaENvdW50cy5uZXh0KG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCkpO1xuICAgIHRoaXMucm93c0xvYWRlZC5jbGVhcigpO1xuICAgIGlmICh0aGlzLndvcmtlcikge1xuICAgICAgdGhpcy53b3JrZXIudGVybWluYXRlKCk7XG4gICAgfVxuICAgIC8vIGFwcGxpY2F0aW9ucyB0aGF0IHVzZSB1cywgbWF5IHByb3ZpZGUgYSByZWxhdGl2ZSBVUkwgZm9yIGFwaVBhdGguXG4gICAgLy8gYmVjYXVzZSB0aGUgV29ya2VyIHJ1bnMgdW5kZXIgYSA6OmJsb2IgdXJsLCB3ZSBoYXZlIHRvIHJlYmFzZSB0aGUgVVJMIHRvIHRoZSBzZWFyY2ggQVBJIHRvIHRoZSBEb2N1bWVudCwgd2UgcnVuIGluLlxuICAgIGNvbnN0IHdvcmtlclVybCA9IG5ldyBVUkwodGhpcy5lbnYuYXBpUGF0aCwgdGhpcy5kb2N1bWVudC5iYXNlVVJJKS50b1N0cmluZygpO1xuICAgIHRoaXMud29ya2VyID0gbmV3IElubGluZVdvcmtlcih7IGJhc2VQYXRoOiB3b3JrZXJVcmwgfSk7XG4gICAgdGhpcy53b3JrZXIub25tZXNzYWdlKCkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgLy8gb25lIG1lc3NhZ2UgcGVyIHJvd1xuICAgICAgbGV0IHRvdGFsID0gMDtcblxuICAgICAgT2JqZWN0LmVudHJpZXMoZXZlbnQuZGF0YS5kYXRhKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgLy8ga2V5IGlzIHRoZSBtYXRlcmlhbCB0eXBlLCB2YWx1ZSBpcyB0aGUgY291bnRcbiAgICAgICAgY29uc3QgY29sdW1uS2V5ID0ga2V5ICsgJ18nICsgZXZlbnQuZGF0YS5jb2xsZWN0aW9uSWQ7XG4gICAgICAgIHRvdGFsICs9IHZhbHVlIGFzIG51bWJlcjtcbiAgICAgICAgdGhpcy5zZWFyY2hDb3VudHMudmFsdWUuc2V0KGNvbHVtbktleSwgdmFsdWUgYXMgbnVtYmVyKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zZWFyY2hDb3VudHMudmFsdWUuc2V0KCd0b3RhbHNfJyArIGV2ZW50LmRhdGEuY29sbGVjdGlvbklkLCB0b3RhbCk7XG4gICAgICB0aGlzLnNlYXJjaENvdW50cy5uZXh0KHRoaXMuc2VhcmNoQ291bnRzLnZhbHVlKTtcbiAgICAgIHRoaXMucm93c0xvYWRlZC5zZXQoZXZlbnQuZGF0YS5jb2xsZWN0aW9uSWQsIHRydWUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy53b3JrZXIub25lcnJvcigpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignaW4gbWFpbiB0aHJlYWQnLCBkYXRhKTtcbiAgICB9KTtcblxuICAgIHRoaXMubWF0ZXJpYWxDb3VudHMucm93cy5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgIHRoaXMud29ya2VyLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgY29sbGVjdGlvbklkOiByb3cubWV0YS5pZCxcbiAgICAgICAgc2VhcmNoVGVybTogcm93Lm1ldGEubGFiZWwsXG4gICAgICAgIG9lck9ubHk6IHRoaXMuc2hvd09FUm9ubHkudmFsdWUsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdE9lckZpbHRlcigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dPRVJvbmx5LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ3Nob3dPRVJvbmx5IGNoYW5nZWQnLCB0aGlzLmNvbGxlY3Rpb25JZCk7XG4gICAgICB0aGlzLmxvYWREYXRhRm9yQ29sbGVjdGlvbih0aGlzLmNvbGxlY3Rpb25JZCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWREYXRhRm9yQ29sbGVjdGlvbihjb2xsZWN0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLm1hdGVyaWFsQ291bnRzID0gYXdhaXQgdGhpcy5tZXRhQXBpXG4gICAgICAuZ2V0TWF0ZXJpYWxDb3VudE1hdHJpeFBlckNvbGxlY3Rpb24oY29sbGVjdGlvbklkLCB0aGlzLnNob3dPRVJvbmx5LnZhbHVlKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICAgIC8vVE9ETzogdHJ5IHRvIGF2b2lkIHRvIHJlY2FsY3VsYXRlIHRoZSBjb2x1bW5zIG9uIGV2ZXJ5IGNoYW5nZVxuICAgIHRoaXMuY29sdW1ucyA9IHRoaXMubWF0ZXJpYWxDb3VudHMuY29sdW1ucy5tYXAoKGMpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBjLmlkLFxuICAgICAgICBpY29uOiAndG90YWwnLFxuICAgICAgICBsYWJlbDogYy5sYWJlbCxcbiAgICAgICAgbGV2ZWw6IGMubGV2ZWwsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy5sZXRUaGVXb3JrZXJTZWFyY2goKTtcblxuICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RDb2xsZWN0aW9uSWRGcm9tVm9jYWJVcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB1cmwuc3Vic3RyaW5nKHVybC5sYXN0SW5kZXhPZignLycpICsgMSk7XG4gIH1cblxuICBvcGVuQ29sbGVjdGlvbihpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgY29sbGVjdGlvbklkID0gdGhpcy5leHRyYWN0Q29sbGVjdGlvbklkRnJvbVZvY2FiVXJsKGlkKTtcbiAgICB3aW5kb3cub3BlbihcbiAgICAgIHRoaXMuZW52LmVkdVNoYXJpbmdQYXRoICtcbiAgICAgICAgJy9jb21wb25lbnRzL2VkaXRvcmlhbC1kZXNrLz9tb2RlPXJlbmRlciZ2aWV3VHlwZT1zaW5nbGUmaWRzPScgK1xuICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoY29sbGVjdGlvbklkKVxuICAgICk7XG4gIH1cblxuICBzZWFyY2hJbkVkaXRvcihtYXRlcmlhbFR5cGU6IHN0cmluZywgc2VhcmNoVGVybTogc3RyaW5nKSB7XG4gICAgY29uc3QgZmlsdGVyczogYW55ID0ge307XG4gICAgaWYgKG1hdGVyaWFsVHlwZSAhPT0gJ3RvdGFscycpIHtcbiAgICAgIGZpbHRlcnNbJ2NjbTpvZWhfbHJ0X2FnZ3JlZ2F0ZWQnXSA9IFttYXRlcmlhbFR5cGVdO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93T0VSb25seS52YWx1ZSkge1xuICAgICAgZmlsdGVyc1sndmlydHVhbDplZGl0b3JpYWxfbGljZW5zZSddID0gWydvZXInXTtcbiAgICB9XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuZW52LmVkdVNoYXJpbmdQYXRoICtcbiAgICAgICcvY29tcG9uZW50cy9lZGl0b3JpYWwtZGVzaz9tb2RlPWF1ZGl0X21ldGFxcyYnICtcbiAgICAgICdxPScgK1xuICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KHNlYXJjaFRlcm0pICtcbiAgICAgICcmJyArXG4gICAgICAndGl0bGU9JyArXG4gICAgICBlbmNvZGVVUklDb21wb25lbnQoJ01ldGFRUyAtIFN1Y2hlcmdlYm5pc3NlIGbDvHIgXCInICsgc2VhcmNoVGVybSArICdcIicpICtcbiAgICAgICcmJyArXG4gICAgICAnZmlsdGVycz0nICtcbiAgICAgIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShmaWx0ZXJzKSkgK1xuICAgICAgJyYnICtcbiAgICAgICdwYW5lbD1jb250ZW50cyZ0YWI9NCYnO1xuXG4gICAgd2luZG93Lm9wZW4odXJsKTtcbiAgfVxuXG4gIHNob3dDb2xsZWN0aW9uSXRlbXMoY29sbGVjdGlvbklkOiBzdHJpbmcsIGNvbGxlY3Rpb25OYW1lOiBzdHJpbmcsIG1hdGVyaWFsVHlwZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmV4dHJhY3RDb2xsZWN0aW9uSWRGcm9tVm9jYWJVcmwoY29sbGVjdGlvbklkKTtcbiAgICBjb25zdCBmaWx0ZXJzOiBhbnkgPSB7XG4gICAgICAvL1widmlydHVhbDpjb2xsZWN0aW9uX2lkX3ByaW1hcnlcIjogW2lkXSwgLy93b3JrcyBvZnRlbiwgYnV0IG5vdCBhbHdheXNcbiAgICAgICd2aXJ0dWFsOm1ldGFxc19jb2xsZWN0aW9uX2lkJzogW2lkXSxcbiAgICB9O1xuICAgIGlmIChtYXRlcmlhbFR5cGUgIT09ICd0b3RhbHMnKSB7XG4gICAgICBmaWx0ZXJzWydjY206b2VoX2xydF9hZ2dyZWdhdGVkJ10gPSBbbWF0ZXJpYWxUeXBlXTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd09FUm9ubHkudmFsdWUpIHtcbiAgICAgIGZpbHRlcnNbJ3ZpcnR1YWw6ZWRpdG9yaWFsX2xpY2Vuc2UnXSA9IFsnb2VyJ107XG4gICAgfVxuICAgIHdpbmRvdy5vcGVuKFxuICAgICAgdGhpcy5lbnYuZWR1U2hhcmluZ1BhdGggK1xuICAgICAgICAnL2NvbXBvbmVudHMvZWRpdG9yaWFsLWRlc2s/bW9kZT1hdWRpdF9tZXRhcXMmJyArXG4gICAgICAgICd0aXRsZT0nICtcbiAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KCdNZXRhUVMgLSBTYW1tbHVuZ3NpbmhhbHRlIGbDvHIgXCInICsgY29sbGVjdGlvbk5hbWUgKyAnXCInKSArXG4gICAgICAgICcmJyArXG4gICAgICAgICdmaWx0ZXJzPScgK1xuICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZmlsdGVycykpICtcbiAgICAgICAgJyYnICtcbiAgICAgICAgJ3BhbmVsPWNvbnRlbnRzJnRhYj00JidcbiAgICApO1xuICB9XG5cbiAgY29sdW1uSWRlbnQoX2luZGV4OiBudW1iZXIsIGNvbDogeyBpZDogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gY29sLmlkO1xuICB9XG5cbiAgZ2V0IGZpbHRlcmVkQ29sdW1ucygpIHtcbiAgICAvLyByZXR1cm4gZWl0aGVyIGFsbCBvciBqdXN0IGEgZ2l2ZW4gYW1vdW50IG9mIGNvbHVtbnNcbiAgICByZXR1cm4gdGhpcy5zaG93QWxsQ29sdW1ucy52YWx1ZSA/IHRoaXMuY29sdW1ucyA6IHRoaXMuY29sdW1ucy5zbGljZSgwLCB0aGlzLkRFRkFVTFRfQ09MVU1OX0xJTUlUKTtcbiAgfVxuXG4gIGdldCBjb2x1bW5OYW1lcygpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZENvbHVtbnMubWFwKChjKSA9PiBjLmlkKTtcbiAgfVxuXG4gIGdldCB0eXBlQ29sdW1ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uTmFtZXMubWFwKChjKSA9PiBjICsgJ190eXBlJyk7XG4gIH1cblxuICBnZXQgY29sbGVjdGlvbkNvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbk5hbWVzLm1hcCgoYykgPT4gYyArIHRoaXMuQ09MTEVDVElPTl9QT1NURklYKTtcbiAgfVxuXG4gIGdldCBzZWFyY2hDb2x1bW5zKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5OYW1lcy5tYXAoKGMpID0+IGMgKyB0aGlzLlNFQVJDSF9QT1NURklYKTtcbiAgfVxuXG4gIGdldCBhbHRlcm5hdGluZ0RhdGFDb2x1bW5zKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uQ29sdW1ucy5mbGF0TWFwKChlLCBpKSA9PiBbZSwgdGhpcy5zZWFyY2hDb2x1bW5zW2ldXSk7XG4gIH1cbn1cbiIsIjxtYXQtY2FyZCBhcHBlYXJhbmNlPVwicmFpc2VkXCI+XG4gIDxtYXQtY2FyZC1oZWFkZXIgKm5nSWY9XCJwYWdlVGl0bGVcIj5cbiAgICA8bWF0LWNhcmQtdGl0bGU+TWF0ZXJpYWwgaW4gU2FtbWx1bmdlbnt7aXNMb2FkaW5nKCkgPyBcIjogTGFkZSBuZXVlIERhdGVuLlwiIDogXCJcIn19PC9tYXQtY2FyZC10aXRsZT5cbiAgPC9tYXQtY2FyZC1oZWFkZXI+XG4gIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwidG9vbGJhclwiPlxuICAgIDxkaXYgc3R5bGU9XCJmbGV4OiAxIDEgYXV0bztcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uYmFyXCI+XG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBsYWJlbFBvc2l0aW9uPVwiYmVmb3JlXCIgY2xhc3M9XCJ0b2dnbGVcIiBbZm9ybUNvbnRyb2xdPVwic2hvd09FUm9ubHlcIj5cbiAgICAgICAgemVpZ2UgbnVyIE9FUlxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgPG1hdC1zbGlkZS10b2dnbGUgbGFiZWxQb3NpdGlvbj1cImJlZm9yZVwiIGNsYXNzPVwidG9nZ2xlXCIgW2Zvcm1Db250cm9sXT1cInNob3dBbGxDb2x1bW5zXCI+XG4gICAgICAgIHplaWdlIGFsbGUgVHlwZW5cbiAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cbjxtYXQtY2FyZD5cbiA8bWV0YXFzMi1wcm9ncmVzcy1zcGlubmVyIFtkaXNwbGF5UHJvZ3Jlc3NTcGlubmVyXT1cImlzTG9hZGluZygpXCI+PC9tZXRhcXMyLXByb2dyZXNzLXNwaW5uZXI+XG4gIDx0YWJsZSAqbmdJZj1cImNvbHVtbnNcIiBbbmdDbGFzc109XCJ7J3doaWxlLWxvYWRpbmcnOiBpc0xvYWRpbmcoKX1cIiBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwibWF0ZXJpYWxDb3VudHMucm93c1wiIGNsYXNzPVwicXVhbGl0eS1tYXRyaXhcIj5cbiAgICA8IS0tIERlZmluZSBjb2x1bW5zIG9mIHRhYmxlIC0tPlxuICAgIDwhLS0gTGFiZWwgQ29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibGFiZWwtY29sXCIgc3RpY2t5PlxuICAgICAgPHRoIHJvd3NwYW49XCIyXCIgbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlNhbW1sdW5nPC90aD5cbiAgICAgIDx0ZFxuICAgICAgICBtYXQtY2VsbFxuICAgICAgICAqbWF0Q2VsbERlZj1cImxldCByb3dcIlxuICAgICAgICBjbGFzcz1cImxhYmVsLWNvbCB7eydtYXQtY2VsbC1sZXZlbC0nICsgKHJvdy5tZXRhLmxldmVsKzEpfX1cIlxuICAgICAgPlxuICAgICAgICA8YSAoY2xpY2spPVwib3BlbkNvbGxlY3Rpb24ocm93Lm1ldGEuaWQpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cInJvdy5tZXRhLmxldmVsPD0xPydsYXllcnMnOidjaGlsZCdcIiAvPlxuICAgICAgICAgIHt7IHJvdy5tZXRhLmxhYmVsIH19XG4gICAgICAgIDwvYT5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBvbmUgY29sdW1uIGZvciB0aGUgTWF0ZXJpYWxUeXBlIHNwYW5uaW5nIHRoZSBjb2xsZWN0aW9uIGFuZCBzZWFyY2ggY29sdW1ucy0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiBmaWx0ZXJlZENvbHVtbnM7IHRyYWNrQnk6Y29sdW1uSWRlbnRcIiBbbWF0Q29sdW1uRGVmXT1cImNvbC5pZCArICdfdHlwZSdcIj5cbiAgICAgIDx0aCBbYXR0ci5jb2xzcGFuXT1cIjJcIiBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJtYXQtY2VsbC1sZXZlbC17e2NvbC5sZXZlbH19XCI+e3tjb2wubGFiZWx9fTwvdGg+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSAvc291cmNlIC0tPlxuICAgIDwhLS0gY29sbGVjdGlvbiBEYXRhIENvbHVtbnMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGZpbHRlcmVkQ29sdW1uczsgdHJhY2tCeTpjb2x1bW5JZGVudFwiIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmlkICsgQ09MTEVDVElPTl9QT1NURklYXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPmluIFNhbW1sdW5nPC90aD5cbiAgICAgIDx0ZCBbY2xhc3Mubm9NYXRlcmlhbF09XCIhcm93LmNvdW50c1tjb2x1bW4uaWRdPy5zdWZmaWNpZW50IHx8IHJvdy5jb3VudHNbY29sdW1uLmlkXT8uc3VmZmljaWVudCA8PSAxXCJcbiAgICAgICAgICBbY2xhc3MuZmV3TWF0ZXJpYWxzXT1cIjEgPCByb3cuY291bnRzW2NvbHVtbi5pZF0/LnN1ZmZpY2llbnQgJiYgcm93LmNvdW50c1tjb2x1bW4uaWRdPy5zdWZmaWNpZW50IDw9IDNcIlxuICAgICAgICAgIGNsYXNzPVwiY29sbGVjdGlvbi1kYXRhLWNlbGxcIlxuICAgICAgICAgIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiPlxuICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNob3dDb2xsZWN0aW9uSXRlbXMocm93Lm1ldGEuaWQsIHJvdy5tZXRhLmxhYmVsLCBjb2x1bW4uaWQpXCI+XG4gICAgICAgICAgICAgIHt7IHJvdy5jb3VudHNbY29sdW1uLmlkXT8uc3VmZmljaWVudCB8fCAnMCcgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSAvY29sbGVjdGlvbiBEYXRhIENvbHVtbnMgLS0+XG4gICAgPCEtLSBzZWFyY2ggRGF0YSBDb2x1bW5zIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBmaWx0ZXJlZENvbHVtbnMgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6Y29sdW1uSWRlbnRcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5pZCArIFNFQVJDSF9QT1NURklYXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlN1Y2hlPC90aD5cbiAgICAgIDx0ZCBjbGFzcz1cInNlYXJjaC1kYXRhLWNlbGxcIiBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cbiAgICAgICAgPGEgKGNsaWNrKT1cInNlYXJjaEluRWRpdG9yKGNvbHVtbi5pZCwgcm93Lm1ldGEubGFiZWwpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIigoIHNlYXJjaENvdW50cyB8IGFzeW5jKT8uaGFzKGNvbHVtbi5pZCArICdfJyArIHJvdy5tZXRhLmlkKSApIGVsc2UgemVyb09yTG9hZGluZ1wiPlxuICAgICAgICAgICAge3sgKHNlYXJjaENvdW50cyB8IGFzeW5jKT8uZ2V0KGNvbHVtbi5pZCArICdfJyArIHJvdy5tZXRhLmlkKSB9fVxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjemVyb09yTG9hZGluZz5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3dzTG9hZGVkLmhhcyhyb3cubWV0YS5pZCkgZWxzZSBsb2FkaW5nQmxvY2tcIj4gMCA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGluZ0Jsb2NrPlxuICAgICAgICAgICAgbG9hZGluZ+KAplxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSAvc2VhcmNoIERhdGEgQ29sdW1ucyAtLT5cbiAgICAgIDwhLS0gR2VuZXJhdGUgYWN0dWFsIHRhYmxlIC0tPlxuICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiWydsYWJlbC1jb2wnXS5jb25jYXQoIHR5cGVDb2x1bW5zICk7IHN0aWNreTogdHJ1ZTtcIj48L3RyPlxuICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiYWx0ZXJuYXRpbmdEYXRhQ29sdW1uczsgc3RpY2t5OiB0cnVlO1wiPjwvdHI+XG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IFsnbGFiZWwtY29sJ10uY29uY2F0KGFsdGVybmF0aW5nRGF0YUNvbHVtbnMpXCI+PC90cj5cbiAgPC90YWJsZT5cbjwvbWF0LWNhcmQ+XG4iXX0=
@@ -2,14 +2,16 @@
2
2
  * Public API Surface of ng-meta-widgets-lib
3
3
  */
4
4
  export * from './lib/ng-meta-widgets-lib.module';
5
- export * from '././lib/tree-collection-details/tree-collection-details.component';
6
- export * from '././lib/tree-search-counts/tree-search-counts.component';
5
+ export * from './lib/tree-collection-details/tree-collection-details.component';
6
+ export * from './lib/tree-search-counts/tree-search-counts.component';
7
7
  export * from './lib/config-helper.service';
8
8
  export * from './lib/components/quality-matrix/quality_matrix';
9
9
  export * from './lib/components/node-list/node-list.component';
10
10
  export * from './lib/components/collection-issues/collection-issues.component';
11
11
  export * from './lib/components/material-issues/material-issues.component';
12
12
  export * from './lib/collection-count-history/collection-count-history.component';
13
- export * from './lib/materialtypes-by-sources/materialtypes-by-sources.component';
14
13
  export * from './lib/counts-with-history/counts-with-history.component';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMseURBQXlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5nLW1ldGEtd2lkZ2V0cy1saWJcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZy1tZXRhLXdpZGdldHMtbGliLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuLy4vbGliL3RyZWUtY29sbGVjdGlvbi1kZXRhaWxzL3RyZWUtY29sbGVjdGlvbi1kZXRhaWxzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuLy4vbGliL3RyZWUtc2VhcmNoLWNvdW50cy90cmVlLXNlYXJjaC1jb3VudHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZy1oZWxwZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3F1YWxpdHktbWF0cml4L3F1YWxpdHlfbWF0cml4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbm9kZS1saXN0L25vZGUtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb2xsZWN0aW9uLWlzc3Vlcy9jb2xsZWN0aW9uLWlzc3Vlcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tYXRlcmlhbC1pc3N1ZXMvbWF0ZXJpYWwtaXNzdWVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xsZWN0aW9uLWNvdW50LWhpc3RvcnkvY29sbGVjdGlvbi1jb3VudC1oaXN0b3J5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRlcmlhbHR5cGVzLWJ5LXNvdXJjZXMvbWF0ZXJpYWx0eXBlcy1ieS1zb3VyY2VzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3VudHMtd2l0aC1oaXN0b3J5L2NvdW50cy13aXRoLWhpc3RvcnkuY29tcG9uZW50JztcbiJdfQ==
14
+ export * from './lib/core/tooltip.service';
15
+ export * from './lib/components/donut-chart-tooltip/donut-chart-tooltip.component';
16
+ export * from './web-components';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZy1tZXRhLXdpZGdldHMtbGliXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmctbWV0YS13aWRnZXRzLWxpYi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHJlZS1jb2xsZWN0aW9uLWRldGFpbHMvdHJlZS1jb2xsZWN0aW9uLWRldGFpbHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RyZWUtc2VhcmNoLWNvdW50cy90cmVlLXNlYXJjaC1jb3VudHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZy1oZWxwZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3F1YWxpdHktbWF0cml4L3F1YWxpdHlfbWF0cml4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbm9kZS1saXN0L25vZGUtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb2xsZWN0aW9uLWlzc3Vlcy9jb2xsZWN0aW9uLWlzc3Vlcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tYXRlcmlhbC1pc3N1ZXMvbWF0ZXJpYWwtaXNzdWVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xsZWN0aW9uLWNvdW50LWhpc3RvcnkvY29sbGVjdGlvbi1jb3VudC1oaXN0b3J5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3VudHMtd2l0aC1oaXN0b3J5L2NvdW50cy13aXRoLWhpc3RvcnkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvdG9vbHRpcC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZG9udXQtY2hhcnQtdG9vbHRpcC9kb251dC1jaGFydC10b29sdGlwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3dlYi1jb21wb25lbnRzJztcbiJdfQ==