ngx-edu-sharing-metaqs2 0.9.37 → 0.9.38

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.
@@ -21,7 +21,7 @@ export declare class CollectionCountHistoryComponent implements OnInit {
21
21
  protected granularities: DateTimeUnit[];
22
22
  protected granularity: FormControl<DateTimeUnit>;
23
23
  pageTitle: string;
24
- isHistoryEnabled: import("@angular/core").WritableSignal<boolean>;
24
+ readonly isHistoryEnabled: import("@angular/core").WritableSignal<boolean>;
25
25
  constructor(metaApi: MetaApiService, destroyRef: DestroyRef);
26
26
  ngOnInit(): void;
27
27
  registerDateRangeFilter(): void;
@@ -14,7 +14,6 @@ export declare class MonthpickerComponent implements OnInit, OnDestroy {
14
14
  disabled: boolean;
15
15
  protected start: ElementRef<HTMLInputElement>;
16
16
  protected readonly ripple: MatRipple;
17
- constructor();
18
17
  protected setStart(date: DateTime<boolean>, picker: MatDatepicker<DateTime<boolean>>): void;
19
18
  protected setEnd(date: DateTime<boolean>, picker: MatDatepicker<DateTime<boolean>>): void;
20
19
  ngOnInit(): void;
@@ -1,5 +1,5 @@
1
- import { AfterViewChecked } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
1
+ import { AfterViewChecked, DestroyRef, ElementRef, OnInit } from '@angular/core';
2
+ import { BehaviorSubject, Subject } from 'rxjs';
3
3
  import { MetaApiService } from '../../meta-api.service';
4
4
  import { FilterValue, QualityMatrix, QualityMatrixHeader, QualityMatrixRow } from '../../java-api';
5
5
  import { FormControl, FormGroup, FormRecord } from '@angular/forms';
@@ -10,26 +10,32 @@ import { KeyValue } from '@angular/common';
10
10
  import { Overlay } from '@angular/cdk/overlay';
11
11
  import { TooltipService } from '../../core/tooltip.service';
12
12
  import * as i0 from "@angular/core";
13
- export declare class QualityMatrixComponent implements AfterViewChecked {
14
- private readonly metaApi;
15
- private readonly linkService;
16
- private readonly overlay;
17
- private readonly tooltipService;
18
- private readonly ref;
13
+ export declare class QualityMatrixComponent implements OnInit, AfterViewChecked {
14
+ protected readonly ref: ElementRef<any>;
15
+ protected readonly destroyRef: DestroyRef;
16
+ protected readonly metaApi: MetaApiService;
17
+ protected readonly linkService: EditorialLinkService;
18
+ protected readonly overlay: Overlay;
19
+ protected readonly tooltipService: TooltipService;
19
20
  private readonly scrollLeft;
20
21
  private readonly scrollWidth;
21
22
  readonly isLeftScrollable: import("@angular/core").Signal<boolean>;
22
23
  readonly isRightScrollable: import("@angular/core").Signal<boolean | undefined>;
23
24
  private readonly issueTypeHeader;
24
- filteredColumns: QualityMatrixHeader[];
25
- datatableColumns: Array<string>;
26
- showHistoricalData: FormControl<boolean | null>;
27
- onlySourcesWithMaterial: FormControl<boolean | null>;
28
- categoryControls: FormRecord<FormControl<string[]>>;
29
- isLoading: import("@angular/core").WritableSignal<boolean>;
25
+ readonly filteredColumns: import("@angular/core").Signal<QualityMatrixHeader[]>;
26
+ readonly datatableColumns: import("@angular/core").Signal<string[]>;
27
+ readonly isHistoricalDataEnabledFormField: FormControl<boolean | null>;
28
+ readonly isHistoricalDataEnabled: import("@angular/core").Signal<boolean | null | undefined>;
29
+ readonly isOnlySourcesWithMaterialEnabledFormField: FormControl<boolean | null>;
30
+ readonly isOnlySourcesWithMaterialEnabled: import("@angular/core").Signal<boolean | null | undefined>;
31
+ readonly categoryControls: FormRecord<FormControl<string[]>>;
32
+ readonly loadingCount: import("@angular/core").WritableSignal<number>;
33
+ readonly isLoading: import("@angular/core").Signal<boolean>;
30
34
  private readonly scrollMarkers;
31
35
  readonly categoryFilterValues: Map<string, FilterValue[]>;
36
+ protected readonly refresh$: Subject<void>;
32
37
  readonly recentQualityMatrix$: BehaviorSubject<QualityMatrix>;
38
+ readonly recentQualityMatrix: import("@angular/core").Signal<QualityMatrix>;
33
39
  readonly pastQualityMatrix$: BehaviorSubject<QualityMatrix | null>;
34
40
  readonly range: FormGroup<{
35
41
  start: FormControl<DateTime<boolean>>;
@@ -38,26 +44,22 @@ export declare class QualityMatrixComponent implements AfterViewChecked {
38
44
  private readonly tooltips;
39
45
  protected readonly DateTime: typeof DateTime;
40
46
  pageTitle: string;
41
- constructor(metaApi: MetaApiService, linkService: EditorialLinkService, overlay: Overlay, tooltipService: TooltipService);
47
+ readonly allColumns: import("@angular/core").Signal<QualityMatrixHeader[]>;
42
48
  ngAfterViewChecked(): void;
43
49
  filterIdent(_index: number, item: KeyValue<string, FormControl<string[]>>): string;
44
- get qualityMatrix(): QualityMatrix;
45
- get sourceColumns(): string[];
46
- get currentColumns(): string[];
47
- get pastColumns(): string[];
48
- get allDataColumns(): string[];
49
- private filterTableBySourcesWithMaterial;
50
- registerDateRangeFilter(): void;
51
- private registerCategoryFilters;
52
- private onLoadedDataChanges;
53
- private loadDataForStart;
54
- private loadDataForEnd;
55
- private getCurrentFilterValues;
56
- private loadDataWithCurrentlySelectedFilters;
50
+ sourceColumns: import("@angular/core").Signal<string[]>;
51
+ currentColumns: import("@angular/core").Signal<string[]>;
52
+ pastColumns: import("@angular/core").Signal<string[]>;
53
+ allDataColumns: import("@angular/core").Signal<string[]>;
54
+ private loadData;
55
+ private transformCategoryFilters;
56
+ private loadPastData;
57
+ private loadCurrentData;
57
58
  openEditLink(source: string, issue: string): void;
58
59
  columnIdent(_index: number, col: QualityMatrixHeader): string;
59
- refresh(): Promise<void>;
60
+ refresh(): void;
60
61
  getPastColumn(columnId: string): QualityMatrixHeader | undefined;
62
+ ngOnInit(): void;
61
63
  getTrend(row: QualityMatrixRow, column: QualityMatrixHeader): {
62
64
  delta?: number;
63
65
  trend?: string;
@@ -1,52 +1,70 @@
1
1
  import { DestroyRef, OnInit } from '@angular/core';
2
- import { BehaviorSubject, Observable } from 'rxjs';
2
+ import { BehaviorSubject, Observable, Subject, Unsubscribable } from 'rxjs';
3
3
  import { MetaApiService } from '../meta-api.service';
4
4
  import { Filter, MatrixRowWithCounts, MatrixWithCounts, QualityMatrixHeader } from '../java-api';
5
5
  import { DateTime } from 'luxon';
6
6
  import { FormControl, FormGroup } from '@angular/forms';
7
7
  import { EditorialLinkService } from '../components/editorial-link-service/editorial-link.service';
8
8
  import * as i0 from "@angular/core";
9
- export type MethodType = ((it: Filter[]) => Observable<MatrixWithCounts>) | ((x: string, it: Filter[]) => Observable<MatrixWithCounts>);
10
9
  export type PickKeysByPropertyType<TObject extends object, TPropertyType> = {
11
10
  [TKey in keyof TObject]: TObject[TKey] extends TPropertyType ? TKey : never;
12
11
  }[keyof TObject];
13
- export declare class CountsWithHistoryComponent implements OnInit {
12
+ export declare abstract class BaseHistoricDataTableDirective<TLoadingData extends object, TMethodType extends MetaApiService[keyof MetaApiService] & Function> {
14
13
  protected readonly metaApi: MetaApiService;
15
14
  protected readonly destroyRef: DestroyRef;
16
- private readonly linkService;
17
- protected readonly loadingCount: import("@angular/core").WritableSignal<number>;
15
+ protected readonly linkService: EditorialLinkService;
16
+ apiMethod: PickKeysByPropertyType<MetaApiService, TMethodType>;
17
+ columnTranslationkey: string | null;
18
+ pageTitle: string;
19
+ sourceType: 'replicationSource' | 'collection';
20
+ protected loadingCount: import("@angular/core").WritableSignal<number>;
18
21
  protected readonly isLoading: import("@angular/core").Signal<boolean>;
22
+ readonly isHistoryEnabled: import("@angular/core").WritableSignal<boolean>;
23
+ protected readonly isHistoryEnabled$: Observable<boolean>;
19
24
  protected readonly timeFilterLoaded: import("@angular/core").WritableSignal<boolean>;
20
- protected readonly recentTypeCount$: BehaviorSubject<MatrixWithCounts>;
21
- protected readonly pastTypeCount$: BehaviorSubject<MatrixWithCounts>;
25
+ protected recentTypeCount$: BehaviorSubject<MatrixWithCounts>;
26
+ protected pastTypeCount$: BehaviorSubject<MatrixWithCounts>;
22
27
  protected readonly DateTime: typeof DateTime;
23
28
  columns: import("@angular/core").WritableSignal<QualityMatrixHeader[]>;
24
- apiMethod: PickKeysByPropertyType<MetaApiService, MethodType>;
25
- columnTranslationkey: string | null;
26
- pageTitle: string;
27
- sourceType: 'replicationSource' | 'collection';
29
+ protected readonly dataForPastData$: Subject<Partial<TLoadingData>>;
30
+ protected readonly dataForRecentData$: Subject<Partial<TLoadingData>>;
31
+ protected readonly startValues$: Observable<MatrixWithCounts>;
32
+ protected readonly endValues$: Observable<MatrixWithCounts>;
33
+ protected startDateSubscription: Unsubscribable | undefined;
34
+ protected startValuesSubscription: Unsubscribable | undefined;
28
35
  readonly range: FormGroup<{
29
36
  start: FormControl<DateTime<boolean>>;
30
37
  end: FormControl<DateTime<boolean>>;
31
38
  }>;
32
- readonly isHistoryEnabled: import("@angular/core").WritableSignal<boolean>;
39
+ protected readonly timerangeStart$: Observable<DateTime<true>>;
33
40
  readonly allColumns: import("@angular/core").Signal<string[]>;
34
41
  readonly typeColumns: import("@angular/core").Signal<string[]>;
35
42
  readonly recentColumns: import("@angular/core").Signal<string[]>;
36
43
  readonly pastColumns: import("@angular/core").Signal<string[]>;
37
- constructor(metaApi: MetaApiService, destroyRef: DestroyRef, linkService: EditorialLinkService);
38
- ngOnInit(): void;
44
+ protected abstract getCountByDate(date: TLoadingData): Observable<MatrixWithCounts>;
45
+ protected abstract validateLoadingData(data: Partial<TLoadingData>): data is TLoadingData;
46
+ protected abstract compareLoadingDataEqual(a: TLoadingData, b: TLoadingData): boolean;
47
+ protected getAvailableDateRange(): Observable<Filter>;
39
48
  private getStartDateOfRange;
40
49
  columnIdent(_index: number, col: QualityMatrixHeader): string;
41
- private getAvailableDateRange;
42
- protected getValuesInDateRange(): Observable<[MatrixWithCounts, MatrixWithCounts]>;
43
- protected getCountByDate(date: DateTime): Observable<MatrixWithCounts>;
44
- protected pastTypeCount(row: MatrixRowWithCounts, columnid: string): {
50
+ pastTypeCount(row: MatrixRowWithCounts, columnid: string): {
45
51
  delta?: number;
46
52
  trend?: string;
47
53
  value?: number;
48
54
  };
49
- protected openInEditor(sourceId: string, issueId: string): Observable<string | null>;
55
+ openInEditor(sourceId: string, issueId: string): Observable<string | null>;
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>;
58
+ }
59
+ type LoadingData = {
60
+ date: DateTime;
61
+ };
62
+ export declare class CountsWithHistoryComponent extends BaseHistoricDataTableDirective<LoadingData, (filters: Filter[]) => Observable<MatrixWithCounts>> implements OnInit {
63
+ ngOnInit(): void;
64
+ protected getCountByDate(data: LoadingData): Observable<MatrixWithCounts>;
65
+ protected validateLoadingData(data: Partial<LoadingData>): data is LoadingData;
66
+ protected compareLoadingDataEqual(a: LoadingData, b: LoadingData): boolean;
50
67
  static ɵfac: i0.ɵɵFactoryDeclaration<CountsWithHistoryComponent, never>;
51
- static ɵcmp: i0.ɵɵComponentDeclaration<CountsWithHistoryComponent, "metaqs2-counts-with-history", never, { "apiMethod": { "alias": "apiMethod"; "required": true; }; "columnTranslationkey": { "alias": "columnTranslationkey"; "required": false; }; "pageTitle": { "alias": "pageTitle"; "required": false; }; "sourceType": { "alias": "sourceType"; "required": true; }; }, {}, never, never, true, never>;
68
+ static ɵcmp: i0.ɵɵComponentDeclaration<CountsWithHistoryComponent, "metaqs2-counts-with-history", never, {}, {}, never, never, true, never>;
52
69
  }
70
+ export {};
@@ -25,7 +25,7 @@ export declare class MetaApiService {
25
25
  getEditorialMaterialCounts(body: MaterialCountFilter): Observable<import("./java-api").MaterialCountDto[]>;
26
26
  getMaterialTypeCountsByReplicationSource(body: Filter[]): Observable<MatrixWithCounts>;
27
27
  getLicenseCountsByReplicationSource(body: Filter[]): Observable<MatrixWithCounts>;
28
- getLicenseCountsByLicenseGroup(colId: string, filters: Filter[]): Observable<MatrixWithCounts>;
28
+ getLicenseCountsByLicenseGroup(colId: string, filters: Filter[]): Observable<QualityMatrix>;
29
29
  getMaterialCountMatrixByLicenseGroup(body: Filter[]): Observable<MatrixWithCounts>;
30
30
  getCompletenessForDisciplinaryPortals(body: Filter[]): Observable<MatrixWithCounts>;
31
31
  getCompletenessForReplicationSources(body: Filter[]): Observable<MatrixWithCounts>;
@@ -1,17 +1,22 @@
1
1
  import { OnInit } from '@angular/core';
2
- import { CountsWithHistoryComponent, MethodType, PickKeysByPropertyType } from '../counts-with-history/counts-with-history.component';
2
+ import { BaseHistoricDataTableDirective } from '../counts-with-history/counts-with-history.component';
3
3
  import { Observable } from 'rxjs';
4
- import { MatrixWithCounts } from '../java-api';
4
+ import { Filter, MatrixWithCounts, QualityMatrix } from '../java-api';
5
5
  import { DateTime } from 'luxon';
6
- import { MetaApiService } from '../meta-api.service';
7
6
  import * as i0 from "@angular/core";
8
- export declare class TreeLicenseComponent extends CountsWithHistoryComponent implements OnInit {
7
+ type LoadingData = {
8
+ date: DateTime;
9
+ collectionId: string;
10
+ };
11
+ export declare class TreeLicenseComponent extends BaseHistoricDataTableDirective<LoadingData, (collectionId: string, filters: Filter[]) => Observable<QualityMatrix>> implements OnInit {
9
12
  private colId$;
10
13
  set collectionId(id: string);
11
14
  sourceType: 'replicationSource' | 'collection';
12
- apiMethod: PickKeysByPropertyType<MetaApiService, MethodType>;
13
- protected getCountByDate(date: DateTime): Observable<MatrixWithCounts>;
15
+ protected getCountByDate(data: LoadingData): Observable<MatrixWithCounts>;
14
16
  ngOnInit(): void;
17
+ protected validateLoadingData(data: Partial<LoadingData>): data is LoadingData;
18
+ protected compareLoadingDataEqual(a: LoadingData, b: LoadingData): boolean;
15
19
  static ɵfac: i0.ɵɵFactoryDeclaration<TreeLicenseComponent, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<TreeLicenseComponent, "metaqs2-tree-license", never, { "collectionId": { "alias": "collectionId"; "required": true; }; "sourceType": { "alias": "sourceType"; "required": false; }; "apiMethod": { "alias": "apiMethod"; "required": false; }; }, {}, never, never, true, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<TreeLicenseComponent, "metaqs2-tree-license", never, { "collectionId": { "alias": "collectionId"; "required": true; }; "sourceType": { "alias": "sourceType"; "required": false; }; }, {}, never, never, true, never>;
17
21
  }
22
+ export {};
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "ngx-edu-sharing-metaqs2",
3
3
  "description": "OEH MetaQS widgets library",
4
4
  "license": "GNU GPL v2",
5
- "version": "0.9.37",
5
+ "version": "0.9.38",
6
6
  "author": "Torsten Simon",
7
7
  "peerDependencies": {
8
8
  "@angular/common": ">=16.0.0",