@clr/angular 17.1.0 → 17.2.1

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 (91) hide show
  1. package/clarity.api.md +401 -145
  2. package/clr-angular.module.d.ts +7 -6
  3. package/data/datagrid/datagrid-detail-header.d.ts +4 -1
  4. package/data/datagrid/datagrid-detail.d.ts +5 -1
  5. package/data/datagrid/datagrid-filter.d.ts +4 -2
  6. package/data/datagrid/datagrid-if-detail.d.ts +9 -0
  7. package/data/datagrid/datagrid-virtual-scroll.directive.d.ts +62 -0
  8. package/data/datagrid/datagrid.d.ts +8 -4
  9. package/data/datagrid/datagrid.module.d.ts +31 -30
  10. package/data/datagrid/enums/column-changes.enum.d.ts +2 -1
  11. package/data/datagrid/index.d.ts +1 -0
  12. package/data/datagrid/interfaces/column-state.interface.d.ts +1 -0
  13. package/data/datagrid/providers/columns.service.d.ts +1 -0
  14. package/data/datagrid/providers/detail.service.d.ts +4 -0
  15. package/data/datagrid/render/cell-renderer.d.ts +3 -6
  16. package/data/datagrid/render/header-renderer.d.ts +2 -3
  17. package/data/datagrid/render/main-renderer.d.ts +5 -1
  18. package/data/datagrid/render/row-renderer.d.ts +4 -3
  19. package/data/datagrid/utils/key-navigation-grid.controller.d.ts +5 -1
  20. package/esm2020/accordion/accordion-panel.mjs +3 -3
  21. package/esm2020/accordion/stepper/stepper-panel.mjs +8 -4
  22. package/esm2020/clr-angular.module.mjs +5 -1
  23. package/esm2020/data/datagrid/datagrid-action-overflow.mjs +3 -1
  24. package/esm2020/data/datagrid/datagrid-detail-header.mjs +12 -6
  25. package/esm2020/data/datagrid/datagrid-detail.mjs +36 -8
  26. package/esm2020/data/datagrid/datagrid-filter.mjs +22 -13
  27. package/esm2020/data/datagrid/datagrid-if-detail.mjs +30 -7
  28. package/esm2020/data/datagrid/datagrid-row.mjs +3 -3
  29. package/esm2020/data/datagrid/datagrid-selection-cell.directive.mjs +2 -2
  30. package/esm2020/data/datagrid/datagrid-virtual-scroll.directive.mjs +233 -0
  31. package/esm2020/data/datagrid/datagrid.mjs +43 -10
  32. package/esm2020/data/datagrid/datagrid.module.mjs +5 -1
  33. package/esm2020/data/datagrid/enums/column-changes.enum.mjs +3 -2
  34. package/esm2020/data/datagrid/index.mjs +2 -1
  35. package/esm2020/data/datagrid/interfaces/column-state.interface.mjs +1 -1
  36. package/esm2020/data/datagrid/providers/columns.service.mjs +9 -3
  37. package/esm2020/data/datagrid/providers/detail.service.mjs +12 -2
  38. package/esm2020/data/datagrid/render/cell-renderer.mjs +8 -33
  39. package/esm2020/data/datagrid/render/header-renderer.mjs +25 -43
  40. package/esm2020/data/datagrid/render/main-renderer.mjs +59 -9
  41. package/esm2020/data/datagrid/render/render-organizer.mjs +2 -2
  42. package/esm2020/data/datagrid/render/row-renderer.mjs +5 -5
  43. package/esm2020/data/datagrid/utils/key-navigation-grid.controller.mjs +21 -5
  44. package/esm2020/forms/combobox/combobox.mjs +3 -3
  45. package/esm2020/forms/common/abstract-container.mjs +5 -2
  46. package/esm2020/forms/datalist/datalist-container.mjs +1 -4
  47. package/esm2020/forms/datepicker/datepicker-view-manager.mjs +3 -3
  48. package/esm2020/forms/file-input/file-input-container.mjs +157 -0
  49. package/esm2020/forms/file-input/file-input-validator.mjs +72 -0
  50. package/esm2020/forms/file-input/file-input-value-accessor.mjs +53 -0
  51. package/esm2020/forms/file-input/file-input.helpers.mjs +22 -0
  52. package/esm2020/forms/file-input/file-input.mjs +68 -0
  53. package/esm2020/forms/file-input/file-input.module.mjs +43 -0
  54. package/esm2020/forms/file-input/index.mjs +12 -0
  55. package/esm2020/forms/forms.module.mjs +5 -1
  56. package/esm2020/forms/index.mjs +2 -1
  57. package/esm2020/modal/index.mjs +3 -1
  58. package/esm2020/modal/modal-configuration.service.mjs +20 -0
  59. package/esm2020/modal/modal.mjs +47 -18
  60. package/esm2020/modal/modal.module.mjs +4 -2
  61. package/esm2020/modal/side-panel.mjs +90 -0
  62. package/esm2020/modal/side-panel.module.mjs +28 -0
  63. package/esm2020/timeline/timeline-step.mjs +3 -3
  64. package/esm2020/timeline/timeline.mjs +3 -3
  65. package/esm2020/utils/animations/expandable-animation/expandable-animation.mjs +17 -12
  66. package/esm2020/utils/dom-adapter/dom-adapter.mjs +13 -4
  67. package/esm2020/utils/i18n/common-strings.default.mjs +7 -2
  68. package/esm2020/utils/i18n/common-strings.interface.mjs +1 -1
  69. package/esm2020/wizard/wizard.mjs +29 -6
  70. package/fesm2015/clr-angular.mjs +1435 -468
  71. package/fesm2015/clr-angular.mjs.map +1 -1
  72. package/fesm2020/clr-angular.mjs +1418 -463
  73. package/fesm2020/clr-angular.mjs.map +1 -1
  74. package/forms/file-input/file-input-container.d.ts +16 -0
  75. package/forms/file-input/file-input-validator.d.ts +12 -0
  76. package/forms/file-input/file-input-value-accessor.d.ts +15 -0
  77. package/forms/file-input/file-input.d.ts +21 -0
  78. package/forms/file-input/file-input.helpers.d.ts +3 -0
  79. package/forms/file-input/file-input.module.d.ts +14 -0
  80. package/forms/file-input/index.d.ts +5 -0
  81. package/forms/forms.module.d.ts +9 -8
  82. package/forms/index.d.ts +1 -0
  83. package/modal/index.d.ts +2 -0
  84. package/modal/modal-configuration.service.d.ts +7 -0
  85. package/modal/modal.d.ts +8 -2
  86. package/modal/side-panel.d.ts +26 -0
  87. package/modal/side-panel.module.d.ts +13 -0
  88. package/package.json +2 -2
  89. package/utils/animations/expandable-animation/expandable-animation.d.ts +5 -4
  90. package/utils/i18n/common-strings.interface.d.ts +4 -0
  91. package/wizard/wizard.d.ts +12 -2
@@ -12,13 +12,14 @@ import * as i9 from "./forms/forms.module";
12
12
  import * as i10 from "./layout/layout.module";
13
13
  import * as i11 from "./popover/popover.module";
14
14
  import * as i12 from "./wizard/wizard.module";
15
- import * as i13 from "./accordion/stepper/stepper.module";
16
- import * as i14 from "./progress/spinner/spinner.module";
17
- import * as i15 from "./progress/progress-bars/progress-bar.module";
18
- import * as i16 from "./utils/popover/popover.module";
19
- import * as i17 from "./timeline/timeline.module";
15
+ import * as i13 from "./modal/side-panel.module";
16
+ import * as i14 from "./accordion/stepper/stepper.module";
17
+ import * as i15 from "./progress/spinner/spinner.module";
18
+ import * as i16 from "./progress/progress-bars/progress-bar.module";
19
+ import * as i17 from "./utils/popover/popover.module";
20
+ import * as i18 from "./timeline/timeline.module";
20
21
  export declare class ClarityModule {
21
22
  static ɵfac: i0.ɵɵFactoryDeclaration<ClarityModule, never>;
22
- static ɵmod: i0.ɵɵNgModuleDeclaration<ClarityModule, never, never, [typeof i1.ClrEmphasisModule, typeof i2.ClrDataModule, typeof i3.ClrIconModule, typeof i4.ClrModalModule, typeof i5.ClrLoadingModule, typeof i6.ClrConditionalModule, typeof i7.ClrFocusOnViewInitModule, typeof i8.ClrButtonModule, typeof i9.ClrFormsModule, typeof i10.ClrLayoutModule, typeof i11.ClrPopoverModule, typeof i12.ClrWizardModule, typeof i13.ClrStepperModule, typeof i14.ClrSpinnerModule, typeof i15.ClrProgressBarModule, typeof i16.ClrPopoverModuleNext, typeof i17.ClrTimelineModule]>;
23
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ClarityModule, never, never, [typeof i1.ClrEmphasisModule, typeof i2.ClrDataModule, typeof i3.ClrIconModule, typeof i4.ClrModalModule, typeof i5.ClrLoadingModule, typeof i6.ClrConditionalModule, typeof i7.ClrFocusOnViewInitModule, typeof i8.ClrButtonModule, typeof i9.ClrFormsModule, typeof i10.ClrLayoutModule, typeof i11.ClrPopoverModule, typeof i12.ClrWizardModule, typeof i13.ClrSidePanelModule, typeof i14.ClrStepperModule, typeof i15.ClrSpinnerModule, typeof i16.ClrProgressBarModule, typeof i17.ClrPopoverModuleNext, typeof i18.ClrTimelineModule]>;
23
24
  static ɵinj: i0.ɵɵInjectorDeclaration<ClarityModule>;
24
25
  }
@@ -1,11 +1,14 @@
1
+ import { AfterViewInit, ElementRef } from '@angular/core';
1
2
  import { ClrCommonStringsService } from '../../utils/i18n/common-strings.service';
2
3
  import { DetailService } from './providers/detail.service';
3
4
  import * as i0 from "@angular/core";
4
- export declare class ClrDatagridDetailHeader {
5
+ export declare class ClrDatagridDetailHeader implements AfterViewInit {
5
6
  detailService: DetailService;
6
7
  commonStrings: ClrCommonStringsService;
8
+ title: ElementRef;
7
9
  constructor(detailService: DetailService, commonStrings: ClrCommonStringsService);
8
10
  get titleId(): string;
11
+ ngAfterViewInit(): void;
9
12
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridDetailHeader, never>;
10
13
  static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridDetailHeader, "clr-dg-detail-header", never, {}, {}, never, ["*"], false, never>;
11
14
  }
@@ -5,9 +5,13 @@ import * as i0 from "@angular/core";
5
5
  export declare class ClrDatagridDetail {
6
6
  detailService: DetailService;
7
7
  commonStrings: ClrCommonStringsService;
8
+ ariaLabelledBy: string;
9
+ ariaLabel: string;
8
10
  header: ClrDatagridDetailHeader;
9
11
  constructor(detailService: DetailService, commonStrings: ClrCommonStringsService);
12
+ get labelledBy(): string;
13
+ get label(): string;
10
14
  close(): void;
11
15
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridDetail, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridDetail, "clr-dg-detail", never, {}, {}, ["header"], ["*"], false, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridDetail, "clr-dg-detail", never, { "ariaLabelledBy": "clrDetailAriaLabelledBy"; "ariaLabel": "clrDetailAriaLabel"; }, {}, ["header"], ["*"], false, never>;
13
17
  }
@@ -6,6 +6,7 @@ import { ClrDatagridFilterInterface } from './interfaces/filter.interface';
6
6
  import { CustomFilter } from './providers/custom-filter';
7
7
  import { FiltersProvider, RegisteredFilter } from './providers/filters';
8
8
  import { DatagridFilterRegistrar } from './utils/datagrid-filter-registrar';
9
+ import { KeyNavigationGridController } from './utils/key-navigation-grid.controller';
9
10
  import * as i0 from "@angular/core";
10
11
  /**
11
12
  * Custom filter that can be added in any column to override the default object property string filter.
@@ -17,6 +18,7 @@ export declare class ClrDatagridFilter<T = any> extends DatagridFilterRegistrar<
17
18
  private smartToggleService;
18
19
  private platformId;
19
20
  private elementRef;
21
+ private keyNavigation;
20
22
  openChange: EventEmitter<boolean>;
21
23
  ariaExpanded: boolean;
22
24
  popoverId: string;
@@ -25,7 +27,7 @@ export declare class ClrDatagridFilter<T = any> extends DatagridFilterRegistrar<
25
27
  anchor: ElementRef;
26
28
  private _open;
27
29
  private subs;
28
- constructor(_filters: FiltersProvider<T>, commonStrings: ClrCommonStringsService, smartToggleService: ClrPopoverToggleService, platformId: any, elementRef: ElementRef<HTMLElement>);
30
+ constructor(_filters: FiltersProvider<T>, commonStrings: ClrCommonStringsService, smartToggleService: ClrPopoverToggleService, platformId: any, elementRef: ElementRef<HTMLElement>, keyNavigation: KeyNavigationGridController);
29
31
  get open(): boolean;
30
32
  set open(open: boolean);
31
33
  set customFilter(filter: ClrDatagridFilterInterface<T> | RegisteredFilter<T, ClrDatagridFilterInterface<T>>);
@@ -40,6 +42,6 @@ export declare class ClrDatagridFilter<T = any> extends DatagridFilterRegistrar<
40
42
  * And it's more performant this way since it only runs on change.
41
43
  */
42
44
  private setToggleButtonAriaLabel;
43
- static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridFilter<any>, never>;
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridFilter<any>, [null, null, null, null, null, { optional: true; }]>;
44
46
  static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridFilter<any>, "clr-dg-filter", never, { "open": "clrDgFilterOpen"; "customFilter": "clrDgFilter"; }, { "openChange": "clrDgFilterOpenChange"; }, never, ["*"], false, never>;
45
47
  }
@@ -11,9 +11,18 @@ export declare class ClrIfDetail implements OnInit, OnDestroy {
11
11
  private embeddedViewRef;
12
12
  constructor(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef, detailService: DetailService);
13
13
  set state(model: any);
14
+ get viewContext(): {
15
+ $implicit: any;
16
+ };
14
17
  ngOnInit(): void;
15
18
  ngOnDestroy(): void;
16
19
  private togglePanel;
20
+ /**
21
+ * For a given outlet instance, we create a proxy object that delegates
22
+ * to the user-specified context. This allows changing, or swapping out
23
+ * the context object completely without having to destroy/re-create the view.
24
+ */
25
+ private _createContextForwardProxy;
17
26
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrIfDetail, never>;
18
27
  static ɵdir: i0.ɵɵDirectiveDeclaration<ClrIfDetail, "[clrIfDetail]", never, { "state": "clrIfDetail"; }, { "stateChange": "clrIfDetailChange"; }, never, never, false, never>;
19
28
  }
@@ -0,0 +1,62 @@
1
+ import { Directionality } from '@angular/cdk/bidi';
2
+ import { ListRange } from '@angular/cdk/collections';
3
+ import { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualForOfContext, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';
4
+ import { AfterViewInit, ChangeDetectorRef, DoCheck, EnvironmentInjector, EventEmitter, IterableDiffers, NgZone, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';
5
+ import { ClrDatagrid } from './datagrid';
6
+ import { ColumnsService } from './providers/columns.service';
7
+ import { Items } from './providers/items';
8
+ import * as i0 from "@angular/core";
9
+ declare type CdkVirtualForInputKey = 'cdkVirtualForOf' | 'cdkVirtualForTrackBy' | 'cdkVirtualForTemplate' | 'cdkVirtualForTemplateCacheSize';
10
+ declare type CdkVirtualForInputs<T> = Partial<Pick<CdkVirtualForOf<T>, CdkVirtualForInputKey>>;
11
+ declare type CdkFixedSizeVirtualScrollInputs = Pick<CdkFixedSizeVirtualScroll, 'itemSize' | 'minBufferPx' | 'maxBufferPx'>;
12
+ export declare class ClrDatagridVirtualScrollDirective<T> implements AfterViewInit, DoCheck, OnDestroy {
13
+ private readonly changeDetectorRef;
14
+ private iterableDiffers;
15
+ private items;
16
+ private readonly ngZone;
17
+ private readonly templateRef;
18
+ private readonly viewContainerRef;
19
+ private readonly directionality;
20
+ private readonly scrollDispatcher;
21
+ private readonly viewportRuler;
22
+ private readonly datagrid;
23
+ private columnsService;
24
+ private readonly injector;
25
+ renderedRangeChange: EventEmitter<ListRange>;
26
+ private _cdkFixedSizeVirtualScrollInputs;
27
+ private readonly datagridElementRef;
28
+ private gridRoleElement;
29
+ private readonly virtualScrollStrategy;
30
+ private virtualScrollViewport;
31
+ private cdkVirtualFor;
32
+ private subscriptions;
33
+ private mutationChanges;
34
+ private viewRepeater;
35
+ private cdkVirtualForInputs;
36
+ constructor(changeDetectorRef: ChangeDetectorRef, iterableDiffers: IterableDiffers, items: Items<T>, ngZone: NgZone, templateRef: TemplateRef<CdkVirtualForOfContext<T>>, viewContainerRef: ViewContainerRef, directionality: Directionality, scrollDispatcher: ScrollDispatcher, viewportRuler: ViewportRuler, datagrid: ClrDatagrid, columnsService: ColumnsService, injector: EnvironmentInjector);
37
+ get cdkVirtualForOf(): CdkVirtualForInputs<T>['cdkVirtualForOf'];
38
+ set cdkVirtualForOf(value: CdkVirtualForInputs<T>['cdkVirtualForOf']);
39
+ get cdkVirtualForTrackBy(): CdkVirtualForInputs<T>['cdkVirtualForTrackBy'];
40
+ set cdkVirtualForTrackBy(value: CdkVirtualForInputs<T>['cdkVirtualForTrackBy']);
41
+ get cdkVirtualForTemplate(): CdkVirtualForInputs<T>['cdkVirtualForTemplate'];
42
+ set cdkVirtualForTemplate(value: CdkVirtualForInputs<T>['cdkVirtualForTemplate']);
43
+ get cdkVirtualForTemplateCacheSize(): CdkVirtualForInputs<T>['cdkVirtualForTemplateCacheSize'];
44
+ set cdkVirtualForTemplateCacheSize(value: CdkVirtualForInputs<T>['cdkVirtualForTemplateCacheSize']);
45
+ get itemSize(): CdkFixedSizeVirtualScrollInputs['itemSize'];
46
+ set itemSize(value: CdkFixedSizeVirtualScrollInputs['itemSize']);
47
+ get minBufferPx(): CdkFixedSizeVirtualScrollInputs['minBufferPx'];
48
+ set minBufferPx(value: CdkFixedSizeVirtualScrollInputs['minBufferPx']);
49
+ get maxBufferPx(): CdkFixedSizeVirtualScrollInputs['maxBufferPx'];
50
+ set maxBufferPx(value: CdkFixedSizeVirtualScrollInputs['maxBufferPx']);
51
+ ngAfterViewInit(): void;
52
+ ngDoCheck(): void;
53
+ ngOnDestroy(): void;
54
+ private updateCdkVirtualForInputs;
55
+ private updateFixedSizeVirtualScrollInputs;
56
+ private updateAriaRowCount;
57
+ private updateAriaRowIndexes;
58
+ private createVirtualScrollViewportForDatagrid;
59
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridVirtualScrollDirective<any>, [null, null, { skipSelf: true; }, null, null, null, null, null, null, null, null, null]>;
60
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ClrDatagridVirtualScrollDirective<any>, "[ClrVirtualScroll]", never, { "cdkVirtualForOf": "clrVirtualRowsOf"; "cdkVirtualForTrackBy": "clrVirtualRowsTrackBy"; "cdkVirtualForTemplate": "clrVirtualRowsTemplate"; "cdkVirtualForTemplateCacheSize": "clrVirtualRowsTemplateCacheSize"; "itemSize": "clrVirtualRowsItemSize"; "minBufferPx": "clrVirtualRowsMinBufferPx"; "maxBufferPx": "clrVirtualRowsMaxBufferPx"; }, { "renderedRangeChange": "renderedRangeChange"; }, never, never, false, never>;
61
+ }
62
+ export {};
@@ -29,12 +29,13 @@ export declare class ClrDatagrid<T = any> implements AfterContentInit, AfterView
29
29
  private renderer;
30
30
  detailService: DetailService;
31
31
  private document;
32
- private el;
32
+ el: ElementRef<HTMLElement>;
33
33
  private page;
34
34
  commonStrings: ClrCommonStringsService;
35
35
  private columnsService;
36
- private keyNavigation;
36
+ keyNavigation: KeyNavigationGridController;
37
37
  private zone;
38
+ loadingMoreItems: boolean;
38
39
  clrDgSingleSelectionAriaLabel: string;
39
40
  clrDgSingleActionableAriaLabel: string;
40
41
  clrDetailExpandableAriaLabel: string;
@@ -63,6 +64,7 @@ export declare class ClrDatagrid<T = any> implements AfterContentInit, AfterView
63
64
  * displayed, typically for selection.
64
65
  */
65
66
  rows: QueryList<ClrDatagridRow<T>>;
67
+ datagrid: ElementRef;
66
68
  datagridTable: ElementRef;
67
69
  scrollableColumns: ViewContainerRef;
68
70
  _projectedDisplayColumns: ViewContainerRef;
@@ -70,12 +72,13 @@ export declare class ClrDatagrid<T = any> implements AfterContentInit, AfterView
70
72
  _displayedRows: ViewContainerRef;
71
73
  _calculationRows: ViewContainerRef;
72
74
  selectAllId: string;
75
+ hasVirtualScroller: boolean;
73
76
  SELECTION_TYPE: typeof SelectionType;
74
77
  /**
75
78
  * Subscriptions to all the services and queries changes
76
79
  */
77
80
  private _subscriptions;
78
- constructor(organizer: DatagridRenderOrganizer, items: Items<T>, expandableRows: ExpandableRowsCount, selection: Selection<T>, rowActionService: RowActionService, stateProvider: StateProvider<T>, displayMode: DisplayModeService, renderer: Renderer2, detailService: DetailService, document: any, el: ElementRef, page: Page, commonStrings: ClrCommonStringsService, columnsService: ColumnsService, keyNavigation: KeyNavigationGridController, zone: NgZone);
81
+ constructor(organizer: DatagridRenderOrganizer, items: Items<T>, expandableRows: ExpandableRowsCount, selection: Selection<T>, rowActionService: RowActionService, stateProvider: StateProvider<T>, displayMode: DisplayModeService, renderer: Renderer2, detailService: DetailService, document: any, el: ElementRef<HTMLElement>, page: Page, commonStrings: ClrCommonStringsService, columnsService: ColumnsService, keyNavigation: KeyNavigationGridController, zone: NgZone);
79
82
  /**
80
83
  * Freezes the datagrid while data is loading
81
84
  */
@@ -108,11 +111,12 @@ export declare class ClrDatagrid<T = any> implements AfterContentInit, AfterView
108
111
  */
109
112
  ngAfterViewInit(): void;
110
113
  ngOnDestroy(): void;
114
+ toggleAllSelected($event: any): void;
111
115
  resize(): void;
112
116
  /**
113
117
  * Public method to re-trigger the computation of displayed items manually
114
118
  */
115
119
  dataChanged(): void;
116
120
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagrid<any>, never>;
117
- static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagrid<any>, "clr-datagrid", never, { "clrDgSingleSelectionAriaLabel": "clrDgSingleSelectionAriaLabel"; "clrDgSingleActionableAriaLabel": "clrDgSingleActionableAriaLabel"; "clrDetailExpandableAriaLabel": "clrDetailExpandableAriaLabel"; "clrDgDisablePageFocus": "clrDgDisablePageFocus"; "loading": "clrDgLoading"; "selected": "clrDgSelected"; "singleSelected": "clrDgSingleSelected"; "clrDgPreserveSelection": "clrDgPreserveSelection"; "rowSelectionMode": "clrDgRowSelection"; "trackBy": "clrDgItemsTrackBy"; }, { "selectedChanged": "clrDgSelectedChange"; "singleSelectedChanged": "clrDgSingleSelectedChange"; "refresh": "clrDgRefresh"; }, ["iterator", "placeholder", "columns", "rows"], ["clr-dg-action-bar", "clr-dg-placeholder", "clr-dg-footer", "[clrIfDetail],clr-dg-detail"], false, never>;
121
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagrid<any>, "clr-datagrid", never, { "loadingMoreItems": "clrLoadingMoreItems"; "clrDgSingleSelectionAriaLabel": "clrDgSingleSelectionAriaLabel"; "clrDgSingleActionableAriaLabel": "clrDgSingleActionableAriaLabel"; "clrDetailExpandableAriaLabel": "clrDetailExpandableAriaLabel"; "clrDgDisablePageFocus": "clrDgDisablePageFocus"; "loading": "clrDgLoading"; "selected": "clrDgSelected"; "singleSelected": "clrDgSingleSelected"; "clrDgPreserveSelection": "clrDgPreserveSelection"; "rowSelectionMode": "clrDgRowSelection"; "trackBy": "clrDgItemsTrackBy"; }, { "selectedChanged": "clrDgSelectedChange"; "singleSelectedChanged": "clrDgSingleSelectedChange"; "refresh": "clrDgRefresh"; }, ["iterator", "placeholder", "columns", "rows"], ["clr-dg-action-bar", "clr-dg-placeholder", "clr-dg-footer", "[clrIfDetail],clr-dg-detail"], false, never>;
118
122
  }
@@ -19,39 +19,40 @@ import * as i16 from "./datagrid-placeholder";
19
19
  import * as i17 from "./datagrid-row";
20
20
  import * as i18 from "./datagrid-row-detail";
21
21
  import * as i19 from "./datagrid-selection-cell.directive";
22
- import * as i20 from "./datagrid-if-detail";
23
- import * as i21 from "./datagrid-detail-registerer";
24
- import * as i22 from "./wrapped-cell";
25
- import * as i23 from "./wrapped-column";
26
- import * as i24 from "./wrapped-row";
27
- import * as i25 from "./render/cell-renderer";
28
- import * as i26 from "./render/header-renderer";
29
- import * as i27 from "./render/main-renderer";
30
- import * as i28 from "./render/row-renderer";
31
- import * as i29 from "./chocolate/actionable-oompa-loompa";
32
- import * as i30 from "./chocolate/datagrid-willy-wonka";
33
- import * as i31 from "./chocolate/expandable-oompa-loompa";
34
- import * as i32 from "./built-in/filters/datagrid-numeric-filter";
35
- import * as i33 from "./built-in/filters/datagrid-string-filter";
36
- import * as i34 from "./datagrid-column-toggle";
37
- import * as i35 from "./datagrid-column-toggle-button";
38
- import * as i36 from "@angular/common";
39
- import * as i37 from "../../utils/cdk/cdk-drag.module";
40
- import * as i38 from "../../utils/cdk/cdk-trap-focus.module";
41
- import * as i39 from "../../icon/icon.module";
42
- import * as i40 from "../../forms/forms.module";
43
- import * as i41 from "@angular/forms";
44
- import * as i42 from "../../utils/loading/loading.module";
45
- import * as i43 from "../../utils/conditional/conditional.module";
46
- import * as i44 from "../../utils/outside-click/outside-click.module";
47
- import * as i45 from "../../utils/animations/expandable-animation/expandable-animation.module";
48
- import * as i46 from "../../progress/spinner/spinner.module";
49
- import * as i47 from "../../utils/popover/popover.module";
50
- import * as i48 from "../../utils/focus/key-focus/key-focus.module";
22
+ import * as i20 from "./datagrid-virtual-scroll.directive";
23
+ import * as i21 from "./datagrid-if-detail";
24
+ import * as i22 from "./datagrid-detail-registerer";
25
+ import * as i23 from "./wrapped-cell";
26
+ import * as i24 from "./wrapped-column";
27
+ import * as i25 from "./wrapped-row";
28
+ import * as i26 from "./render/cell-renderer";
29
+ import * as i27 from "./render/header-renderer";
30
+ import * as i28 from "./render/main-renderer";
31
+ import * as i29 from "./render/row-renderer";
32
+ import * as i30 from "./chocolate/actionable-oompa-loompa";
33
+ import * as i31 from "./chocolate/datagrid-willy-wonka";
34
+ import * as i32 from "./chocolate/expandable-oompa-loompa";
35
+ import * as i33 from "./built-in/filters/datagrid-numeric-filter";
36
+ import * as i34 from "./built-in/filters/datagrid-string-filter";
37
+ import * as i35 from "./datagrid-column-toggle";
38
+ import * as i36 from "./datagrid-column-toggle-button";
39
+ import * as i37 from "@angular/common";
40
+ import * as i38 from "../../utils/cdk/cdk-drag.module";
41
+ import * as i39 from "../../utils/cdk/cdk-trap-focus.module";
42
+ import * as i40 from "../../icon/icon.module";
43
+ import * as i41 from "../../forms/forms.module";
44
+ import * as i42 from "@angular/forms";
45
+ import * as i43 from "../../utils/loading/loading.module";
46
+ import * as i44 from "../../utils/conditional/conditional.module";
47
+ import * as i45 from "../../utils/outside-click/outside-click.module";
48
+ import * as i46 from "../../utils/animations/expandable-animation/expandable-animation.module";
49
+ import * as i47 from "../../progress/spinner/spinner.module";
50
+ import * as i48 from "../../utils/popover/popover.module";
51
+ import * as i49 from "../../utils/focus/key-focus/key-focus.module";
51
52
  export declare const CLR_DATAGRID_DIRECTIVES: Type<any>[];
52
53
  export declare class ClrDatagridModule {
53
54
  constructor();
54
55
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridModule, never>;
55
- static ɵmod: i0.ɵɵNgModuleDeclaration<ClrDatagridModule, [typeof i1.ClrDatagrid, typeof i2.ClrDatagridActionBar, typeof i3.ClrDatagridActionOverflow, typeof i4.ClrDatagridCell, typeof i5.ClrDatagridColumn, typeof i6.ClrDatagridColumnSeparator, typeof i7.ClrDatagridDetail, typeof i8.ClrDatagridDetailBody, typeof i9.ClrDatagridDetailHeader, typeof i10.ClrDatagridFilter, typeof i11.ClrDatagridFooter, typeof i12.ClrDatagridHideableColumn, typeof i13.ClrDatagridItems, typeof i14.ClrDatagridPageSize, typeof i15.ClrDatagridPagination, typeof i16.ClrDatagridPlaceholder, typeof i17.ClrDatagridRow, typeof i18.ClrDatagridRowDetail, typeof i19.ClrDatagridSelectionCellDirective, typeof i20.ClrIfDetail, typeof i21.DatagridDetailRegisterer, typeof i22.WrappedCell, typeof i23.WrappedColumn, typeof i24.WrappedRow, typeof i25.DatagridCellRenderer, typeof i26.DatagridHeaderRenderer, typeof i27.DatagridMainRenderer, typeof i28.DatagridRowRenderer, typeof i29.ActionableOompaLoompa, typeof i30.DatagridWillyWonka, typeof i31.ExpandableOompaLoompa, typeof i32.DatagridNumericFilter, typeof i33.DatagridStringFilter, typeof i34.ClrDatagridColumnToggle, typeof i35.ClrDatagridColumnToggleButton], [typeof i36.CommonModule, typeof i37.CdkDragModule, typeof i38.CdkTrapFocusModule, typeof i39.ClrIconModule, typeof i40.ClrFormsModule, typeof i41.FormsModule, typeof i42.ClrLoadingModule, typeof i43.ClrConditionalModule, typeof i44.ClrOutsideClickModule, typeof i45.ClrExpandableAnimationModule, typeof i46.ClrSpinnerModule, typeof i47.ClrPopoverModuleNext, typeof i48.ClrKeyFocusModule], [typeof i1.ClrDatagrid, typeof i2.ClrDatagridActionBar, typeof i3.ClrDatagridActionOverflow, typeof i4.ClrDatagridCell, typeof i5.ClrDatagridColumn, typeof i6.ClrDatagridColumnSeparator, typeof i7.ClrDatagridDetail, typeof i8.ClrDatagridDetailBody, typeof i9.ClrDatagridDetailHeader, typeof i10.ClrDatagridFilter, typeof i11.ClrDatagridFooter, typeof i12.ClrDatagridHideableColumn, typeof i13.ClrDatagridItems, typeof i14.ClrDatagridPageSize, typeof i15.ClrDatagridPagination, typeof i16.ClrDatagridPlaceholder, typeof i17.ClrDatagridRow, typeof i18.ClrDatagridRowDetail, typeof i19.ClrDatagridSelectionCellDirective, typeof i20.ClrIfDetail, typeof i21.DatagridDetailRegisterer, typeof i22.WrappedCell, typeof i23.WrappedColumn, typeof i24.WrappedRow, typeof i25.DatagridCellRenderer, typeof i26.DatagridHeaderRenderer, typeof i27.DatagridMainRenderer, typeof i28.DatagridRowRenderer, typeof i29.ActionableOompaLoompa, typeof i30.DatagridWillyWonka, typeof i31.ExpandableOompaLoompa, typeof i32.DatagridNumericFilter, typeof i33.DatagridStringFilter]>;
56
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ClrDatagridModule, [typeof i1.ClrDatagrid, typeof i2.ClrDatagridActionBar, typeof i3.ClrDatagridActionOverflow, typeof i4.ClrDatagridCell, typeof i5.ClrDatagridColumn, typeof i6.ClrDatagridColumnSeparator, typeof i7.ClrDatagridDetail, typeof i8.ClrDatagridDetailBody, typeof i9.ClrDatagridDetailHeader, typeof i10.ClrDatagridFilter, typeof i11.ClrDatagridFooter, typeof i12.ClrDatagridHideableColumn, typeof i13.ClrDatagridItems, typeof i14.ClrDatagridPageSize, typeof i15.ClrDatagridPagination, typeof i16.ClrDatagridPlaceholder, typeof i17.ClrDatagridRow, typeof i18.ClrDatagridRowDetail, typeof i19.ClrDatagridSelectionCellDirective, typeof i20.ClrDatagridVirtualScrollDirective, typeof i21.ClrIfDetail, typeof i22.DatagridDetailRegisterer, typeof i23.WrappedCell, typeof i24.WrappedColumn, typeof i25.WrappedRow, typeof i26.DatagridCellRenderer, typeof i27.DatagridHeaderRenderer, typeof i28.DatagridMainRenderer, typeof i29.DatagridRowRenderer, typeof i30.ActionableOompaLoompa, typeof i31.DatagridWillyWonka, typeof i32.ExpandableOompaLoompa, typeof i33.DatagridNumericFilter, typeof i34.DatagridStringFilter, typeof i35.ClrDatagridColumnToggle, typeof i36.ClrDatagridColumnToggleButton], [typeof i37.CommonModule, typeof i38.CdkDragModule, typeof i39.CdkTrapFocusModule, typeof i40.ClrIconModule, typeof i41.ClrFormsModule, typeof i42.FormsModule, typeof i43.ClrLoadingModule, typeof i44.ClrConditionalModule, typeof i45.ClrOutsideClickModule, typeof i46.ClrExpandableAnimationModule, typeof i47.ClrSpinnerModule, typeof i48.ClrPopoverModuleNext, typeof i49.ClrKeyFocusModule], [typeof i1.ClrDatagrid, typeof i2.ClrDatagridActionBar, typeof i3.ClrDatagridActionOverflow, typeof i4.ClrDatagridCell, typeof i5.ClrDatagridColumn, typeof i6.ClrDatagridColumnSeparator, typeof i7.ClrDatagridDetail, typeof i8.ClrDatagridDetailBody, typeof i9.ClrDatagridDetailHeader, typeof i10.ClrDatagridFilter, typeof i11.ClrDatagridFooter, typeof i12.ClrDatagridHideableColumn, typeof i13.ClrDatagridItems, typeof i14.ClrDatagridPageSize, typeof i15.ClrDatagridPagination, typeof i16.ClrDatagridPlaceholder, typeof i17.ClrDatagridRow, typeof i18.ClrDatagridRowDetail, typeof i19.ClrDatagridSelectionCellDirective, typeof i20.ClrDatagridVirtualScrollDirective, typeof i21.ClrIfDetail, typeof i22.DatagridDetailRegisterer, typeof i23.WrappedCell, typeof i24.WrappedColumn, typeof i25.WrappedRow, typeof i26.DatagridCellRenderer, typeof i27.DatagridHeaderRenderer, typeof i28.DatagridMainRenderer, typeof i29.DatagridRowRenderer, typeof i30.ActionableOompaLoompa, typeof i31.DatagridWillyWonka, typeof i32.ExpandableOompaLoompa, typeof i33.DatagridNumericFilter, typeof i34.DatagridStringFilter]>;
56
57
  static ɵinj: i0.ɵɵInjectorDeclaration<ClrDatagridModule>;
57
58
  }
@@ -1,5 +1,6 @@
1
1
  export declare enum DatagridColumnChanges {
2
2
  WIDTH = 0,
3
- HIDDEN = 1
3
+ HIDDEN = 1,
4
+ INITIALIZE = 2
4
5
  }
5
6
  export declare const ALL_COLUMN_CHANGES: DatagridColumnChanges[];
@@ -33,6 +33,7 @@ export * from './built-in/comparators/datagrid-property-comparator';
33
33
  export * from './datagrid.module';
34
34
  export { ClrDatagridItemsTrackByFunction } from './providers/items';
35
35
  export { ClrDatagridSelectionCellDirective as ÇlrDatagridSelectionCellDirective } from './datagrid-selection-cell.directive';
36
+ export { ClrDatagridVirtualScrollDirective as ÇlrDatagridVirtualScrollDirective } from './datagrid-virtual-scroll.directive';
36
37
  export { DatagridDetailRegisterer as ÇlrDatagridDetailRegisterer } from './datagrid-detail-registerer';
37
38
  export { WrappedCell as ÇlrWrappedCell } from './wrapped-cell';
38
39
  export { WrappedColumn as ÇlrWrappedColumn } from './wrapped-column';
@@ -1,6 +1,7 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import { DatagridColumnChanges } from '../enums/column-changes.enum';
3
3
  export interface ColumnState {
4
+ columnIndex?: number;
4
5
  changes?: DatagridColumnChanges[];
5
6
  width?: number;
6
7
  strictWidth?: number;
@@ -3,6 +3,7 @@ import { ColumnState, ColumnStateDiff } from '../interfaces/column-state.interfa
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class ColumnsService {
5
5
  columns: BehaviorSubject<ColumnState>[];
6
+ columnsStateChange: BehaviorSubject<ColumnState>;
6
7
  private _cache;
7
8
  get columnStates(): ColumnState[];
8
9
  get hasHideableColumns(): boolean;
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
4
4
  export declare class DetailService {
5
5
  private readonly modalStackService;
6
6
  id: string;
7
+ private preventScroll;
7
8
  private toggleState;
8
9
  private cache;
9
10
  private button;
@@ -12,11 +13,14 @@ export declare class DetailService {
12
13
  constructor(modalStackService: ModalStackService);
13
14
  get enabled(): boolean;
14
15
  set enabled(state: boolean);
16
+ get preventFocusScroll(): boolean;
17
+ set preventFocusScroll(preventScroll: boolean);
15
18
  get state(): any;
16
19
  get stateChange(): Observable<boolean | null>;
17
20
  get isOpen(): boolean;
18
21
  open(item: any, button?: HTMLButtonElement): void;
19
22
  close(): void;
23
+ returnFocus(): void;
20
24
  toggle(item: any, button?: HTMLButtonElement): void;
21
25
  isRowOpen(item: any): boolean;
22
26
  static ɵfac: i0.ɵɵFactoryDeclaration<DetailService, never>;
@@ -1,21 +1,18 @@
1
1
  import { ElementRef, OnDestroy, Renderer2 } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
2
  import { ColumnState } from '../interfaces/column-state.interface';
4
3
  import { DatagridRenderOrganizer } from './render-organizer';
5
4
  import * as i0 from "@angular/core";
6
5
  export declare class DatagridCellRenderer implements OnDestroy {
7
6
  private el;
8
7
  private renderer;
9
- private runAllChanges;
10
8
  private stateSubscription;
11
9
  private subscriptions;
12
10
  constructor(el: ElementRef, renderer: Renderer2, organizer: DatagridRenderOrganizer);
13
- set columnState(columnState: BehaviorSubject<ColumnState>);
14
11
  ngOnDestroy(): void;
15
- private stateChanges;
12
+ resetState(state: ColumnState): void;
13
+ setWidth(state: ColumnState): void;
14
+ setHidden(state: ColumnState): void;
16
15
  private clearWidth;
17
- private setWidth;
18
- private setHidden;
19
16
  static ɵfac: i0.ɵɵFactoryDeclaration<DatagridCellRenderer, never>;
20
17
  static ɵdir: i0.ɵɵDirectiveDeclaration<DatagridCellRenderer, "clr-dg-cell", never, {}, {}, never, never, false, never>;
21
18
  }
@@ -25,12 +25,11 @@ export declare class DatagridHeaderRenderer implements OnDestroy {
25
25
  ngOnDestroy(): void;
26
26
  getColumnWidthState(): Partial<ColumnState>;
27
27
  setColumnState(index: number): void;
28
- private stateChanges;
28
+ setWidth(state: ColumnState): void;
29
+ setHidden(state: ColumnState): void;
29
30
  private clearWidth;
30
31
  private detectStrictWidth;
31
32
  private computeWidth;
32
- private setWidth;
33
- private setHidden;
34
33
  static ɵfac: i0.ɵɵFactoryDeclaration<DatagridHeaderRenderer, never>;
35
34
  static ɵdir: i0.ɵɵDirectiveDeclaration<DatagridHeaderRenderer, "clr-dg-column", never, {}, { "resizeEmitter": "clrDgColumnResize"; }, never, never, false, never>;
36
35
  }
@@ -5,6 +5,7 @@ import { DetailService } from '../providers/detail.service';
5
5
  import { Items } from '../providers/items';
6
6
  import { Page } from '../providers/page';
7
7
  import { TableSizeService } from '../providers/table-size.service';
8
+ import { KeyNavigationGridController } from '../utils/key-navigation-grid.controller';
8
9
  import { NoopDomAdapter } from './noop-dom-adapter';
9
10
  import { DatagridRenderOrganizer } from './render-organizer';
10
11
  import * as i0 from "@angular/core";
@@ -20,6 +21,7 @@ export declare class DatagridMainRenderer implements AfterContentInit, AfterView
20
21
  private tableSizeService;
21
22
  private columnsService;
22
23
  private ngZone;
24
+ private keyNavigation;
23
25
  private headers;
24
26
  private rows;
25
27
  private _heightSet;
@@ -31,7 +33,8 @@ export declare class DatagridMainRenderer implements AfterContentInit, AfterView
31
33
  * 2) When rows are lazily loaded for the first time
32
34
  */
33
35
  private columnsSizesStable;
34
- constructor(organizer: DatagridRenderOrganizer, items: Items, page: Page, domAdapter: DomAdapter, el: ElementRef, renderer: Renderer2, detailService: DetailService, tableSizeService: TableSizeService, columnsService: ColumnsService, ngZone: NgZone);
36
+ constructor(organizer: DatagridRenderOrganizer, items: Items, page: Page, domAdapter: DomAdapter, el: ElementRef, renderer: Renderer2, detailService: DetailService, tableSizeService: TableSizeService, columnsService: ColumnsService, ngZone: NgZone, keyNavigation: KeyNavigationGridController);
37
+ ngOnInit(): void;
35
38
  ngAfterContentInit(): void;
36
39
  ngAfterViewInit(): void;
37
40
  ngAfterViewChecked(): void;
@@ -55,6 +58,7 @@ export declare class DatagridMainRenderer implements AfterContentInit, AfterView
55
58
  * Makes each header compute its width.
56
59
  */
57
60
  private computeHeadersWidth;
61
+ private columnStateChanged;
58
62
  /**
59
63
  * Triggers a whole re-rendring cycle to set column sizes, if needed.
60
64
  */
@@ -1,14 +1,15 @@
1
- import { AfterContentInit, OnDestroy } from '@angular/core';
1
+ import { AfterContentInit, OnDestroy, QueryList } from '@angular/core';
2
2
  import { ColumnsService } from '../providers/columns.service';
3
+ import { DatagridCellRenderer } from './cell-renderer';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class DatagridRowRenderer implements AfterContentInit, OnDestroy {
5
6
  private columnsService;
6
- private cells;
7
+ cells: QueryList<DatagridCellRenderer>;
7
8
  private subscriptions;
8
9
  constructor(columnsService: ColumnsService);
9
10
  ngAfterContentInit(): void;
10
11
  ngOnDestroy(): void;
11
- setColumnState(): void;
12
+ setCellsState(): void;
12
13
  static ɵfac: i0.ɵɵFactoryDeclaration<DatagridRowRenderer, never>;
13
14
  static ɵdir: i0.ɵɵDirectiveDeclaration<DatagridRowRenderer, "clr-dg-row, clr-dg-row-detail", never, {}, {}, ["cells"], never, false, never>;
14
15
  }
@@ -8,10 +8,12 @@ export interface KeyNavigationGridConfig {
8
8
  }
9
9
  export declare class KeyNavigationGridController implements OnDestroy {
10
10
  private zone;
11
+ skipItemFocus: boolean;
11
12
  private host;
12
13
  private config;
13
14
  private listenersAdded;
14
15
  private destroy$;
16
+ private _activeCell;
15
17
  constructor(zone: NgZone);
16
18
  private get grid();
17
19
  private get rows();
@@ -20,7 +22,9 @@ export declare class KeyNavigationGridController implements OnDestroy {
20
22
  addListeners(): void;
21
23
  initializeKeyGrid(host: HTMLElement): void;
22
24
  resetKeyGrid(): void;
23
- private setActiveCell;
25
+ removeActiveCell(): void;
26
+ getActiveCell(): HTMLElement;
27
+ setActiveCell(activeCell: HTMLElement): void;
24
28
  private getNextItemCoordinate;
25
29
  static ɵfac: i0.ɵɵFactoryDeclaration<KeyNavigationGridController, never>;
26
30
  static ɵprov: i0.ɵɵInjectableDeclaration<KeyNavigationGridController>;