ngx-edu-sharing-metaqs2 0.9.53 → 0.9.54

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 (76) hide show
  1. package/README.md +1 -14
  2. package/fesm2022/ngx-edu-sharing-metaqs2.mjs +195 -197
  3. package/fesm2022/ngx-edu-sharing-metaqs2.mjs.map +1 -1
  4. package/lib/components/collection-issues/collection-issues.component.d.ts +1 -1
  5. package/lib/components/donut-chart-tooltip/donut-chart-tooltip.component.d.ts +1 -1
  6. package/lib/components/filter/quality-matrix-filter.component.d.ts +4 -6
  7. package/lib/components/material-issues/material-issues.component.d.ts +1 -1
  8. package/lib/components/node-entry/node-entry.component.d.ts +1 -1
  9. package/lib/components/node-list/node-list.component.d.ts +1 -1
  10. package/lib/components/quality-matrix/quality_matrix.d.ts +1 -3
  11. package/lib/counts-with-history/counts-with-history.component.d.ts +1 -1
  12. package/lib/ng-meta-widgets-lib.module.d.ts +34 -37
  13. package/lib/node-image-url.pipe.d.ts +1 -1
  14. package/lib/wrap-observable.pipe.d.ts +1 -1
  15. package/package.json +6 -8
  16. package/esm2022/lib/collection-count-history/collection-count-history.component.mjs +0 -131
  17. package/esm2022/lib/collection-count-history/monthpicker/monthpicker.component.mjs +0 -114
  18. package/esm2022/lib/components/collection-issues/collection-issues.component.mjs +0 -23
  19. package/esm2022/lib/components/donut-chart/donut-chart.component.mjs +0 -85
  20. package/esm2022/lib/components/donut-chart/donut-chart.model.mjs +0 -2
  21. package/esm2022/lib/components/donut-chart/donut-chart.pipe.mjs +0 -50
  22. package/esm2022/lib/components/donut-chart-tooltip/donut-chart-tooltip.component.mjs +0 -79
  23. package/esm2022/lib/components/editorial-link-service/editorial-link.service.mjs +0 -169
  24. package/esm2022/lib/components/filter/datepicker/datepicker.component.mjs +0 -99
  25. package/esm2022/lib/components/filter/quality-matrix-filter.component.mjs +0 -47
  26. package/esm2022/lib/components/loading_indicator/overlay/overlay.service.mjs +0 -41
  27. package/esm2022/lib/components/loading_indicator/progress-spinner/progress-spinner.component.mjs +0 -65
  28. package/esm2022/lib/components/material-issues/material-issues.component.mjs +0 -23
  29. package/esm2022/lib/components/node-entry/node-entry.component.mjs +0 -35
  30. package/esm2022/lib/components/node-list/node-list.component.mjs +0 -112
  31. package/esm2022/lib/components/quality-matrix/quality_matrix.mjs +0 -413
  32. package/esm2022/lib/components/quality-matrix/scroll-marker.directive.mjs +0 -17
  33. package/esm2022/lib/config-helper.service.mjs +0 -32
  34. package/esm2022/lib/core/svg-icons.service.mjs +0 -44
  35. package/esm2022/lib/core/tooltip.service.mjs +0 -146
  36. package/esm2022/lib/counts-with-history/counts-with-history.component.mjs +0 -203
  37. package/esm2022/lib/java-api/api/api.mjs +0 -12
  38. package/esm2022/lib/java-api/api/authProxyController.service.mjs +0 -107
  39. package/esm2022/lib/java-api/api/collectionAPI.service.mjs +0 -409
  40. package/esm2022/lib/java-api/api/editorsAPI.service.mjs +0 -157
  41. package/esm2022/lib/java-api/api/filterAPI.service.mjs +0 -237
  42. package/esm2022/lib/java-api/api/replicationSourceAPI.service.mjs +0 -230
  43. package/esm2022/lib/java-api/api.base.service.mjs +0 -66
  44. package/esm2022/lib/java-api/api.module.mjs +0 -40
  45. package/esm2022/lib/java-api/configuration.mjs +0 -103
  46. package/esm2022/lib/java-api/encoder.mjs +0 -19
  47. package/esm2022/lib/java-api/index.mjs +0 -7
  48. package/esm2022/lib/java-api/model/collectionWithMissingAttributes.mjs +0 -11
  49. package/esm2022/lib/java-api/model/count.mjs +0 -11
  50. package/esm2022/lib/java-api/model/eduCollection.mjs +0 -11
  51. package/esm2022/lib/java-api/model/filter.mjs +0 -2
  52. package/esm2022/lib/java-api/model/filterValue.mjs +0 -11
  53. package/esm2022/lib/java-api/model/materialCountDto.mjs +0 -2
  54. package/esm2022/lib/java-api/model/materialCountFilter.mjs +0 -11
  55. package/esm2022/lib/java-api/model/materialWithMissingAttributes.mjs +0 -11
  56. package/esm2022/lib/java-api/model/matrixRowWithCounts.mjs +0 -2
  57. package/esm2022/lib/java-api/model/matrixWithCounts.mjs +0 -2
  58. package/esm2022/lib/java-api/model/missingAttributeResult.mjs +0 -2
  59. package/esm2022/lib/java-api/model/models.mjs +0 -16
  60. package/esm2022/lib/java-api/model/qualityMatrix.mjs +0 -2
  61. package/esm2022/lib/java-api/model/qualityMatrixHeader.mjs +0 -11
  62. package/esm2022/lib/java-api/model/qualityMatrixReplicationSourceCounts.mjs +0 -11
  63. package/esm2022/lib/java-api/model/qualityMatrixRow.mjs +0 -2
  64. package/esm2022/lib/java-api/param.mjs +0 -2
  65. package/esm2022/lib/java-api/variables.mjs +0 -9
  66. package/esm2022/lib/meta-api.service.mjs +0 -77
  67. package/esm2022/lib/ng-meta-widgets-lib.module.mjs +0 -198
  68. package/esm2022/lib/node-image-url.pipe.mjs +0 -29
  69. package/esm2022/lib/tree-collection-details/tree-collection-details.component.mjs +0 -87
  70. package/esm2022/lib/tree-license/tree-license.component.mjs +0 -136
  71. package/esm2022/lib/tree-search-counts/inline-worker.mjs +0 -102
  72. package/esm2022/lib/tree-search-counts/tree-search-counts.component.mjs +0 -209
  73. package/esm2022/lib/wrap-observable.pipe.mjs +0 -21
  74. package/esm2022/ngx-edu-sharing-metaqs2.mjs +0 -5
  75. package/esm2022/public-api.mjs +0 -18
  76. package/esm2022/web-components.mjs +0 -36
@@ -8,5 +8,5 @@ export declare class CollectionIssuesComponent implements OnInit {
8
8
  constructor(filterAPIService: FilterAPIService);
9
9
  ngOnInit(): Promise<void>;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<CollectionIssuesComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<CollectionIssuesComponent, "metaqs2-collection-issues", never, {}, {}, never, never, false, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<CollectionIssuesComponent, "metaqs2-collection-issues", never, {}, {}, never, never, true, never>;
12
12
  }
@@ -10,5 +10,5 @@ export declare class DonutChartTooltipComponent implements DataTooltip<DonutChar
10
10
  animationState: boolean;
11
11
  readonly data: DonutChartTooltipData;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<DonutChartTooltipComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<DonutChartTooltipComponent, "metaqs2-donut-chart-tooltip", never, {}, {}, never, never, false, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<DonutChartTooltipComponent, "metaqs2-donut-chart-tooltip", never, {}, {}, never, never, true, never>;
14
14
  }
@@ -1,6 +1,5 @@
1
1
  import { FormControl } from '@angular/forms';
2
2
  import { FilterValue } from '../../java-api';
3
- import { Observable } from 'rxjs';
4
3
  import * as i0 from "@angular/core";
5
4
  /**
6
5
  * This component wraps a mat-select.
@@ -13,10 +12,9 @@ import * as i0 from "@angular/core";
13
12
  export declare class QualityMatrixFilterComponent {
14
13
  options: FilterValue[] | undefined | null;
15
14
  inputFormControl: FormControl<any>;
16
- label: string;
17
- multiple: boolean;
18
- changedFilters: Observable<any>;
19
- optionIdent(_index: number, option: FilterValue): string;
15
+ label: import("@angular/core").InputSignal<string | undefined>;
16
+ multiple: import("@angular/core").InputSignal<boolean>;
17
+ changedFilters: import("@angular/core").OutputRef<any>;
20
18
  static ɵfac: i0.ɵɵFactoryDeclaration<QualityMatrixFilterComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<QualityMatrixFilterComponent, "metaqs2-qm-filter", never, { "options": { "alias": "options"; "required": false; }; "inputFormControl": { "alias": "inputFormControl"; "required": false; }; "label": { "alias": "label"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; }, { "changedFilters": "changedFilters"; }, never, never, true, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<QualityMatrixFilterComponent, "metaqs2-qm-filter", never, { "options": { "alias": "options"; "required": false; }; "inputFormControl": { "alias": "inputFormControl"; "required": false; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; }, { "changedFilters": "changedFilters"; }, never, never, true, never>;
22
20
  }
@@ -8,5 +8,5 @@ export declare class MaterialIssuesComponent implements OnInit {
8
8
  constructor(filterAPIService: FilterAPIService);
9
9
  ngOnInit(): Promise<void>;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<MaterialIssuesComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<MaterialIssuesComponent, "metaqs2-material-issues", never, {}, {}, never, never, false, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<MaterialIssuesComponent, "metaqs2-material-issues", never, {}, {}, never, never, true, never>;
12
12
  }
@@ -9,5 +9,5 @@ export declare class NodeEntryComponent {
9
9
  openNode(node: MaterialWithMissingAttributes | CollectionWithMissingAttributes): void;
10
10
  isCollectionCount(): boolean;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeEntryComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<NodeEntryComponent, "metaqs2-node-entry", never, { "node": { "alias": "node"; "required": false; }; }, { "edit": "edit"; }, never, never, false, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<NodeEntryComponent, "metaqs2-node-entry", never, { "node": { "alias": "node"; "required": false; }; }, { "edit": "edit"; }, never, never, true, never>;
13
13
  }
@@ -36,5 +36,5 @@ export declare class NodeListComponent implements OnChanges, OnDestroy {
36
36
  editNode(node: MaterialWithMissingAttributes | CollectionWithMissingAttributes): void;
37
37
  filterCount(): void;
38
38
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeListComponent, never>;
39
- static ɵcmp: i0.ɵɵComponentDeclaration<NodeListComponent, "metaqs2-node-list", never, { "mode": { "alias": "mode"; "required": false; }; "type": { "alias": "type"; "required": false; }; "collectionId": { "alias": "collectionId"; "required": false; }; }, { "countChanged": "countChanged"; }, never, never, false, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<NodeListComponent, "metaqs2-node-list", never, { "mode": { "alias": "mode"; "required": false; }; "type": { "alias": "type"; "required": false; }; "collectionId": { "alias": "collectionId"; "required": false; }; }, { "countChanged": "countChanged"; }, never, never, true, never>;
40
40
  }
@@ -6,7 +6,6 @@ import { FormControl, FormGroup, FormRecord } from '@angular/forms';
6
6
  import { EditorialLinkService } from '../editorial-link-service/editorial-link.service';
7
7
  import { DateTime } from 'luxon';
8
8
  import { DonutSlice } from '../donut-chart/donut-chart.model';
9
- import { KeyValue } from '@angular/common';
10
9
  import { Overlay } from '@angular/cdk/overlay';
11
10
  import { TooltipService } from '../../core/tooltip.service';
12
11
  import * as i0 from "@angular/core";
@@ -21,7 +20,6 @@ export declare class QualityMatrixComponent implements OnInit, AfterViewChecked
21
20
  private readonly scrollWidth;
22
21
  readonly isLeftScrollable: import("@angular/core").Signal<boolean>;
23
22
  readonly isRightScrollable: import("@angular/core").Signal<boolean | undefined>;
24
- private readonly issueTypeHeader;
25
23
  readonly filteredColumns: import("@angular/core").Signal<QualityMatrixHeader[]>;
26
24
  readonly datatableColumns: import("@angular/core").Signal<string[]>;
27
25
  readonly isHistoricalDataEnabledFormField: FormControl<boolean | null>;
@@ -31,6 +29,7 @@ export declare class QualityMatrixComponent implements OnInit, AfterViewChecked
31
29
  readonly categoryControls: FormRecord<FormControl<string[]>>;
32
30
  readonly loadingCount: import("@angular/core").WritableSignal<number>;
33
31
  readonly isLoading: import("@angular/core").Signal<boolean>;
32
+ private readonly issueTypeHeader;
34
33
  private readonly scrollMarkers;
35
34
  readonly categoryFilterValues: Map<string, FilterValue[]>;
36
35
  protected readonly refresh$: Subject<void>;
@@ -46,7 +45,6 @@ export declare class QualityMatrixComponent implements OnInit, AfterViewChecked
46
45
  pageTitle: string;
47
46
  readonly allColumns: import("@angular/core").Signal<QualityMatrixHeader[]>;
48
47
  ngAfterViewChecked(): void;
49
- filterIdent(_index: number, item: KeyValue<string, FormControl<string[]>>): string;
50
48
  sourceColumns: import("@angular/core").Signal<string[]>;
51
49
  currentColumns: import("@angular/core").Signal<string[]>;
52
50
  pastColumns: import("@angular/core").Signal<string[]>;
@@ -54,7 +54,7 @@ export declare abstract class BaseHistoricDataTableDirective<TLoadingData extend
54
54
  };
55
55
  openInEditor(sourceId: string, issueId: string): Observable<string | null>;
56
56
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseHistoricDataTableDirective<any, any>, never>;
57
- static ɵdir: i0.ɵɵDirectiveDeclaration<BaseHistoricDataTableDirective<any, any>, never, never, { "apiMethod": { "alias": "apiMethod"; "required": false; }; "columnTranslationkey": { "alias": "columnTranslationkey"; "required": false; }; "pageTitle": { "alias": "pageTitle"; "required": false; }; "sourceType": { "alias": "sourceType"; "required": true; }; }, {}, never, never, false, never>;
57
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseHistoricDataTableDirective<any, any>, never, never, { "apiMethod": { "alias": "apiMethod"; "required": false; }; "columnTranslationkey": { "alias": "columnTranslationkey"; "required": false; }; "pageTitle": { "alias": "pageTitle"; "required": false; }; "sourceType": { "alias": "sourceType"; "required": true; }; }, {}, never, never, true, never>;
58
58
  }
59
59
  type LoadingData = {
60
60
  date: DateTime;
@@ -2,48 +2,45 @@ import { ModuleWithProviders } from '@angular/core';
2
2
  import { NgMetaWidgetsLibConfiguration } from './config-helper.service';
3
3
  import { SvgIconsService } from './core/svg-icons.service';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "./wrap-observable.pipe";
6
- import * as i2 from "./components/collection-issues/collection-issues.component";
7
- import * as i3 from "./components/material-issues/material-issues.component";
8
- import * as i4 from "./components/node-entry/node-entry.component";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@ngx-translate/core";
7
+ import * as i3 from "./components/collection-issues/collection-issues.component";
8
+ import * as i4 from "./components/material-issues/material-issues.component";
9
9
  import * as i5 from "./components/node-list/node-list.component";
10
- import * as i6 from "./node-image-url.pipe";
11
- import * as i7 from "./components/donut-chart-tooltip/donut-chart-tooltip.component";
12
- import * as i8 from "@angular/platform-browser";
13
- import * as i9 from "./java-api/api.module";
14
- import * as i10 from "@angular/material/card";
15
- import * as i11 from "@angular/material/tree";
16
- import * as i12 from "./components/donut-chart/donut-chart.component";
17
- import * as i13 from "./components/donut-chart/donut-chart.pipe";
18
- import * as i14 from "@angular/platform-browser/animations";
19
- import * as i15 from "@angular/material/icon";
20
- import * as i16 from "@angular/material/slider";
21
- import * as i17 from "./components/quality-matrix/quality_matrix";
22
- import * as i18 from "@angular/material/slide-toggle";
23
- import * as i19 from "@angular/material/button";
24
- import * as i20 from "@angular/material/progress-spinner";
25
- import * as i21 from "@angular/material/table";
26
- import * as i22 from "@angular/material/grid-list";
27
- import * as i23 from "@angular/material/form-field";
28
- import * as i24 from "@angular/material/input";
29
- import * as i25 from "@angular/material/sidenav";
30
- import * as i26 from "@angular/forms";
31
- import * as i27 from "@angular/material/select";
32
- import * as i28 from "@angular/material/tooltip";
33
- import * as i29 from "@angular/material/list";
34
- import * as i30 from "@angular/material/sort";
35
- import * as i31 from "@angular/material/checkbox";
36
- import * as i32 from "@ngx-translate/core";
37
- import * as i33 from "./components/filter/quality-matrix-filter.component";
38
- import * as i34 from "@angular/material/datepicker";
39
- import * as i35 from "./components/filter/datepicker/datepicker.component";
40
- import * as i36 from "./components/loading_indicator/progress-spinner/progress-spinner.component";
41
- import * as i37 from "./components/quality-matrix/scroll-marker.directive";
10
+ import * as i6 from "@angular/platform-browser";
11
+ import * as i7 from "./java-api/api.module";
12
+ import * as i8 from "@angular/material/card";
13
+ import * as i9 from "@angular/material/tree";
14
+ import * as i10 from "./components/donut-chart/donut-chart.component";
15
+ import * as i11 from "./components/donut-chart/donut-chart.pipe";
16
+ import * as i12 from "@angular/platform-browser/animations";
17
+ import * as i13 from "@angular/material/icon";
18
+ import * as i14 from "@angular/material/slider";
19
+ import * as i15 from "./components/quality-matrix/quality_matrix";
20
+ import * as i16 from "@angular/material/slide-toggle";
21
+ import * as i17 from "@angular/material/button";
22
+ import * as i18 from "@angular/material/progress-spinner";
23
+ import * as i19 from "@angular/material/table";
24
+ import * as i20 from "@angular/material/grid-list";
25
+ import * as i21 from "@angular/material/form-field";
26
+ import * as i22 from "@angular/material/input";
27
+ import * as i23 from "@angular/material/sidenav";
28
+ import * as i24 from "@angular/forms";
29
+ import * as i25 from "@angular/material/select";
30
+ import * as i26 from "@angular/material/tooltip";
31
+ import * as i27 from "@angular/material/list";
32
+ import * as i28 from "@angular/material/sort";
33
+ import * as i29 from "@angular/material/checkbox";
34
+ import * as i30 from "./components/filter/quality-matrix-filter.component";
35
+ import * as i31 from "@angular/material/datepicker";
36
+ import * as i32 from "./components/filter/datepicker/datepicker.component";
37
+ import * as i33 from "./components/loading_indicator/progress-spinner/progress-spinner.component";
38
+ import * as i34 from "./components/quality-matrix/scroll-marker.directive";
42
39
  export declare class NgMetaWidgetsLibModule {
43
40
  private readonly svgIconsService;
44
41
  constructor(svgIconsService: SvgIconsService);
45
42
  static forRoot(params: NgMetaWidgetsLibConfiguration): ModuleWithProviders<NgMetaWidgetsLibModule>;
46
43
  static ɵfac: i0.ɵɵFactoryDeclaration<NgMetaWidgetsLibModule, never>;
47
- static ɵmod: i0.ɵɵNgModuleDeclaration<NgMetaWidgetsLibModule, [typeof i1.WrapObservablePipe, typeof i2.CollectionIssuesComponent, typeof i3.MaterialIssuesComponent, typeof i4.NodeEntryComponent, typeof i5.NodeListComponent, typeof i6.NodeImageUrlPipe, typeof i7.DonutChartTooltipComponent], [typeof i8.BrowserModule, typeof i9.ApiModule, typeof i10.MatCardModule, typeof i11.MatTreeModule, typeof i12.DonutChartComponent, typeof i13.DonutChartPipe, typeof i14.BrowserAnimationsModule, typeof i15.MatIconModule, typeof i16.MatSliderModule, typeof i17.QualityMatrixComponent, typeof i18.MatSlideToggleModule, typeof i19.MatButtonModule, typeof i20.MatProgressSpinnerModule, typeof i21.MatTableModule, typeof i22.MatGridListModule, typeof i23.MatFormFieldModule, typeof i24.MatInputModule, typeof i25.MatSidenavModule, typeof i26.FormsModule, typeof i27.MatSelectModule, typeof i26.ReactiveFormsModule, typeof i28.MatTooltipModule, typeof i29.MatListModule, typeof i30.MatSort, typeof i30.MatSortModule, typeof i31.MatCheckbox, typeof i32.TranslateModule, typeof i33.QualityMatrixFilterComponent, typeof i34.MatDateRangeInput, typeof i34.MatDatepickerToggle, typeof i34.MatDatepickerModule, typeof i34.MatDateRangePicker, typeof i34.MatDatepickerInput, typeof i34.MatDatepicker, typeof i35.DatepickerComponent, typeof i36.ProgressSpinnerComponent, typeof i37.ScrollMarkerDirective], [typeof i2.CollectionIssuesComponent, typeof i3.MaterialIssuesComponent, typeof i5.NodeListComponent, typeof i17.QualityMatrixComponent]>;
44
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NgMetaWidgetsLibModule, never, [typeof i1.CommonModule, typeof i2.TranslateModule, typeof i3.CollectionIssuesComponent, typeof i4.MaterialIssuesComponent, typeof i5.NodeListComponent, typeof i6.BrowserModule, typeof i7.ApiModule, typeof i8.MatCardModule, typeof i9.MatTreeModule, typeof i10.DonutChartComponent, typeof i11.DonutChartPipe, typeof i12.BrowserAnimationsModule, typeof i13.MatIconModule, typeof i14.MatSliderModule, typeof i15.QualityMatrixComponent, typeof i16.MatSlideToggleModule, typeof i17.MatButtonModule, typeof i18.MatProgressSpinnerModule, typeof i19.MatTableModule, typeof i20.MatGridListModule, typeof i21.MatFormFieldModule, typeof i22.MatInputModule, typeof i23.MatSidenavModule, typeof i24.FormsModule, typeof i25.MatSelectModule, typeof i24.ReactiveFormsModule, typeof i26.MatTooltipModule, typeof i27.MatListModule, typeof i28.MatSort, typeof i28.MatSortModule, typeof i29.MatCheckbox, typeof i2.TranslateModule, typeof i30.QualityMatrixFilterComponent, typeof i31.MatDateRangeInput, typeof i31.MatDatepickerToggle, typeof i31.MatDatepickerModule, typeof i31.MatDateRangePicker, typeof i31.MatDatepickerInput, typeof i31.MatDatepicker, typeof i32.DatepickerComponent, typeof i33.ProgressSpinnerComponent, typeof i34.ScrollMarkerDirective], [typeof i3.CollectionIssuesComponent, typeof i4.MaterialIssuesComponent, typeof i5.NodeListComponent, typeof i15.QualityMatrixComponent]>;
48
45
  static ɵinj: i0.ɵɵInjectorDeclaration<NgMetaWidgetsLibModule>;
49
46
  }
@@ -8,5 +8,5 @@ export declare class NodeImageUrlPipe implements PipeTransform {
8
8
  height: number;
9
9
  }): string;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeImageUrlPipe, never>;
11
- static ɵpipe: i0.ɵɵPipeDeclaration<NodeImageUrlPipe, "nodeImageUrl", false>;
11
+ static ɵpipe: i0.ɵɵPipeDeclaration<NodeImageUrlPipe, "nodeImageUrl", true>;
12
12
  }
@@ -14,5 +14,5 @@ export declare function wrapResponse<T>(): UnaryFunction<Observable<T>, Observab
14
14
  export declare class WrapObservablePipe implements PipeTransform {
15
15
  transform<T>(value: Observable<T>): Observable<WrappedResponse<T>>;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<WrapObservablePipe, never>;
17
- static ɵpipe: i0.ɵɵPipeDeclaration<WrapObservablePipe, "wrapObservable", false>;
17
+ static ɵpipe: i0.ɵɵPipeDeclaration<WrapObservablePipe, "wrapObservable", true>;
18
18
  }
package/package.json CHANGED
@@ -2,14 +2,14 @@
2
2
  "name": "ngx-edu-sharing-metaqs2",
3
3
  "description": "OEH MetaQS widgets library",
4
4
  "license": "GNU GPL v2",
5
- "version": "0.9.53",
5
+ "version": "0.9.54",
6
6
  "author": "Torsten Simon",
7
7
  "peerDependencies": {
8
- "@angular/common": ">=16.0.0",
9
- "@angular/core": ">=16.0.0",
10
- "@angular/cdk": ">=16.0.0",
11
- "@angular/elements": ">=16.0.0",
12
- "@angular/material": ">=16.0.0",
8
+ "@angular/common": ">=19.0.0",
9
+ "@angular/core": ">=10.0.0",
10
+ "@angular/cdk": ">=19.0.0",
11
+ "@angular/elements": ">=19.0.0",
12
+ "@angular/material": ">=19.0.0",
13
13
  "ng2-charts": ">=6.0.1"
14
14
  },
15
15
  "dependencies": {
@@ -23,8 +23,6 @@
23
23
  },
24
24
  ".": {
25
25
  "types": "./index.d.ts",
26
- "esm2022": "./esm2022/ngx-edu-sharing-metaqs2.mjs",
27
- "esm": "./esm2022/ngx-edu-sharing-metaqs2.mjs",
28
26
  "default": "./fesm2022/ngx-edu-sharing-metaqs2.mjs"
29
27
  }
30
28
  },
@@ -1,131 +0,0 @@
1
- import { Component, effect, Input, signal, ViewChild } from '@angular/core';
2
- import { BaseChartDirective } from 'ng2-charts';
3
- import { DateTime } from 'luxon';
4
- import { MatCard, MatCardContent, MatCardHeader, MatCardTitle } from '@angular/material/card';
5
- import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
6
- import { MonthpickerComponent } from './monthpicker/monthpicker.component';
7
- import { BehaviorSubject } from 'rxjs';
8
- import { AsyncPipe, NgIf } from '@angular/common';
9
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
10
- import { distinctUntilChanged, filter, finalize, map, switchMap, take, tap } from 'rxjs/operators';
11
- import { MatSlideToggle } from '@angular/material/slide-toggle';
12
- import { ProgressSpinnerComponent } from '../components/loading_indicator/progress-spinner/progress-spinner.component';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "../meta-api.service";
15
- import * as i2 from "@angular/forms";
16
- export class CollectionCountHistoryComponent {
17
- constructor(metaApi, destroyRef) {
18
- this.metaApi = metaApi;
19
- this.destroyRef = destroyRef;
20
- this.lineChartOptions = {
21
- parsing: {
22
- xAxisKey: 'date',
23
- yAxisKey: 'count',
24
- },
25
- font: {
26
- family: 'Montserrat',
27
- },
28
- animation: false,
29
- };
30
- this.datapoints$ = new BehaviorSubject([]);
31
- this.isLoading = signal(true);
32
- this.range = new FormGroup({
33
- start: new FormControl(),
34
- end: new FormControl(),
35
- });
36
- this.granularities = ['year', 'month', 'week', 'day'];
37
- this.granularity = new FormControl('month', { nonNullable: true });
38
- this.isHistoryEnabled = signal(true);
39
- effect(() => {
40
- this.range.controls.end.reset();
41
- if (!this.isHistoryEnabled()) {
42
- this.range.controls.start.setValue(this.range.controls.end.value);
43
- }
44
- else {
45
- this.range.controls.start.reset();
46
- }
47
- });
48
- }
49
- ngOnInit() {
50
- this.registerDateRangeFilter();
51
- }
52
- registerDateRangeFilter() {
53
- this.range.valueChanges
54
- .pipe(filter((range) => !!range.start && !!range.end),
55
- //the Material Datepicker emits the initial values 4 times when it starts, so we need to distinct them
56
- distinctUntilChanged((prev, curr) => {
57
- return prev.start === curr.start && prev.end === curr.end;
58
- }), switchMap((range) => {
59
- if (this.isHistoryEnabled()) {
60
- return this.loadData(range.start, range.end);
61
- }
62
- else {
63
- return this.loadData(range.end.startOf(this.granularity.value), range.end);
64
- }
65
- }), takeUntilDestroyed(this.destroyRef))
66
- .subscribe();
67
- this.metaApi
68
- .getTimerangeFilter()
69
- .pipe(take(1))
70
- .subscribe((rangeFilter) => {
71
- if (rangeFilter) {
72
- const startDate = DateTime.fromISO(rangeFilter.values.find((v) => v.id === 'rangeStart')?.label, {
73
- zone: 'utc',
74
- }).startOf(this.granularity.value);
75
- const endDate = DateTime.fromISO(rangeFilter.values.find((v) => v.id === 'rangeEnd')?.label, {
76
- zone: 'utc',
77
- }).endOf(this.granularity.value);
78
- this.range.setControl('start', new FormControl(startDate, { nonNullable: true }), {
79
- emitEvent: false,
80
- });
81
- this.range.setControl('end', new FormControl(endDate, { nonNullable: true }), { emitEvent: false });
82
- }
83
- });
84
- }
85
- loadData(start, end) {
86
- this.isLoading.set(true);
87
- const request = {
88
- startDate: start?.toISO(),
89
- endDate: end?.toISO(),
90
- granularity: this.granularity.value,
91
- };
92
- return this.metaApi.getEditorialMaterialCounts(request).pipe(map((response) => response.map((data) => {
93
- return {
94
- data: data.counts.map((count) => {
95
- return {
96
- date: DateTime.fromISO(count.date).toFormat('LLLL yyyy'),
97
- count: count.count,
98
- };
99
- }),
100
- label: data.name,
101
- };
102
- })), take(1), tap((datapoints) => {
103
- this.datapoints$.next(datapoints);
104
- }), finalize(() => this.isLoading.set(false)));
105
- }
106
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CollectionCountHistoryComponent, deps: [{ token: i1.MetaApiService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
107
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CollectionCountHistoryComponent, isStandalone: true, selector: "metaqs2-collection-count-history", inputs: { pageTitle: "pageTitle" }, viewQueries: [{ propertyName: "chart", first: true, predicate: BaseChartDirective, descendants: true }], ngImport: i0, template: "<mat-card appearance=\"outlined\">\n <mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title>\n {{ pageTitle }}{{ isLoading() ? \": Lade neue Daten.\" : \"\" }}\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <div style=\"display: flex; gap: 0.5rem; align-items: center\">\n <div style=\"flex: 1 1 auto\"></div>\n <metaqs2-monthpicker *ngIf=\"isHistoryEnabled()\" [inputGroup]=\"range\"></metaqs2-monthpicker>\n <mat-slide-toggle [ngModel]=\"isHistoryEnabled()\" (ngModelChange)=\"isHistoryEnabled.set($event)\" [disabled]=\"isLoading()\">\n <label>Zeige historische Daten</label>\n </mat-slide-toggle>\n </div>\n <metaqs2-progress-spinner [displayProgressSpinner]=\"isLoading()\"></metaqs2-progress-spinner>\n\n <div [class.while-loading]=\"isLoading()\">\n <canvas\n baseChart\n [datasets]=\"(datapoints$ | async) || []\"\n [options]=\"lineChartOptions\"\n [type]=\"'line'\"\n ></canvas>\n </div>\n </mat-card-content>\n</mat-card>\n", styles: [".while-loading{filter:blur(2px)}\n"], dependencies: [{ kind: "directive", type: BaseChartDirective, selector: "canvas[baseChart]", inputs: ["type", "legend", "data", "options", "plugins", "labels", "datasets"], outputs: ["chartClick", "chartHover"], exportAs: ["base-chart"] }, { kind: "component", type: MonthpickerComponent, selector: "metaqs2-monthpicker", inputs: ["startView", "inputGroup", "disabled"] }, { kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: MatCardContent, selector: "mat-card-content" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: FormsModule }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ProgressSpinnerComponent, selector: "metaqs2-progress-spinner", inputs: ["color", "diameter", "strokeWidth", "backdropEnabled", "positionGloballyCenter", "displayProgressSpinner"] }] }); }
108
- }
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CollectionCountHistoryComponent, decorators: [{
110
- type: Component,
111
- args: [{ selector: 'metaqs2-collection-count-history', standalone: true, imports: [
112
- BaseChartDirective,
113
- MonthpickerComponent,
114
- MatCard,
115
- MatCardHeader,
116
- MatCardTitle,
117
- MatCardContent,
118
- AsyncPipe,
119
- ReactiveFormsModule,
120
- NgIf,
121
- MatSlideToggle,
122
- FormsModule,
123
- ProgressSpinnerComponent,
124
- ], template: "<mat-card appearance=\"outlined\">\n <mat-card-header *ngIf=\"pageTitle\">\n <mat-card-title>\n {{ pageTitle }}{{ isLoading() ? \": Lade neue Daten.\" : \"\" }}\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <div style=\"display: flex; gap: 0.5rem; align-items: center\">\n <div style=\"flex: 1 1 auto\"></div>\n <metaqs2-monthpicker *ngIf=\"isHistoryEnabled()\" [inputGroup]=\"range\"></metaqs2-monthpicker>\n <mat-slide-toggle [ngModel]=\"isHistoryEnabled()\" (ngModelChange)=\"isHistoryEnabled.set($event)\" [disabled]=\"isLoading()\">\n <label>Zeige historische Daten</label>\n </mat-slide-toggle>\n </div>\n <metaqs2-progress-spinner [displayProgressSpinner]=\"isLoading()\"></metaqs2-progress-spinner>\n\n <div [class.while-loading]=\"isLoading()\">\n <canvas\n baseChart\n [datasets]=\"(datapoints$ | async) || []\"\n [options]=\"lineChartOptions\"\n [type]=\"'line'\"\n ></canvas>\n </div>\n </mat-card-content>\n</mat-card>\n", styles: [".while-loading{filter:blur(2px)}\n"] }]
125
- }], ctorParameters: () => [{ type: i1.MetaApiService }, { type: i0.DestroyRef }], propDecorators: { chart: [{
126
- type: ViewChild,
127
- args: [BaseChartDirective]
128
- }], pageTitle: [{
129
- type: Input
130
- }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1jb3VudC1oaXN0b3J5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi9jb2xsZWN0aW9uLWNvdW50LWhpc3RvcnkvY29sbGVjdGlvbi1jb3VudC1oaXN0b3J5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1ldGEtd2lkZ2V0cy1saWIvc3JjL2xpYi9jb2xsZWN0aW9uLWNvdW50LWhpc3RvcnkvY29sbGVjdGlvbi1jb3VudC1oaXN0b3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFnQixNQUFNLE9BQU8sQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFB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VUFBVSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzFDLENBQUM7SUFDSixDQUFDOytHQTdHVSwrQkFBK0I7bUdBQS9CLCtCQUErQix1S0FDL0Isa0JBQWtCLGdEQ3JDL0Isd2hDQTBCQSw0RkROSSxrQkFBa0IsK01BQ2xCLG9CQUFvQixpSEFDcEIsT0FBTyxvR0FDUCxhQUFhLDREQUNiLFlBQVksNkZBQ1osY0FBYyx3REFDZCxTQUFTLDZDQUNULG1CQUFtQix1SUFDbkIsSUFBSSw2RkFDSixjQUFjLHlVQUNkLFdBQVcsdVBBQ1gsd0JBQXdCOzs0RkFLZiwrQkFBK0I7a0JBcEIzQyxTQUFTOytCQUNFLGtDQUFrQyxjQUNoQyxJQUFJLFdBQ1A7d0JBQ1Asa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsU0FBUzt3QkFDVCxtQkFBbUI7d0JBQ25CLElBQUk7d0JBQ0osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLHdCQUF3QjtxQkFDekI7NEdBSzhCLEtBQUs7c0JBQW5DLFNBQVM7dUJBQUMsa0JBQWtCO2dCQXdCdEIsU0FBUztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBlZmZlY3QsIElucHV0LCBPbkluaXQsIHNpZ25hbCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFydENvbmZpZ3VyYXRpb24sIENoYXJ0RGF0YXNldCB9IGZyb20gJ2NoYXJ0LmpzJztcbmltcG9ydCB7IEJhc2VDaGFydERpcmVjdGl2ZSB9IGZyb20gJ25nMi1jaGFydHMnO1xuaW1wb3J0IHsgRGF0ZVRpbWUsIERhdGVUaW1lVW5pdCB9IGZyb20gJ2x1eG9uJztcbmltcG9ydCB7IE1hdENhcmQsIE1hdENhcmRDb250ZW50LCBNYXRDYXJkSGVhZGVyLCBNYXRDYXJkVGl0bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTW9udGhwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL21vbnRocGlja2VyL21vbnRocGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3VudCwgTWF0ZXJpYWxDb3VudEZpbHRlciB9IGZyb20gJy4uL2phdmEtYXBpJztcbmltcG9ydCB7IE1ldGFBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vbWV0YS1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBmaW5hbGl6ZSwgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7IFByb2dyZXNzU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbG9hZGluZ19pbmRpY2F0b3IvcHJvZ3Jlc3Mtc3Bpbm5lci9wcm9ncmVzcy1zcGlubmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21ldGFxczItY29sbGVjdGlvbi1jb3VudC1oaXN0b3J5JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEJhc2VDaGFydERpcmVjdGl2ZSxcbiAgICBNb250aHBpY2tlckNvbXBvbmVudCxcbiAgICBNYXRDYXJkLFxuICAgIE1hdENhcmRIZWFkZXIsXG4gICAgTWF0Q2FyZFRpdGxlLFxuICAgIE1hdENhcmRDb250ZW50LFxuICAgIEFzeW5jUGlwZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE5nSWYsXG4gICAgTWF0U2xpZGVUb2dnbGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUHJvZ3Jlc3NTcGlubmVyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vY29sbGVjdGlvbi1jb3VudC1oaXN0b3J5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvbGxlY3Rpb24tY291bnQtaGlzdG9yeS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25Db3VudEhpc3RvcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKEJhc2VDaGFydERpcmVjdGl2ZSkgY2hhcnQ/OiBCYXNlQ2hhcnREaXJlY3RpdmU7XG4gIHByb3RlY3RlZCBsaW5lQ2hhcnRPcHRpb25zOiBDaGFydENvbmZpZ3VyYXRpb25bJ29wdGlvbnMnXSA9IHtcbiAgICBwYXJzaW5nOiB7XG4gICAgICB4QXhpc0tleTogJ2RhdGUnLFxuICAgICAgeUF4aXNLZXk6ICdjb3VudCcsXG4gICAgfSxcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6ICdNb250c2VycmF0JyxcbiAgICB9LFxuICAgIGFuaW1hdGlvbjogZmFsc2UsXG4gIH07XG4gIHByb3RlY3RlZCBkYXRhcG9pbnRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2hhcnREYXRhc2V0PCdsaW5lJywgQ291bnRbXT5bXT4oW10pO1xuICBwcm90ZWN0ZWQgaXNMb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICByZWFkb25seSByYW5nZTogRm9ybUdyb3VwPHtcbiAgICBzdGFydDogRm9ybUNvbnRyb2w8RGF0ZVRpbWU8Ym9vbGVhbj4+O1xuICAgIGVuZDogRm9ybUNvbnRyb2w8RGF0ZVRpbWU8Ym9vbGVhbj4+O1xuICB9PiA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIHN0YXJ0OiBuZXcgRm9ybUNvbnRyb2woKSxcbiAgICBlbmQ6IG5ldyBGb3JtQ29udHJvbCgpLFxuICB9KTtcbiAgcHJvdGVjdGVkIGdyYW51bGFyaXRpZXM6IERhdGVUaW1lVW5pdFtdID0gWyd5ZWFyJywgJ21vbnRoJywgJ3dlZWsnLCAnZGF5J107XG4gIHByb3RlY3RlZCBncmFudWxhcml0eSA9IG5ldyBGb3JtQ29udHJvbDxEYXRlVGltZVVuaXQ+KCdtb250aCcsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2VUaXRsZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgaXNIaXN0b3J5RW5hYmxlZCA9IHNpZ25hbCh0cnVlKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG1ldGFBcGk6IE1ldGFBcGlTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWYpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5yYW5nZS5jb250cm9scy5lbmQucmVzZXQoKTtcbiAgICAgIGlmICghdGhpcy5pc0hpc3RvcnlFbmFibGVkKCkpIHtcbiAgICAgICAgdGhpcy5yYW5nZS5jb250cm9scy5zdGFydC5zZXRWYWx1ZSh0aGlzLnJhbmdlLmNvbnRyb2xzLmVuZC52YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJhbmdlLmNvbnRyb2xzLnN0YXJ0LnJlc2V0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVyRGF0ZVJhbmdlRmlsdGVyKCk7XG4gIH1cblxuICByZWdpc3RlckRhdGVSYW5nZUZpbHRlcigpIHtcbiAgICB0aGlzLnJhbmdlLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigocmFuZ2UpOiByYW5nZSBpcyB7IHN0YXJ0OiBEYXRlVGltZTsgZW5kOiBEYXRlVGltZSB9ID0+ICEhcmFuZ2Uuc3RhcnQgJiYgISFyYW5nZS5lbmQpLFxuICAgICAgICAvL3RoZSBNYXRlcmlhbCBEYXRlcGlja2VyIGVtaXRzIHRoZSBpbml0aWFsIHZhbHVlcyA0IHRpbWVzIHdoZW4gaXQgc3RhcnRzLCBzbyB3ZSBuZWVkIHRvIGRpc3RpbmN0IHRoZW1cbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXYsIGN1cnIpID0+IHtcbiAgICAgICAgICByZXR1cm4gcHJldi5zdGFydCA9PT0gY3Vyci5zdGFydCAmJiBwcmV2LmVuZCA9PT0gY3Vyci5lbmQ7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKHJhbmdlKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaXNIaXN0b3J5RW5hYmxlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkRGF0YShyYW5nZS5zdGFydCwgcmFuZ2UuZW5kKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZERhdGEocmFuZ2UuZW5kLnN0YXJ0T2YodGhpcy5ncmFudWxhcml0eS52YWx1ZSksIHJhbmdlLmVuZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm1ldGFBcGlcbiAgICAgIC5nZXRUaW1lcmFuZ2VGaWx0ZXIoKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJhbmdlRmlsdGVyKSA9PiB7XG4gICAgICAgIGlmIChyYW5nZUZpbHRlcikge1xuICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IERhdGVUaW1lLmZyb21JU08ocmFuZ2VGaWx0ZXIudmFsdWVzLmZpbmQoKHYpID0+IHYuaWQgPT09ICdyYW5nZVN0YXJ0Jyk/LmxhYmVsISwge1xuICAgICAgICAgICAgem9uZTogJ3V0YycsXG4gICAgICAgICAgfSkuc3RhcnRPZih0aGlzLmdyYW51bGFyaXR5LnZhbHVlKTtcbiAgICAgICAgICBjb25zdCBlbmREYXRlID0gRGF0ZVRpbWUuZnJvbUlTTyhyYW5nZUZpbHRlci52YWx1ZXMuZmluZCgodikgPT4gdi5pZCA9PT0gJ3JhbmdlRW5kJyk/LmxhYmVsISwge1xuICAgICAgICAgICAgem9uZTogJ3V0YycsXG4gICAgICAgICAgfSkuZW5kT2YodGhpcy5ncmFudWxhcml0eS52YWx1ZSk7XG4gICAgICAgICAgdGhpcy5yYW5nZS5zZXRDb250cm9sKCdzdGFydCcsIG5ldyBGb3JtQ29udHJvbDxEYXRlVGltZT4oc3RhcnREYXRlLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pLCB7XG4gICAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMucmFuZ2Uuc2V0Q29udHJvbCgnZW5kJywgbmV3IEZvcm1Db250cm9sPERhdGVUaW1lPihlbmREYXRlLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRGF0YShzdGFydD86IERhdGVUaW1lPGJvb2xlYW4+LCBlbmQ/OiBEYXRlVGltZTxib29sZWFuPikge1xuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcblxuICAgIGNvbnN0IHJlcXVlc3Q6IE1hdGVyaWFsQ291bnRGaWx0ZXIgPSB7XG4gICAgICBzdGFydERhdGU6IHN0YXJ0Py50b0lTTygpISxcbiAgICAgIGVuZERhdGU6IGVuZD8udG9JU08oKSEsXG4gICAgICBncmFudWxhcml0eTogdGhpcy5ncmFudWxhcml0eS52YWx1ZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMubWV0YUFwaS5nZXRFZGl0b3JpYWxNYXRlcmlhbENvdW50cyhyZXF1ZXN0KS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZSkgPT5cbiAgICAgICAgcmVzcG9uc2UubWFwKChkYXRhKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IGRhdGEuY291bnRzLm1hcCgoY291bnQpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkYXRlOiBEYXRlVGltZS5mcm9tSVNPKGNvdW50LmRhdGUpLnRvRm9ybWF0KCdMTExMIHl5eXknKSEsXG4gICAgICAgICAgICAgICAgY291bnQ6IGNvdW50LmNvdW50LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBsYWJlbDogZGF0YS5uYW1lLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHRhcCgoZGF0YXBvaW50cykgPT4ge1xuICAgICAgICB0aGlzLmRhdGFwb2ludHMkLm5leHQoZGF0YXBvaW50cyk7XG4gICAgICB9KSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSkpXG4gICAgKTtcbiAgfVxufVxuIiwiPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiPlxuICA8bWF0LWNhcmQtaGVhZGVyICpuZ0lmPVwicGFnZVRpdGxlXCI+XG4gICAgPG1hdC1jYXJkLXRpdGxlPlxuICAgICAge3sgcGFnZVRpdGxlIH19e3sgaXNMb2FkaW5nKCkgPyBcIjogTGFkZSBuZXVlIERhdGVuLlwiIDogXCJcIiB9fVxuICAgIDwvbWF0LWNhcmQtdGl0bGU+XG4gIDwvbWF0LWNhcmQtaGVhZGVyPlxuICA8bWF0LWNhcmQtY29udGVudD5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiAwLjVyZW07IGFsaWduLWl0ZW1zOiBjZW50ZXJcIj5cbiAgICAgIDxkaXYgc3R5bGU9XCJmbGV4OiAxIDEgYXV0b1wiPjwvZGl2PlxuICAgICAgPG1ldGFxczItbW9udGhwaWNrZXIgKm5nSWY9XCJpc0hpc3RvcnlFbmFibGVkKClcIiBbaW5wdXRHcm91cF09XCJyYW5nZVwiPjwvbWV0YXFzMi1tb250aHBpY2tlcj5cbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFtuZ01vZGVsXT1cImlzSGlzdG9yeUVuYWJsZWQoKVwiIChuZ01vZGVsQ2hhbmdlKT1cImlzSGlzdG9yeUVuYWJsZWQuc2V0KCRldmVudClcIiBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nKClcIj5cbiAgICAgICAgPGxhYmVsPlplaWdlIGhpc3RvcmlzY2hlIERhdGVuPC9sYWJlbD5cbiAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8L2Rpdj5cbiAgICA8bWV0YXFzMi1wcm9ncmVzcy1zcGlubmVyIFtkaXNwbGF5UHJvZ3Jlc3NTcGlubmVyXT1cImlzTG9hZGluZygpXCI+PC9tZXRhcXMyLXByb2dyZXNzLXNwaW5uZXI+XG5cbiAgICA8ZGl2IFtjbGFzcy53aGlsZS1sb2FkaW5nXT1cImlzTG9hZGluZygpXCI+XG4gICAgICA8Y2FudmFzXG4gICAgICAgIGJhc2VDaGFydFxuICAgICAgICBbZGF0YXNldHNdPVwiKGRhdGFwb2ludHMkIHwgYXN5bmMpIHx8IFtdXCJcbiAgICAgICAgW29wdGlvbnNdPVwibGluZUNoYXJ0T3B0aW9uc1wiXG4gICAgICAgIFt0eXBlXT1cIidsaW5lJ1wiXG4gICAgICA+PC9jYW52YXM+XG4gICAgPC9kaXY+XG4gIDwvbWF0LWNhcmQtY29udGVudD5cbjwvbWF0LWNhcmQ+XG4iXX0=
@@ -1,114 +0,0 @@
1
- import { Component, ElementRef, Input, LOCALE_ID, ViewChild } from '@angular/core';
2
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
- import { MatDatepicker, MatDatepickerInput, MatDatepickerToggle } from '@angular/material/datepicker';
4
- import { MatFormField, MatLabel, MatSuffix } from '@angular/material/form-field';
5
- import { MatInput } from '@angular/material/input';
6
- import { LuxonDateAdapter, MAT_LUXON_DATE_ADAPTER_OPTIONS } from '@angular/material-luxon-adapter';
7
- import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MatRipple } from '@angular/material/core';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/forms";
10
- export const datePickerFormats = {
11
- parse: {
12
- dateInput: 'LLLL yyyy',
13
- },
14
- display: {
15
- dateInput: 'LLLL yyyy',
16
- monthYearLabel: 'LLLL yyyy',
17
- dateA11yLabel: 'LLL',
18
- monthYearA11yLabel: 'MMMM yyyy',
19
- },
20
- };
21
- /**
22
- * Theoretically, this component should be able to handle both monthly and daily date ranges.
23
- * But I am unable to find a way to change the date format of the datepicker
24
- */
25
- export class MonthpickerComponent {
26
- constructor() {
27
- this.startView = 'year';
28
- this.disabled = false;
29
- }
30
- setStart(date, picker) {
31
- this.inputGroup.controls.start.setValue(date);
32
- picker.close();
33
- }
34
- setEnd(date, picker) {
35
- this.inputGroup.controls.end.setValue(date.endOf('month'));
36
- picker.close();
37
- }
38
- ngOnInit() {
39
- this.focus();
40
- }
41
- ngOnDestroy() {
42
- //defer this to avoid an ExpressionChangedAfterItHasBeenCheckedError on the parent component
43
- Promise.resolve().then(() => this.inputGroup.reset());
44
- }
45
- focus() {
46
- this.start?.nativeElement.focus();
47
- this.ripple.launch({
48
- centered: true, // Material bug: disabled ripples do not trigger unless centered
49
- radius: 1000,
50
- animation: {
51
- exitDuration: 1000,
52
- },
53
- });
54
- }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonthpickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MonthpickerComponent, isStandalone: true, selector: "metaqs2-monthpicker", inputs: { startView: "startView", inputGroup: "inputGroup", disabled: "disabled" }, providers: [
57
- {
58
- provide: DateAdapter,
59
- useClass: LuxonDateAdapter,
60
- deps: [MAT_DATE_LOCALE, MAT_LUXON_DATE_ADAPTER_OPTIONS],
61
- },
62
- { provide: MAT_DATE_FORMATS, useValue: datePickerFormats },
63
- //provideLuxonDateAdapter(datePickerFormats),
64
- { provide: LOCALE_ID, useValue: 'de-DE' },
65
- { provide: MAT_DATE_LOCALE, useValue: 'de-DE' },
66
- { provide: MAT_LUXON_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true, firstDayOfWeek: 1 } },
67
- ], viewQueries: [{ propertyName: "start", first: true, predicate: ["start"], descendants: true, read: (ElementRef), static: true }, { propertyName: "ripple", first: true, predicate: ["ripple"], descendants: true, read: MatRipple, static: true }], ngImport: i0, template: "<!--\n<mat-card>\n <mat-card-header>\n <mat-card-title> Monatlicher Vergleich </mat-card-title>\n </mat-card-header>\n <mat-card-content [formGroup]=\"inputGroup\">\n </!-- start date --/>\n -->\n<div [formGroup]=\"inputGroup\" matRipple #ripple=\"matRipple\" [matRippleDisabled]=\"true\">\n <mat-form-field>\n <mat-label>Zeitpunkt 1</mat-label>\n <input matInput\n #start\n [disabled]=\"disabled\"\n [min]=\"inputGroup.controls.start.defaultValue\"\n [max]=\"inputGroup.controls.end.defaultValue\"\n [matDatepicker]=\"picker1\" formControlName=\"start\"\n placeholder=\"Starts date\"\n >\n <mat-datepicker-toggle matIconSuffix [for]=\"picker1\"></mat-datepicker-toggle>\n <mat-datepicker\n [disabled]=\"disabled\"\n #picker1\n [startAt]=\"inputGroup.controls.start.defaultValue\"\n [startView]=\"startView\"\n (monthSelected)=\"setStart($event, picker1)\"\n\n >\n </mat-datepicker>\n </mat-form-field>\n <!-- /start date -->\n <!-- end date -->\n <mat-form-field>\n <mat-label>Zeitpunkt2</mat-label>\n <input matInput\n [disabled]=\"disabled\"\n [min]=\"inputGroup.controls.start.defaultValue\"\n [max]=\"inputGroup.controls.end.defaultValue\"\n [matDatepicker]=\"picker2\"\n formControlName=\"end\"\n placeholder=\"End date\"\n >\n <mat-datepicker-toggle matIconSuffix [for]=\"picker2\"></mat-datepicker-toggle>\n <mat-datepicker\n [disabled]=\"disabled\"\n #picker2\n [startAt]=\"inputGroup.controls.end.value\"\n [startView]=\"startView\"\n (monthSelected)=\"setEnd($event, picker2)\"\n >\n </mat-datepicker>\n </mat-form-field>\n <!-- /end date -->\n</div>\n<!--\n </mat-card-content>\n</mat-card>\n-->\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }] }); }
68
- }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonthpickerComponent, decorators: [{
70
- type: Component,
71
- args: [{ selector: 'metaqs2-monthpicker', standalone: true, imports: [
72
- FormsModule,
73
- MatDatepicker,
74
- MatDatepickerInput,
75
- MatDatepickerToggle,
76
- MatFormField,
77
- MatInput,
78
- MatLabel,
79
- MatSuffix,
80
- ReactiveFormsModule,
81
- MatRipple,
82
- ], providers: [
83
- {
84
- provide: DateAdapter,
85
- useClass: LuxonDateAdapter,
86
- deps: [MAT_DATE_LOCALE, MAT_LUXON_DATE_ADAPTER_OPTIONS],
87
- },
88
- { provide: MAT_DATE_FORMATS, useValue: datePickerFormats },
89
- //provideLuxonDateAdapter(datePickerFormats),
90
- { provide: LOCALE_ID, useValue: 'de-DE' },
91
- { provide: MAT_DATE_LOCALE, useValue: 'de-DE' },
92
- { provide: MAT_LUXON_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true, firstDayOfWeek: 1 } },
93
- ], template: "<!--\n<mat-card>\n <mat-card-header>\n <mat-card-title> Monatlicher Vergleich </mat-card-title>\n </mat-card-header>\n <mat-card-content [formGroup]=\"inputGroup\">\n </!-- start date --/>\n -->\n<div [formGroup]=\"inputGroup\" matRipple #ripple=\"matRipple\" [matRippleDisabled]=\"true\">\n <mat-form-field>\n <mat-label>Zeitpunkt 1</mat-label>\n <input matInput\n #start\n [disabled]=\"disabled\"\n [min]=\"inputGroup.controls.start.defaultValue\"\n [max]=\"inputGroup.controls.end.defaultValue\"\n [matDatepicker]=\"picker1\" formControlName=\"start\"\n placeholder=\"Starts date\"\n >\n <mat-datepicker-toggle matIconSuffix [for]=\"picker1\"></mat-datepicker-toggle>\n <mat-datepicker\n [disabled]=\"disabled\"\n #picker1\n [startAt]=\"inputGroup.controls.start.defaultValue\"\n [startView]=\"startView\"\n (monthSelected)=\"setStart($event, picker1)\"\n\n >\n </mat-datepicker>\n </mat-form-field>\n <!-- /start date -->\n <!-- end date -->\n <mat-form-field>\n <mat-label>Zeitpunkt2</mat-label>\n <input matInput\n [disabled]=\"disabled\"\n [min]=\"inputGroup.controls.start.defaultValue\"\n [max]=\"inputGroup.controls.end.defaultValue\"\n [matDatepicker]=\"picker2\"\n formControlName=\"end\"\n placeholder=\"End date\"\n >\n <mat-datepicker-toggle matIconSuffix [for]=\"picker2\"></mat-datepicker-toggle>\n <mat-datepicker\n [disabled]=\"disabled\"\n #picker2\n [startAt]=\"inputGroup.controls.end.value\"\n [startView]=\"startView\"\n (monthSelected)=\"setEnd($event, picker2)\"\n >\n </mat-datepicker>\n </mat-form-field>\n <!-- /end date -->\n</div>\n<!--\n </mat-card-content>\n</mat-card>\n-->\n" }]
94
- }], propDecorators: { startView: [{
95
- type: Input
96
- }], inputGroup: [{
97
- type: Input,
98
- args: [{ required: true }]
99
- }], disabled: [{
100
- type: Input
101
- }], start: [{
102
- type: ViewChild,
103
- args: ['start', {
104
- read: (ElementRef),
105
- static: true,
106
- }]
107
- }], ripple: [{
108
- type: ViewChild,
109
- args: ['ripple', {
110
- read: MatRipple,
111
- static: true,
112
- }]
113
- }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGhwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWV0YS13aWRnZXRzLWxpYi9zcmMvbGliL2NvbGxlY3Rpb24tY291bnQtaGlzdG9yeS9tb250aHBpY2tlci9tb250aHBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1tZXRhLXdpZGdldHMtbGliL3NyYy9saWIvY29sbGVjdGlvbi1jb3VudC1oaXN0b3J5L21vbnRocGlja2VyL21vbnRocGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQTBCLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQWtCLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFFbkgsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQW1CO0lBQy9DLEtBQUssRUFBRTtRQUNMLFNBQVMsRUFBRSxXQUFXO0tBQ3ZCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsU0FBUyxFQUFFLFdBQVc7UUFDdEIs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QWlCLEVBQUU7d0JBQzFELDZDQUE2Qzt3QkFDN0MsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7d0JBQ3pDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFO3dCQUMvQyxFQUFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDLEVBQUUsRUFBRTtxQkFDM0Y7OEJBVUQsU0FBUztzQkFEUixLQUFLO2dCQUdOLFVBQVU7c0JBRFQsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBR3pCLFFBQVE7c0JBRFAsS0FBSztnQkFPSSxLQUFLO3NCQUpkLFNBQVM7dUJBQUMsT0FBTyxFQUFFO3dCQUNsQixJQUFJLEVBQUUsQ0FBQSxVQUE0QixDQUFBO3dCQUNsQyxNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPa0IsTUFBTTtzQkFKeEIsU0FBUzt1QkFBQyxRQUFRLEVBQUU7d0JBQ25CLElBQUksRUFBRSxTQUFTO3dCQUNmLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgTE9DQUxFX0lELCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXIsIE1hdERhdGVwaWNrZXJJbnB1dCwgTWF0RGF0ZXBpY2tlclRvZ2dsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCwgTWF0U3VmZml4IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xuaW1wb3J0IHsgTHV4b25EYXRlQWRhcHRlciwgTUFUX0xVWE9OX0RBVEVfQURBUFRFUl9PUFRJT05TIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbHV4b24tYWRhcHRlcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFLCBNYXREYXRlRm9ybWF0cywgTWF0UmlwcGxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBkYXRlUGlja2VyRm9ybWF0czogTWF0RGF0ZUZvcm1hdHMgPSB7XG4gIHBhcnNlOiB7XG4gICAgZGF0ZUlucHV0OiAnTExMTCB5eXl5JyxcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogJ0xMTEwgeXl5eScsXG4gICAgbW9udGhZZWFyTGFiZWw6ICdMTExMIHl5eXknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdMTEwnLFxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0geXl5eScsXG4gIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZXRhcXMyLW1vbnRocGlja2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXIsXG4gICAgTWF0RGF0ZXBpY2tlcklucHV0LFxuICAgIE1hdERhdGVwaWNrZXJUb2dnbGUsXG4gICAgTWF0Rm9ybUZpZWxkLFxuICAgIE1hdElucHV0LFxuICAgIE1hdExhYmVsLFxuICAgIE1hdFN1ZmZpeCxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdFJpcHBsZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICB1c2VDbGFzczogTHV4b25EYXRlQWRhcHRlcixcbiAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEUsIE1BVF9MVVhPTl9EQVRFX0FEQVBURVJfT1BUSU9OU10sXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBkYXRlUGlja2VyRm9ybWF0cyB9LFxuICAgIC8vcHJvdmlkZUx1eG9uRGF0ZUFkYXB0ZXIoZGF0ZVBpY2tlckZvcm1hdHMpLFxuICAgIHsgcHJvdmlkZTogTE9DQUxFX0lELCB1c2VWYWx1ZTogJ2RlLURFJyB9LFxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfTE9DQUxFLCB1c2VWYWx1ZTogJ2RlLURFJyB9LFxuICAgIHsgcHJvdmlkZTogTUFUX0xVWE9OX0RBVEVfQURBUFRFUl9PUFRJT05TLCB1c2VWYWx1ZTogeyB1c2VVdGM6IHRydWUsIGZpcnN0RGF5T2ZXZWVrOiAxIH0gfSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21vbnRocGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL21vbnRocGlja2VyLmNvbXBvbmVudC5jc3MnLFxufSlcbi8qKlxuICogVGhlb3JldGljYWxseSwgdGhpcyBjb21wb25lbnQgc2hvdWxkIGJlIGFibGUgdG8gaGFuZGxlIGJvdGggbW9udGhseSBhbmQgZGFpbHkgZGF0ZSByYW5nZXMuXG4gKiBCdXQgSSBhbSB1bmFibGUgdG8gZmluZCBhIHdheSB0byBjaGFuZ2UgdGhlIGRhdGUgZm9ybWF0IG9mIHRoZSBkYXRlcGlja2VyXG4gKi9cbmV4cG9ydCBjbGFzcyBNb250aHBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgc3RhcnRWaWV3OiAnbW9udGgnIHwgJ3llYXInIHwgJ211bHRpLXllYXInID0gJ3llYXInO1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBpbnB1dEdyb3VwOiBGb3JtR3JvdXA8eyBzdGFydDogRm9ybUNvbnRyb2w8RGF0ZVRpbWU8Ym9vbGVhbj4+OyBlbmQ6IEZvcm1Db250cm9sPERhdGVUaW1lPGJvb2xlYW4+PiB9PjtcbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdzdGFydCcsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJvdGVjdGVkIHN0YXJ0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdyaXBwbGUnLCB7XG4gICAgcmVhZDogTWF0UmlwcGxlLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJpcHBsZSE6IE1hdFJpcHBsZTtcblxuXG4gIHByb3RlY3RlZCBzZXRTdGFydChkYXRlOiBEYXRlVGltZTxib29sZWFuPiwgcGlja2VyOiBNYXREYXRlcGlja2VyPERhdGVUaW1lPGJvb2xlYW4+Pik6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRHcm91cC5jb250cm9scy5zdGFydC5zZXRWYWx1ZShkYXRlKTtcbiAgICBwaWNrZXIuY2xvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRFbmQoZGF0ZTogRGF0ZVRpbWU8Ym9vbGVhbj4sIHBpY2tlcjogTWF0RGF0ZXBpY2tlcjxEYXRlVGltZTxib29sZWFuPj4pOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0R3JvdXAuY29udHJvbHMuZW5kLnNldFZhbHVlKGRhdGUuZW5kT2YoJ21vbnRoJykpO1xuICAgIHBpY2tlci5jbG9zZSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mb2N1cygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy9kZWZlciB0aGlzIHRvIGF2b2lkIGFuIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3Igb24gdGhlIHBhcmVudCBjb21wb25lbnRcbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuaW5wdXRHcm91cC5yZXNldCgpKTtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMuc3RhcnQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB0aGlzLnJpcHBsZS5sYXVuY2goe1xuICAgICAgY2VudGVyZWQ6IHRydWUsIC8vIE1hdGVyaWFsIGJ1ZzogZGlzYWJsZWQgcmlwcGxlcyBkbyBub3QgdHJpZ2dlciB1bmxlc3MgY2VudGVyZWRcbiAgICAgIHJhZGl1czogMTAwMCxcbiAgICAgIGFuaW1hdGlvbjoge1xuICAgICAgICBleGl0RHVyYXRpb246IDEwMDAsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG48bWF0LWNhcmQ+XG4gIDxtYXQtY2FyZC1oZWFkZXI+XG4gICAgPG1hdC1jYXJkLXRpdGxlPiBNb25hdGxpY2hlciBWZXJnbGVpY2ggPC9tYXQtY2FyZC10aXRsZT5cbiAgPC9tYXQtY2FyZC1oZWFkZXI+XG4gIDxtYXQtY2FyZC1jb250ZW50IFtmb3JtR3JvdXBdPVwiaW5wdXRHcm91cFwiPlxuICAgIDwvIS0tIHN0YXJ0IGRhdGUgLS0vPlxuICAgIC0tPlxuPGRpdiBbZm9ybUdyb3VwXT1cImlucHV0R3JvdXBcIiBtYXRSaXBwbGUgI3JpcHBsZT1cIm1hdFJpcHBsZVwiIFttYXRSaXBwbGVEaXNhYmxlZF09XCJ0cnVlXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD5aZWl0cHVua3QgMTwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICAgICAgI3N0YXJ0XG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICBbbWluXT1cImlucHV0R3JvdXAuY29udHJvbHMuc3RhcnQuZGVmYXVsdFZhbHVlXCJcbiAgICAgICAgICAgICBbbWF4XT1cImlucHV0R3JvdXAuY29udHJvbHMuZW5kLmRlZmF1bHRWYWx1ZVwiXG4gICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyMVwiIGZvcm1Db250cm9sTmFtZT1cInN0YXJ0XCJcbiAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlN0YXJ0cyBkYXRlXCJcbiAgICAgID5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0SWNvblN1ZmZpeCBbZm9yXT1cInBpY2tlcjFcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAjcGlja2VyMVxuICAgICAgICBbc3RhcnRBdF09XCJpbnB1dEdyb3VwLmNvbnRyb2xzLnN0YXJ0LmRlZmF1bHRWYWx1ZVwiXG4gICAgICAgIFtzdGFydFZpZXddPVwic3RhcnRWaWV3XCJcbiAgICAgICAgKG1vbnRoU2VsZWN0ZWQpPVwic2V0U3RhcnQoJGV2ZW50LCBwaWNrZXIxKVwiXG5cbiAgICAgID5cbiAgICAgIDwvbWF0LWRhdGVwaWNrZXI+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8IS0tIC9zdGFydCBkYXRlIC0tPlxuICAgIDwhLS0gZW5kIGRhdGUgLS0+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD5aZWl0cHVua3QyPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgIFttaW5dPVwiaW5wdXRHcm91cC5jb250cm9scy5zdGFydC5kZWZhdWx0VmFsdWVcIlxuICAgICAgICAgICAgIFttYXhdPVwiaW5wdXRHcm91cC5jb250cm9scy5lbmQuZGVmYXVsdFZhbHVlXCJcbiAgICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXIyXCJcbiAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbmRcIlxuICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW5kIGRhdGVcIlxuICAgICAgPlxuICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRJY29uU3VmZml4IFtmb3JdPVwicGlja2VyMlwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgPG1hdC1kYXRlcGlja2VyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICNwaWNrZXIyXG4gICAgICAgIFtzdGFydEF0XT1cImlucHV0R3JvdXAuY29udHJvbHMuZW5kLnZhbHVlXCJcbiAgICAgICAgW3N0YXJ0Vmlld109XCJzdGFydFZpZXdcIlxuICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJzZXRFbmQoJGV2ZW50LCBwaWNrZXIyKVwiXG4gICAgICA+XG4gICAgICA8L21hdC1kYXRlcGlja2VyPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPCEtLSAvZW5kIGRhdGUgLS0+XG48L2Rpdj5cbjwhLS1cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cbi0tPlxuIl19
@@ -1,23 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../java-api";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "../node-list/node-list.component";
6
- export class CollectionIssuesComponent {
7
- constructor(filterAPIService) {
8
- this.filterAPIService = filterAPIService;
9
- this.issues = [];
10
- // @TODO: Input is broken, maybe cause of withComponentInputBinding()?!
11
- this.collectionId = '94f22c9b-0d3a-4c1c-8987-4c8e83f3a92e';
12
- }
13
- async ngOnInit() {
14
- this.issues = await this.filterAPIService.getCollectionIssueFieldNames().toPromise();
15
- }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CollectionIssuesComponent, deps: [{ token: i1.FilterAPIService }], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CollectionIssuesComponent, selector: "metaqs2-collection-issues", ngImport: i0, template: "<metaqs2-node-list\n *ngFor=\"let mode of issues\"\n [collectionId]=\"collectionId\"\n [mode]=\"mode\"\n type=\"collection\"\n></metaqs2-node-list>\n", styles: [".while-loading{filter:blur(2px)}:host{padding:0 30px;display:flex;gap:30px;flex-wrap:wrap}:host>metaqs2-node-list{width:400px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.NodeListComponent, selector: "metaqs2-node-list", inputs: ["mode", "type", "collectionId"], outputs: ["countChanged"] }] }); }
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CollectionIssuesComponent, decorators: [{
20
- type: Component,
21
- args: [{ selector: 'metaqs2-collection-issues', template: "<metaqs2-node-list\n *ngFor=\"let mode of issues\"\n [collectionId]=\"collectionId\"\n [mode]=\"mode\"\n type=\"collection\"\n></metaqs2-node-list>\n", styles: [".while-loading{filter:blur(2px)}:host{padding:0 30px;display:flex;gap:30px;flex-wrap:wrap}:host>metaqs2-node-list{width:400px}\n"] }]
22
- }], ctorParameters: () => [{ type: i1.FilterAPIService }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1pc3N1ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWV0YS13aWRnZXRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbi1pc3N1ZXMvY29sbGVjdGlvbi1pc3N1ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWV0YS13aWRnZXRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbi1pc3N1ZXMvY29sbGVjdGlvbi1pc3N1ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRbEQsTUFBTSxPQUFPLHlCQUF5QjtJQUtwQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUp0RCxXQUFNLEdBQWEsRUFBRSxDQUFDO1FBQ3RCLHVFQUF1RTtRQUN2RSxpQkFBWSxHQUFXLHNDQUFzQyxDQUFDO0lBRUwsQ0FBQztJQUUxRCxLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2RixDQUFDOytHQVRVLHlCQUF5QjttR0FBekIseUJBQXlCLGlFQ1J0QywySkFNQTs7NEZERWEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJBUElTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vamF2YS1hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtZXRhcXMyLWNvbGxlY3Rpb24taXNzdWVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbGxlY3Rpb24taXNzdWVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29sbGVjdGlvbi1pc3N1ZXMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29sbGVjdGlvbklzc3Vlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGlzc3Vlczogc3RyaW5nW10gPSBbXTtcbiAgLy8gQFRPRE86IElucHV0IGlzIGJyb2tlbiwgbWF5YmUgY2F1c2Ugb2Ygd2l0aENvbXBvbmVudElucHV0QmluZGluZygpPyFcbiAgY29sbGVjdGlvbklkOiBzdHJpbmcgPSAnOTRmMjJjOWItMGQzYS00YzFjLTg5ODctNGM4ZTgzZjNhOTJlJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpbHRlckFQSVNlcnZpY2U6IEZpbHRlckFQSVNlcnZpY2UpIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pc3N1ZXMgPSBhd2FpdCB0aGlzLmZpbHRlckFQSVNlcnZpY2UuZ2V0Q29sbGVjdGlvbklzc3VlRmllbGROYW1lcygpLnRvUHJvbWlzZSgpO1xuICB9XG59XG4iLCI8bWV0YXFzMi1ub2RlLWxpc3RcbiAgKm5nRm9yPVwibGV0IG1vZGUgb2YgaXNzdWVzXCJcbiAgW2NvbGxlY3Rpb25JZF09XCJjb2xsZWN0aW9uSWRcIlxuICBbbW9kZV09XCJtb2RlXCJcbiAgdHlwZT1cImNvbGxlY3Rpb25cIlxuPjwvbWV0YXFzMi1ub2RlLWxpc3Q+XG4iXX0=