@angular/cdk-experimental 19.1.0-next.1 → 19.1.0-next.3
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/column-resize/index.d.ts +28 -5
- package/fesm2022/cdk-experimental.mjs +1 -1
- package/fesm2022/cdk-experimental.mjs.map +1 -1
- package/fesm2022/column-resize.mjs +147 -81
- package/fesm2022/column-resize.mjs.map +1 -1
- package/fesm2022/combobox.mjs +10 -10
- package/fesm2022/combobox.mjs.map +1 -1
- package/fesm2022/popover-edit.mjs +66 -52
- package/fesm2022/popover-edit.mjs.map +1 -1
- package/fesm2022/scrolling.mjs +7 -7
- package/fesm2022/scrolling.mjs.map +1 -1
- package/fesm2022/selection.mjs +19 -19
- package/fesm2022/selection.mjs.map +1 -1
- package/fesm2022/table-scroll-container.mjs +7 -7
- package/fesm2022/table-scroll-container.mjs.map +1 -1
- package/package.json +2 -2
- package/popover-edit/index.d.ts +2 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Directive, Injectable, NgZone, CSP_NONCE, ElementRef, NgModule, Injector } from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, Renderer2, Directive, Input, Injectable, NgZone, CSP_NONCE, ElementRef, NgModule, Injector } from '@angular/core';
|
|
3
3
|
import { _IdGenerator } from '@angular/cdk/a11y';
|
|
4
|
-
import { Subject,
|
|
5
|
-
import {
|
|
4
|
+
import { Subject, merge, combineLatest, Observable } from 'rxjs';
|
|
5
|
+
import { mapTo, take, takeUntil, startWith, pairwise, distinctUntilChanged, share, map, skip, filter } from 'rxjs/operators';
|
|
6
6
|
import { _closest } from '@angular/cdk-experimental/popover-edit';
|
|
7
7
|
import { _COALESCED_STYLE_SCHEDULER, CdkTable } from '@angular/cdk/table';
|
|
8
8
|
import { DOCUMENT } from '@angular/common';
|
|
@@ -18,17 +18,24 @@ const RESIZE_OVERLAY_SELECTOR = '.mat-column-resize-overlay-thumb';
|
|
|
18
18
|
|
|
19
19
|
const HOVER_OR_ACTIVE_CLASS = 'cdk-column-resize-hover-or-active';
|
|
20
20
|
const WITH_RESIZED_COLUMN_CLASS = 'cdk-column-resize-with-resized-column';
|
|
21
|
+
const COLUMN_RESIZE_OPTIONS = new InjectionToken('CdkColumnResizeOptions');
|
|
21
22
|
/**
|
|
22
23
|
* Base class for ColumnResize directives which attach to mat-table elements to
|
|
23
24
|
* provide common events and services for column resizing.
|
|
24
25
|
*/
|
|
25
26
|
class ColumnResize {
|
|
26
|
-
|
|
27
|
+
_renderer = inject(Renderer2);
|
|
28
|
+
_eventCleanups;
|
|
27
29
|
destroyed = new Subject();
|
|
28
30
|
/** Unique ID for this table instance. */
|
|
29
|
-
selectorId =
|
|
31
|
+
selectorId = inject(_IdGenerator).getId('cdk-column-resize-');
|
|
30
32
|
/** The id attribute of the table, if specified. */
|
|
31
33
|
id;
|
|
34
|
+
/**
|
|
35
|
+
* Whether to update the column's width continuously as the mouse position
|
|
36
|
+
* changes, or to wait until mouseup to apply the new size.
|
|
37
|
+
*/
|
|
38
|
+
liveResizeUpdates = inject(COLUMN_RESIZE_OPTIONS, { optional: true })?.liveResizeUpdates ?? true;
|
|
32
39
|
ngAfterViewInit() {
|
|
33
40
|
this.elementRef.nativeElement.classList.add(this.getUniqueCssClass());
|
|
34
41
|
this._listenForRowHoverEvents();
|
|
@@ -36,6 +43,7 @@ class ColumnResize {
|
|
|
36
43
|
this._listenForHoverActivity();
|
|
37
44
|
}
|
|
38
45
|
ngOnDestroy() {
|
|
46
|
+
this._eventCleanups?.forEach(cleanup => cleanup());
|
|
39
47
|
this.destroyed.next();
|
|
40
48
|
this.destroyed.complete();
|
|
41
49
|
}
|
|
@@ -43,6 +51,10 @@ class ColumnResize {
|
|
|
43
51
|
getUniqueCssClass() {
|
|
44
52
|
return this.selectorId;
|
|
45
53
|
}
|
|
54
|
+
/** Gets the ID for this table used for column size persistance. */
|
|
55
|
+
getTableId() {
|
|
56
|
+
return String(this.elementRef.nativeElement.id);
|
|
57
|
+
}
|
|
46
58
|
/** Called when a column in the table is resized. Applies a css class to the table element. */
|
|
47
59
|
setResized() {
|
|
48
60
|
this.elementRef.nativeElement.classList.add(WITH_RESIZED_COLUMN_CLASS);
|
|
@@ -50,13 +62,17 @@ class ColumnResize {
|
|
|
50
62
|
_listenForRowHoverEvents() {
|
|
51
63
|
this.ngZone.runOutsideAngular(() => {
|
|
52
64
|
const element = this.elementRef.nativeElement;
|
|
53
|
-
|
|
54
|
-
.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
.
|
|
58
|
-
|
|
59
|
-
|
|
65
|
+
this._eventCleanups = [
|
|
66
|
+
this._renderer.listen(element, 'mouseover', (event) => {
|
|
67
|
+
this.eventDispatcher.headerCellHovered.next(_closest(event.target, HEADER_CELL_SELECTOR));
|
|
68
|
+
}),
|
|
69
|
+
this._renderer.listen(element, 'mouseleave', (event) => {
|
|
70
|
+
if (event.relatedTarget &&
|
|
71
|
+
!event.relatedTarget.matches(RESIZE_OVERLAY_SELECTOR)) {
|
|
72
|
+
this.eventDispatcher.headerCellHovered.next(null);
|
|
73
|
+
}
|
|
74
|
+
}),
|
|
75
|
+
];
|
|
60
76
|
});
|
|
61
77
|
}
|
|
62
78
|
_listenForResizeActivity() {
|
|
@@ -78,12 +94,14 @@ class ColumnResize {
|
|
|
78
94
|
}
|
|
79
95
|
});
|
|
80
96
|
}
|
|
81
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
82
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.
|
|
97
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ColumnResize, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
98
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: ColumnResize, isStandalone: true, inputs: { liveResizeUpdates: "liveResizeUpdates" }, ngImport: i0 });
|
|
83
99
|
}
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ColumnResize, decorators: [{
|
|
85
101
|
type: Directive
|
|
86
|
-
}]
|
|
102
|
+
}], propDecorators: { liveResizeUpdates: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}] } });
|
|
87
105
|
|
|
88
106
|
/**
|
|
89
107
|
* Originating source of column resize events within a table.
|
|
@@ -96,10 +114,10 @@ class ColumnResizeNotifierSource {
|
|
|
96
114
|
resizeCompleted = new Subject();
|
|
97
115
|
/** Triggers a resize action. */
|
|
98
116
|
triggerResize = new Subject();
|
|
99
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
100
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
117
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ColumnResizeNotifierSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
118
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ColumnResizeNotifierSource });
|
|
101
119
|
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ColumnResizeNotifierSource, decorators: [{
|
|
103
121
|
type: Injectable
|
|
104
122
|
}] });
|
|
105
123
|
/** Service for triggering column resizes imperatively or being notified of them. */
|
|
@@ -116,10 +134,10 @@ class ColumnResizeNotifier {
|
|
|
116
134
|
isStickyColumn: true,
|
|
117
135
|
});
|
|
118
136
|
}
|
|
119
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
120
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
137
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ColumnResizeNotifier, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
138
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ColumnResizeNotifier });
|
|
121
139
|
}
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ColumnResizeNotifier, decorators: [{
|
|
123
141
|
type: Injectable
|
|
124
142
|
}] });
|
|
125
143
|
|
|
@@ -171,10 +189,10 @@ class HeaderRowEventDispatcher {
|
|
|
171
189
|
complete: () => observer.complete(),
|
|
172
190
|
}));
|
|
173
191
|
}
|
|
174
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
175
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
192
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: HeaderRowEventDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
193
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: HeaderRowEventDispatcher });
|
|
176
194
|
}
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: HeaderRowEventDispatcher, decorators: [{
|
|
178
196
|
type: Injectable
|
|
179
197
|
}] });
|
|
180
198
|
|
|
@@ -199,10 +217,10 @@ class ResizeStrategy {
|
|
|
199
217
|
}
|
|
200
218
|
this._pendingResizeDelta = (this._pendingResizeDelta ?? 0) + delta;
|
|
201
219
|
}
|
|
202
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
203
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
220
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ResizeStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
221
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ResizeStrategy });
|
|
204
222
|
}
|
|
205
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
223
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ResizeStrategy, decorators: [{
|
|
206
224
|
type: Injectable
|
|
207
225
|
}] });
|
|
208
226
|
/**
|
|
@@ -236,10 +254,10 @@ class TableLayoutFixedResizeStrategy extends ResizeStrategy {
|
|
|
236
254
|
const newWidth = Math.min(currentWidth, sizeInPx);
|
|
237
255
|
this.applyColumnSize(_, columnHeader, newWidth, currentWidth);
|
|
238
256
|
}
|
|
239
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
240
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
257
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: TableLayoutFixedResizeStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
258
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: TableLayoutFixedResizeStrategy });
|
|
241
259
|
}
|
|
242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: TableLayoutFixedResizeStrategy, decorators: [{
|
|
243
261
|
type: Injectable
|
|
244
262
|
}] });
|
|
245
263
|
/**
|
|
@@ -349,10 +367,10 @@ class CdkFlexTableResizeStrategy extends ResizeStrategy {
|
|
|
349
367
|
const body = propertyKeys.map(key => `${key}:${properties.get(key)}`).join(';');
|
|
350
368
|
this._getStyleSheet().insertRule(`${selector} {${body}}`, index);
|
|
351
369
|
}
|
|
352
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
353
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
370
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkFlexTableResizeStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
371
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkFlexTableResizeStrategy });
|
|
354
372
|
}
|
|
355
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
373
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkFlexTableResizeStrategy, decorators: [{
|
|
356
374
|
type: Injectable
|
|
357
375
|
}] });
|
|
358
376
|
/** Converts CSS pixel values to numbers, eg "123px" to 123. Returns NaN for non pixel values. */
|
|
@@ -403,10 +421,10 @@ class CdkColumnResize extends ColumnResize {
|
|
|
403
421
|
ngZone = inject(NgZone);
|
|
404
422
|
notifier = inject(ColumnResizeNotifierSource);
|
|
405
423
|
table = inject(CdkTable);
|
|
406
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
407
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.
|
|
424
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkColumnResize, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
425
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: CdkColumnResize, isStandalone: true, selector: "table[cdk-table][columnResize]", providers: [...TABLE_PROVIDERS, { provide: ColumnResize, useExisting: CdkColumnResize }], usesInheritance: true, ngImport: i0 });
|
|
408
426
|
}
|
|
409
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
427
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkColumnResize, decorators: [{
|
|
410
428
|
type: Directive,
|
|
411
429
|
args: [{
|
|
412
430
|
selector: 'table[cdk-table][columnResize]',
|
|
@@ -425,10 +443,10 @@ class CdkColumnResizeFlex extends ColumnResize {
|
|
|
425
443
|
ngZone = inject(NgZone);
|
|
426
444
|
notifier = inject(ColumnResizeNotifierSource);
|
|
427
445
|
table = inject(CdkTable);
|
|
428
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
429
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.
|
|
446
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkColumnResizeFlex, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
447
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: CdkColumnResizeFlex, isStandalone: true, selector: "cdk-table[columnResize]", providers: [...FLEX_PROVIDERS, { provide: ColumnResize, useExisting: CdkColumnResizeFlex }], usesInheritance: true, ngImport: i0 });
|
|
430
448
|
}
|
|
431
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
449
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkColumnResizeFlex, decorators: [{
|
|
432
450
|
type: Directive,
|
|
433
451
|
args: [{
|
|
434
452
|
selector: 'cdk-table[columnResize]',
|
|
@@ -447,13 +465,13 @@ class CdkDefaultEnabledColumnResize extends ColumnResize {
|
|
|
447
465
|
ngZone = inject(NgZone);
|
|
448
466
|
notifier = inject(ColumnResizeNotifierSource);
|
|
449
467
|
table = inject(CdkTable);
|
|
450
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
451
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.
|
|
468
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkDefaultEnabledColumnResize, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
469
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: CdkDefaultEnabledColumnResize, isStandalone: true, selector: "table[cdk-table]", providers: [
|
|
452
470
|
...TABLE_PROVIDERS,
|
|
453
471
|
{ provide: ColumnResize, useExisting: CdkDefaultEnabledColumnResize },
|
|
454
472
|
], usesInheritance: true, ngImport: i0 });
|
|
455
473
|
}
|
|
456
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
474
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkDefaultEnabledColumnResize, decorators: [{
|
|
457
475
|
type: Directive,
|
|
458
476
|
args: [{
|
|
459
477
|
selector: 'table[cdk-table]',
|
|
@@ -475,13 +493,13 @@ class CdkDefaultEnabledColumnResizeFlex extends ColumnResize {
|
|
|
475
493
|
ngZone = inject(NgZone);
|
|
476
494
|
notifier = inject(ColumnResizeNotifierSource);
|
|
477
495
|
table = inject(CdkTable);
|
|
478
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
479
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.
|
|
496
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkDefaultEnabledColumnResizeFlex, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
497
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: CdkDefaultEnabledColumnResizeFlex, isStandalone: true, selector: "cdk-table", providers: [
|
|
480
498
|
...FLEX_PROVIDERS,
|
|
481
499
|
{ provide: ColumnResize, useExisting: CdkDefaultEnabledColumnResizeFlex },
|
|
482
500
|
], usesInheritance: true, ngImport: i0 });
|
|
483
501
|
}
|
|
484
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
502
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkDefaultEnabledColumnResizeFlex, decorators: [{
|
|
485
503
|
type: Directive,
|
|
486
504
|
args: [{
|
|
487
505
|
selector: 'cdk-table',
|
|
@@ -497,11 +515,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
497
515
|
* When using this module, columns are resizable by default.
|
|
498
516
|
*/
|
|
499
517
|
class CdkColumnResizeDefaultEnabledModule {
|
|
500
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
501
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.
|
|
502
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.
|
|
518
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
519
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule, imports: [CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex], exports: [CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex] });
|
|
520
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule });
|
|
503
521
|
}
|
|
504
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
522
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule, decorators: [{
|
|
505
523
|
type: NgModule,
|
|
506
524
|
args: [{
|
|
507
525
|
imports: [CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex],
|
|
@@ -513,11 +531,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
513
531
|
* When using this module, columns are not resizable by default.
|
|
514
532
|
*/
|
|
515
533
|
class CdkColumnResizeModule {
|
|
516
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
517
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.
|
|
518
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.
|
|
534
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkColumnResizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
535
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkColumnResizeModule, imports: [CdkColumnResize, CdkColumnResizeFlex], exports: [CdkColumnResize, CdkColumnResizeFlex] });
|
|
536
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkColumnResizeModule });
|
|
519
537
|
}
|
|
520
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
538
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: CdkColumnResizeModule, decorators: [{
|
|
521
539
|
type: NgModule,
|
|
522
540
|
args: [{
|
|
523
541
|
imports: [CdkColumnResize, CdkColumnResizeFlex],
|
|
@@ -529,10 +547,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
529
547
|
* Can be provided by the host application to enable persistence of column resize state.
|
|
530
548
|
*/
|
|
531
549
|
class ColumnSizeStore {
|
|
532
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
533
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.
|
|
550
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ColumnSizeStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
551
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ColumnSizeStore });
|
|
534
552
|
}
|
|
535
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
553
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ColumnSizeStore, decorators: [{
|
|
536
554
|
type: Injectable
|
|
537
555
|
}] });
|
|
538
556
|
|
|
@@ -542,11 +560,13 @@ class ResizeRef {
|
|
|
542
560
|
overlayRef;
|
|
543
561
|
minWidthPx;
|
|
544
562
|
maxWidthPx;
|
|
545
|
-
|
|
563
|
+
liveUpdates;
|
|
564
|
+
constructor(origin, overlayRef, minWidthPx, maxWidthPx, liveUpdates = true) {
|
|
546
565
|
this.origin = origin;
|
|
547
566
|
this.overlayRef = overlayRef;
|
|
548
567
|
this.minWidthPx = minWidthPx;
|
|
549
568
|
this.maxWidthPx = maxWidthPx;
|
|
569
|
+
this.liveUpdates = liveUpdates;
|
|
550
570
|
}
|
|
551
571
|
}
|
|
552
572
|
|
|
@@ -561,6 +581,7 @@ class Resizable {
|
|
|
561
581
|
inlineHandle;
|
|
562
582
|
overlayRef;
|
|
563
583
|
destroyed = new Subject();
|
|
584
|
+
columnSizeStore = inject(ColumnSizeStore, { optional: true });
|
|
564
585
|
_viewInitialized = false;
|
|
565
586
|
_isDestroyed = false;
|
|
566
587
|
/** The minimum width to allow the column to be sized to. */
|
|
@@ -595,6 +616,15 @@ class Resizable {
|
|
|
595
616
|
this._viewInitialized = true;
|
|
596
617
|
this._applyMinWidthPx();
|
|
597
618
|
this._applyMaxWidthPx();
|
|
619
|
+
this.columnSizeStore
|
|
620
|
+
?.getSize(this.columnResize.getTableId(), this.columnDef.name)
|
|
621
|
+
?.pipe(take(1), takeUntil(this.destroyed))
|
|
622
|
+
.subscribe(size => {
|
|
623
|
+
if (size == null) {
|
|
624
|
+
return;
|
|
625
|
+
}
|
|
626
|
+
this._applySize(size);
|
|
627
|
+
});
|
|
598
628
|
});
|
|
599
629
|
}
|
|
600
630
|
ngOnDestroy() {
|
|
@@ -668,6 +698,11 @@ class Resizable {
|
|
|
668
698
|
.subscribe(columnSize => {
|
|
669
699
|
this._cleanUpAfterResize(columnSize);
|
|
670
700
|
});
|
|
701
|
+
this.resizeNotifier.resizeCompleted
|
|
702
|
+
.pipe(filter(sizeUpdate => sizeUpdate.columnId === this.columnDef.name), distinctUntilChanged((a, b) => a.size === b.size), takeUntil(this.destroyed))
|
|
703
|
+
.subscribe(sizeUpdate => {
|
|
704
|
+
this.columnSizeStore?.setSize(this.columnResize.getTableId(), this.columnDef.name, sizeUpdate.size);
|
|
705
|
+
});
|
|
671
706
|
}
|
|
672
707
|
_completeResizeOperation() {
|
|
673
708
|
this.ngZone.run(() => {
|
|
@@ -693,7 +728,7 @@ class Resizable {
|
|
|
693
728
|
providers: [
|
|
694
729
|
{
|
|
695
730
|
provide: ResizeRef,
|
|
696
|
-
useValue: new ResizeRef(this.elementRef, this.overlayRef, this.minWidthPx, this.maxWidthPx),
|
|
731
|
+
useValue: new ResizeRef(this.elementRef, this.overlayRef, this.minWidthPx, this.maxWidthPx, this.columnResize.liveResizeUpdates),
|
|
697
732
|
},
|
|
698
733
|
],
|
|
699
734
|
});
|
|
@@ -727,10 +762,10 @@ class Resizable {
|
|
|
727
762
|
this.elementRef.nativeElement.appendChild(this.inlineHandle);
|
|
728
763
|
});
|
|
729
764
|
}
|
|
730
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.
|
|
731
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.
|
|
765
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: Resizable, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
766
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: Resizable, isStandalone: true, ngImport: i0 });
|
|
732
767
|
}
|
|
733
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
768
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: Resizable, decorators: [{
|
|
734
769
|
type: Directive
|
|
735
770
|
}] });
|
|
736
771
|
|
|
@@ -741,7 +776,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
741
776
|
* for handling column resize mouse events and displaying any visible UI on the column edge.
|
|
742
777
|
*/
|
|
743
778
|
class ResizeOverlayHandle {
|
|
779
|
+
_renderer = inject(Renderer2);
|
|
744
780
|
destroyed = new Subject();
|
|
781
|
+
_cumulativeDeltaX = 0;
|
|
745
782
|
ngAfterViewInit() {
|
|
746
783
|
this._listenForMouseEvents();
|
|
747
784
|
}
|
|
@@ -751,13 +788,13 @@ class ResizeOverlayHandle {
|
|
|
751
788
|
}
|
|
752
789
|
_listenForMouseEvents() {
|
|
753
790
|
this.ngZone.runOutsideAngular(() => {
|
|
754
|
-
|
|
791
|
+
this._observableFromEvent(this.elementRef.nativeElement, 'mouseenter')
|
|
755
792
|
.pipe(mapTo(this.resizeRef.origin.nativeElement), takeUntil(this.destroyed))
|
|
756
793
|
.subscribe(cell => this.eventDispatcher.headerCellHovered.next(cell));
|
|
757
|
-
|
|
794
|
+
this._observableFromEvent(this.elementRef.nativeElement, 'mouseleave')
|
|
758
795
|
.pipe(map(event => event.relatedTarget && _closest(event.relatedTarget, HEADER_CELL_SELECTOR)), takeUntil(this.destroyed))
|
|
759
796
|
.subscribe(cell => this.eventDispatcher.headerCellHovered.next(cell));
|
|
760
|
-
|
|
797
|
+
this._observableFromEvent(this.elementRef.nativeElement, 'mousedown')
|
|
761
798
|
.pipe(takeUntil(this.destroyed))
|
|
762
799
|
.subscribe(mousedownEvent => {
|
|
763
800
|
this._dragStarted(mousedownEvent);
|
|
@@ -769,15 +806,16 @@ class ResizeOverlayHandle {
|
|
|
769
806
|
if (mousedownEvent.button !== 0) {
|
|
770
807
|
return;
|
|
771
808
|
}
|
|
772
|
-
const mouseup =
|
|
773
|
-
const mousemove =
|
|
774
|
-
const escape =
|
|
809
|
+
const mouseup = this._observableFromEvent(this.document, 'mouseup');
|
|
810
|
+
const mousemove = this._observableFromEvent(this.document, 'mousemove');
|
|
811
|
+
const escape = this._observableFromEvent(this.document, 'keyup').pipe(filter(event => event.keyCode === ESCAPE));
|
|
775
812
|
const startX = mousedownEvent.screenX;
|
|
776
813
|
const initialSize = this._getOriginWidth();
|
|
777
814
|
let overlayOffset = 0;
|
|
778
815
|
let originOffset = this._getOriginOffset();
|
|
779
816
|
let size = initialSize;
|
|
780
817
|
let overshot = 0;
|
|
818
|
+
this._cumulativeDeltaX = 0;
|
|
781
819
|
this.updateResizeActive(true);
|
|
782
820
|
mouseup.pipe(takeUntil(merge(escape, this.destroyed))).subscribe(({ screenX }) => {
|
|
783
821
|
this.styleScheduler.scheduleEnd(() => {
|
|
@@ -791,6 +829,12 @@ class ResizeOverlayHandle {
|
|
|
791
829
|
.pipe(map(({ screenX }) => screenX), startWith(startX), distinctUntilChanged(), pairwise(), takeUntil(merge(mouseup, escape, this.destroyed)))
|
|
792
830
|
.subscribe(([prevX, currX]) => {
|
|
793
831
|
let deltaX = currX - prevX;
|
|
832
|
+
if (!this.resizeRef.liveUpdates) {
|
|
833
|
+
this._cumulativeDeltaX += deltaX;
|
|
834
|
+
const sizeDelta = this._computeNewSize(size, this._cumulativeDeltaX) - size;
|
|
835
|
+
this._updateOverlayOffset(sizeDelta);
|
|
836
|
+
return;
|
|
837
|
+
}
|
|
794
838
|
// If the mouse moved further than the resize was able to match, limit the
|
|
795
839
|
// movement of the overlay to match the actual size and position of the origin.
|
|
796
840
|
if (overshot !== 0) {
|
|
@@ -808,14 +852,7 @@ class ResizeOverlayHandle {
|
|
|
808
852
|
}
|
|
809
853
|
}
|
|
810
854
|
}
|
|
811
|
-
|
|
812
|
-
computedNewSize = Math.min(Math.max(computedNewSize, this.resizeRef.minWidthPx, 0), this.resizeRef.maxWidthPx);
|
|
813
|
-
this.resizeNotifier.triggerResize.next({
|
|
814
|
-
columnId: this.columnDef.name,
|
|
815
|
-
size: computedNewSize,
|
|
816
|
-
previousSize: size,
|
|
817
|
-
isStickyColumn: this.columnDef.sticky || this.columnDef.stickyEnd,
|
|
818
|
-
});
|
|
855
|
+
this._triggerResize(size, deltaX);
|
|
819
856
|
this.styleScheduler.scheduleEnd(() => {
|
|
820
857
|
const originNewSize = this._getOriginWidth();
|
|
821
858
|
const originNewOffset = this._getOriginOffset();
|
|
@@ -832,6 +869,19 @@ class ResizeOverlayHandle {
|
|
|
832
869
|
updateResizeActive(active) {
|
|
833
870
|
this.eventDispatcher.overlayHandleActiveForCell.next(active ? this.resizeRef.origin.nativeElement : null);
|
|
834
871
|
}
|
|
872
|
+
_triggerResize(startSize, deltaX) {
|
|
873
|
+
this.resizeNotifier.triggerResize.next({
|
|
874
|
+
columnId: this.columnDef.name,
|
|
875
|
+
size: this._computeNewSize(startSize, deltaX),
|
|
876
|
+
previousSize: startSize,
|
|
877
|
+
isStickyColumn: this.columnDef.sticky || this.columnDef.stickyEnd,
|
|
878
|
+
});
|
|
879
|
+
}
|
|
880
|
+
_computeNewSize(startSize, deltaX) {
|
|
881
|
+
let computedNewSize = startSize + (this._isLtr() ? deltaX : -deltaX);
|
|
882
|
+
computedNewSize = Math.min(Math.max(computedNewSize, this.resizeRef.minWidthPx, 0), this.resizeRef.maxWidthPx);
|
|
883
|
+
return computedNewSize;
|
|
884
|
+
}
|
|
835
885
|
_getOriginWidth() {
|
|
836
886
|
return this.resizeRef.origin.nativeElement.offsetWidth;
|
|
837
887
|
}
|
|
@@ -847,8 +897,14 @@ class ResizeOverlayHandle {
|
|
|
847
897
|
_notifyResizeEnded(size, completedSuccessfully = false) {
|
|
848
898
|
this.updateResizeActive(false);
|
|
849
899
|
this.ngZone.run(() => {
|
|
850
|
-
const sizeMessage = {
|
|
900
|
+
const sizeMessage = {
|
|
901
|
+
columnId: this.columnDef.name,
|
|
902
|
+
size: this._computeNewSize(size, this._cumulativeDeltaX),
|
|
903
|
+
};
|
|
851
904
|
if (completedSuccessfully) {
|
|
905
|
+
if (!this.resizeRef.liveUpdates) {
|
|
906
|
+
this._triggerResize(size, this._cumulativeDeltaX);
|
|
907
|
+
}
|
|
852
908
|
this.resizeNotifier.resizeCompleted.next(sizeMessage);
|
|
853
909
|
}
|
|
854
910
|
else {
|
|
@@ -856,10 +912,20 @@ class ResizeOverlayHandle {
|
|
|
856
912
|
}
|
|
857
913
|
});
|
|
858
914
|
}
|
|
859
|
-
|
|
860
|
-
|
|
915
|
+
_observableFromEvent(element, name) {
|
|
916
|
+
return new Observable(subscriber => {
|
|
917
|
+
const handler = (event) => subscriber.next(event);
|
|
918
|
+
const cleanup = this._renderer.listen(element, name, handler);
|
|
919
|
+
return () => {
|
|
920
|
+
cleanup();
|
|
921
|
+
subscriber.complete();
|
|
922
|
+
};
|
|
923
|
+
});
|
|
924
|
+
}
|
|
925
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ResizeOverlayHandle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
926
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.3", type: ResizeOverlayHandle, isStandalone: true, ngImport: i0 });
|
|
861
927
|
}
|
|
862
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.
|
|
928
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.3", ngImport: i0, type: ResizeOverlayHandle, decorators: [{
|
|
863
929
|
type: Directive
|
|
864
930
|
}] });
|
|
865
931
|
|
|
@@ -867,5 +933,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
867
933
|
* Generated bundle index. Do not edit.
|
|
868
934
|
*/
|
|
869
935
|
|
|
870
|
-
export { CdkColumnResize, CdkColumnResizeDefaultEnabledModule, CdkColumnResizeFlex, CdkColumnResizeModule, CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex, CdkFlexTableResizeStrategy, ColumnResize, ColumnResizeNotifier, ColumnResizeNotifierSource, ColumnSizeStore, FLEX_RESIZE_STRATEGY_PROVIDER, HeaderRowEventDispatcher, Resizable, ResizeOverlayHandle, ResizeRef, ResizeStrategy, TABLE_LAYOUT_FIXED_RESIZE_STRATEGY_PROVIDER, TableLayoutFixedResizeStrategy };
|
|
936
|
+
export { COLUMN_RESIZE_OPTIONS, CdkColumnResize, CdkColumnResizeDefaultEnabledModule, CdkColumnResizeFlex, CdkColumnResizeModule, CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex, CdkFlexTableResizeStrategy, ColumnResize, ColumnResizeNotifier, ColumnResizeNotifierSource, ColumnSizeStore, FLEX_RESIZE_STRATEGY_PROVIDER, HeaderRowEventDispatcher, Resizable, ResizeOverlayHandle, ResizeRef, ResizeStrategy, TABLE_LAYOUT_FIXED_RESIZE_STRATEGY_PROVIDER, TableLayoutFixedResizeStrategy };
|
|
871
937
|
//# sourceMappingURL=column-resize.mjs.map
|