@clr/angular 18.2.2 → 18.4.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/fesm2022/clr-angular-accordion.mjs +28 -28
- package/fesm2022/clr-angular-accordion.mjs.map +1 -1
- package/fesm2022/clr-angular-button.mjs +27 -27
- package/fesm2022/clr-angular-button.mjs.map +1 -1
- package/fesm2022/clr-angular-card.mjs +417 -0
- package/fesm2022/clr-angular-card.mjs.map +1 -0
- package/fesm2022/clr-angular-collapsible-panel.mjs +6 -6
- package/fesm2022/clr-angular-collapsible-panel.mjs.map +1 -1
- package/fesm2022/clr-angular-data-datagrid.mjs +1578 -415
- package/fesm2022/clr-angular-data-datagrid.mjs.map +1 -1
- package/fesm2022/clr-angular-data-stack-view.mjs +23 -23
- package/fesm2022/clr-angular-data-stack-view.mjs.map +1 -1
- package/fesm2022/clr-angular-data-tree-view.mjs +283 -48
- package/fesm2022/clr-angular-data-tree-view.mjs.map +1 -1
- package/fesm2022/clr-angular-data.mjs +4 -4
- package/fesm2022/clr-angular-data.mjs.map +1 -1
- package/fesm2022/clr-angular-emphasis-alert.mjs +26 -26
- package/fesm2022/clr-angular-emphasis-alert.mjs.map +1 -1
- package/fesm2022/clr-angular-emphasis-badge.mjs +3 -3
- package/fesm2022/clr-angular-emphasis-badge.mjs.map +1 -1
- package/fesm2022/clr-angular-emphasis-label.mjs +3 -3
- package/fesm2022/clr-angular-emphasis-label.mjs.map +1 -1
- package/fesm2022/clr-angular-emphasis.mjs +4 -4
- package/fesm2022/clr-angular-emphasis.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-checkbox.mjs +23 -14
- package/fesm2022/clr-angular-forms-checkbox.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-combobox.mjs +35 -35
- package/fesm2022/clr-angular-forms-combobox.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-common.mjs +69 -69
- package/fesm2022/clr-angular-forms-common.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-datalist.mjs +17 -17
- package/fesm2022/clr-angular-forms-datalist.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-datepicker.mjs +73 -73
- package/fesm2022/clr-angular-forms-datepicker.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-file-input.mjs +36 -36
- package/fesm2022/clr-angular-forms-file-input.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-input.mjs +10 -10
- package/fesm2022/clr-angular-forms-input.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-number-input.mjs +12 -12
- package/fesm2022/clr-angular-forms-number-input.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-password.mjs +11 -11
- package/fesm2022/clr-angular-forms-password.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-radio.mjs +17 -24
- package/fesm2022/clr-angular-forms-radio.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-range.mjs +10 -10
- package/fesm2022/clr-angular-forms-range.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-select.mjs +10 -10
- package/fesm2022/clr-angular-forms-select.mjs.map +1 -1
- package/fesm2022/clr-angular-forms-textarea.mjs +10 -10
- package/fesm2022/clr-angular-forms-textarea.mjs.map +1 -1
- package/fesm2022/clr-angular-forms.mjs +4 -4
- package/fesm2022/clr-angular-forms.mjs.map +1 -1
- package/fesm2022/clr-angular-icon.mjs +101 -47
- package/fesm2022/clr-angular-icon.mjs.map +1 -1
- package/fesm2022/clr-angular-layout-breadcrumbs.mjs +10 -10
- package/fesm2022/clr-angular-layout-breadcrumbs.mjs.map +1 -1
- package/fesm2022/clr-angular-layout-main-container.mjs +7 -7
- package/fesm2022/clr-angular-layout-main-container.mjs.map +1 -1
- package/fesm2022/clr-angular-layout-nav.mjs +22 -22
- package/fesm2022/clr-angular-layout-nav.mjs.map +1 -1
- package/fesm2022/clr-angular-layout-tabs.mjs +35 -35
- package/fesm2022/clr-angular-layout-tabs.mjs.map +1 -1
- package/fesm2022/clr-angular-layout-vertical-nav.mjs +31 -31
- package/fesm2022/clr-angular-layout-vertical-nav.mjs.map +1 -1
- package/fesm2022/clr-angular-layout.mjs +4 -4
- package/fesm2022/clr-angular-layout.mjs.map +1 -1
- package/fesm2022/clr-angular-modal.mjs +29 -27
- package/fesm2022/clr-angular-modal.mjs.map +1 -1
- package/fesm2022/clr-angular-popover-common.mjs +70 -35
- package/fesm2022/clr-angular-popover-common.mjs.map +1 -1
- package/fesm2022/clr-angular-popover-dropdown.mjs +63 -26
- package/fesm2022/clr-angular-popover-dropdown.mjs.map +1 -1
- package/fesm2022/clr-angular-popover-signpost.mjs +27 -25
- package/fesm2022/clr-angular-popover-signpost.mjs.map +1 -1
- package/fesm2022/clr-angular-popover-tooltip.mjs +19 -19
- package/fesm2022/clr-angular-popover-tooltip.mjs.map +1 -1
- package/fesm2022/clr-angular-popover.mjs +4 -4
- package/fesm2022/clr-angular-popover.mjs.map +1 -1
- package/fesm2022/clr-angular-progress-progress-bars.mjs +7 -7
- package/fesm2022/clr-angular-progress-progress-bars.mjs.map +1 -1
- package/fesm2022/clr-angular-progress-spinner.mjs +7 -7
- package/fesm2022/clr-angular-progress-spinner.mjs.map +1 -1
- package/fesm2022/clr-angular-stepper.mjs +31 -31
- package/fesm2022/clr-angular-stepper.mjs.map +1 -1
- package/fesm2022/clr-angular-timeline.mjs +24 -24
- package/fesm2022/clr-angular-timeline.mjs.map +1 -1
- package/fesm2022/clr-angular-utils-conditional.mjs +16 -16
- package/fesm2022/clr-angular-utils-conditional.mjs.map +1 -1
- package/fesm2022/clr-angular-utils-loading.mjs +7 -7
- package/fesm2022/clr-angular-utils-loading.mjs.map +1 -1
- package/fesm2022/clr-angular-utils.mjs +149 -150
- package/fesm2022/clr-angular-utils.mjs.map +1 -1
- package/fesm2022/clr-angular-wizard.mjs +51 -51
- package/fesm2022/clr-angular-wizard.mjs.map +1 -1
- package/fesm2022/clr-angular.mjs +9 -4
- package/fesm2022/clr-angular.mjs.map +1 -1
- package/package.json +9 -5
- package/types/clr-angular-card.d.ts +110 -0
- package/types/clr-angular-data-datagrid.d.ts +427 -57
- package/types/clr-angular-data-tree-view.d.ts +126 -88
- package/types/clr-angular-forms-checkbox.d.ts +3 -0
- package/types/clr-angular-forms-datepicker.d.ts +1 -1
- package/types/clr-angular-forms-file-input.d.ts +1 -1
- package/types/clr-angular-forms-radio.d.ts +1 -2
- package/types/clr-angular-icon.d.ts +22 -2
- package/types/clr-angular-popover-common.d.ts +6 -0
- package/types/clr-angular-popover-dropdown.d.ts +33 -4
- package/types/clr-angular-utils.d.ts +61 -20
- package/types/clr-angular.d.ts +8 -6
- package/schematics/vitest.config.d.ts +0 -2
- package/schematics/vitest.config.js +0 -17
- package/schematics/vitest.config.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { OnDestroy, OnInit, OnChanges, EventEmitter, ElementRef, ViewContainerRef, ChangeDetectorRef, SimpleChanges, DoCheck,
|
|
3
|
-
import * as
|
|
4
|
-
import { ClrCommonStringsService, IfExpandService, ClrLoadingState, ClrExpandableAnimationDirective, DomAdapter, WillyWonka, OompaLoompa } from '@clr/angular/utils';
|
|
5
|
-
import { Observable,
|
|
2
|
+
import { TemplateRef, OnDestroy, OnInit, OnChanges, EventEmitter, ElementRef, ViewContainerRef, ChangeDetectorRef, SimpleChanges, DoCheck, IterableDiffers, TrackByFunction, QueryList, AfterContentInit, AfterViewInit, Renderer2, NgZone, EnvironmentInjector, Injector, AfterViewChecked, EmbeddedViewRef, Type } from '@angular/core';
|
|
3
|
+
import * as i41 from '@clr/angular/utils';
|
|
4
|
+
import { ClrCommonStringsService, IfExpandService, ClrLoadingState, ClrExpandableAnimationDirective, FocusableItem, DomAdapter, WillyWonka, OompaLoompa } from '@clr/angular/utils';
|
|
5
|
+
import { Observable, BehaviorSubject, Subject, ReplaySubject } from 'rxjs';
|
|
6
6
|
import { ModalStackService } from '@clr/angular/modal';
|
|
7
7
|
import * as i1 from '@clr/angular/popover/common';
|
|
8
8
|
import { ClrPopoverPosition, ClrPopoverService, ClrPopoverType } from '@clr/angular/popover/common';
|
|
9
|
-
import * as
|
|
9
|
+
import * as i40 from '@angular/common';
|
|
10
10
|
import { NgForOfContext } from '@angular/common';
|
|
11
11
|
import * as _clr_angular_data_datagrid from '@clr/angular/data/datagrid';
|
|
12
12
|
import { ClrSignpost } from '@clr/angular/popover/signpost';
|
|
@@ -14,16 +14,18 @@ import { Directionality } from '@angular/cdk/bidi';
|
|
|
14
14
|
import { ListRange } from '@angular/cdk/collections';
|
|
15
15
|
import { CdkVirtualForOfContext, ScrollDispatcher, ViewportRuler, CdkVirtualForOf, CdkFixedSizeVirtualScroll } from '@angular/cdk/scrolling';
|
|
16
16
|
import * as _angular_cdk_overlay from '@angular/cdk/overlay';
|
|
17
|
+
import * as i51 from '@clr/angular/popover/dropdown';
|
|
18
|
+
import { ClrDropdown, DropdownFocusHandler, RootDropdownService, ClrDropdownItem } from '@clr/angular/popover/dropdown';
|
|
17
19
|
import { ClrControlLabel } from '@clr/angular/forms/common';
|
|
18
|
-
import * as
|
|
19
|
-
import * as
|
|
20
|
-
import * as
|
|
21
|
-
import * as
|
|
22
|
-
import * as
|
|
23
|
-
import * as
|
|
24
|
-
import * as
|
|
20
|
+
import * as i42 from '@clr/angular/icon';
|
|
21
|
+
import * as i43 from '@clr/angular/forms/input';
|
|
22
|
+
import * as i44 from '@clr/angular/forms/radio';
|
|
23
|
+
import * as i45 from '@clr/angular/forms/checkbox';
|
|
24
|
+
import * as i46 from '@clr/angular/forms/number-input';
|
|
25
|
+
import * as i47 from '@clr/angular/forms/select';
|
|
26
|
+
import * as i48 from '@angular/forms';
|
|
25
27
|
import { ControlValueAccessor } from '@angular/forms';
|
|
26
|
-
import * as
|
|
28
|
+
import * as i49 from '@clr/angular/progress/spinner';
|
|
27
29
|
|
|
28
30
|
/**
|
|
29
31
|
* Enumeration representing the sorting order of a datagrid column. It is a constant Enum,
|
|
@@ -43,6 +45,27 @@ declare enum ClrDatagridAriaSortOrder {
|
|
|
43
45
|
DESC = "descending"
|
|
44
46
|
}
|
|
45
47
|
|
|
48
|
+
declare enum DatagridColumnChanges {
|
|
49
|
+
WIDTH = 0,
|
|
50
|
+
HIDDEN = 1,
|
|
51
|
+
INITIALIZE = 2,
|
|
52
|
+
PINNED = 3
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
interface ColumnState {
|
|
56
|
+
columnIndex?: number;
|
|
57
|
+
changes?: DatagridColumnChanges[];
|
|
58
|
+
width?: number;
|
|
59
|
+
strictWidth?: number;
|
|
60
|
+
hideable?: boolean;
|
|
61
|
+
hidden?: boolean;
|
|
62
|
+
pinned?: boolean;
|
|
63
|
+
titleTemplateRef?: TemplateRef<any>;
|
|
64
|
+
}
|
|
65
|
+
interface ColumnStateDiff extends ColumnState {
|
|
66
|
+
changes: DatagridColumnChanges[];
|
|
67
|
+
}
|
|
68
|
+
|
|
46
69
|
interface ClrDatagridComparatorInterface<T> {
|
|
47
70
|
compare(a: T, b: T): number;
|
|
48
71
|
}
|
|
@@ -55,9 +78,75 @@ interface ClrDatagridFilterInterface<T, S = any> {
|
|
|
55
78
|
equals?(other: ClrDatagridFilterInterface<T, any>): boolean;
|
|
56
79
|
}
|
|
57
80
|
|
|
81
|
+
/**
|
|
82
|
+
* The part of a filter that the actions menu needs. Declared here rather than importing
|
|
83
|
+
* ClrDatagridFilter, which would close an import cycle back through this service.
|
|
84
|
+
*/
|
|
85
|
+
interface ColumnFilterHandle {
|
|
86
|
+
readonly active: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* The id of the popover the filter renders its content into, for the menu item that opens it to
|
|
89
|
+
* point `aria-controls` at. Optional because it only exists once the filter has an element to
|
|
90
|
+
* label - a handle can register before then.
|
|
91
|
+
*/
|
|
92
|
+
readonly popoverId?: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Lets `clr-dg-column-actions` and the filter of the same column find each other without either
|
|
96
|
+
* importing the other, and without depending on the order they are declared in.
|
|
97
|
+
*
|
|
98
|
+
* It is provided by `ClrDatagridColumn`, so every filter flavour resolves the same instance - a
|
|
99
|
+
* projected `clr-dg-filter` is a content child of the column, and the `clr-dg-string-filter` and
|
|
100
|
+
* `clr-dg-numeric-filter` the column creates for `clrDgField` live in its view.
|
|
101
|
+
*/
|
|
102
|
+
declare class ColumnActionsService {
|
|
103
|
+
/**
|
|
104
|
+
* Whether the filter keeps its own toggle in the column header. An actions menu turns this off and
|
|
105
|
+
* opens the filter itself, so the header keeps a single control per column - unless
|
|
106
|
+
* `clrDgKeepFilterInHeader` asks to keep the toggle.
|
|
107
|
+
*
|
|
108
|
+
* A signal rather than a plain flag because the menu and the filter are siblings: either can be
|
|
109
|
+
* created first, and the filter has to react whenever the answer changes.
|
|
110
|
+
*/
|
|
111
|
+
readonly filterInHeader: i0.WritableSignal<boolean>;
|
|
112
|
+
/**
|
|
113
|
+
* Whether the column has an actions menu at all, whatever it does with the filter. While it does,
|
|
114
|
+
* the column drops its own pin toggle, because the menu offers Pin Column instead.
|
|
115
|
+
*/
|
|
116
|
+
readonly menuPresent: i0.WritableSignal<boolean>;
|
|
117
|
+
/** The filter rendered for this column, if it has one. */
|
|
118
|
+
readonly filter: i0.WritableSignal<ColumnFilterHandle>;
|
|
119
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ColumnActionsService, never>;
|
|
120
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ColumnActionsService>;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
declare class ColumnsService {
|
|
124
|
+
columns: BehaviorSubject<ColumnState>[];
|
|
125
|
+
columnsStateChange: BehaviorSubject<ColumnState>;
|
|
126
|
+
private _cache;
|
|
127
|
+
get columnStates(): ColumnState[];
|
|
128
|
+
get hasHideableColumns(): boolean;
|
|
129
|
+
get visibleColumns(): ColumnState[];
|
|
130
|
+
get hasPinnedColumns(): boolean;
|
|
131
|
+
/**
|
|
132
|
+
* Tells whether the column at the given index is pinned (static). Columns and cells are
|
|
133
|
+
* matched by their declaration index, so this is what the header, the rows and a column aligned
|
|
134
|
+
* row detail use to decide which views belong in the static container.
|
|
135
|
+
*/
|
|
136
|
+
isPinned(columnIndex: number): boolean;
|
|
137
|
+
cache(): void;
|
|
138
|
+
hasCache(): boolean;
|
|
139
|
+
resetToLastCache(): void;
|
|
140
|
+
emitStateChangeAt(columnIndex: number, diff: ColumnStateDiff): void;
|
|
141
|
+
emitStateChange(column: BehaviorSubject<ColumnState>, diff: ColumnStateDiff): void;
|
|
142
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ColumnsService, never>;
|
|
143
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ColumnsService>;
|
|
144
|
+
}
|
|
145
|
+
|
|
58
146
|
declare class DetailService {
|
|
59
147
|
private readonly modalStackService;
|
|
60
148
|
id: string;
|
|
149
|
+
detailWidth: number;
|
|
61
150
|
private preventScroll;
|
|
62
151
|
private toggleState;
|
|
63
152
|
private cache;
|
|
@@ -256,18 +345,29 @@ declare class ClrDatagridColumn<T = any> extends DatagridFilterRegistrar<T, ClrD
|
|
|
256
345
|
private vcr;
|
|
257
346
|
private detailService;
|
|
258
347
|
private changeDetectorRef;
|
|
259
|
-
|
|
348
|
+
protected commonStrings: ClrCommonStringsService;
|
|
349
|
+
private columnsService;
|
|
350
|
+
private columnState;
|
|
260
351
|
filterStringPlaceholder: string;
|
|
261
352
|
filterNumberMaxPlaceholder: string;
|
|
262
353
|
filterNumberMinPlaceholder: string;
|
|
263
354
|
disableUnsort: boolean;
|
|
355
|
+
/**
|
|
356
|
+
* Lets the user pin and unpin the column from within the datagrid. It only offers the control - the
|
|
357
|
+
* pinned state itself stays on `clrDgPinned`.
|
|
358
|
+
* The control is a pin toggle in the column header, or Pin Column in the column's
|
|
359
|
+
* `clr-dg-column-actions` when it has one - never both, so the header keeps one control per action.
|
|
360
|
+
*/
|
|
361
|
+
pinnable: boolean;
|
|
264
362
|
sortOrderChange: EventEmitter<ClrDatagridSortOrder>;
|
|
363
|
+
pinnedChange: EventEmitter<boolean>;
|
|
265
364
|
filterValueChange: EventEmitter<any>;
|
|
266
365
|
titleContainer: ElementRef<HTMLElement>;
|
|
267
366
|
/**
|
|
268
367
|
* A custom filter for this column that can be provided in the projected content
|
|
269
368
|
*/
|
|
270
369
|
customFilter: boolean;
|
|
370
|
+
protected readonly columnActions: ColumnActionsService;
|
|
271
371
|
private _colType;
|
|
272
372
|
private _field;
|
|
273
373
|
/**
|
|
@@ -286,10 +386,24 @@ declare class ClrDatagridColumn<T = any> extends DatagridFilterRegistrar<T, ClrD
|
|
|
286
386
|
*/
|
|
287
387
|
private subscriptions;
|
|
288
388
|
private _showSeparator;
|
|
289
|
-
|
|
389
|
+
private _pinned;
|
|
390
|
+
constructor(el: ElementRef<HTMLElement>, _sort: Sort<T>, filters: FiltersProvider<T>, vcr: ViewContainerRef, detailService: DetailService, changeDetectorRef: ChangeDetectorRef, commonStrings: ClrCommonStringsService, columnsService: ColumnsService, columnState: BehaviorSubject<ColumnState>);
|
|
290
391
|
get isHidden(): boolean;
|
|
392
|
+
/**
|
|
393
|
+
* Whether the column is currently rendered as pinned. This can differ from the `pinned` input
|
|
394
|
+
* while the detail pane is open, because pinning is suspended for as long as it shows a single
|
|
395
|
+
* column.
|
|
396
|
+
*/
|
|
397
|
+
get isPinned(): boolean;
|
|
291
398
|
get showSeparator(): boolean;
|
|
292
399
|
set showSeparator(value: boolean);
|
|
400
|
+
/**
|
|
401
|
+
* Pins the column to the left of the datagrid, so it stays visible while the remaining
|
|
402
|
+
* columns are scrolled horizontally. Pinned columns keep their declaration order and are
|
|
403
|
+
* rendered before the scrollable ones, right after the built-in row controls.
|
|
404
|
+
*/
|
|
405
|
+
get pinned(): boolean;
|
|
406
|
+
set pinned(value: boolean);
|
|
293
407
|
get colType(): "string" | "number";
|
|
294
408
|
set colType(value: 'string' | 'number');
|
|
295
409
|
get field(): string;
|
|
@@ -325,12 +439,26 @@ declare class ClrDatagridColumn<T = any> extends DatagridFilterRegistrar<T, ClrD
|
|
|
325
439
|
* Sorts the datagrid based on this column
|
|
326
440
|
*/
|
|
327
441
|
sort(reverse?: boolean): void;
|
|
442
|
+
/**
|
|
443
|
+
* Returns the datagrid to its unsorted state. Both the tri-state title button and the sort actions
|
|
444
|
+
* in `clr-dg-column-actions` go through here, so the two cannot drift apart.
|
|
445
|
+
*/
|
|
446
|
+
clearSort(): void;
|
|
447
|
+
/**
|
|
448
|
+
* Pins or unpins the column. Going through the `pinned` setter keeps the rendering in sync, and the
|
|
449
|
+
* output lets the application follow a change it did not initiate - without it a one-way
|
|
450
|
+
* [clrDgPinned] binding would write the old value straight back.
|
|
451
|
+
*/
|
|
452
|
+
togglePinned(): void;
|
|
453
|
+
protected onPinToggleClick(event: MouseEvent): void;
|
|
328
454
|
private listenForDetailPaneChanges;
|
|
329
455
|
private setFilterToggleAriaLabel;
|
|
330
456
|
private listenForSortingChanges;
|
|
331
457
|
private setupDefaultFilter;
|
|
332
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridColumn<any>,
|
|
333
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridColumn<any>, "clr-dg-column", never, { "filterStringPlaceholder": { "alias": "clrFilterStringPlaceholder"; "required": false; }; "filterNumberMaxPlaceholder": { "alias": "clrFilterNumberMaxPlaceholder"; "required": false; }; "filterNumberMinPlaceholder": { "alias": "clrFilterNumberMinPlaceholder"; "required": false; }; "disableUnsort": { "alias": "clrDgDisableUnsort"; "required": false; }; "colType": { "alias": "clrDgColType"; "required": false; }; "field": { "alias": "clrDgField"; "required": false; }; "sortBy": { "alias": "clrDgSortBy"; "required": false; }; "sortOrder": { "alias": "clrDgSortOrder"; "required": false; }; "updateFilterValue": { "alias": "clrFilterValue"; "required": false; }; }, { "sortOrderChange": "clrDgSortOrderChange"; "filterValueChange": "clrFilterValueChange"; }, ["projectedFilter"], ["clr-dg-filter, clr-dg-string-filter, clr-dg-numeric-filter", "*"], false, [{ directive: typeof i1.ClrPopoverHostDirective; inputs: {}; outputs: {}; }]>;
|
|
458
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridColumn<any>, [null, null, null, null, null, null, null, null, { optional: true; }]>;
|
|
459
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridColumn<any>, "clr-dg-column", never, { "filterStringPlaceholder": { "alias": "clrFilterStringPlaceholder"; "required": false; }; "filterNumberMaxPlaceholder": { "alias": "clrFilterNumberMaxPlaceholder"; "required": false; }; "filterNumberMinPlaceholder": { "alias": "clrFilterNumberMinPlaceholder"; "required": false; }; "disableUnsort": { "alias": "clrDgDisableUnsort"; "required": false; }; "pinnable": { "alias": "clrDgPinnable"; "required": false; }; "pinned": { "alias": "clrDgPinned"; "required": false; }; "colType": { "alias": "clrDgColType"; "required": false; }; "field": { "alias": "clrDgField"; "required": false; }; "sortBy": { "alias": "clrDgSortBy"; "required": false; }; "sortOrder": { "alias": "clrDgSortOrder"; "required": false; }; "updateFilterValue": { "alias": "clrFilterValue"; "required": false; }; }, { "sortOrderChange": "clrDgSortOrderChange"; "pinnedChange": "clrDgPinnedChange"; "filterValueChange": "clrFilterValueChange"; }, ["projectedFilter"], ["clr-dg-filter, clr-dg-string-filter, clr-dg-numeric-filter", "*", "clr-dg-column-actions"], false, [{ directive: typeof i1.ClrPopoverHostDirective; inputs: {}; outputs: {}; }]>;
|
|
460
|
+
static ngAcceptInputType_pinnable: unknown;
|
|
461
|
+
static ngAcceptInputType_pinned: unknown;
|
|
334
462
|
}
|
|
335
463
|
|
|
336
464
|
type ClrDatagridItemsIdentityFunction<T> = (item: T) => any;
|
|
@@ -663,6 +791,7 @@ declare class ClrDatagridRow<T = any> implements AfterContentInit, AfterViewInit
|
|
|
663
791
|
el: ElementRef<HTMLElement>;
|
|
664
792
|
commonStrings: ClrCommonStringsService;
|
|
665
793
|
private items;
|
|
794
|
+
private columnsService;
|
|
666
795
|
private document;
|
|
667
796
|
selectedChanged: EventEmitter<boolean>;
|
|
668
797
|
expandedChange: EventEmitter<boolean>;
|
|
@@ -692,6 +821,7 @@ declare class ClrDatagridRow<T = any> implements AfterContentInit, AfterViewInit
|
|
|
692
821
|
expandAnimation: ClrExpandableAnimationDirective;
|
|
693
822
|
detailButton: ElementRef<HTMLButtonElement>;
|
|
694
823
|
_stickyCells: ViewContainerRef;
|
|
824
|
+
_pinnedCells: ViewContainerRef;
|
|
695
825
|
_scrollableCells: ViewContainerRef;
|
|
696
826
|
_calculatedCells: ViewContainerRef;
|
|
697
827
|
_fixedCellTemplate: TemplateRef<any>;
|
|
@@ -702,8 +832,15 @@ declare class ClrDatagridRow<T = any> implements AfterContentInit, AfterViewInit
|
|
|
702
832
|
private _rowSelectionLabel;
|
|
703
833
|
private wrappedInjector;
|
|
704
834
|
private subscriptions;
|
|
835
|
+
/**
|
|
836
|
+
* The placeholder cells we create from `fixedCellTemplate` for the calculate pass. Unlike the
|
|
837
|
+
* cell views, which belong to their `WrappedCell`, these are created here on every pass, so
|
|
838
|
+
* they are ours to destroy. Detaching them from the container only unlinks them - the views
|
|
839
|
+
* themselves would stay alive and keep the whole row, and the datagrid with it, in memory.
|
|
840
|
+
*/
|
|
841
|
+
private fixedCellViews;
|
|
705
842
|
private _selectable;
|
|
706
|
-
constructor(selection: Selection<T>, rowActionService: RowActionService, globalExpandable: ExpandableRowsCount, expand: DatagridIfExpandService, detailService: DetailService, displayMode: DisplayModeService, vcr: ViewContainerRef, renderer: Renderer2, el: ElementRef<HTMLElement>, commonStrings: ClrCommonStringsService, items: Items, document: any);
|
|
843
|
+
constructor(selection: Selection<T>, rowActionService: RowActionService, globalExpandable: ExpandableRowsCount, expand: DatagridIfExpandService, detailService: DetailService, displayMode: DisplayModeService, vcr: ViewContainerRef, renderer: Renderer2, el: ElementRef<HTMLElement>, commonStrings: ClrCommonStringsService, items: Items, columnsService: ColumnsService, document: any);
|
|
707
844
|
/**
|
|
708
845
|
* Model of the row, to use for selection
|
|
709
846
|
*/
|
|
@@ -744,6 +881,14 @@ declare class ClrDatagridRow<T = any> implements AfterContentInit, AfterViewInit
|
|
|
744
881
|
* @deprecated related to clrDgRowSelection, which is deprecated
|
|
745
882
|
*/
|
|
746
883
|
protected selectRow(selected: boolean, $event: any): void;
|
|
884
|
+
private destroyFixedCellViews;
|
|
885
|
+
/**
|
|
886
|
+
* Projects the cells into the display containers. Cells of pinned columns go into their static
|
|
887
|
+
* container so they stay visible during horizontal scroll; the rest stay scrollable. Cells are
|
|
888
|
+
* matched with their column by declaration index, and iterating in that order keeps both groups
|
|
889
|
+
* aligned with the header.
|
|
890
|
+
*/
|
|
891
|
+
private insertCellViews;
|
|
747
892
|
private rangeSelect;
|
|
748
893
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridRow<any>, never>;
|
|
749
894
|
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridRow<any>, "clr-dg-row", never, { "detailDisabled": { "alias": "clrDgDetailDisabled"; "required": false; }; "detailHidden": { "alias": "clrDgDetailHidden"; "required": false; }; "skeletonLoading": { "alias": "clrDgSkeletonLoading"; "required": false; }; "item": { "alias": "clrDgItem"; "required": false; }; "clrDgSelectable": { "alias": "clrDgSelectable"; "required": false; }; "selected": { "alias": "clrDgSelected"; "required": false; }; "expanded": { "alias": "clrDgExpanded"; "required": false; }; "clrDgDetailOpenLabel": { "alias": "clrDgDetailOpenLabel"; "required": false; }; "clrDgDetailCloseLabel": { "alias": "clrDgDetailCloseLabel"; "required": false; }; "clrDgRowSelectionLabel": { "alias": "clrDgRowSelectionLabel"; "required": false; }; }, { "selectedChanged": "clrDgSelectedChange"; "expandedChange": "clrDgExpandedChange"; }, ["dgCells"], ["clr-dg-action-overflow", "clr-dg-cell", "clr-dg-row-detail"], false, never>;
|
|
@@ -785,6 +930,14 @@ declare class ClrDatagridVirtualScrollDirective<T> implements AfterViewInit, DoC
|
|
|
785
930
|
private cdkVirtualFor;
|
|
786
931
|
private subscriptions;
|
|
787
932
|
private topIndex;
|
|
933
|
+
/**
|
|
934
|
+
* Injectors for the CDK virtual scroll instances we create by hand, in the order they have to be
|
|
935
|
+
* destroyed. Destroying them is what runs the CDK teardown: their `ngOnDestroy` and, importantly,
|
|
936
|
+
* the `DestroyRef` cleanup `CdkVirtualScrollViewport` registers for the effect it creates on the
|
|
937
|
+
* application injector. Leaving them alive keeps that effect registered, which retains the
|
|
938
|
+
* viewport and the entire datagrid view tree for as long as the application lives.
|
|
939
|
+
*/
|
|
940
|
+
private readonly cdkInjectors;
|
|
788
941
|
private mutationChanges;
|
|
789
942
|
private cdkVirtualForInputs;
|
|
790
943
|
private _totalItems;
|
|
@@ -820,6 +973,18 @@ declare class ClrDatagridVirtualScrollDirective<T> implements AfterViewInit, DoC
|
|
|
820
973
|
private updateAriaRowCount;
|
|
821
974
|
private updateAriaRowIndexes;
|
|
822
975
|
private createVirtualScrollViewportForDatagrid;
|
|
976
|
+
private createCdkVirtualScrollViewport;
|
|
977
|
+
/**
|
|
978
|
+
* `Directionality`, `ScrollDispatcher` and `ViewportRuler` belong to the application, not to us.
|
|
979
|
+
* Angular registers every value an injector hands out that has an `ngOnDestroy` - `useValue`
|
|
980
|
+
* providers included - and calls it from `injector.destroy()`, so putting them in an injector we
|
|
981
|
+
* destroy would end scroll, resize and text-direction notification for the whole application the
|
|
982
|
+
* first time a virtual scroll datagrid goes away. They live in this parent, which nothing destroys,
|
|
983
|
+
* so the viewport still resolves the very instances our host injector gave us - including a
|
|
984
|
+
* `Directionality` overridden by an ancestor `[dir]`.
|
|
985
|
+
*/
|
|
986
|
+
private createApplicationInjector;
|
|
987
|
+
private createCdkVirtualForOfDirective;
|
|
823
988
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridVirtualScrollDirective<any>, never>;
|
|
824
989
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ClrDatagridVirtualScrollDirective<any>, "[clrVirtualScroll],[ClrVirtualScroll]", never, { "persistItems": { "alias": "clrVirtualPersistItems"; "required": false; }; "cdkVirtualForOf": { "alias": "clrVirtualRowsOf"; "required": false; }; "cdkVirtualForTrackBy": { "alias": "clrVirtualRowsTrackBy"; "required": false; }; "cdkVirtualForTemplate": { "alias": "clrVirtualRowsTemplate"; "required": false; }; "cdkVirtualForTemplateCacheSize": { "alias": "clrVirtualRowsTemplateCacheSize"; "required": false; }; "itemSize": { "alias": "clrVirtualRowsItemSize"; "required": false; }; "minBufferPx": { "alias": "clrVirtualRowsMinBufferPx"; "required": false; }; "maxBufferPx": { "alias": "clrVirtualRowsMaxBufferPx"; "required": false; }; "dataRange": { "alias": "clrVirtualDataRange"; "required": false; }; }, { "renderedRangeChange": "renderedRangeChange"; }, never, never, false, never>;
|
|
825
990
|
}
|
|
@@ -902,6 +1067,7 @@ declare class ClrDatagrid<T = any> implements AfterContentInit, AfterViewInit, O
|
|
|
902
1067
|
commonStrings: ClrCommonStringsService;
|
|
903
1068
|
keyNavigation: KeyNavigationGridController;
|
|
904
1069
|
private zone;
|
|
1070
|
+
private columnsService;
|
|
905
1071
|
loadingMoreItems: boolean;
|
|
906
1072
|
clrDgSingleSelectionAriaLabel: string;
|
|
907
1073
|
clrDgSingleActionableAriaLabel: string;
|
|
@@ -947,6 +1113,7 @@ declare class ClrDatagrid<T = any> implements AfterContentInit, AfterViewInit, O
|
|
|
947
1113
|
rowsWrapper: ElementRef<HTMLElement>;
|
|
948
1114
|
scrollableColumns: ViewContainerRef;
|
|
949
1115
|
_projectedDisplayColumns: ViewContainerRef;
|
|
1116
|
+
_projectedStickyColumns: ViewContainerRef;
|
|
950
1117
|
_projectedCalculationColumns: ViewContainerRef;
|
|
951
1118
|
_displayedRows: ViewContainerRef;
|
|
952
1119
|
_calculationRows: ViewContainerRef;
|
|
@@ -956,15 +1123,28 @@ declare class ClrDatagrid<T = any> implements AfterContentInit, AfterViewInit, O
|
|
|
956
1123
|
activeCellCoords: CellCoordinates;
|
|
957
1124
|
SELECTION_TYPE: typeof SelectionType;
|
|
958
1125
|
private selectAllCheckbox;
|
|
1126
|
+
private rowControls;
|
|
959
1127
|
/**
|
|
960
1128
|
* Subscriptions to all the services and queries changes
|
|
961
1129
|
*/
|
|
962
1130
|
private _subscriptions;
|
|
963
1131
|
private _virtualScrollSubscriptions;
|
|
1132
|
+
/**
|
|
1133
|
+
* The placeholder columns we create from `fixedColumnTemplate` for the calculate pass. Unlike
|
|
1134
|
+
* the column views, which belong to their `WrappedColumn`, these are created here on every
|
|
1135
|
+
* pass, so they are ours to destroy. Detaching them from the container only unlinks them - the
|
|
1136
|
+
* views themselves would stay alive and keep the whole datagrid in memory.
|
|
1137
|
+
*/
|
|
1138
|
+
private fixedColumnViews;
|
|
964
1139
|
private cachedRowsHeight;
|
|
965
1140
|
private cachedContentHeight;
|
|
966
1141
|
private resizeObserver;
|
|
967
|
-
|
|
1142
|
+
/**
|
|
1143
|
+
* Watches the row controls for anything that changes their width without going through a render
|
|
1144
|
+
* cycle - a density change, or an application restyling them.
|
|
1145
|
+
*/
|
|
1146
|
+
private rowControlsObserver;
|
|
1147
|
+
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, keyNavigation: KeyNavigationGridController, zone: NgZone, columnsService: ColumnsService);
|
|
968
1148
|
/**
|
|
969
1149
|
* Freezes the datagrid while data is loading
|
|
970
1150
|
*/
|
|
@@ -998,6 +1178,7 @@ declare class ClrDatagrid<T = any> implements AfterContentInit, AfterViewInit, O
|
|
|
998
1178
|
get allSelected(): boolean;
|
|
999
1179
|
set allSelected(value: boolean);
|
|
1000
1180
|
get virtualScroll(): ClrDatagridVirtualScrollDirective<any>;
|
|
1181
|
+
protected get isDetailOverlay(): boolean;
|
|
1001
1182
|
ngAfterContentInit(): void;
|
|
1002
1183
|
/**
|
|
1003
1184
|
* Our setup happens in the view of some of our components, so we wait for it to be done before starting
|
|
@@ -1016,7 +1197,29 @@ declare class ClrDatagrid<T = any> implements AfterContentInit, AfterViewInit, O
|
|
|
1016
1197
|
* Public method to re-trigger the computation of displayed items manually
|
|
1017
1198
|
*/
|
|
1018
1199
|
dataChanged(): void;
|
|
1200
|
+
private destroyFixedColumnViews;
|
|
1019
1201
|
private toggleVirtualScrollSubscriptions;
|
|
1202
|
+
/**
|
|
1203
|
+
* Publishes the width of the row controls - the static container holding the select, action and
|
|
1204
|
+
* caret cells - as a custom property, which is where the pinned columns read the offset they
|
|
1205
|
+
* became static at. They are static right after the controls rather than at the edge of the datagrid,
|
|
1206
|
+
* and `position: sticky` always measures its offsets from that edge, so the distance between the
|
|
1207
|
+
* two has to be measured and handed to the stylesheet.
|
|
1208
|
+
*
|
|
1209
|
+
* The header and the rows get their own value: the header renders one caret column for both
|
|
1210
|
+
* kinds of caret where a row renders one cell per caret, so the two containers are not
|
|
1211
|
+
* necessarily the same width.
|
|
1212
|
+
*
|
|
1213
|
+
* Nothing reads this property unless a column is pinned - `.datagrid-pinned-cells` is the only
|
|
1214
|
+
* consumer, and it is `display: none` while empty - so the measurement is skipped entirely
|
|
1215
|
+
* otherwise. It matters on a datagrid with many rows: `getBoundingClientRect()` forces the
|
|
1216
|
+
* browser to resolve any pending layout first, and on a large datagrid that resolution is not
|
|
1217
|
+
* cheap. Both boxes are read before either write for the same reason - writing the custom
|
|
1218
|
+
* property is itself layout-affecting (`.datagrid-pinned-cells` reads it back for its own
|
|
1219
|
+
* position and width), so reading again in between would force that resolution twice.
|
|
1220
|
+
*/
|
|
1221
|
+
private updateRowControlsWidth;
|
|
1222
|
+
private setRowControlsWidth;
|
|
1020
1223
|
private handleResizeChanges;
|
|
1021
1224
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagrid<any>, never>;
|
|
1022
1225
|
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagrid<any>, "clr-datagrid", never, { "loadingMoreItems": { "alias": "clrLoadingMoreItems"; "required": false; }; "clrDgSingleSelectionAriaLabel": { "alias": "clrDgSingleSelectionAriaLabel"; "required": false; }; "clrDgSingleActionableAriaLabel": { "alias": "clrDgSingleActionableAriaLabel"; "required": false; }; "clrDetailExpandableAriaLabel": { "alias": "clrDetailExpandableAriaLabel"; "required": false; }; "clrDgDisablePageFocus": { "alias": "clrDgDisablePageFocus"; "required": false; }; "customSelectAllEnabled": { "alias": "clrDgCustomSelectAllEnabled"; "required": false; }; "selectAllDisabled": { "alias": "clrDgSelectAllDisabled"; "required": false; }; "loading": { "alias": "clrDgLoading"; "required": false; }; "selectionType": { "alias": "clrDgSelectionType"; "required": false; }; "selected": { "alias": "clrDgSelected"; "required": false; }; "clrDgPreserveSelection": { "alias": "clrDgPreserveSelection"; "required": false; }; "rowSelectionMode": { "alias": "clrDgRowSelection"; "required": false; }; "identityFn": { "alias": "clrDgItemsIdentityFn"; "required": false; }; }, { "selectedChanged": "clrDgSelectedChange"; "refresh": "clrDgRefresh"; "customSelectAll": "clrDgCustomSelectAll"; }, ["iterator", "placeholder", "_virtualScroll", "columns", "rows"], ["clr-dg-action-bar", "clr-dg-placeholder", "clr-dg-footer", "[clrIfDetail],clr-dg-detail"], false, never>;
|
|
@@ -1051,39 +1254,177 @@ declare class ClrDatagridActionOverflow implements OnDestroy {
|
|
|
1051
1254
|
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridActionOverflow, "clr-dg-action-overflow", never, { "buttonLabel": { "alias": "clrDgActionOverflowButtonLabel"; "required": false; }; "open": { "alias": "clrDgActionOverflowOpen"; "required": false; }; }, { "openChange": "clrDgActionOverflowOpenChange"; }, never, ["*"], false, [{ directive: typeof i1.ClrPopoverHostDirective; inputs: {}; outputs: {}; }]>;
|
|
1052
1255
|
}
|
|
1053
1256
|
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1257
|
+
/**
|
|
1258
|
+
* Groups the actions of a single column behind one menu in the column header. It only gathers
|
|
1259
|
+
* controls that already exist on the column - the behavior itself stays on `ClrDatagridColumn`,
|
|
1260
|
+
* so the menu and the header controls can never drift apart.
|
|
1261
|
+
*
|
|
1262
|
+
* Each item is rendered only when the column can actually perform it, so the menu never offers a
|
|
1263
|
+
* dead option - that covers both what the column can never do, such as sorting when it is not
|
|
1264
|
+
* sortable, and what it cannot do right now, such as clearing a sort while nothing is sorted.
|
|
1265
|
+
* Anything projected into the component is appended after the built-in items.
|
|
1266
|
+
*
|
|
1267
|
+
* A column that has a filter gets a filter action automatically, and the filter drops its own toggle
|
|
1268
|
+
* for as long as this menu is present - the header keeps one control per column rather than two. The
|
|
1269
|
+
* trigger also takes over showing that the column is filtered, which the toggle used to do.
|
|
1270
|
+
* `clrDgKeepFilterInHeader` opts back into the toggle, and then the menu drops the filter action in
|
|
1271
|
+
* exchange: a column offers one way to reach its filter, never both at once.
|
|
1272
|
+
*
|
|
1273
|
+
* Projected items can be `clrDgColumnAction`s, plain `clrDropdownItem`s, or a nested `clr-dropdown`.
|
|
1274
|
+
* They join the arrow key order after the built-in items as long as they are projected directly -
|
|
1275
|
+
* an item wrapped in an element of its own is not found. A nested dropdown's own items stay in its
|
|
1276
|
+
* own menu.
|
|
1277
|
+
*
|
|
1278
|
+
* The component is the dropdown itself rather than wrapping one, so that a projected item can reach
|
|
1279
|
+
* it: injection resolves from where a node is declared, and an item declared outside this component
|
|
1280
|
+
* would sit outside the injector of any `clr-dropdown` in its template.
|
|
1281
|
+
*/
|
|
1282
|
+
declare class ClrDatagridColumnActions extends ClrDropdown implements AfterViewInit, OnDestroy {
|
|
1283
|
+
protected column: ClrDatagridColumn;
|
|
1284
|
+
protected commonStrings: ClrCommonStringsService;
|
|
1285
|
+
private columnActions;
|
|
1286
|
+
private columnPopover;
|
|
1287
|
+
private changeDetectorRef;
|
|
1288
|
+
private injector;
|
|
1289
|
+
private filters;
|
|
1290
|
+
protected readonly ClrDatagridSortOrder: typeof ClrDatagridSortOrder;
|
|
1291
|
+
private _keepFilterInHeader;
|
|
1292
|
+
private _menuPopoverContent;
|
|
1293
|
+
private trigger;
|
|
1294
|
+
private subs;
|
|
1295
|
+
private projectedItemsSubscription;
|
|
1296
|
+
private readonly columnActionsFocusHandler;
|
|
1297
|
+
constructor(column: ClrDatagridColumn, commonStrings: ClrCommonStringsService, columnActions: ColumnActionsService, columnPopover: ClrPopoverService, changeDetectorRef: ChangeDetectorRef, injector: Injector, filters: FiltersProvider, parent: ClrDropdown, popoverService: ClrPopoverService, focusHandler: DropdownFocusHandler, dropdownService: RootDropdownService);
|
|
1298
|
+
/**
|
|
1299
|
+
* Keeps the filter's own toggle in the column header instead of moving it into this menu, and the
|
|
1300
|
+
* menu drops its filter action in exchange - a column offers one way to reach its filter at a
|
|
1301
|
+
* time, never two.
|
|
1302
|
+
*/
|
|
1303
|
+
get keepFilterInHeader(): boolean;
|
|
1304
|
+
set keepFilterInHeader(value: boolean);
|
|
1305
|
+
/**
|
|
1306
|
+
* The menu is a live view of the column, so the label has to be read at render time rather than
|
|
1307
|
+
* cached - the column title can change, and so can the sort state it reports.
|
|
1308
|
+
*/
|
|
1309
|
+
protected get triggerLabel(): string;
|
|
1310
|
+
protected get sortOrder(): ClrDatagridSortOrder;
|
|
1311
|
+
protected get canClearSort(): boolean;
|
|
1312
|
+
protected get hasFilter(): boolean;
|
|
1313
|
+
/**
|
|
1314
|
+
* Hiding the filter toggle also hides the only sign that a column is filtered, so the trigger and
|
|
1315
|
+
* the filter action carry that state instead.
|
|
1316
|
+
*/
|
|
1317
|
+
protected get filterActive(): boolean;
|
|
1318
|
+
/**
|
|
1319
|
+
* Whether the filter this menu opens is open, for the filter action to report the same way the
|
|
1320
|
+
* toggle it replaced did. Read from the column's popover service rather than from the filter,
|
|
1321
|
+
* because that service is what the action opens.
|
|
1322
|
+
*/
|
|
1323
|
+
protected get filterOpen(): boolean;
|
|
1324
|
+
/**
|
|
1325
|
+
* The popover the filter action opens, so it can point at what it controls - again the same thing
|
|
1326
|
+
* the replaced toggle pointed at.
|
|
1327
|
+
*/
|
|
1328
|
+
protected get filterPopoverId(): string | null;
|
|
1329
|
+
/**
|
|
1330
|
+
* The items projected into the menu. The menu's own content query cannot see them, so they are
|
|
1331
|
+
* handed to the focus handler from here.
|
|
1332
|
+
*
|
|
1333
|
+
* Only direct children are queried, not descendants: a nested `clr-dropdown` is one item here - its
|
|
1334
|
+
* focus handler - and the items inside it belong to its own menu, not to this one.
|
|
1335
|
+
*/
|
|
1336
|
+
private set projectedItems(value);
|
|
1337
|
+
private set menuPopoverContent(value);
|
|
1338
|
+
ngAfterViewInit(): void;
|
|
1339
|
+
ngOnDestroy(): void;
|
|
1340
|
+
/**
|
|
1341
|
+
* Returns focus to the trigger before closing, the same order `clrDropdownItem` uses - moving focus
|
|
1342
|
+
* first means it lands correctly even when the action opens a modal.
|
|
1343
|
+
*/
|
|
1344
|
+
closeMenu(): void;
|
|
1345
|
+
/**
|
|
1346
|
+
* Re-anchors the open menu to the trigger, for an action that moves the column it belongs to
|
|
1347
|
+
* instead of closing the menu behind it.
|
|
1348
|
+
*
|
|
1349
|
+
* Deferred to after the next render rather than run straight away, because the action that asked
|
|
1350
|
+
* for this has only just been clicked - the column is relocated by the change detection that
|
|
1351
|
+
* follows, so measuring the trigger now would re-anchor the menu to where it already is.
|
|
1352
|
+
*/
|
|
1353
|
+
repositionMenu(): void;
|
|
1354
|
+
/**
|
|
1355
|
+
* Moves focus to one of the projected actions, keeping the menu's keyboard handling in step with
|
|
1356
|
+
* it.
|
|
1357
|
+
*
|
|
1358
|
+
* Called by `clrDgColumnAction` when the item takes focus, so that focusing an item by any means -
|
|
1359
|
+
* including a plain `focus()` from outside, after an action rebuilt the menu - leaves space and
|
|
1360
|
+
* enter acting on that same item rather than on whatever the menu focused when it opened.
|
|
1361
|
+
*/
|
|
1362
|
+
focusAction(item: FocusableItem): void;
|
|
1363
|
+
/**
|
|
1364
|
+
* The menu states a direction rather than cycling through them, so asking for the direction the
|
|
1365
|
+
* column already has is a no-op.
|
|
1366
|
+
*
|
|
1367
|
+
* The guard is needed because `Sort.toggle()` reads `forceReverse: false` as "toggle" rather than
|
|
1368
|
+
* "ascending" - `forceReverse || !this._reverse` falls through to the toggle for a falsy value - so
|
|
1369
|
+
* `sort(false)` on an already ascending column would flip it to descending. The tri-state title
|
|
1370
|
+
* button never hits that path, because it always calls `sort()` without an argument.
|
|
1371
|
+
*/
|
|
1372
|
+
protected sort(descending: boolean): void;
|
|
1373
|
+
/**
|
|
1374
|
+
* Pins or unpins the column, then re-anchors this menu to the trigger.
|
|
1375
|
+
*
|
|
1376
|
+
* Pinning moves the column between the datagrid's static and scrollable containers, and the
|
|
1377
|
+
* trigger this menu is anchored to travels with it - far enough that the menu would otherwise be
|
|
1378
|
+
* left hanging next to where the column used to be. The menu stays open on purpose, so the action
|
|
1379
|
+
* it now offers is the one that undoes the pin the user just applied.
|
|
1380
|
+
*
|
|
1381
|
+
* The columns are relocated on the render cycle the pinned state change schedules, not while this
|
|
1382
|
+
* runs, so the overlay can only be re-anchored once that has happened - which `repositionMenu`
|
|
1383
|
+
* takes care of.
|
|
1384
|
+
*/
|
|
1385
|
+
protected togglePinned(): void;
|
|
1386
|
+
/**
|
|
1387
|
+
* Opens the filter of this column, anchored to the "Filter Column" menu item itself (`#trigger`
|
|
1388
|
+
* above), so the popover positions off the item that was actually clicked rather than the kebab.
|
|
1389
|
+
*
|
|
1390
|
+
* The popover is driven through the column's ClrPopoverService rather than through
|
|
1391
|
+
* `ClrDatagridFilter.open`, because that is the one thing every filter flavour has in common - a
|
|
1392
|
+
* projected clr-dg-filter, and the string and numeric filters the column builds for clrDgField,
|
|
1393
|
+
* all share this service. Setting `origin` is all it takes to re-anchor it: `clrPopoverOrigin` is
|
|
1394
|
+
* itself only an assignment to that property, and with the toggle gone nothing else claims it.
|
|
1395
|
+
*
|
|
1396
|
+
* `parent` links the filter's popover to this menu's, so that scrolling while both are open closes
|
|
1397
|
+
* or repositions them together rather than leaving one behind. It is cleared again once the filter
|
|
1398
|
+
* closes, in the `openChange` subscription below, so it never outlives the menu session that set it.
|
|
1399
|
+
*/
|
|
1400
|
+
protected openFilter(event: Event): void;
|
|
1401
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridColumnActions, [null, null, null, { skipSelf: true; }, null, null, { optional: true; }, { optional: true; skipSelf: true; }, null, null, null]>;
|
|
1402
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridColumnActions, "clr-dg-column-actions", never, { "keepFilterInHeader": { "alias": "clrDgKeepFilterInHeader"; "required": false; }; }, {}, ["projectedItems"], ["*"], false, never>;
|
|
1403
|
+
static ngAcceptInputType_keepFilterInHeader: unknown;
|
|
1071
1404
|
}
|
|
1072
1405
|
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1406
|
+
/**
|
|
1407
|
+
* An application provided item in a `clr-dg-column-actions` menu. It is the dropdown item - same
|
|
1408
|
+
* inputs, styling and arrow key order - with what a column action needs on top: it closes the menu
|
|
1409
|
+
* when picked, or re-anchors it after an action that leaves it open.
|
|
1410
|
+
*/
|
|
1411
|
+
declare class ClrDatagridColumnAction extends ClrDropdownItem {
|
|
1412
|
+
private columnActions;
|
|
1413
|
+
/**
|
|
1414
|
+
* Whether activating this item should close the menu.
|
|
1415
|
+
*/
|
|
1416
|
+
canClosePopover: boolean;
|
|
1417
|
+
constructor(columnActions: ClrDatagridColumnActions, item: FocusableItem, dropdownService: RootDropdownService, el: ElementRef, renderer: Renderer2);
|
|
1418
|
+
protected onColumnActionClick(): void;
|
|
1419
|
+
/**
|
|
1420
|
+
* Focus can arrive from anywhere - the arrow keys, or a plain `focus()` from an application that
|
|
1421
|
+
* moved the column this action belongs to and rebuilt the menu. Reporting it keeps space and enter
|
|
1422
|
+
* acting on this item rather than on whatever the menu focused when it opened.
|
|
1423
|
+
*/
|
|
1424
|
+
protected onFocus(): void;
|
|
1425
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridColumnAction, never>;
|
|
1426
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ClrDatagridColumnAction, "[clrDgColumnAction]", never, { "canClosePopover": { "alias": "clrCanClosePopover"; "required": false; }; }, {}, never, never, false, never>;
|
|
1427
|
+
static ngAcceptInputType_canClosePopover: unknown;
|
|
1087
1428
|
}
|
|
1088
1429
|
|
|
1089
1430
|
declare class ClrDatagridColumnToggle implements OnDestroy {
|
|
@@ -1208,11 +1549,15 @@ declare class ClrDatagridDetail {
|
|
|
1208
1549
|
ariaLabel: string;
|
|
1209
1550
|
header: ClrDatagridDetailHeader;
|
|
1210
1551
|
constructor(detailService: DetailService, commonStrings: ClrCommonStringsService);
|
|
1552
|
+
get detailWidth(): number;
|
|
1553
|
+
set detailWidth(value: number | null | undefined);
|
|
1554
|
+
get isCustomWidth(): boolean;
|
|
1555
|
+
get width(): number | null;
|
|
1211
1556
|
get labelledBy(): string;
|
|
1212
1557
|
get label(): string;
|
|
1213
1558
|
close(): void;
|
|
1214
1559
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridDetail, never>;
|
|
1215
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridDetail, "clr-dg-detail", never, { "ariaLabelledBy": { "alias": "clrDetailAriaLabelledBy"; "required": false; }; "ariaLabel": { "alias": "clrDetailAriaLabel"; "required": false; }; }, {}, ["header"], ["*"], false, never>;
|
|
1560
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridDetail, "clr-dg-detail", never, { "ariaLabelledBy": { "alias": "clrDetailAriaLabelledBy"; "required": false; }; "ariaLabel": { "alias": "clrDetailAriaLabel"; "required": false; }; "detailWidth": { "alias": "clrDetailWidth"; "required": false; }; }, {}, ["header"], ["*"], false, never>;
|
|
1216
1561
|
}
|
|
1217
1562
|
|
|
1218
1563
|
declare class ClrDatagridDetailBody {
|
|
@@ -1269,6 +1614,7 @@ declare class ClrDatagridFilter<T = any> extends DatagridFilterRegistrar<T, ClrD
|
|
|
1269
1614
|
commonStrings: ClrCommonStringsService;
|
|
1270
1615
|
private popoverService;
|
|
1271
1616
|
private keyNavigation;
|
|
1617
|
+
protected columnActions: ColumnActionsService;
|
|
1272
1618
|
openChange: EventEmitter<boolean>;
|
|
1273
1619
|
ariaExpanded: boolean;
|
|
1274
1620
|
popoverId: string;
|
|
@@ -1276,7 +1622,7 @@ declare class ClrDatagridFilter<T = any> extends DatagridFilterRegistrar<T, ClrD
|
|
|
1276
1622
|
popoverType: ClrPopoverType;
|
|
1277
1623
|
anchor: ElementRef<HTMLButtonElement>;
|
|
1278
1624
|
private subs;
|
|
1279
|
-
constructor(_filters: FiltersProvider<T>, commonStrings: ClrCommonStringsService, popoverService: ClrPopoverService, keyNavigation: KeyNavigationGridController);
|
|
1625
|
+
constructor(_filters: FiltersProvider<T>, commonStrings: ClrCommonStringsService, popoverService: ClrPopoverService, keyNavigation: KeyNavigationGridController, columnActions: ColumnActionsService);
|
|
1280
1626
|
get open(): boolean;
|
|
1281
1627
|
set open(open: boolean);
|
|
1282
1628
|
set customFilter(filter: ClrDatagridFilterInterface<T> | RegisteredFilter<T, ClrDatagridFilterInterface<T>>);
|
|
@@ -1285,7 +1631,7 @@ declare class ClrDatagridFilter<T = any> extends DatagridFilterRegistrar<T, ClrD
|
|
|
1285
1631
|
*/
|
|
1286
1632
|
get active(): boolean;
|
|
1287
1633
|
ngOnDestroy(): void;
|
|
1288
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridFilter<any>, [null, null, null, { optional: true; }]>;
|
|
1634
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridFilter<any>, [null, null, null, { optional: true; }, { optional: true; }]>;
|
|
1289
1635
|
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridFilter<any>, "clr-dg-filter", never, { "open": { "alias": "clrDgFilterOpen"; "required": false; }; "customFilter": { "alias": "clrDgFilter"; "required": false; }; }, { "openChange": "clrDgFilterOpenChange"; }, never, ["*"], false, never>;
|
|
1290
1636
|
static ngAcceptInputType_open: unknown;
|
|
1291
1637
|
}
|
|
@@ -1320,24 +1666,46 @@ declare class ClrIfDetail implements OnInit, OnDestroy {
|
|
|
1320
1666
|
* Generic bland container serving various purposes for Datagrid.
|
|
1321
1667
|
* For instance, it can help span a text over multiple rows in detail view.
|
|
1322
1668
|
*/
|
|
1323
|
-
declare class ClrDatagridRowDetail implements AfterContentInit, OnDestroy {
|
|
1669
|
+
declare class ClrDatagridRowDetail implements AfterContentInit, AfterViewInit, AfterViewChecked, OnDestroy {
|
|
1324
1670
|
selection: Selection;
|
|
1325
1671
|
rowActionService: RowActionService;
|
|
1326
1672
|
expand: DatagridIfExpandService;
|
|
1327
1673
|
expandableRows: ExpandableRowsCount;
|
|
1328
1674
|
commonStrings: ClrCommonStringsService;
|
|
1675
|
+
private columnsService;
|
|
1676
|
+
private displayMode;
|
|
1329
1677
|
_beginningOfExpandableContentAriaText: string;
|
|
1330
1678
|
_endOfExpandableContentAriaText: string;
|
|
1331
1679
|
replacedRow: boolean;
|
|
1680
|
+
/**
|
|
1681
|
+
* Whether the detail lays its cells out in the same columns as the row, which it does when it
|
|
1682
|
+
* holds one cell per column and at least one of those columns is pinned. The cells of the pinned
|
|
1683
|
+
* columns are then static alongside the ones in the row above.
|
|
1684
|
+
*/
|
|
1685
|
+
columnAligned: boolean;
|
|
1332
1686
|
SELECTION_TYPE: typeof SelectionType;
|
|
1333
1687
|
cells: QueryList<ClrDatagridCell>;
|
|
1688
|
+
private _pinnedCells;
|
|
1689
|
+
private _scrollableCells;
|
|
1690
|
+
private _plainCells;
|
|
1334
1691
|
private subscriptions;
|
|
1335
|
-
|
|
1692
|
+
private cellsMoved;
|
|
1693
|
+
private lastLayout;
|
|
1694
|
+
private hadCells;
|
|
1695
|
+
constructor(selection: Selection, rowActionService: RowActionService, expand: DatagridIfExpandService, expandableRows: ExpandableRowsCount, commonStrings: ClrCommonStringsService, columnsService: ColumnsService, displayMode: DisplayModeService);
|
|
1336
1696
|
set replace(value: boolean);
|
|
1337
1697
|
get beginningOfExpandableContentAriaText(): string;
|
|
1338
1698
|
get endOfExpandableContentAriaText(): string;
|
|
1339
1699
|
ngAfterContentInit(): void;
|
|
1700
|
+
ngAfterViewInit(): void;
|
|
1701
|
+
ngAfterViewChecked(): void;
|
|
1340
1702
|
ngOnDestroy(): void;
|
|
1703
|
+
/**
|
|
1704
|
+
* Moves the cells into the containers that lay them out in the same columns as the row, or back
|
|
1705
|
+
* out of them once that stops making sense.
|
|
1706
|
+
*/
|
|
1707
|
+
private syncColumnAlignment;
|
|
1708
|
+
private moveCell;
|
|
1341
1709
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridRowDetail, never>;
|
|
1342
1710
|
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDatagridRowDetail, "clr-dg-row-detail", never, { "_beginningOfExpandableContentAriaText": { "alias": "clrRowDetailBeginningAriaText"; "required": false; }; "_endOfExpandableContentAriaText": { "alias": "clrRowDetailEndAriaText"; "required": false; }; "replace": { "alias": "clrDgReplace"; "required": false; }; }, {}, ["cells"], ["*"], false, never>;
|
|
1343
1711
|
}
|
|
@@ -1708,6 +2076,7 @@ declare class DatagridCellRenderer implements OnDestroy {
|
|
|
1708
2076
|
resetState(state: ColumnState): void;
|
|
1709
2077
|
setWidth(state: ColumnState): void;
|
|
1710
2078
|
setHidden(state: ColumnState): void;
|
|
2079
|
+
setPinned(state: ColumnState): void;
|
|
1711
2080
|
private clearWidth;
|
|
1712
2081
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatagridCellRenderer, never>;
|
|
1713
2082
|
static ɵdir: i0.ɵɵDirectiveDeclaration<DatagridCellRenderer, "clr-dg-cell", never, {}, {}, never, never, false, never>;
|
|
@@ -1733,6 +2102,7 @@ declare class DatagridHeaderRenderer implements OnDestroy {
|
|
|
1733
2102
|
setColumnState(index: number): void;
|
|
1734
2103
|
setWidth(state: ColumnState): void;
|
|
1735
2104
|
setHidden(state: ColumnState): void;
|
|
2105
|
+
setPinned(state: ColumnState): void;
|
|
1736
2106
|
private clearWidth;
|
|
1737
2107
|
private detectStrictWidth;
|
|
1738
2108
|
private computeWidth;
|
|
@@ -1835,9 +2205,9 @@ declare const CLR_DATAGRID_DIRECTIVES: Type<any>[];
|
|
|
1835
2205
|
declare class ClrDatagridModule {
|
|
1836
2206
|
constructor();
|
|
1837
2207
|
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDatagridModule, never>;
|
|
1838
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ClrDatagridModule, [typeof ClrDatagrid, typeof ClrDatagridActionBar, typeof ClrDatagridActionOverflow, typeof ClrDatagridCell, typeof ClrDatagridColumn, typeof ClrDatagridColumnSeparator, typeof ClrDatagridDetail, typeof ClrDatagridDetailBody, typeof ClrDatagridDetailHeader, typeof ClrDatagridFilter, typeof ClrDatagridFooter, typeof ClrDatagridHideableColumn, typeof ClrDatagridItems, typeof ClrDatagridPageSize, typeof ClrDatagridPagination, typeof ClrDatagridPlaceholder, typeof ClrDatagridRow, typeof ClrDatagridRowDetail, typeof ClrDatagridSelectionCellDirective, typeof ClrDatagridVirtualScrollDirective, typeof ClrIfDetail, typeof DatagridDetailRegisterer, typeof WrappedCell, typeof WrappedColumn, typeof WrappedRow, typeof DatagridCellRenderer, typeof DatagridHeaderRenderer, typeof DatagridMainRenderer, typeof DatagridRowDetailRenderer, typeof DatagridRowRenderer, typeof ActionableOompaLoompa, typeof DatagridWillyWonka, typeof ExpandableOompaLoompa, typeof DatagridNumericFilter, typeof DatagridStringFilter, typeof ClrDatagridColumnToggle, typeof ClrDatagridColumnToggleButton], [typeof
|
|
2208
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ClrDatagridModule, [typeof ClrDatagrid, typeof ClrDatagridActionBar, typeof ClrDatagridActionOverflow, typeof ClrDatagridCell, typeof ClrDatagridColumn, typeof ClrDatagridColumnAction, typeof ClrDatagridColumnActions, typeof ClrDatagridColumnSeparator, typeof ClrDatagridDetail, typeof ClrDatagridDetailBody, typeof ClrDatagridDetailHeader, typeof ClrDatagridFilter, typeof ClrDatagridFooter, typeof ClrDatagridHideableColumn, typeof ClrDatagridItems, typeof ClrDatagridPageSize, typeof ClrDatagridPagination, typeof ClrDatagridPlaceholder, typeof ClrDatagridRow, typeof ClrDatagridRowDetail, typeof ClrDatagridSelectionCellDirective, typeof ClrDatagridVirtualScrollDirective, typeof ClrIfDetail, typeof DatagridDetailRegisterer, typeof WrappedCell, typeof WrappedColumn, typeof WrappedRow, typeof DatagridCellRenderer, typeof DatagridHeaderRenderer, typeof DatagridMainRenderer, typeof DatagridRowDetailRenderer, typeof DatagridRowRenderer, typeof ActionableOompaLoompa, typeof DatagridWillyWonka, typeof ExpandableOompaLoompa, typeof DatagridNumericFilter, typeof DatagridStringFilter, typeof ClrDatagridColumnToggle, typeof ClrDatagridColumnToggleButton], [typeof i40.CommonModule, typeof i41.CdkDragModule, typeof i41.CdkTrapFocusModule, typeof i42.ClrIcon, typeof i43.ClrInputModule, typeof i44.ClrRadioModule, typeof i45.ClrCheckboxModule, typeof i46.ClrNumberInputModule, typeof i47.ClrSelectModule, typeof i48.FormsModule, typeof i41.ClrLoadingModule, typeof i41.ClrConditionalModule, typeof i41.ClrOutsideClickModule, typeof i41.ClrExpandableAnimationModule, typeof i49.ClrSpinnerModule, typeof i1.ClrPopoverModuleNext, typeof i51.ClrDropdownModule, typeof i41.ClrKeyFocusModule, typeof ClrDatagridSingleSelectionValueAccessor, typeof i41.ClrIfExpanded], [typeof ClrDatagrid, typeof ClrDatagridActionBar, typeof ClrDatagridActionOverflow, typeof ClrDatagridCell, typeof ClrDatagridColumn, typeof ClrDatagridColumnAction, typeof ClrDatagridColumnActions, typeof ClrDatagridColumnSeparator, typeof ClrDatagridDetail, typeof ClrDatagridDetailBody, typeof ClrDatagridDetailHeader, typeof ClrDatagridFilter, typeof ClrDatagridFooter, typeof ClrDatagridHideableColumn, typeof ClrDatagridItems, typeof ClrDatagridPageSize, typeof ClrDatagridPagination, typeof ClrDatagridPlaceholder, typeof ClrDatagridRow, typeof ClrDatagridRowDetail, typeof ClrDatagridSelectionCellDirective, typeof ClrDatagridVirtualScrollDirective, typeof ClrIfDetail, typeof DatagridDetailRegisterer, typeof WrappedCell, typeof WrappedColumn, typeof WrappedRow, typeof DatagridCellRenderer, typeof DatagridHeaderRenderer, typeof DatagridMainRenderer, typeof DatagridRowDetailRenderer, typeof DatagridRowRenderer, typeof ActionableOompaLoompa, typeof DatagridWillyWonka, typeof ExpandableOompaLoompa, typeof DatagridNumericFilter, typeof DatagridStringFilter, typeof ClrDatagridSingleSelectionValueAccessor, typeof i41.ClrIfExpanded]>;
|
|
1839
2209
|
static ɵinj: i0.ɵɵInjectorDeclaration<ClrDatagridModule>;
|
|
1840
2210
|
}
|
|
1841
2211
|
|
|
1842
|
-
export { ActionableOompaLoompa, CLR_DATAGRID_DIRECTIVES, ClrDatagrid, ClrDatagridActionBar, ClrDatagridActionOverflow, ClrDatagridAriaSortOrder, ClrDatagridCell, ClrDatagridColumn, ClrDatagridColumnSeparator, ClrDatagridColumnToggle, ClrDatagridColumnToggleButton, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSelectionCellDirective, ClrDatagridSingleSelectionValueAccessor, ClrDatagridSortOrder, ClrDatagridVirtualScrollDirective, ClrIfDetail, DatagridCellRenderer, DatagridDetailRegisterer, DatagridHeaderRenderer, DatagridMainRenderer, DatagridNumericFilter, DatagridPropertyComparator, DatagridPropertyNumericFilter, DatagridPropertyStringFilter, DatagridRowDetailRenderer, DatagridRowRenderer, DatagridStringFilter, DatagridWillyWonka, ExpandableOompaLoompa, Selection, SelectionType, WrappedCell, WrappedColumn, WrappedRow, selectionTypeAttribute };
|
|
2212
|
+
export { ActionableOompaLoompa, CLR_DATAGRID_DIRECTIVES, ClrDatagrid, ClrDatagridActionBar, ClrDatagridActionOverflow, ClrDatagridAriaSortOrder, ClrDatagridCell, ClrDatagridColumn, ClrDatagridColumnAction, ClrDatagridColumnActions, ClrDatagridColumnSeparator, ClrDatagridColumnToggle, ClrDatagridColumnToggleButton, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSelectionCellDirective, ClrDatagridSingleSelectionValueAccessor, ClrDatagridSortOrder, ClrDatagridVirtualScrollDirective, ClrIfDetail, DatagridCellRenderer, DatagridDetailRegisterer, DatagridHeaderRenderer, DatagridMainRenderer, DatagridNumericFilter, DatagridPropertyComparator, DatagridPropertyNumericFilter, DatagridPropertyStringFilter, DatagridRowDetailRenderer, DatagridRowRenderer, DatagridStringFilter, DatagridWillyWonka, ExpandableOompaLoompa, Selection, SelectionType, WrappedCell, WrappedColumn, WrappedRow, selectionTypeAttribute };
|
|
1843
2213
|
export type { ClrDatagridComparatorInterface, ClrDatagridFilterInterface, ClrDatagridItemsIdentityFunction, ClrDatagridNumericFilterInterface, ClrDatagridStateInterface, ClrDatagridStringFilterInterface, ClrDatagridVirtualScrollRangeInterface };
|