@codetectonics/mantle 1.0.16 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
- import { PipeTransform, EventEmitter, OnDestroy, AfterViewChecked, ChangeDetectorRef, OnChanges, OnInit, ElementRef, Injector, AfterViewInit, InjectionToken } from '@angular/core';
2
+ import { PipeTransform, EventEmitter, OnDestroy, OnChanges, SimpleChanges, AfterViewChecked, ChangeDetectorRef, OnInit, ElementRef, Injector, AfterViewInit, InjectionToken } from '@angular/core';
3
3
  import * as rxjs from 'rxjs';
4
4
  import { Observable, BehaviorSubject } from 'rxjs';
5
- import * as i104 from '@angular/common/http';
5
+ import * as i107 from '@angular/common/http';
6
6
  import { HttpClient, HttpParams } from '@angular/common/http';
7
7
  import { AngularTokenService, SignInData, UpdatePasswordData, ResetPasswordData } from '@citizenobserver/angular-token';
8
- import * as i110 from '@angular/forms';
9
- import { FormGroup, ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
10
- import * as i105 from '@angular/cdk/layout';
8
+ import * as i113 from '@angular/forms';
9
+ import { FormGroup, ControlValueAccessor, Validator, AbstractControl, ValidationErrors, FormArray } from '@angular/forms';
10
+ import * as i108 from '@angular/cdk/layout';
11
11
  import { BreakpointObserver } from '@angular/cdk/layout';
12
12
  import * as i8 from '@angular/material/dialog';
13
13
  import { MatDialog, MatDialogRef, MatDialogConfig } from '@angular/material/dialog';
@@ -16,11 +16,15 @@ import { MatSnackBar, MatSnackBarRef } from '@angular/material/snack-bar';
16
16
  import * as i6 from '@angular/material/chips';
17
17
  import { MatChipInputEvent } from '@angular/material/chips';
18
18
  import { Moment } from 'moment';
19
- import * as i108 from '@angular/platform-browser';
19
+ import * as i111 from '@angular/platform-browser';
20
20
  import { DomSanitizer } from '@angular/platform-browser';
21
- import * as i117 from 'ngx-image-cropper';
21
+ import * as i120 from 'ngx-image-cropper';
22
22
  import { ImageCroppedEvent } from 'ngx-image-cropper';
23
- import * as i103 from '@angular/router';
23
+ import * as i110 from '@angular/cdk/drag-drop';
24
+ import { CdkDragDrop } from '@angular/cdk/drag-drop';
25
+ import * as i118 from '@ngx-translate/core';
26
+ import { TranslateService } from '@ngx-translate/core';
27
+ import * as i106 from '@angular/router';
24
28
  import { ActivatedRoute, Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router';
25
29
  import * as i22 from '@angular/material/paginator';
26
30
  import { MatPaginator } from '@angular/material/paginator';
@@ -29,23 +33,19 @@ import { MatSort } from '@angular/material/sort';
29
33
  import * as i21 from '@angular/material/table';
30
34
  import { MatTable } from '@angular/material/table';
31
35
  import { DataSource } from '@angular/cdk/collections';
32
- import * as i115 from '@ngx-translate/core';
33
- import { TranslateService } from '@ngx-translate/core';
34
36
  import * as i26 from '@angular/material/tree';
35
37
  import { MatTreeFlattener, MatTreeFlatDataSource } from '@angular/material/tree';
36
38
  import { FlatTreeControl } from '@angular/cdk/tree';
37
39
  import Highcharts$1 from 'highcharts';
38
40
  import * as i14 from '@angular/material/menu';
39
41
  import { MatMenuTrigger } from '@angular/material/menu';
40
- import * as i107 from '@angular/cdk/drag-drop';
41
- import { CdkDragDrop } from '@angular/cdk/drag-drop';
42
42
  import * as i1 from '@angular/common';
43
- import * as i106 from '@angular/flex-layout';
44
- import * as i109 from '@angular/platform-browser/animations';
45
- import * as i111 from 'highcharts-angular';
46
- import * as i112 from 'ngx-markdown';
47
- import * as i113 from 'ng-qrcode';
48
- import * as i114 from 'ngx-quill';
43
+ import * as i109 from '@angular/flex-layout';
44
+ import * as i112 from '@angular/platform-browser/animations';
45
+ import * as i114 from 'highcharts-angular';
46
+ import * as i115 from 'ngx-markdown';
47
+ import * as i116 from 'ng-qrcode';
48
+ import * as i117 from 'ngx-quill';
49
49
  import * as i2 from '@angular/material/badge';
50
50
  import * as i3 from '@angular/material/button';
51
51
  import * as i4 from '@angular/material/card';
@@ -177,7 +177,7 @@ interface DynamicLayoutContainer {
177
177
  interface DynamicLayoutSection {
178
178
  title?: string;
179
179
  slug?: string;
180
- layout: 'grid' | 'table' | 'dashboard' | 'markdown';
180
+ layout: 'grid' | 'table' | 'dashboard' | 'markdown' | 'report';
181
181
  config?: TableSectionConfig;
182
182
  writable: boolean;
183
183
  hidden: boolean;
@@ -207,6 +207,16 @@ interface DynamicLayoutTableSection {
207
207
  collapsed: boolean;
208
208
  options: any;
209
209
  }
210
+ interface DynamicLayoutReportSection {
211
+ title?: string;
212
+ slug?: string;
213
+ layout: 'report';
214
+ elements: DynamicFormField[];
215
+ writable: boolean;
216
+ hidden: boolean;
217
+ collapsed: boolean;
218
+ options: any;
219
+ }
210
220
  interface DynamicLayoutRosterShiftListSection {
211
221
  title?: string;
212
222
  slug?: string;
@@ -476,6 +486,13 @@ declare class TableDetailsSectionComponent {
476
486
  static ɵcmp: i0.ɵɵComponentDeclaration<TableDetailsSectionComponent, "mantle-table-details-section", never, { "data": { "alias": "data"; "required": false; }; "section": { "alias": "section"; "required": false; }; "detailPageService": { "alias": "detailPageService"; "required": false; }; }, {}, never, never, false, never>;
477
487
  }
478
488
 
489
+ declare class ReportDetailsSectionComponent {
490
+ data: any;
491
+ section: DynamicLayoutReportSection;
492
+ static ɵfac: i0.ɵɵFactoryDeclaration<ReportDetailsSectionComponent, never>;
493
+ static ɵcmp: i0.ɵɵComponentDeclaration<ReportDetailsSectionComponent, "mantle-report-details-section", never, { "data": { "alias": "data"; "required": false; }; "section": { "alias": "section"; "required": false; }; }, {}, never, never, false, never>;
494
+ }
495
+
479
496
  declare class RosterShiftListDetailsSectionComponent {
480
497
  data: any;
481
498
  section: DynamicLayoutRosterShiftListSection;
@@ -602,6 +619,15 @@ declare class RichTextDisplayComponent {
602
619
  static ɵcmp: i0.ɵɵComponentDeclaration<RichTextDisplayComponent, "mantle-rich-text-display", never, { "value": { "alias": "value"; "required": false; }; }, {}, never, never, false, never>;
603
620
  }
604
621
 
622
+ declare class ReportViewerDisplayComponent implements OnChanges {
623
+ value: any;
624
+ columns: DynamicTableColumn[];
625
+ items: any[];
626
+ ngOnChanges(changes: SimpleChanges): void;
627
+ static ɵfac: i0.ɵɵFactoryDeclaration<ReportViewerDisplayComponent, never>;
628
+ static ɵcmp: i0.ɵɵComponentDeclaration<ReportViewerDisplayComponent, "mantle-report-viewer-display", never, { "value": { "alias": "value"; "required": false; }; }, {}, never, never, false, never>;
629
+ }
630
+
605
631
  interface DialogNestedFormParams {
606
632
  title: string;
607
633
  section: DynamicLayoutGridSection;
@@ -895,6 +921,7 @@ declare class DropdownComponent implements ControlValueAccessor {
895
921
  disable: boolean;
896
922
  required: boolean;
897
923
  error: string | undefined;
924
+ change: EventEmitter<any>;
898
925
  value: any;
899
926
  dropdownValues: {
900
927
  label: string;
@@ -910,7 +937,7 @@ declare class DropdownComponent implements ControlValueAccessor {
910
937
  onValueChanged(event: any): void;
911
938
  filterDropdownValues(): void;
912
939
  static ɵfac: i0.ɵɵFactoryDeclaration<DropdownComponent, never>;
913
- static ɵcmp: i0.ɵɵComponentDeclaration<DropdownComponent, "mantle-dropdown", never, { "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "options": { "alias": "options"; "required": false; }; "disable": { "alias": "disable"; "required": false; }; "required": { "alias": "required"; "required": false; }; "error": { "alias": "error"; "required": false; }; }, {}, never, never, false, never>;
940
+ static ɵcmp: i0.ɵɵComponentDeclaration<DropdownComponent, "mantle-dropdown", never, { "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "options": { "alias": "options"; "required": false; }; "disable": { "alias": "disable"; "required": false; }; "required": { "alias": "required"; "required": false; }; "error": { "alias": "error"; "required": false; }; }, { "change": "change"; }, never, never, false, never>;
914
941
  }
915
942
 
916
943
  declare class FilepickerComponent implements ControlValueAccessor {
@@ -1207,6 +1234,123 @@ declare class RichTextInputComponent implements ControlValueAccessor {
1207
1234
  static ɵcmp: i0.ɵɵComponentDeclaration<RichTextInputComponent, "mantle-rich-text-input", never, { "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "options": { "alias": "options"; "required": false; }; "disable": { "alias": "disable"; "required": false; }; "required": { "alias": "required"; "required": false; }; "error": { "alias": "error"; "required": false; }; }, {}, never, never, false, never>;
1208
1235
  }
1209
1236
 
1237
+ declare class DataBroadcastService {
1238
+ sessionData: BehaviorSubject<any>;
1239
+ locale: BehaviorSubject<any>;
1240
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataBroadcastService, never>;
1241
+ static ɵprov: i0.ɵɵInjectableDeclaration<DataBroadcastService>;
1242
+ }
1243
+
1244
+ declare class LocaleService {
1245
+ private translate;
1246
+ private dataBroadcastService;
1247
+ private objectService;
1248
+ private AVAILABLE_LOCALES;
1249
+ private DEFAULT_LOCALE;
1250
+ constructor(translate: TranslateService, dataBroadcastService: DataBroadcastService, objectService: ObjectService);
1251
+ private setDefaultLocale;
1252
+ clearLocale(): void;
1253
+ get availableLocales(): string[];
1254
+ private get availableLocaleCodes();
1255
+ get currentLocale(): string;
1256
+ get currentLocaleCode(): string;
1257
+ getTranslation(key: string): string;
1258
+ static ɵfac: i0.ɵɵFactoryDeclaration<LocaleService, never>;
1259
+ static ɵprov: i0.ɵɵInjectableDeclaration<LocaleService>;
1260
+ }
1261
+
1262
+ interface ReportConfig {
1263
+ dataset: string;
1264
+ aggregated: boolean;
1265
+ columns: ReportConfigColumn[];
1266
+ filters: ReportConfigFilter[];
1267
+ }
1268
+ interface ReportConfigColumn {
1269
+ name: string;
1270
+ type: string;
1271
+ options: any;
1272
+ selected: boolean;
1273
+ group_by: boolean;
1274
+ count: boolean;
1275
+ count_distinct: boolean;
1276
+ average: boolean;
1277
+ max: boolean;
1278
+ min: boolean;
1279
+ sum: boolean;
1280
+ }
1281
+ interface ReportConfigFilter {
1282
+ name: string;
1283
+ type: string;
1284
+ operator: string;
1285
+ value: any;
1286
+ options: {
1287
+ operators?: any;
1288
+ preSelectedValues?: any;
1289
+ };
1290
+ }
1291
+ declare class ReportConfigInputComponent implements ControlValueAccessor, Validator {
1292
+ private arrayService;
1293
+ private localeService;
1294
+ label: string;
1295
+ tooltip?: string;
1296
+ options: {
1297
+ datasets: {
1298
+ name: string;
1299
+ columns: {
1300
+ name: string;
1301
+ type: string;
1302
+ }[];
1303
+ }[];
1304
+ };
1305
+ disable: boolean;
1306
+ required: boolean;
1307
+ error: string | undefined;
1308
+ private filterContainer;
1309
+ value: ReportConfig;
1310
+ errorMessage: string | undefined;
1311
+ datasets: string[];
1312
+ datasetColumns: ReportConfigColumn[];
1313
+ filterPickerOptions: {
1314
+ values: {
1315
+ label: string;
1316
+ value: string;
1317
+ hidden: boolean;
1318
+ }[];
1319
+ };
1320
+ filterFormArray: FormArray<FormGroup<any>>;
1321
+ constructor(arrayService: ArrayService, localeService: LocaleService);
1322
+ onChange: (newValue: ReportConfig) => void;
1323
+ registerOnChange(fn: (newValue: ReportConfig) => void): void;
1324
+ onTouched: () => void;
1325
+ registerOnTouched(fn: () => void): void;
1326
+ writeValue(newValue: ReportConfig): void;
1327
+ onValueChanged(event: ReportConfig): void;
1328
+ applyReportOptions(): void;
1329
+ applyValueToDatasetColumns(): void;
1330
+ refreshValueColumns(): void;
1331
+ setDataset(dataset: string): void;
1332
+ setAggregated(aggregated: boolean): void;
1333
+ setSelected(item: ReportConfigColumn, selected: boolean): void;
1334
+ setGroupBy(item: ReportConfigColumn, groupBy: boolean): void;
1335
+ onAggregationChange(): void;
1336
+ drop(event: CdkDragDrop<ReportConfigColumn[]>): void;
1337
+ addFilter(): void;
1338
+ addFilterFormGroup(filter: ReportConfigFilter): void;
1339
+ updateFilterFormGroup(filter: ReportConfigFilter): void;
1340
+ setFilterColumn(filter: ReportConfigFilter, columnName: string): void;
1341
+ setFilterOperator(filter: ReportConfigFilter, operator: string): void;
1342
+ removeFilter(index: number): void;
1343
+ refreshFilterConfig(filter: ReportConfigFilter, column: ReportConfigColumn, value: any): void;
1344
+ getFilterTypeForColumn(column: ReportConfigColumn): string;
1345
+ getOperatorsForFilterType(type: string): {
1346
+ label: string;
1347
+ value: string;
1348
+ }[];
1349
+ validate(control: AbstractControl): ValidationErrors | null;
1350
+ static ɵfac: i0.ɵɵFactoryDeclaration<ReportConfigInputComponent, never>;
1351
+ static ɵcmp: i0.ɵɵComponentDeclaration<ReportConfigInputComponent, "mantle-report-config-input", never, { "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "options": { "alias": "options"; "required": false; }; "disable": { "alias": "disable"; "required": false; }; "required": { "alias": "required"; "required": false; }; "error": { "alias": "error"; "required": false; }; }, {}, never, never, false, never>;
1352
+ }
1353
+
1210
1354
  interface LayoutEditorPageService {
1211
1355
  showSaveButton: boolean;
1212
1356
  isCommitInProgress: boolean;
@@ -1692,31 +1836,6 @@ declare class TabbedPageComponent implements OnInit {
1692
1836
  static ɵcmp: i0.ɵɵComponentDeclaration<TabbedPageComponent, "mantle-tabbed-page", never, {}, {}, never, never, false, never>;
1693
1837
  }
1694
1838
 
1695
- declare class DataBroadcastService {
1696
- sessionData: BehaviorSubject<any>;
1697
- locale: BehaviorSubject<any>;
1698
- static ɵfac: i0.ɵɵFactoryDeclaration<DataBroadcastService, never>;
1699
- static ɵprov: i0.ɵɵInjectableDeclaration<DataBroadcastService>;
1700
- }
1701
-
1702
- declare class LocaleService {
1703
- private translate;
1704
- private dataBroadcastService;
1705
- private objectService;
1706
- private AVAILABLE_LOCALES;
1707
- private DEFAULT_LOCALE;
1708
- constructor(translate: TranslateService, dataBroadcastService: DataBroadcastService, objectService: ObjectService);
1709
- private setDefaultLocale;
1710
- clearLocale(): void;
1711
- get availableLocales(): string[];
1712
- private get availableLocaleCodes();
1713
- get currentLocale(): string;
1714
- get currentLocaleCode(): string;
1715
- getTranslation(key: string): string;
1716
- static ɵfac: i0.ɵɵFactoryDeclaration<LocaleService, never>;
1717
- static ɵprov: i0.ɵɵInjectableDeclaration<LocaleService>;
1718
- }
1719
-
1720
1839
  interface RosterPageService {
1721
1840
  showEditButton: boolean;
1722
1841
  showDeleteButtonInForm?: boolean;
@@ -2227,6 +2346,7 @@ declare class DynamicDetailsSectionComponent {
2227
2346
  constructor();
2228
2347
  asDynamicLayoutGridSection(section: any): DynamicLayoutGridSection;
2229
2348
  asDynamicLayoutTableSection(section: any): DynamicLayoutTableSection;
2349
+ asDynamicLayoutReportSection(section: any): DynamicLayoutReportSection;
2230
2350
  asDynamicLayoutMarkdownSection(section: any): DynamicLayoutMarkdownSection;
2231
2351
  asDynamicLayoutDashboardSection(section: any): DynamicLayoutDashboardSection;
2232
2352
  asDynamicLayoutRosterShiftListSection(section: any): DynamicLayoutRosterShiftListSection;
@@ -2407,7 +2527,7 @@ declare class MaterialModule {
2407
2527
 
2408
2528
  declare class MantleModule {
2409
2529
  static ɵfac: i0.ɵɵFactoryDeclaration<MantleModule, never>;
2410
- static ɵmod: i0.ɵɵNgModuleDeclaration<MantleModule, [typeof DynamicPipe, typeof SecureImagePipe, typeof ClickStopPropagationDirective, typeof FileDropzoneDirective, typeof DynamicDetailsComponent, typeof GridDetailsSectionComponent, typeof TableDetailsSectionComponent, typeof RosterShiftListDetailsSectionComponent, typeof DynamicAttributeDisplayComponent, typeof ActionsAttributeDisplayComponent, typeof IconAttributeDisplayComponent, typeof ChipAttributeDisplayComponent, typeof FileAttributeDisplayComponent, typeof ImageAttributeDisplayComponent, typeof MarkdownAttributeDisplayComponent, typeof MultiselectDisplayComponent, typeof RichTextDisplayComponent, typeof DialogFormComponent, typeof DialogNestedFormComponent, typeof DynamicFormComponent, typeof GridFormSectionComponent, typeof TableFormSectionComponent, typeof RosterShiftListFormSectionComponent, typeof DynamicFormFieldComponent, typeof ChipInputComponent, typeof DatepickerComponent, typeof DatetimepickerComponent, typeof ColorPickerInputComponent, typeof DropdownComponent, typeof FilepickerComponent, typeof ImagepickerComponent, typeof ImageCropperComponent, typeof NumberInputComponent, typeof PasswordInputComponent, typeof TextareaComponent, typeof TextInputComponent, typeof TimeInputComponent, typeof MarkdownInputComponent, typeof MultiselectInputComponent, typeof RichTextInputComponent, typeof AccordionLayoutEditorContainerComponent, typeof DynamicLayoutEditorContainerComponent, typeof PlainLayoutEditorContainerComponent, typeof DynamicLayoutEditorComponent, typeof DynamicLayoutEditorElementComponent, typeof LayoutEditorFieldElementComponent, typeof LayoutEditorTableColumnElementComponent, typeof LayoutEditorWidgetElementComponent, typeof DashboardLayoutEditorSectionComponent, typeof DynamicLayoutEditorSectionComponent, typeof GridLayoutEditorSectionComponent, typeof MarkdownLayoutEditorSectionComponent, typeof TableLayoutEditorSectionComponent, typeof DashboardPageComponent, typeof LayoutEditorPageComponent, typeof ListPageComponent, typeof FormPageComponent, typeof DetailPageComponent, typeof DocumentsPageComponent, typeof TabbedPageComponent, typeof RosterPageComponent, typeof ExportPageComponent, typeof PageTitleComponent, typeof SectionTitleComponent, typeof DynamicTableComponent, typeof FilePreviewDialogComponent, typeof DeleteConfirmationDialogComponent, typeof SaveConfirmationDialogComponent, typeof SearchPanelComponent, typeof NavTreeComponent, typeof LoaderComponent, typeof DialogDetailsComponent, typeof DialogNestedDetailsComponent, typeof LinkAttributeDisplayComponent, typeof DashboardSectionComponent, typeof DynamicWidgetDisplayComponent, typeof DynamicChartComponent, typeof DashboardInfoCardComponent, typeof DashboardTableComponent, typeof DashboardCardComponent, typeof DashboardCardSearchMenuComponent, typeof DynamicDashboardComponent, typeof RerouteComponent, typeof SnackbarComponent, typeof ThumbnailDisplayComponent, typeof ContentTitleComponent, typeof MarkdownDetailsSectionComponent, typeof AccordionDetailsContainerComponent, typeof PlainDetailsContainerComponent, typeof DynamicDetailsContainerComponent, typeof DynamicDetailsSectionComponent, typeof DynamicFormContainerComponent, typeof PlainFormContainerComponent, typeof AccordionFormContainerComponent, typeof DynamicFormSectionComponent, typeof DynamicDashboardContainerComponent, typeof PlainDashboardContainerComponent, typeof AutocompleteInputComponent, typeof QrCodeDialogComponent, typeof DraggableTableComponent, typeof TooltipComponent], [typeof i1.CommonModule, typeof i103.RouterModule, typeof i104.HttpClientModule, typeof i105.LayoutModule, typeof i106.FlexLayoutModule, typeof i107.DragDropModule, typeof i108.BrowserModule, typeof i109.BrowserAnimationsModule, typeof i110.FormsModule, typeof i110.ReactiveFormsModule, typeof i111.HighchartsChartModule, typeof i112.MarkdownModule, typeof i113.QrCodeModule, typeof i114.QuillModule, typeof i115.TranslateModule, typeof MaterialModule, typeof i117.ImageCropperComponent], [typeof MaterialModule, typeof DynamicPipe, typeof SecureImagePipe, typeof ClickStopPropagationDirective, typeof FileDropzoneDirective, typeof DynamicDetailsComponent, typeof GridDetailsSectionComponent, typeof TableDetailsSectionComponent, typeof RosterShiftListDetailsSectionComponent, typeof DynamicAttributeDisplayComponent, typeof ActionsAttributeDisplayComponent, typeof IconAttributeDisplayComponent, typeof ChipAttributeDisplayComponent, typeof FileAttributeDisplayComponent, typeof ImageAttributeDisplayComponent, typeof MarkdownAttributeDisplayComponent, typeof MultiselectDisplayComponent, typeof RichTextDisplayComponent, typeof DialogFormComponent, typeof DialogNestedFormComponent, typeof DynamicFormComponent, typeof GridFormSectionComponent, typeof TableFormSectionComponent, typeof RosterShiftListFormSectionComponent, typeof DynamicFormFieldComponent, typeof ChipInputComponent, typeof DatepickerComponent, typeof DatetimepickerComponent, typeof ColorPickerInputComponent, typeof DropdownComponent, typeof FilepickerComponent, typeof ImagepickerComponent, typeof ImageCropperComponent, typeof NumberInputComponent, typeof PasswordInputComponent, typeof TextareaComponent, typeof TextInputComponent, typeof TimeInputComponent, typeof MarkdownInputComponent, typeof MultiselectInputComponent, typeof RichTextInputComponent, typeof AccordionLayoutEditorContainerComponent, typeof DynamicLayoutEditorContainerComponent, typeof PlainLayoutEditorContainerComponent, typeof DynamicLayoutEditorComponent, typeof DynamicLayoutEditorElementComponent, typeof LayoutEditorFieldElementComponent, typeof LayoutEditorTableColumnElementComponent, typeof LayoutEditorWidgetElementComponent, typeof DashboardLayoutEditorSectionComponent, typeof DynamicLayoutEditorSectionComponent, typeof GridLayoutEditorSectionComponent, typeof MarkdownLayoutEditorSectionComponent, typeof TableLayoutEditorSectionComponent, typeof DashboardPageComponent, typeof LayoutEditorPageComponent, typeof ListPageComponent, typeof FormPageComponent, typeof DetailPageComponent, typeof DocumentsPageComponent, typeof TabbedPageComponent, typeof RosterPageComponent, typeof ExportPageComponent, typeof PageTitleComponent, typeof SectionTitleComponent, typeof DynamicTableComponent, typeof FilePreviewDialogComponent, typeof DeleteConfirmationDialogComponent, typeof SaveConfirmationDialogComponent, typeof SearchPanelComponent, typeof NavTreeComponent, typeof LoaderComponent, typeof DialogDetailsComponent, typeof DialogNestedDetailsComponent, typeof LinkAttributeDisplayComponent, typeof DashboardSectionComponent, typeof DynamicWidgetDisplayComponent, typeof DynamicChartComponent, typeof DashboardInfoCardComponent, typeof DashboardTableComponent, typeof DashboardCardComponent, typeof DashboardCardSearchMenuComponent, typeof DynamicDashboardComponent, typeof RerouteComponent, typeof SnackbarComponent, typeof ThumbnailDisplayComponent, typeof ContentTitleComponent, typeof MarkdownDetailsSectionComponent, typeof AccordionDetailsContainerComponent, typeof PlainDetailsContainerComponent, typeof DynamicDetailsContainerComponent, typeof DynamicDetailsSectionComponent, typeof DynamicFormContainerComponent, typeof PlainFormContainerComponent, typeof AccordionFormContainerComponent, typeof DynamicFormSectionComponent, typeof DynamicDashboardContainerComponent, typeof PlainDashboardContainerComponent, typeof AutocompleteInputComponent, typeof DraggableTableComponent, typeof TooltipComponent]>;
2530
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MantleModule, [typeof DynamicPipe, typeof SecureImagePipe, typeof ClickStopPropagationDirective, typeof FileDropzoneDirective, typeof DynamicDetailsComponent, typeof GridDetailsSectionComponent, typeof TableDetailsSectionComponent, typeof ReportDetailsSectionComponent, typeof RosterShiftListDetailsSectionComponent, typeof DynamicAttributeDisplayComponent, typeof ActionsAttributeDisplayComponent, typeof IconAttributeDisplayComponent, typeof ChipAttributeDisplayComponent, typeof FileAttributeDisplayComponent, typeof ImageAttributeDisplayComponent, typeof MarkdownAttributeDisplayComponent, typeof MultiselectDisplayComponent, typeof RichTextDisplayComponent, typeof ReportViewerDisplayComponent, typeof DialogFormComponent, typeof DialogNestedFormComponent, typeof DynamicFormComponent, typeof GridFormSectionComponent, typeof TableFormSectionComponent, typeof RosterShiftListFormSectionComponent, typeof DynamicFormFieldComponent, typeof ChipInputComponent, typeof DatepickerComponent, typeof DatetimepickerComponent, typeof ColorPickerInputComponent, typeof DropdownComponent, typeof FilepickerComponent, typeof ImagepickerComponent, typeof ImageCropperComponent, typeof NumberInputComponent, typeof PasswordInputComponent, typeof TextareaComponent, typeof TextInputComponent, typeof TimeInputComponent, typeof MarkdownInputComponent, typeof MultiselectInputComponent, typeof RichTextInputComponent, typeof ReportConfigInputComponent, typeof AccordionLayoutEditorContainerComponent, typeof DynamicLayoutEditorContainerComponent, typeof PlainLayoutEditorContainerComponent, typeof DynamicLayoutEditorComponent, typeof DynamicLayoutEditorElementComponent, typeof LayoutEditorFieldElementComponent, typeof LayoutEditorTableColumnElementComponent, typeof LayoutEditorWidgetElementComponent, typeof DashboardLayoutEditorSectionComponent, typeof DynamicLayoutEditorSectionComponent, typeof GridLayoutEditorSectionComponent, typeof MarkdownLayoutEditorSectionComponent, typeof TableLayoutEditorSectionComponent, typeof DashboardPageComponent, typeof LayoutEditorPageComponent, typeof ListPageComponent, typeof FormPageComponent, typeof DetailPageComponent, typeof DocumentsPageComponent, typeof TabbedPageComponent, typeof RosterPageComponent, typeof ExportPageComponent, typeof PageTitleComponent, typeof SectionTitleComponent, typeof DynamicTableComponent, typeof FilePreviewDialogComponent, typeof DeleteConfirmationDialogComponent, typeof SaveConfirmationDialogComponent, typeof SearchPanelComponent, typeof NavTreeComponent, typeof LoaderComponent, typeof DialogDetailsComponent, typeof DialogNestedDetailsComponent, typeof LinkAttributeDisplayComponent, typeof DashboardSectionComponent, typeof DynamicWidgetDisplayComponent, typeof DynamicChartComponent, typeof DashboardInfoCardComponent, typeof DashboardTableComponent, typeof DashboardCardComponent, typeof DashboardCardSearchMenuComponent, typeof DynamicDashboardComponent, typeof RerouteComponent, typeof SnackbarComponent, typeof ThumbnailDisplayComponent, typeof ContentTitleComponent, typeof MarkdownDetailsSectionComponent, typeof AccordionDetailsContainerComponent, typeof PlainDetailsContainerComponent, typeof DynamicDetailsContainerComponent, typeof DynamicDetailsSectionComponent, typeof DynamicFormContainerComponent, typeof PlainFormContainerComponent, typeof AccordionFormContainerComponent, typeof DynamicFormSectionComponent, typeof DynamicDashboardContainerComponent, typeof PlainDashboardContainerComponent, typeof AutocompleteInputComponent, typeof QrCodeDialogComponent, typeof DraggableTableComponent, typeof TooltipComponent], [typeof i1.CommonModule, typeof i106.RouterModule, typeof i107.HttpClientModule, typeof i108.LayoutModule, typeof i109.FlexLayoutModule, typeof i110.DragDropModule, typeof i111.BrowserModule, typeof i112.BrowserAnimationsModule, typeof i113.FormsModule, typeof i113.ReactiveFormsModule, typeof i114.HighchartsChartModule, typeof i115.MarkdownModule, typeof i116.QrCodeModule, typeof i117.QuillModule, typeof i118.TranslateModule, typeof MaterialModule, typeof i120.ImageCropperComponent], [typeof MaterialModule, typeof DynamicPipe, typeof SecureImagePipe, typeof ClickStopPropagationDirective, typeof FileDropzoneDirective, typeof DynamicDetailsComponent, typeof GridDetailsSectionComponent, typeof TableDetailsSectionComponent, typeof ReportDetailsSectionComponent, typeof RosterShiftListDetailsSectionComponent, typeof DynamicAttributeDisplayComponent, typeof ActionsAttributeDisplayComponent, typeof IconAttributeDisplayComponent, typeof ChipAttributeDisplayComponent, typeof FileAttributeDisplayComponent, typeof ImageAttributeDisplayComponent, typeof MarkdownAttributeDisplayComponent, typeof MultiselectDisplayComponent, typeof RichTextDisplayComponent, typeof ReportViewerDisplayComponent, typeof DialogFormComponent, typeof DialogNestedFormComponent, typeof DynamicFormComponent, typeof GridFormSectionComponent, typeof TableFormSectionComponent, typeof RosterShiftListFormSectionComponent, typeof DynamicFormFieldComponent, typeof ChipInputComponent, typeof DatepickerComponent, typeof DatetimepickerComponent, typeof ColorPickerInputComponent, typeof DropdownComponent, typeof FilepickerComponent, typeof ImagepickerComponent, typeof ImageCropperComponent, typeof NumberInputComponent, typeof PasswordInputComponent, typeof TextareaComponent, typeof TextInputComponent, typeof TimeInputComponent, typeof MarkdownInputComponent, typeof MultiselectInputComponent, typeof RichTextInputComponent, typeof ReportConfigInputComponent, typeof AccordionLayoutEditorContainerComponent, typeof DynamicLayoutEditorContainerComponent, typeof PlainLayoutEditorContainerComponent, typeof DynamicLayoutEditorComponent, typeof DynamicLayoutEditorElementComponent, typeof LayoutEditorFieldElementComponent, typeof LayoutEditorTableColumnElementComponent, typeof LayoutEditorWidgetElementComponent, typeof DashboardLayoutEditorSectionComponent, typeof DynamicLayoutEditorSectionComponent, typeof GridLayoutEditorSectionComponent, typeof MarkdownLayoutEditorSectionComponent, typeof TableLayoutEditorSectionComponent, typeof DashboardPageComponent, typeof LayoutEditorPageComponent, typeof ListPageComponent, typeof FormPageComponent, typeof DetailPageComponent, typeof DocumentsPageComponent, typeof TabbedPageComponent, typeof RosterPageComponent, typeof ExportPageComponent, typeof PageTitleComponent, typeof SectionTitleComponent, typeof DynamicTableComponent, typeof FilePreviewDialogComponent, typeof DeleteConfirmationDialogComponent, typeof SaveConfirmationDialogComponent, typeof SearchPanelComponent, typeof NavTreeComponent, typeof LoaderComponent, typeof DialogDetailsComponent, typeof DialogNestedDetailsComponent, typeof LinkAttributeDisplayComponent, typeof DashboardSectionComponent, typeof DynamicWidgetDisplayComponent, typeof DynamicChartComponent, typeof DashboardInfoCardComponent, typeof DashboardTableComponent, typeof DashboardCardComponent, typeof DashboardCardSearchMenuComponent, typeof DynamicDashboardComponent, typeof RerouteComponent, typeof SnackbarComponent, typeof ThumbnailDisplayComponent, typeof ContentTitleComponent, typeof MarkdownDetailsSectionComponent, typeof AccordionDetailsContainerComponent, typeof PlainDetailsContainerComponent, typeof DynamicDetailsContainerComponent, typeof DynamicDetailsSectionComponent, typeof DynamicFormContainerComponent, typeof PlainFormContainerComponent, typeof AccordionFormContainerComponent, typeof DynamicFormSectionComponent, typeof DynamicDashboardContainerComponent, typeof PlainDashboardContainerComponent, typeof AutocompleteInputComponent, typeof DraggableTableComponent, typeof TooltipComponent]>;
2411
2531
  static ɵinj: i0.ɵɵInjectorDeclaration<MantleModule>;
2412
2532
  }
2413
2533
 
@@ -2582,6 +2702,38 @@ declare const MANTLE_LANG_EN: {
2582
2702
  original: string;
2583
2703
  preview: string;
2584
2704
  };
2705
+ report_config: {
2706
+ dataset: string;
2707
+ use_aggregation: string;
2708
+ columns: string;
2709
+ select: string;
2710
+ column: string;
2711
+ group_by: string;
2712
+ count: string;
2713
+ count_distinct: string;
2714
+ average: string;
2715
+ max: string;
2716
+ min: string;
2717
+ sum: string;
2718
+ filters: string;
2719
+ filter: string;
2720
+ operator: string;
2721
+ filter_value: string;
2722
+ operators: {
2723
+ "=": string;
2724
+ "!=": string;
2725
+ ">": string;
2726
+ "<": string;
2727
+ ">=": string;
2728
+ "<=": string;
2729
+ contains: string;
2730
+ starts_with: string;
2731
+ ends_with: string;
2732
+ one_of: string;
2733
+ not_one_of: string;
2734
+ };
2735
+ add_filter: string;
2736
+ };
2585
2737
  messages: {
2586
2738
  are_you_sure: string;
2587
2739
  confirm_deletion: string;
@@ -2645,6 +2797,38 @@ declare const MANTLE_LANG_MS: {
2645
2797
  original: string;
2646
2798
  preview: string;
2647
2799
  };
2800
+ report_config: {
2801
+ dataset: string;
2802
+ use_aggregation: string;
2803
+ columns: string;
2804
+ select: string;
2805
+ column: string;
2806
+ group_by: string;
2807
+ count: string;
2808
+ count_distinct: string;
2809
+ average: string;
2810
+ max: string;
2811
+ min: string;
2812
+ sum: string;
2813
+ filters: string;
2814
+ filter: string;
2815
+ operator: string;
2816
+ filter_value: string;
2817
+ operators: {
2818
+ "=": string;
2819
+ "!=": string;
2820
+ ">": string;
2821
+ "<": string;
2822
+ ">=": string;
2823
+ "<=": string;
2824
+ contains: string;
2825
+ starts_with: string;
2826
+ ends_with: string;
2827
+ one_of: string;
2828
+ not_one_of: string;
2829
+ };
2830
+ add_filter: string;
2831
+ };
2648
2832
  messages: {
2649
2833
  are_you_sure: string;
2650
2834
  confirm_deletion: string;
@@ -2919,5 +3103,5 @@ declare class PasswordCheckGuard implements CanActivateChild {
2919
3103
 
2920
3104
  declare const ENVIRONMENT: InjectionToken<any>;
2921
3105
 
2922
- export { AccordionDetailsContainerComponent, AccordionFormContainerComponent, AccordionLayoutEditorContainerComponent, ActionsAttributeDisplayComponent, AnnouncementService, ArrayService, AutocompleteInputComponent, COLUMN_CHART, ChartService, ChipAttributeDisplayComponent, ChipInputComponent, ClickStopPropagationDirective, ColorPickerInputComponent, ConfirmationService, ContentTitleComponent, CurrentUserService, DashboardCardComponent, DashboardCardSearchMenuComponent, DashboardInfoCardComponent, DashboardLayoutEditorSectionComponent, DashboardPageComponent, DashboardSectionComponent, DashboardTableComponent, DashboardTableDataSource, DataBroadcastService, DatepickerComponent, DatetimepickerComponent, DeleteConfirmationDialogComponent, DetailPageComponent, DialogDetailsComponent, DialogFormComponent, DialogNestedDetailsComponent, DialogNestedFormComponent, DocumentsPageComponent, DraggableTableComponent, DraggableTableDataSource, DropdownComponent, DynamicAttributeDisplayComponent, DynamicChartComponent, DynamicDashboardComponent, DynamicDashboardContainerComponent, DynamicDetailsComponent, DynamicDetailsContainerComponent, DynamicDetailsSectionComponent, DynamicFormComponent, DynamicFormContainerComponent, DynamicFormField, DynamicFormFieldComponent, DynamicFormSectionComponent, DynamicFormService, DynamicLayoutEditorComponent, DynamicLayoutEditorContainerComponent, DynamicLayoutEditorElementComponent, DynamicLayoutEditorSectionComponent, DynamicPipe, DynamicTableComponent, DynamicTableDataSource, DynamicWidgetDisplayComponent, ENVIRONMENT, ExportPageComponent, FeatureConfigService, FeatureGuard, FileAttributeDisplayComponent, FileDropzoneDirective, FilePreviewDialogComponent, FilepickerComponent, FormPageComponent, GANTT_CHART, GridDetailsSectionComponent, GridFormSectionComponent, GridLayoutEditorSectionComponent, IconAttributeDisplayComponent, ImageAttributeDisplayComponent, ImageCropperComponent, ImagepickerComponent, LayoutEditorFieldElementComponent, LayoutEditorPageComponent, LayoutEditorTableColumnElementComponent, LayoutEditorWidgetElementComponent, LinkAttributeDisplayComponent, ListPageComponent, ListPageDataSource, LoaderComponent, LocaleService, MANTLE_LANG_EN, MANTLE_LANG_MS, MantleModule, MarkdownAttributeDisplayComponent, MarkdownDetailsSectionComponent, MarkdownInputComponent, MarkdownLayoutEditorSectionComponent, MaterialModule, MultiselectDisplayComponent, MultiselectInputComponent, NavTreeComponent, NumberInputComponent, ObjectService, PIE_CHART, PROGRESS_BAR_CHART, PageTitleComponent, PasswordCheckGuard, PasswordCheckService, PasswordInputComponent, PlainDashboardContainerComponent, PlainDetailsContainerComponent, PlainFormContainerComponent, PlainLayoutEditorContainerComponent, QrCodeDialogComponent, RerouteComponent, RichTextDisplayComponent, RichTextInputComponent, RosterPageComponent, RosterShiftListDetailsSectionComponent, RosterShiftListFormSectionComponent, SPLINE_CHART, SaveConfirmationDialogComponent, ScreenSizeMap, ScreenSizeService, SearchPanelComponent, SectionTitleComponent, SecureImagePipe, SessionGuard, SnackbarComponent, TabbedPageComponent, TableDetailsSectionComponent, TableFormSectionComponent, TableLayoutEditorSectionComponent, TextInputComponent, TextareaComponent, ThumbnailDisplayComponent, TimeInputComponent, TooltipComponent, WebApiListRequest, WebApiService, WebsocketService };
2923
- export type { AuthorisableFeatureService, Chip, DashboardCardSearchMenuContent, DashboardPageSection, DashboardPageService, DashboardTableColumn, DashboardWidgetButton, DashboardWidgetItemConfig, DashboardWidgetService, DeleteConfirmationDialogButton, DeleteConfirmationDialogParams, DetailPageButton, DetailPageExportOption, DetailPageService, DialogDetailParams, DialogFormParams, DialogNestedDetailsParams, DialogNestedFormParams, DynamicDashboardContent, DynamicDashboardWidget, DynamicDetailsContent, DynamicFormContent, DynamicLayoutContainer, DynamicLayoutDashboardSection, DynamicLayoutEditorContainer, DynamicLayoutEditorContent, DynamicLayoutEditorDashboardWidget, DynamicLayoutEditorFormField, DynamicLayoutEditorMarkdownElement, DynamicLayoutEditorSection, DynamicLayoutEditorTableColumn, DynamicLayoutGridCellDimensions, DynamicLayoutGridDimensions, DynamicLayoutGridSection, DynamicLayoutMarkdownElement, DynamicLayoutMarkdownSection, DynamicLayoutRosterShiftListSection, DynamicLayoutSection, DynamicLayoutTableSection, DynamicTableColumn, ExportPageService, FileAttachment, FlatTreeNode, FormPageButton, FormPageService, ImageCropperOptions, ImageCropperParams, LayoutEditorPageService, ListPageBulkExportOption, ListPageButton, ListPageColumn, ListPageExportOption, ListPageService, NavTabsService, NavigationNode, RerouteService, RosterPageService, RosterScheduleService, SaveConfirmationDialogParams, ScreenSizeMapEntries, TabbedPageTab, TableSectionConfig, WebApiCrudAdapter, WebApiDeleteResponse, WebApiDetailsResponse, WebApiFormResponse, WebApiListResponse, WebApiSaveResponse, WebsocketAdapter, WidgetExportOption };
3106
+ export { AccordionDetailsContainerComponent, AccordionFormContainerComponent, AccordionLayoutEditorContainerComponent, ActionsAttributeDisplayComponent, AnnouncementService, ArrayService, AutocompleteInputComponent, COLUMN_CHART, ChartService, ChipAttributeDisplayComponent, ChipInputComponent, ClickStopPropagationDirective, ColorPickerInputComponent, ConfirmationService, ContentTitleComponent, CurrentUserService, DashboardCardComponent, DashboardCardSearchMenuComponent, DashboardInfoCardComponent, DashboardLayoutEditorSectionComponent, DashboardPageComponent, DashboardSectionComponent, DashboardTableComponent, DashboardTableDataSource, DataBroadcastService, DatepickerComponent, DatetimepickerComponent, DeleteConfirmationDialogComponent, DetailPageComponent, DialogDetailsComponent, DialogFormComponent, DialogNestedDetailsComponent, DialogNestedFormComponent, DocumentsPageComponent, DraggableTableComponent, DraggableTableDataSource, DropdownComponent, DynamicAttributeDisplayComponent, DynamicChartComponent, DynamicDashboardComponent, DynamicDashboardContainerComponent, DynamicDetailsComponent, DynamicDetailsContainerComponent, DynamicDetailsSectionComponent, DynamicFormComponent, DynamicFormContainerComponent, DynamicFormField, DynamicFormFieldComponent, DynamicFormSectionComponent, DynamicFormService, DynamicLayoutEditorComponent, DynamicLayoutEditorContainerComponent, DynamicLayoutEditorElementComponent, DynamicLayoutEditorSectionComponent, DynamicPipe, DynamicTableComponent, DynamicTableDataSource, DynamicWidgetDisplayComponent, ENVIRONMENT, ExportPageComponent, FeatureConfigService, FeatureGuard, FileAttributeDisplayComponent, FileDropzoneDirective, FilePreviewDialogComponent, FilepickerComponent, FormPageComponent, GANTT_CHART, GridDetailsSectionComponent, GridFormSectionComponent, GridLayoutEditorSectionComponent, IconAttributeDisplayComponent, ImageAttributeDisplayComponent, ImageCropperComponent, ImagepickerComponent, LayoutEditorFieldElementComponent, LayoutEditorPageComponent, LayoutEditorTableColumnElementComponent, LayoutEditorWidgetElementComponent, LinkAttributeDisplayComponent, ListPageComponent, ListPageDataSource, LoaderComponent, LocaleService, MANTLE_LANG_EN, MANTLE_LANG_MS, MantleModule, MarkdownAttributeDisplayComponent, MarkdownDetailsSectionComponent, MarkdownInputComponent, MarkdownLayoutEditorSectionComponent, MaterialModule, MultiselectDisplayComponent, MultiselectInputComponent, NavTreeComponent, NumberInputComponent, ObjectService, PIE_CHART, PROGRESS_BAR_CHART, PageTitleComponent, PasswordCheckGuard, PasswordCheckService, PasswordInputComponent, PlainDashboardContainerComponent, PlainDetailsContainerComponent, PlainFormContainerComponent, PlainLayoutEditorContainerComponent, QrCodeDialogComponent, ReportConfigInputComponent, ReportDetailsSectionComponent, ReportViewerDisplayComponent, RerouteComponent, RichTextDisplayComponent, RichTextInputComponent, RosterPageComponent, RosterShiftListDetailsSectionComponent, RosterShiftListFormSectionComponent, SPLINE_CHART, SaveConfirmationDialogComponent, ScreenSizeMap, ScreenSizeService, SearchPanelComponent, SectionTitleComponent, SecureImagePipe, SessionGuard, SnackbarComponent, TabbedPageComponent, TableDetailsSectionComponent, TableFormSectionComponent, TableLayoutEditorSectionComponent, TextInputComponent, TextareaComponent, ThumbnailDisplayComponent, TimeInputComponent, TooltipComponent, WebApiListRequest, WebApiService, WebsocketService };
3107
+ export type { AuthorisableFeatureService, Chip, DashboardCardSearchMenuContent, DashboardPageSection, DashboardPageService, DashboardTableColumn, DashboardWidgetButton, DashboardWidgetItemConfig, DashboardWidgetService, DeleteConfirmationDialogButton, DeleteConfirmationDialogParams, DetailPageButton, DetailPageExportOption, DetailPageService, DialogDetailParams, DialogFormParams, DialogNestedDetailsParams, DialogNestedFormParams, DynamicDashboardContent, DynamicDashboardWidget, DynamicDetailsContent, DynamicFormContent, DynamicLayoutContainer, DynamicLayoutDashboardSection, DynamicLayoutEditorContainer, DynamicLayoutEditorContent, DynamicLayoutEditorDashboardWidget, DynamicLayoutEditorFormField, DynamicLayoutEditorMarkdownElement, DynamicLayoutEditorSection, DynamicLayoutEditorTableColumn, DynamicLayoutGridCellDimensions, DynamicLayoutGridDimensions, DynamicLayoutGridSection, DynamicLayoutMarkdownElement, DynamicLayoutMarkdownSection, DynamicLayoutReportSection, DynamicLayoutRosterShiftListSection, DynamicLayoutSection, DynamicLayoutTableSection, DynamicTableColumn, ExportPageService, FileAttachment, FlatTreeNode, FormPageButton, FormPageService, ImageCropperOptions, ImageCropperParams, LayoutEditorPageService, ListPageBulkExportOption, ListPageButton, ListPageColumn, ListPageExportOption, ListPageService, NavTabsService, NavigationNode, RerouteService, RosterPageService, RosterScheduleService, SaveConfirmationDialogParams, ScreenSizeMapEntries, TabbedPageTab, TableSectionConfig, WebApiCrudAdapter, WebApiDeleteResponse, WebApiDetailsResponse, WebApiFormResponse, WebApiListResponse, WebApiSaveResponse, WebsocketAdapter, WidgetExportOption };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codetectonics/mantle",
3
- "version": "1.0.16",
3
+ "version": "1.2.0",
4
4
  "dependencies": {
5
5
  "@angular/animations": "^20",
6
6
  "@angular/cdk": "^20",