@angular/cdk-experimental 16.0.0-next.5 → 16.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/column-resize/index.d.ts +3 -2
  2. package/{esm2020 → esm2022}/column-resize/column-resize-directives/column-resize-flex.mjs +3 -3
  3. package/{esm2020 → esm2022}/column-resize/column-resize-directives/column-resize.mjs +3 -3
  4. package/{esm2020 → esm2022}/column-resize/column-resize-directives/default-enabled-column-resize-flex.mjs +6 -6
  5. package/{esm2020 → esm2022}/column-resize/column-resize-directives/default-enabled-column-resize.mjs +6 -6
  6. package/{esm2020 → esm2022}/column-resize/column-resize-module.mjs +7 -7
  7. package/{esm2020 → esm2022}/column-resize/column-resize-notifier.mjs +5 -5
  8. package/{esm2020 → esm2022}/column-resize/column-resize.mjs +3 -3
  9. package/{esm2020 → esm2022}/column-resize/column-size-store.mjs +3 -3
  10. package/{esm2020 → esm2022}/column-resize/event-dispatcher.mjs +3 -3
  11. package/{esm2020 → esm2022}/column-resize/overlay-handle.mjs +3 -3
  12. package/{esm2020 → esm2022}/column-resize/resizable.mjs +3 -3
  13. package/esm2022/column-resize/resize-strategy.mjs +242 -0
  14. package/{esm2020 → esm2022}/combobox/combobox-module.mjs +4 -4
  15. package/{esm2020 → esm2022}/combobox/combobox-popup.mjs +3 -3
  16. package/{esm2020 → esm2022}/combobox/combobox.mjs +3 -3
  17. package/{esm2020 → esm2022}/popover-edit/edit-event-dispatcher.mjs +3 -3
  18. package/{esm2020 → esm2022}/popover-edit/edit-ref.mjs +3 -3
  19. package/{esm2020 → esm2022}/popover-edit/edit-services.mjs +3 -3
  20. package/{esm2020 → esm2022}/popover-edit/focus-dispatcher.mjs +3 -3
  21. package/{esm2020 → esm2022}/popover-edit/focus-escape-notifier.mjs +3 -3
  22. package/{esm2020 → esm2022}/popover-edit/lens-directives.mjs +7 -7
  23. package/esm2022/popover-edit/popover-edit-module.mjs +63 -0
  24. package/{esm2020 → esm2022}/popover-edit/popover-edit-position-strategy-factory.mjs +5 -5
  25. package/{esm2020 → esm2022}/popover-edit/table-directives.mjs +11 -11
  26. package/{esm2020 → esm2022}/scrolling/auto-size-virtual-scroll.mjs +9 -9
  27. package/{esm2020 → esm2022}/scrolling/scrolling-module.mjs +4 -4
  28. package/esm2022/selection/row-selection.mjs +52 -0
  29. package/{esm2020 → esm2022}/selection/select-all.mjs +3 -3
  30. package/{esm2020 → esm2022}/selection/selection-column.mjs +5 -5
  31. package/{esm2020 → esm2022}/selection/selection-module.mjs +8 -8
  32. package/{esm2020 → esm2022}/selection/selection-toggle.mjs +3 -3
  33. package/{esm2020 → esm2022}/selection/selection.mjs +3 -3
  34. package/{esm2020 → esm2022}/table-scroll-container/table-scroll-container-module.mjs +4 -4
  35. package/esm2022/table-scroll-container/table-scroll-container.mjs +141 -0
  36. package/{esm2020 → esm2022}/version.mjs +1 -1
  37. package/{fesm2015 → fesm2022}/cdk-experimental.mjs +1 -1
  38. package/{fesm2015 → fesm2022}/cdk-experimental.mjs.map +1 -1
  39. package/{fesm2020 → fesm2022}/column-resize.mjs +51 -42
  40. package/fesm2022/column-resize.mjs.map +1 -0
  41. package/{fesm2020 → fesm2022}/combobox.mjs +7 -7
  42. package/{fesm2020 → fesm2022}/combobox.mjs.map +1 -1
  43. package/{fesm2020 → fesm2022}/popover-edit.mjs +52 -52
  44. package/{fesm2020 → fesm2022}/popover-edit.mjs.map +1 -1
  45. package/{fesm2020 → fesm2022}/scrolling.mjs +11 -11
  46. package/{fesm2020 → fesm2022}/scrolling.mjs.map +1 -1
  47. package/{fesm2020 → fesm2022}/selection.mjs +21 -19
  48. package/{fesm2015 → fesm2022}/selection.mjs.map +1 -1
  49. package/{fesm2020 → fesm2022}/table-scroll-container.mjs +16 -7
  50. package/fesm2022/table-scroll-container.mjs.map +1 -0
  51. package/package.json +24 -42
  52. package/table-scroll-container/index.d.ts +3 -2
  53. package/esm2020/column-resize/resize-strategy.mjs +0 -233
  54. package/esm2020/popover-edit/popover-edit-module.mjs +0 -63
  55. package/esm2020/selection/row-selection.mjs +0 -50
  56. package/esm2020/table-scroll-container/table-scroll-container.mjs +0 -132
  57. package/fesm2015/column-resize.mjs +0 -907
  58. package/fesm2015/column-resize.mjs.map +0 -1
  59. package/fesm2015/combobox.mjs +0 -359
  60. package/fesm2015/combobox.mjs.map +0 -1
  61. package/fesm2015/popover-edit.mjs +0 -1151
  62. package/fesm2015/popover-edit.mjs.map +0 -1
  63. package/fesm2015/scrolling.mjs +0 -434
  64. package/fesm2015/scrolling.mjs.map +0 -1
  65. package/fesm2015/selection.mjs +0 -618
  66. package/fesm2015/table-scroll-container.mjs +0 -147
  67. package/fesm2015/table-scroll-container.mjs.map +0 -1
  68. package/fesm2020/cdk-experimental.mjs +0 -7
  69. package/fesm2020/cdk-experimental.mjs.map +0 -1
  70. package/fesm2020/column-resize.mjs.map +0 -1
  71. package/fesm2020/selection.mjs.map +0 -1
  72. package/fesm2020/table-scroll-container.mjs.map +0 -1
  73. /package/{esm2020 → esm2022}/column-resize/column-resize-directives/constants.mjs +0 -0
  74. /package/{esm2020 → esm2022}/column-resize/column-resize_public_index.mjs +0 -0
  75. /package/{esm2020 → esm2022}/column-resize/index.mjs +0 -0
  76. /package/{esm2020 → esm2022}/column-resize/public-api.mjs +0 -0
  77. /package/{esm2020 → esm2022}/column-resize/resize-ref.mjs +0 -0
  78. /package/{esm2020 → esm2022}/column-resize/selectors.mjs +0 -0
  79. /package/{esm2020 → esm2022}/combobox/combobox_public_index.mjs +0 -0
  80. /package/{esm2020 → esm2022}/combobox/index.mjs +0 -0
  81. /package/{esm2020 → esm2022}/combobox/public-api.mjs +0 -0
  82. /package/{esm2020 → esm2022}/index.mjs +0 -0
  83. /package/{esm2020 → esm2022}/popover-edit/constants.mjs +0 -0
  84. /package/{esm2020 → esm2022}/popover-edit/form-value-container.mjs +0 -0
  85. /package/{esm2020 → esm2022}/popover-edit/index.mjs +0 -0
  86. /package/{esm2020 → esm2022}/popover-edit/polyfill.mjs +0 -0
  87. /package/{esm2020 → esm2022}/popover-edit/popover-edit_public_index.mjs +0 -0
  88. /package/{esm2020 → esm2022}/popover-edit/public-api.mjs +0 -0
  89. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  90. /package/{esm2020 → esm2022}/scrolling/index.mjs +0 -0
  91. /package/{esm2020 → esm2022}/scrolling/public-api.mjs +0 -0
  92. /package/{esm2020 → esm2022}/scrolling/scrolling_public_index.mjs +0 -0
  93. /package/{esm2020 → esm2022}/selection/index.mjs +0 -0
  94. /package/{esm2020 → esm2022}/selection/public-api.mjs +0 -0
  95. /package/{esm2020 → esm2022}/selection/selection-set.mjs +0 -0
  96. /package/{esm2020 → esm2022}/selection/selection_public_index.mjs +0 -0
  97. /package/{esm2020 → esm2022}/table-scroll-container/index.mjs +0 -0
  98. /package/{esm2020 → esm2022}/table-scroll-container/public-api.mjs +0 -0
  99. /package/{esm2020 → esm2022}/table-scroll-container/table-scroll-container_public_index.mjs +0 -0
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Injectable, Inject, NgModule, Injector } from '@angular/core';
2
+ import { Directive, Injectable, Inject, CSP_NONCE, Optional, NgModule, Injector } from '@angular/core';
3
3
  import { Subject, fromEvent, merge, combineLatest, Observable } from 'rxjs';
4
4
  import { map, takeUntil, filter, mapTo, take, startWith, pairwise, distinctUntilChanged, share, skip } from 'rxjs/operators';
5
5
  import { _closest } from '@angular/cdk-experimental/popover-edit';
@@ -78,9 +78,9 @@ class ColumnResize {
78
78
  }
79
79
  });
80
80
  }
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnResize, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
82
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: ColumnResize, ngImport: i0 }); }
81
83
  }
82
- ColumnResize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnResize, deps: [], target: i0.ɵɵFactoryTarget.Directive });
83
- ColumnResize.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: ColumnResize, ngImport: i0 });
84
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnResize, decorators: [{
85
85
  type: Directive
86
86
  }] });
@@ -98,9 +98,9 @@ class ColumnResizeNotifierSource {
98
98
  /** Triggers a resize action. */
99
99
  this.triggerResize = new Subject();
100
100
  }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnResizeNotifierSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
102
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnResizeNotifierSource }); }
101
103
  }
102
- ColumnResizeNotifierSource.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnResizeNotifierSource, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
103
- ColumnResizeNotifierSource.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnResizeNotifierSource });
104
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnResizeNotifierSource, decorators: [{
105
105
  type: Injectable
106
106
  }] });
@@ -120,9 +120,9 @@ class ColumnResizeNotifier {
120
120
  isStickyColumn: true,
121
121
  });
122
122
  }
123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnResizeNotifier, deps: [{ token: ColumnResizeNotifierSource }], target: i0.ɵɵFactoryTarget.Injectable }); }
124
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnResizeNotifier }); }
123
125
  }
124
- ColumnResizeNotifier.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnResizeNotifier, deps: [{ token: ColumnResizeNotifierSource }], target: i0.ɵɵFactoryTarget.Injectable });
125
- ColumnResizeNotifier.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnResizeNotifier });
126
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnResizeNotifier, decorators: [{
127
127
  type: Injectable
128
128
  }], ctorParameters: function () { return [{ type: ColumnResizeNotifierSource }]; } });
@@ -177,9 +177,9 @@ class HeaderRowEventDispatcher {
177
177
  complete: () => observer.complete(),
178
178
  }));
179
179
  }
180
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: HeaderRowEventDispatcher, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
181
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: HeaderRowEventDispatcher }); }
180
182
  }
181
- HeaderRowEventDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: HeaderRowEventDispatcher, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
182
- HeaderRowEventDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: HeaderRowEventDispatcher });
183
183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: HeaderRowEventDispatcher, decorators: [{
184
184
  type: Injectable
185
185
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
@@ -207,9 +207,9 @@ class ResizeStrategy {
207
207
  }
208
208
  this._pendingResizeDelta = (this._pendingResizeDelta ?? 0) + delta;
209
209
  }
210
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ResizeStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
211
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ResizeStrategy }); }
210
212
  }
211
- ResizeStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ResizeStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
212
- ResizeStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ResizeStrategy });
213
213
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ResizeStrategy, decorators: [{
214
214
  type: Injectable
215
215
  }] });
@@ -247,9 +247,9 @@ class TableLayoutFixedResizeStrategy extends ResizeStrategy {
247
247
  const newWidth = Math.min(currentWidth, sizeInPx);
248
248
  this.applyColumnSize(_, columnHeader, newWidth, currentWidth);
249
249
  }
250
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: TableLayoutFixedResizeStrategy, deps: [{ token: ColumnResize }, { token: _COALESCED_STYLE_SCHEDULER }, { token: i3.CdkTable }], target: i0.ɵɵFactoryTarget.Injectable }); }
251
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: TableLayoutFixedResizeStrategy }); }
250
252
  }
251
- TableLayoutFixedResizeStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: TableLayoutFixedResizeStrategy, deps: [{ token: ColumnResize }, { token: _COALESCED_STYLE_SCHEDULER }, { token: i3.CdkTable }], target: i0.ɵɵFactoryTarget.Injectable });
252
- TableLayoutFixedResizeStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: TableLayoutFixedResizeStrategy });
253
253
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: TableLayoutFixedResizeStrategy, decorators: [{
254
254
  type: Injectable
255
255
  }], ctorParameters: function () { return [{ type: ColumnResize }, { type: i3._CoalescedStyleScheduler, decorators: [{
@@ -263,11 +263,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7",
263
263
  * Updating all mat-cell nodes
264
264
  */
265
265
  class CdkFlexTableResizeStrategy extends ResizeStrategy {
266
- constructor(columnResize, styleScheduler, table, document) {
266
+ constructor(columnResize, styleScheduler, table, document, _nonce) {
267
267
  super();
268
268
  this.columnResize = columnResize;
269
269
  this.styleScheduler = styleScheduler;
270
270
  this.table = table;
271
+ this._nonce = _nonce;
271
272
  this._columnIndexes = new Map();
272
273
  this._columnProperties = new Map();
273
274
  this._indexSequence = 0;
@@ -327,6 +328,9 @@ class CdkFlexTableResizeStrategy extends ResizeStrategy {
327
328
  _getStyleSheet() {
328
329
  if (!this._styleElement) {
329
330
  this._styleElement = this._document.createElement('style');
331
+ if (this._nonce) {
332
+ this._styleElement.nonce = this._nonce;
333
+ }
330
334
  this._styleElement.appendChild(this._document.createTextNode(''));
331
335
  this._document.head.appendChild(this._styleElement);
332
336
  }
@@ -361,9 +365,9 @@ class CdkFlexTableResizeStrategy extends ResizeStrategy {
361
365
  const body = propertyKeys.map(key => `${key}:${properties.get(key)}`).join(';');
362
366
  this._getStyleSheet().insertRule(`${selector} {${body}}`, index);
363
367
  }
368
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkFlexTableResizeStrategy, deps: [{ token: ColumnResize }, { token: _COALESCED_STYLE_SCHEDULER }, { token: i3.CdkTable }, { token: DOCUMENT }, { token: CSP_NONCE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
369
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkFlexTableResizeStrategy }); }
364
370
  }
365
- CdkFlexTableResizeStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkFlexTableResizeStrategy, deps: [{ token: ColumnResize }, { token: _COALESCED_STYLE_SCHEDULER }, { token: i3.CdkTable }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
366
- CdkFlexTableResizeStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkFlexTableResizeStrategy });
367
371
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkFlexTableResizeStrategy, decorators: [{
368
372
  type: Injectable
369
373
  }], ctorParameters: function () { return [{ type: ColumnResize }, { type: i3._CoalescedStyleScheduler, decorators: [{
@@ -372,6 +376,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7",
372
376
  }] }, { type: i3.CdkTable }, { type: undefined, decorators: [{
373
377
  type: Inject,
374
378
  args: [DOCUMENT]
379
+ }] }, { type: undefined, decorators: [{
380
+ type: Inject,
381
+ args: [CSP_NONCE]
382
+ }, {
383
+ type: Optional
375
384
  }] }]; } });
376
385
  /** Converts CSS pixel values to numbers, eg "123px" to 123. Returns NaN for non pixel values. */
377
386
  function coercePixelsFromCssValue(cssValue) {
@@ -424,9 +433,9 @@ class CdkColumnResize extends ColumnResize {
424
433
  this.notifier = notifier;
425
434
  this.table = table;
426
435
  }
436
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResize, deps: [{ token: ColumnResizeNotifier }, { token: i0.ElementRef }, { token: HeaderRowEventDispatcher }, { token: i0.NgZone }, { token: ColumnResizeNotifierSource }, { token: i3.CdkTable }], target: i0.ɵɵFactoryTarget.Directive }); }
437
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: CdkColumnResize, selector: "table[cdk-table][columnResize]", providers: [...TABLE_PROVIDERS, { provide: ColumnResize, useExisting: CdkColumnResize }], usesInheritance: true, ngImport: i0 }); }
427
438
  }
428
- CdkColumnResize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResize, deps: [{ token: ColumnResizeNotifier }, { token: i0.ElementRef }, { token: HeaderRowEventDispatcher }, { token: i0.NgZone }, { token: ColumnResizeNotifierSource }, { token: i3.CdkTable }], target: i0.ɵɵFactoryTarget.Directive });
429
- CdkColumnResize.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: CdkColumnResize, selector: "table[cdk-table][columnResize]", providers: [...TABLE_PROVIDERS, { provide: ColumnResize, useExisting: CdkColumnResize }], usesInheritance: true, ngImport: i0 });
430
439
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResize, decorators: [{
431
440
  type: Directive,
432
441
  args: [{
@@ -449,9 +458,9 @@ class CdkColumnResizeFlex extends ColumnResize {
449
458
  this.notifier = notifier;
450
459
  this.table = table;
451
460
  }
461
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeFlex, deps: [{ token: ColumnResizeNotifier }, { token: i0.ElementRef }, { token: HeaderRowEventDispatcher }, { token: i0.NgZone }, { token: ColumnResizeNotifierSource }, { token: i3.CdkTable }], target: i0.ɵɵFactoryTarget.Directive }); }
462
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: CdkColumnResizeFlex, selector: "cdk-table[columnResize]", providers: [...FLEX_PROVIDERS, { provide: ColumnResize, useExisting: CdkColumnResizeFlex }], usesInheritance: true, ngImport: i0 }); }
452
463
  }
453
- CdkColumnResizeFlex.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeFlex, deps: [{ token: ColumnResizeNotifier }, { token: i0.ElementRef }, { token: HeaderRowEventDispatcher }, { token: i0.NgZone }, { token: ColumnResizeNotifierSource }, { token: i3.CdkTable }], target: i0.ɵɵFactoryTarget.Directive });
454
- CdkColumnResizeFlex.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: CdkColumnResizeFlex, selector: "cdk-table[columnResize]", providers: [...FLEX_PROVIDERS, { provide: ColumnResize, useExisting: CdkColumnResizeFlex }], usesInheritance: true, ngImport: i0 });
455
464
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeFlex, decorators: [{
456
465
  type: Directive,
457
466
  args: [{
@@ -474,12 +483,12 @@ class CdkDefaultEnabledColumnResize extends ColumnResize {
474
483
  this.notifier = notifier;
475
484
  this.table = table;
476
485
  }
486
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkDefaultEnabledColumnResize, deps: [{ token: ColumnResizeNotifier }, { token: i0.ElementRef }, { token: HeaderRowEventDispatcher }, { token: i0.NgZone }, { token: ColumnResizeNotifierSource }, { token: i3.CdkTable }], target: i0.ɵɵFactoryTarget.Directive }); }
487
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: CdkDefaultEnabledColumnResize, selector: "table[cdk-table]", providers: [
488
+ ...TABLE_PROVIDERS,
489
+ { provide: ColumnResize, useExisting: CdkDefaultEnabledColumnResize },
490
+ ], usesInheritance: true, ngImport: i0 }); }
477
491
  }
478
- CdkDefaultEnabledColumnResize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkDefaultEnabledColumnResize, deps: [{ token: ColumnResizeNotifier }, { token: i0.ElementRef }, { token: HeaderRowEventDispatcher }, { token: i0.NgZone }, { token: ColumnResizeNotifierSource }, { token: i3.CdkTable }], target: i0.ɵɵFactoryTarget.Directive });
479
- CdkDefaultEnabledColumnResize.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: CdkDefaultEnabledColumnResize, selector: "table[cdk-table]", providers: [
480
- ...TABLE_PROVIDERS,
481
- { provide: ColumnResize, useExisting: CdkDefaultEnabledColumnResize },
482
- ], usesInheritance: true, ngImport: i0 });
483
492
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkDefaultEnabledColumnResize, decorators: [{
484
493
  type: Directive,
485
494
  args: [{
@@ -505,12 +514,12 @@ class CdkDefaultEnabledColumnResizeFlex extends ColumnResize {
505
514
  this.notifier = notifier;
506
515
  this.table = table;
507
516
  }
517
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkDefaultEnabledColumnResizeFlex, deps: [{ token: ColumnResizeNotifier }, { token: i0.ElementRef }, { token: HeaderRowEventDispatcher }, { token: i0.NgZone }, { token: ColumnResizeNotifierSource }, { token: i3.CdkTable }], target: i0.ɵɵFactoryTarget.Directive }); }
518
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: CdkDefaultEnabledColumnResizeFlex, selector: "cdk-table", providers: [
519
+ ...FLEX_PROVIDERS,
520
+ { provide: ColumnResize, useExisting: CdkDefaultEnabledColumnResizeFlex },
521
+ ], usesInheritance: true, ngImport: i0 }); }
508
522
  }
509
- CdkDefaultEnabledColumnResizeFlex.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkDefaultEnabledColumnResizeFlex, deps: [{ token: ColumnResizeNotifier }, { token: i0.ElementRef }, { token: HeaderRowEventDispatcher }, { token: i0.NgZone }, { token: ColumnResizeNotifierSource }, { token: i3.CdkTable }], target: i0.ɵɵFactoryTarget.Directive });
510
- CdkDefaultEnabledColumnResizeFlex.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: CdkDefaultEnabledColumnResizeFlex, selector: "cdk-table", providers: [
511
- ...FLEX_PROVIDERS,
512
- { provide: ColumnResize, useExisting: CdkDefaultEnabledColumnResizeFlex },
513
- ], usesInheritance: true, ngImport: i0 });
514
523
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkDefaultEnabledColumnResizeFlex, decorators: [{
515
524
  type: Directive,
516
525
  args: [{
@@ -527,10 +536,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7",
527
536
  * When using this module, columns are resizable by default.
528
537
  */
529
538
  class CdkColumnResizeDefaultEnabledModule {
539
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
540
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule, declarations: [CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex], exports: [CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex] }); }
541
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule }); }
530
542
  }
531
- CdkColumnResizeDefaultEnabledModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
532
- CdkColumnResizeDefaultEnabledModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule, declarations: [CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex], exports: [CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex] });
533
- CdkColumnResizeDefaultEnabledModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule });
534
543
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeDefaultEnabledModule, decorators: [{
535
544
  type: NgModule,
536
545
  args: [{
@@ -543,10 +552,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7",
543
552
  * When using this module, columns are not resizable by default.
544
553
  */
545
554
  class CdkColumnResizeModule {
555
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
556
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeModule, declarations: [CdkColumnResize, CdkColumnResizeFlex], exports: [CdkColumnResize, CdkColumnResizeFlex] }); }
557
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeModule }); }
546
558
  }
547
- CdkColumnResizeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
548
- CdkColumnResizeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeModule, declarations: [CdkColumnResize, CdkColumnResizeFlex], exports: [CdkColumnResize, CdkColumnResizeFlex] });
549
- CdkColumnResizeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeModule });
550
559
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkColumnResizeModule, decorators: [{
551
560
  type: NgModule,
552
561
  args: [{
@@ -559,9 +568,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7",
559
568
  * Can be provided by the host application to enable persistence of column resize state.
560
569
  */
561
570
  class ColumnSizeStore {
571
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnSizeStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
572
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnSizeStore }); }
562
573
  }
563
- ColumnSizeStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnSizeStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
564
- ColumnSizeStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnSizeStore });
565
574
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ColumnSizeStore, decorators: [{
566
575
  type: Injectable
567
576
  }] });
@@ -753,9 +762,9 @@ class Resizable {
753
762
  this.elementRef.nativeElement.appendChild(this.inlineHandle);
754
763
  });
755
764
  }
765
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: Resizable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
766
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: Resizable, ngImport: i0 }); }
756
767
  }
757
- Resizable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: Resizable, deps: [], target: i0.ɵɵFactoryTarget.Directive });
758
- Resizable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: Resizable, ngImport: i0 });
759
768
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: Resizable, decorators: [{
760
769
  type: Directive
761
770
  }] });
@@ -884,9 +893,9 @@ class ResizeOverlayHandle {
884
893
  }
885
894
  });
886
895
  }
896
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ResizeOverlayHandle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
897
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: ResizeOverlayHandle, ngImport: i0 }); }
887
898
  }
888
- ResizeOverlayHandle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ResizeOverlayHandle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
889
- ResizeOverlayHandle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: ResizeOverlayHandle, ngImport: i0 });
890
899
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: ResizeOverlayHandle, decorators: [{
891
900
  type: Directive
892
901
  }] });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-resize.mjs","sources":["../../../../../../src/cdk-experimental/column-resize/selectors.ts","../../../../../../src/cdk-experimental/column-resize/column-resize.ts","../../../../../../src/cdk-experimental/column-resize/column-resize-notifier.ts","../../../../../../src/cdk-experimental/column-resize/event-dispatcher.ts","../../../../../../src/cdk-experimental/column-resize/resize-strategy.ts","../../../../../../src/cdk-experimental/column-resize/column-resize-directives/constants.ts","../../../../../../src/cdk-experimental/column-resize/column-resize-directives/column-resize.ts","../../../../../../src/cdk-experimental/column-resize/column-resize-directives/column-resize-flex.ts","../../../../../../src/cdk-experimental/column-resize/column-resize-directives/default-enabled-column-resize.ts","../../../../../../src/cdk-experimental/column-resize/column-resize-directives/default-enabled-column-resize-flex.ts","../../../../../../src/cdk-experimental/column-resize/column-resize-module.ts","../../../../../../src/cdk-experimental/column-resize/column-size-store.ts","../../../../../../src/cdk-experimental/column-resize/resize-ref.ts","../../../../../../src/cdk-experimental/column-resize/resizable.ts","../../../../../../src/cdk-experimental/column-resize/overlay-handle.ts","../../../../../../src/cdk-experimental/column-resize/column-resize_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// TODO: Figure out how to remove `mat-` classes from the CDK part of the\n// column resize implementation.\n\nexport const HEADER_CELL_SELECTOR = '.cdk-header-cell, .mat-header-cell';\n\nexport const HEADER_ROW_SELECTOR = '.cdk-header-row, .mat-header-row';\n\nexport const RESIZE_OVERLAY_SELECTOR = '.mat-column-resize-overlay-thumb';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {AfterViewInit, Directive, ElementRef, NgZone, OnDestroy} from '@angular/core';\nimport {fromEvent, merge, Subject} from 'rxjs';\nimport {filter, map, mapTo, pairwise, startWith, take, takeUntil} from 'rxjs/operators';\n\nimport {_closest} from '@angular/cdk-experimental/popover-edit';\n\nimport {ColumnResizeNotifier, ColumnResizeNotifierSource} from './column-resize-notifier';\nimport {HEADER_CELL_SELECTOR, RESIZE_OVERLAY_SELECTOR} from './selectors';\nimport {HeaderRowEventDispatcher} from './event-dispatcher';\n\nconst HOVER_OR_ACTIVE_CLASS = 'cdk-column-resize-hover-or-active';\nconst WITH_RESIZED_COLUMN_CLASS = 'cdk-column-resize-with-resized-column';\n\nlet nextId = 0;\n\n/**\n * Base class for ColumnResize directives which attach to mat-table elements to\n * provide common events and services for column resizing.\n */\n@Directive()\nexport abstract class ColumnResize implements AfterViewInit, OnDestroy {\n protected readonly destroyed = new Subject<void>();\n\n /* Publicly accessible interface for triggering and being notified of resizes. */\n abstract readonly columnResizeNotifier: ColumnResizeNotifier;\n\n /* ElementRef that this directive is attached to. Exposed For use by column-level directives */\n abstract readonly elementRef: ElementRef<HTMLElement>;\n\n protected abstract readonly eventDispatcher: HeaderRowEventDispatcher;\n protected abstract readonly ngZone: NgZone;\n protected abstract readonly notifier: ColumnResizeNotifierSource;\n\n /** Unique ID for this table instance. */\n protected readonly selectorId = `${++nextId}`;\n\n /** The id attribute of the table, if specified. */\n id?: string;\n\n ngAfterViewInit() {\n this.elementRef.nativeElement!.classList.add(this.getUniqueCssClass());\n\n this._listenForRowHoverEvents();\n this._listenForResizeActivity();\n this._listenForHoverActivity();\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n\n /** Gets the unique CSS class name for this table instance. */\n getUniqueCssClass() {\n return `cdk-column-resize-${this.selectorId}`;\n }\n\n /** Called when a column in the table is resized. Applies a css class to the table element. */\n setResized() {\n this.elementRef.nativeElement!.classList.add(WITH_RESIZED_COLUMN_CLASS);\n }\n\n private _listenForRowHoverEvents() {\n this.ngZone.runOutsideAngular(() => {\n const element = this.elementRef.nativeElement!;\n\n fromEvent<MouseEvent>(element, 'mouseover')\n .pipe(\n map(event => _closest(event.target, HEADER_CELL_SELECTOR)),\n takeUntil(this.destroyed),\n )\n .subscribe(this.eventDispatcher.headerCellHovered);\n fromEvent<MouseEvent>(element, 'mouseleave')\n .pipe(\n filter(\n event =>\n !!event.relatedTarget &&\n !(event.relatedTarget as Element).matches(RESIZE_OVERLAY_SELECTOR),\n ),\n mapTo(null),\n takeUntil(this.destroyed),\n )\n .subscribe(this.eventDispatcher.headerCellHovered);\n });\n }\n\n private _listenForResizeActivity() {\n merge(\n this.eventDispatcher.overlayHandleActiveForCell.pipe(mapTo(undefined)),\n this.notifier.triggerResize.pipe(mapTo(undefined)),\n this.notifier.resizeCompleted.pipe(mapTo(undefined)),\n )\n .pipe(take(1), takeUntil(this.destroyed))\n .subscribe(() => {\n this.setResized();\n });\n }\n\n private _listenForHoverActivity() {\n this.eventDispatcher.headerRowHoveredOrActiveDistinct\n .pipe(startWith(null), pairwise(), takeUntil(this.destroyed))\n .subscribe(([previousRow, hoveredRow]) => {\n if (hoveredRow) {\n hoveredRow.classList.add(HOVER_OR_ACTIVE_CLASS);\n }\n if (previousRow) {\n previousRow.classList.remove(HOVER_OR_ACTIVE_CLASS);\n }\n });\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable, Subject} from 'rxjs';\n\n/** Indicates the width of a column. */\nexport interface ColumnSize {\n /** The ID/name of the column, as defined in CdkColumnDef. */\n readonly columnId: string;\n\n /** The width in pixels of the column. */\n readonly size: number;\n\n /** The width in pixels of the column prior to this update, if known. */\n readonly previousSize?: number;\n}\n\n/** Interface describing column size changes. */\nexport interface ColumnSizeAction extends ColumnSize {\n /**\n * Whether the resize action should be applied instantaneously. False for events triggered during\n * a UI-triggered resize (such as with the mouse) until the mouse button is released. True\n * for all programmatically triggered resizes.\n */\n readonly completeImmediately?: boolean;\n\n /**\n * Whether the resize action is being applied to a sticky/stickyEnd column.\n */\n readonly isStickyColumn?: boolean;\n}\n\n/**\n * Originating source of column resize events within a table.\n * @docs-private\n */\n@Injectable()\nexport class ColumnResizeNotifierSource {\n /** Emits when an in-progress resize is canceled. */\n readonly resizeCanceled = new Subject<ColumnSizeAction>();\n\n /** Emits when a resize is applied. */\n readonly resizeCompleted = new Subject<ColumnSize>();\n\n /** Triggers a resize action. */\n readonly triggerResize = new Subject<ColumnSizeAction>();\n}\n\n/** Service for triggering column resizes imperatively or being notified of them. */\n@Injectable()\nexport class ColumnResizeNotifier {\n /** Emits whenever a column is resized. */\n readonly resizeCompleted: Observable<ColumnSize> = this._source.resizeCompleted;\n\n constructor(private readonly _source: ColumnResizeNotifierSource) {}\n\n /** Instantly resizes the specified column. */\n resize(columnId: string, size: number): void {\n this._source.triggerResize.next({\n columnId,\n size,\n completeImmediately: true,\n isStickyColumn: true,\n });\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable, NgZone} from '@angular/core';\nimport {combineLatest, MonoTypeOperatorFunction, Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged, map, share, skip, startWith} from 'rxjs/operators';\n\nimport {_closest} from '@angular/cdk-experimental/popover-edit';\n\nimport {HEADER_ROW_SELECTOR} from './selectors';\n\n/** Coordinates events between the column resize directives. */\n@Injectable()\nexport class HeaderRowEventDispatcher {\n /**\n * Emits the currently hovered header cell or null when no header cells are hovered.\n * Exposed publicly for events to feed in, but subscribers should use headerCellHoveredDistinct,\n * defined below.\n */\n readonly headerCellHovered = new Subject<Element | null>();\n\n /**\n * Emits the header cell for which a user-triggered resize is active or null\n * when no resize is in progress.\n */\n readonly overlayHandleActiveForCell = new Subject<Element | null>();\n\n constructor(private readonly _ngZone: NgZone) {}\n\n /** Distinct and shared version of headerCellHovered. */\n readonly headerCellHoveredDistinct = this.headerCellHovered.pipe(distinctUntilChanged(), share());\n\n /**\n * Emits the header that is currently hovered or hosting an active resize event (with active\n * taking precedence).\n */\n readonly headerRowHoveredOrActiveDistinct = combineLatest([\n this.headerCellHoveredDistinct.pipe(\n map(cell => _closest(cell, HEADER_ROW_SELECTOR)),\n startWith(null),\n distinctUntilChanged(),\n ),\n this.overlayHandleActiveForCell.pipe(\n map(cell => _closest(cell, HEADER_ROW_SELECTOR)),\n startWith(null),\n distinctUntilChanged(),\n ),\n ]).pipe(\n skip(1), // Ignore initial [null, null] emission.\n map(([hovered, active]) => active || hovered),\n distinctUntilChanged(),\n share(),\n );\n\n private readonly _headerRowHoveredOrActiveDistinctReenterZone =\n this.headerRowHoveredOrActiveDistinct.pipe(this._enterZone(), share());\n\n // Optimization: Share row events observable with subsequent callers.\n // At startup, calls will be sequential by row (and typically there's only one).\n private _lastSeenRow: Element | null = null;\n private _lastSeenRowHover: Observable<boolean> | null = null;\n\n /**\n * Emits whether the specified row should show its overlay controls.\n * Emission occurs within the NgZone.\n */\n resizeOverlayVisibleForHeaderRow(row: Element): Observable<boolean> {\n if (row !== this._lastSeenRow) {\n this._lastSeenRow = row;\n this._lastSeenRowHover = this._headerRowHoveredOrActiveDistinctReenterZone.pipe(\n map(hoveredRow => hoveredRow === row),\n distinctUntilChanged(),\n share(),\n );\n }\n\n return this._lastSeenRowHover!;\n }\n\n private _enterZone<T>(): MonoTypeOperatorFunction<T> {\n return (source: Observable<T>) =>\n new Observable<T>(observer =>\n source.subscribe({\n next: value => this._ngZone.run(() => observer.next(value)),\n error: err => observer.error(err),\n complete: () => observer.complete(),\n }),\n );\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, OnDestroy, Provider, CSP_NONCE, Optional} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {coerceCssPixelValue} from '@angular/cdk/coercion';\nimport {CdkTable, _CoalescedStyleScheduler, _COALESCED_STYLE_SCHEDULER} from '@angular/cdk/table';\n\nimport {ColumnResize} from './column-resize';\n\n/**\n * Provides an implementation for resizing a column.\n * The details of how resizing works for tables for flex mat-tables are quite different.\n */\n@Injectable()\nexport abstract class ResizeStrategy {\n protected abstract readonly columnResize: ColumnResize;\n protected abstract readonly styleScheduler: _CoalescedStyleScheduler;\n protected abstract readonly table: CdkTable<unknown>;\n\n private _pendingResizeDelta: number | null = null;\n\n /** Updates the width of the specified column. */\n abstract applyColumnSize(\n cssFriendlyColumnName: string,\n columnHeader: HTMLElement,\n sizeInPx: number,\n previousSizeInPx?: number,\n ): void;\n\n /** Applies a minimum width to the specified column, updating its current width as needed. */\n abstract applyMinColumnSize(\n cssFriendlyColumnName: string,\n columnHeader: HTMLElement,\n minSizeInPx: number,\n ): void;\n\n /** Applies a maximum width to the specified column, updating its current width as needed. */\n abstract applyMaxColumnSize(\n cssFriendlyColumnName: string,\n columnHeader: HTMLElement,\n minSizeInPx: number,\n ): void;\n\n /** Adjusts the width of the table element by the specified delta. */\n protected updateTableWidthAndStickyColumns(delta: number): void {\n if (this._pendingResizeDelta === null) {\n const tableElement = this.columnResize.elementRef.nativeElement;\n const tableWidth = getElementWidth(tableElement);\n\n this.styleScheduler.schedule(() => {\n tableElement.style.width = coerceCssPixelValue(tableWidth + this._pendingResizeDelta!);\n\n this._pendingResizeDelta = null;\n });\n\n this.styleScheduler.scheduleEnd(() => {\n this.table.updateStickyColumnStyles();\n });\n }\n\n this._pendingResizeDelta = (this._pendingResizeDelta ?? 0) + delta;\n }\n}\n\n/**\n * The optimally performing resize strategy for &lt;table&gt; elements with table-layout: fixed.\n * Tested against and outperformed:\n * CSS selector\n * CSS selector w/ CSS variable\n * Updating all cell nodes\n */\n@Injectable()\nexport class TableLayoutFixedResizeStrategy extends ResizeStrategy {\n constructor(\n protected readonly columnResize: ColumnResize,\n @Inject(_COALESCED_STYLE_SCHEDULER)\n protected readonly styleScheduler: _CoalescedStyleScheduler,\n protected readonly table: CdkTable<unknown>,\n ) {\n super();\n }\n\n applyColumnSize(\n _: string,\n columnHeader: HTMLElement,\n sizeInPx: number,\n previousSizeInPx?: number,\n ): void {\n const delta = sizeInPx - (previousSizeInPx ?? getElementWidth(columnHeader));\n\n if (delta === 0) {\n return;\n }\n\n this.styleScheduler.schedule(() => {\n columnHeader.style.width = coerceCssPixelValue(sizeInPx);\n });\n\n this.updateTableWidthAndStickyColumns(delta);\n }\n\n applyMinColumnSize(_: string, columnHeader: HTMLElement, sizeInPx: number): void {\n const currentWidth = getElementWidth(columnHeader);\n const newWidth = Math.max(currentWidth, sizeInPx);\n\n this.applyColumnSize(_, columnHeader, newWidth, currentWidth);\n }\n\n applyMaxColumnSize(_: string, columnHeader: HTMLElement, sizeInPx: number): void {\n const currentWidth = getElementWidth(columnHeader);\n const newWidth = Math.min(currentWidth, sizeInPx);\n\n this.applyColumnSize(_, columnHeader, newWidth, currentWidth);\n }\n}\n\n/**\n * The optimally performing resize strategy for flex mat-tables.\n * Tested against and outperformed:\n * CSS selector w/ CSS variable\n * Updating all mat-cell nodes\n */\n@Injectable()\nexport class CdkFlexTableResizeStrategy extends ResizeStrategy implements OnDestroy {\n private readonly _document: Document;\n private readonly _columnIndexes = new Map<string, number>();\n private readonly _columnProperties = new Map<string, Map<string, string>>();\n\n private _styleElement?: HTMLStyleElement;\n private _indexSequence = 0;\n\n protected readonly defaultMinSize = 0;\n protected readonly defaultMaxSize = Number.MAX_SAFE_INTEGER;\n\n constructor(\n protected readonly columnResize: ColumnResize,\n @Inject(_COALESCED_STYLE_SCHEDULER)\n protected readonly styleScheduler: _CoalescedStyleScheduler,\n protected readonly table: CdkTable<unknown>,\n @Inject(DOCUMENT) document: any,\n @Inject(CSP_NONCE) @Optional() private readonly _nonce?: string | null,\n ) {\n super();\n this._document = document;\n }\n\n applyColumnSize(\n cssFriendlyColumnName: string,\n columnHeader: HTMLElement,\n sizeInPx: number,\n previousSizeInPx?: number,\n ): void {\n // Optimization: Check applied width first as we probably set it already before reading\n // offsetWidth which triggers layout.\n const delta =\n sizeInPx -\n (previousSizeInPx ??\n (this._getAppliedWidth(cssFriendlyColumnName) || columnHeader.offsetWidth));\n\n if (delta === 0) {\n return;\n }\n\n const cssSize = coerceCssPixelValue(sizeInPx);\n\n this._applyProperty(cssFriendlyColumnName, 'flex', `0 0.01 ${cssSize}`);\n this.updateTableWidthAndStickyColumns(delta);\n }\n\n applyMinColumnSize(cssFriendlyColumnName: string, _: HTMLElement, sizeInPx: number): void {\n const cssSize = coerceCssPixelValue(sizeInPx);\n\n this._applyProperty(\n cssFriendlyColumnName,\n 'min-width',\n cssSize,\n sizeInPx !== this.defaultMinSize,\n );\n this.updateTableWidthAndStickyColumns(0);\n }\n\n applyMaxColumnSize(cssFriendlyColumnName: string, _: HTMLElement, sizeInPx: number): void {\n const cssSize = coerceCssPixelValue(sizeInPx);\n\n this._applyProperty(\n cssFriendlyColumnName,\n 'max-width',\n cssSize,\n sizeInPx !== this.defaultMaxSize,\n );\n this.updateTableWidthAndStickyColumns(0);\n }\n\n protected getColumnCssClass(cssFriendlyColumnName: string): string {\n return `cdk-column-${cssFriendlyColumnName}`;\n }\n\n ngOnDestroy(): void {\n this._styleElement?.remove();\n this._styleElement = undefined;\n }\n\n private _getPropertyValue(cssFriendlyColumnName: string, key: string): string | undefined {\n const properties = this._getColumnPropertiesMap(cssFriendlyColumnName);\n return properties.get(key);\n }\n\n private _getAppliedWidth(cssFriendslyColumnName: string): number {\n return coercePixelsFromFlexValue(this._getPropertyValue(cssFriendslyColumnName, 'flex'));\n }\n\n private _applyProperty(\n cssFriendlyColumnName: string,\n key: string,\n value: string,\n enable = true,\n ): void {\n const properties = this._getColumnPropertiesMap(cssFriendlyColumnName);\n\n this.styleScheduler.schedule(() => {\n if (enable) {\n properties.set(key, value);\n } else {\n properties.delete(key);\n }\n this._applySizeCss(cssFriendlyColumnName);\n });\n }\n\n private _getStyleSheet(): CSSStyleSheet {\n if (!this._styleElement) {\n this._styleElement = this._document.createElement('style');\n\n if (this._nonce) {\n this._styleElement.nonce = this._nonce;\n }\n\n this._styleElement.appendChild(this._document.createTextNode(''));\n this._document.head.appendChild(this._styleElement);\n }\n\n return this._styleElement.sheet as CSSStyleSheet;\n }\n\n private _getColumnPropertiesMap(cssFriendlyColumnName: string): Map<string, string> {\n let properties = this._columnProperties.get(cssFriendlyColumnName);\n if (properties === undefined) {\n properties = new Map<string, string>();\n this._columnProperties.set(cssFriendlyColumnName, properties);\n }\n return properties;\n }\n\n private _applySizeCss(cssFriendlyColumnName: string) {\n const properties = this._getColumnPropertiesMap(cssFriendlyColumnName);\n const propertyKeys = Array.from(properties.keys());\n\n let index = this._columnIndexes.get(cssFriendlyColumnName);\n if (index === undefined) {\n if (!propertyKeys.length) {\n // Nothing to set or unset.\n return;\n }\n\n index = this._indexSequence++;\n this._columnIndexes.set(cssFriendlyColumnName, index);\n } else {\n this._getStyleSheet().deleteRule(index);\n }\n\n const columnClassName = this.getColumnCssClass(cssFriendlyColumnName);\n const tableClassName = this.columnResize.getUniqueCssClass();\n\n const selector = `.${tableClassName} .${columnClassName}`;\n const body = propertyKeys.map(key => `${key}:${properties.get(key)}`).join(';');\n\n this._getStyleSheet().insertRule(`${selector} {${body}}`, index!);\n }\n}\n\n/** Converts CSS pixel values to numbers, eg \"123px\" to 123. Returns NaN for non pixel values. */\nfunction coercePixelsFromCssValue(cssValue: string): number {\n return Number(cssValue.match(/(\\d+)px/)?.[1]);\n}\n\n/** Gets the style.width pixels on the specified element if present, otherwise its offsetWidth. */\nfunction getElementWidth(element: HTMLElement) {\n // Optimization: Check style.width first as we probably set it already before reading\n // offsetWidth which triggers layout.\n return coercePixelsFromCssValue(element.style.width) || element.offsetWidth;\n}\n\n/**\n * Converts CSS flex values as set in CdkFlexTableResizeStrategy to numbers,\n * eg \"0 0.01 123px\" to 123.\n */\nfunction coercePixelsFromFlexValue(flexValue: string | undefined): number {\n return Number(flexValue?.match(/0 0\\.01 (\\d+)px/)?.[1]);\n}\n\nexport const TABLE_LAYOUT_FIXED_RESIZE_STRATEGY_PROVIDER: Provider = {\n provide: ResizeStrategy,\n useClass: TableLayoutFixedResizeStrategy,\n};\nexport const FLEX_RESIZE_STRATEGY_PROVIDER: Provider = {\n provide: ResizeStrategy,\n useClass: CdkFlexTableResizeStrategy,\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Provider} from '@angular/core';\nimport {ColumnResizeNotifier, ColumnResizeNotifierSource} from '../column-resize-notifier';\nimport {HeaderRowEventDispatcher} from '../event-dispatcher';\nimport {\n TABLE_LAYOUT_FIXED_RESIZE_STRATEGY_PROVIDER,\n FLEX_RESIZE_STRATEGY_PROVIDER,\n} from '../resize-strategy';\n\nconst PROVIDERS: Provider[] = [\n ColumnResizeNotifier,\n HeaderRowEventDispatcher,\n ColumnResizeNotifierSource,\n];\n\nexport const TABLE_PROVIDERS: Provider[] = [\n ...PROVIDERS,\n TABLE_LAYOUT_FIXED_RESIZE_STRATEGY_PROVIDER,\n];\nexport const FLEX_PROVIDERS: Provider[] = [...PROVIDERS, FLEX_RESIZE_STRATEGY_PROVIDER];\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef, NgZone} from '@angular/core';\nimport {CdkTable} from '@angular/cdk/table';\n\nimport {ColumnResize} from '../column-resize';\nimport {ColumnResizeNotifier, ColumnResizeNotifierSource} from '../column-resize-notifier';\nimport {HeaderRowEventDispatcher} from '../event-dispatcher';\nimport {TABLE_PROVIDERS} from './constants';\n\n/**\n * Explicitly enables column resizing for a table-based cdk-table.\n * Individual columns must be annotated specifically.\n */\n@Directive({\n selector: 'table[cdk-table][columnResize]',\n providers: [...TABLE_PROVIDERS, {provide: ColumnResize, useExisting: CdkColumnResize}],\n})\nexport class CdkColumnResize extends ColumnResize {\n constructor(\n readonly columnResizeNotifier: ColumnResizeNotifier,\n readonly elementRef: ElementRef<HTMLElement>,\n protected readonly eventDispatcher: HeaderRowEventDispatcher,\n protected readonly ngZone: NgZone,\n protected readonly notifier: ColumnResizeNotifierSource,\n protected readonly table: CdkTable<unknown>,\n ) {\n super();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef, NgZone} from '@angular/core';\nimport {CdkTable} from '@angular/cdk/table';\n\nimport {ColumnResize} from '../column-resize';\nimport {ColumnResizeNotifier, ColumnResizeNotifierSource} from '../column-resize-notifier';\nimport {HeaderRowEventDispatcher} from '../event-dispatcher';\nimport {FLEX_PROVIDERS} from './constants';\n\n/**\n * Explicitly enables column resizing for a flexbox-based cdk-table.\n * Individual columns must be annotated specifically.\n */\n@Directive({\n selector: 'cdk-table[columnResize]',\n providers: [...FLEX_PROVIDERS, {provide: ColumnResize, useExisting: CdkColumnResizeFlex}],\n})\nexport class CdkColumnResizeFlex extends ColumnResize {\n constructor(\n readonly columnResizeNotifier: ColumnResizeNotifier,\n readonly elementRef: ElementRef<HTMLElement>,\n protected readonly eventDispatcher: HeaderRowEventDispatcher,\n protected readonly ngZone: NgZone,\n protected readonly notifier: ColumnResizeNotifierSource,\n protected readonly table: CdkTable<unknown>,\n ) {\n super();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef, NgZone} from '@angular/core';\nimport {CdkTable} from '@angular/cdk/table';\n\nimport {ColumnResize} from '../column-resize';\nimport {ColumnResizeNotifier, ColumnResizeNotifierSource} from '../column-resize-notifier';\nimport {HeaderRowEventDispatcher} from '../event-dispatcher';\nimport {TABLE_PROVIDERS} from './constants';\n\n/**\n * Implicitly enables column resizing for a table-based cdk-table.\n * Individual columns will be resizable unless opted out.\n */\n@Directive({\n selector: 'table[cdk-table]',\n providers: [\n ...TABLE_PROVIDERS,\n {provide: ColumnResize, useExisting: CdkDefaultEnabledColumnResize},\n ],\n})\nexport class CdkDefaultEnabledColumnResize extends ColumnResize {\n constructor(\n readonly columnResizeNotifier: ColumnResizeNotifier,\n readonly elementRef: ElementRef<HTMLElement>,\n protected readonly eventDispatcher: HeaderRowEventDispatcher,\n protected readonly ngZone: NgZone,\n protected readonly notifier: ColumnResizeNotifierSource,\n protected readonly table: CdkTable<unknown>,\n ) {\n super();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef, NgZone} from '@angular/core';\nimport {CdkTable} from '@angular/cdk/table';\n\nimport {ColumnResize} from '../column-resize';\nimport {ColumnResizeNotifier, ColumnResizeNotifierSource} from '../column-resize-notifier';\nimport {HeaderRowEventDispatcher} from '../event-dispatcher';\nimport {FLEX_PROVIDERS} from './constants';\n\n/**\n * Implicitly enables column resizing for a flex cdk-table.\n * Individual columns will be resizable unless opted out.\n */\n@Directive({\n selector: 'cdk-table',\n providers: [\n ...FLEX_PROVIDERS,\n {provide: ColumnResize, useExisting: CdkDefaultEnabledColumnResizeFlex},\n ],\n})\nexport class CdkDefaultEnabledColumnResizeFlex extends ColumnResize {\n constructor(\n readonly columnResizeNotifier: ColumnResizeNotifier,\n readonly elementRef: ElementRef<HTMLElement>,\n protected readonly eventDispatcher: HeaderRowEventDispatcher,\n protected readonly ngZone: NgZone,\n protected readonly notifier: ColumnResizeNotifierSource,\n protected readonly table: CdkTable<unknown>,\n ) {\n super();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\n\nimport {CdkColumnResize} from './column-resize-directives/column-resize';\nimport {CdkColumnResizeFlex} from './column-resize-directives/column-resize-flex';\nimport {CdkDefaultEnabledColumnResize} from './column-resize-directives/default-enabled-column-resize';\nimport {CdkDefaultEnabledColumnResizeFlex} from './column-resize-directives/default-enabled-column-resize-flex';\n\n/**\n * One of two NgModules for use with CdkColumnResize.\n * When using this module, columns are resizable by default.\n */\n@NgModule({\n declarations: [CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex],\n exports: [CdkDefaultEnabledColumnResize, CdkDefaultEnabledColumnResizeFlex],\n})\nexport class CdkColumnResizeDefaultEnabledModule {}\n\n/**\n * One of two NgModules for use with CdkColumnResize.\n * When using this module, columns are not resizable by default.\n */\n@NgModule({\n declarations: [CdkColumnResize, CdkColumnResizeFlex],\n exports: [CdkColumnResize, CdkColumnResizeFlex],\n})\nexport class CdkColumnResizeModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable} from '@angular/core';\n\n/**\n * Can be provided by the host application to enable persistence of column resize state.\n */\n@Injectable()\nexport abstract class ColumnSizeStore {\n /** Returns the persisted size of the specified column in the specified table. */\n abstract getSize(tableId: string, columnId: string): number;\n\n /** Persists the size of the specified column in the specified table. */\n abstract setSize(tableId: string, columnId: string): void;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ElementRef} from '@angular/core';\nimport {OverlayRef} from '@angular/cdk/overlay';\n\n/** Tracks state of resize events in progress. */\nexport class ResizeRef {\n constructor(\n readonly origin: ElementRef,\n readonly overlayRef: OverlayRef,\n readonly minWidthPx: number,\n readonly maxWidthPx: number,\n ) {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n Injector,\n NgZone,\n OnDestroy,\n Type,\n ViewContainerRef,\n ChangeDetectorRef,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {Overlay, OverlayRef} from '@angular/cdk/overlay';\nimport {CdkColumnDef, _CoalescedStyleScheduler} from '@angular/cdk/table';\nimport {merge, Subject} from 'rxjs';\nimport {filter, takeUntil} from 'rxjs/operators';\n\nimport {_closest} from '@angular/cdk-experimental/popover-edit';\n\nimport {HEADER_ROW_SELECTOR} from './selectors';\nimport {ResizeOverlayHandle} from './overlay-handle';\nimport {ColumnResize} from './column-resize';\nimport {ColumnSizeAction, ColumnResizeNotifierSource} from './column-resize-notifier';\nimport {HeaderRowEventDispatcher} from './event-dispatcher';\nimport {ResizeRef} from './resize-ref';\nimport {ResizeStrategy} from './resize-strategy';\n\nconst OVERLAY_ACTIVE_CLASS = 'cdk-resizable-overlay-thumb-active';\n\n/**\n * Base class for Resizable directives which are applied to column headers to make those columns\n * resizable.\n */\n@Directive()\nexport abstract class Resizable<HandleComponent extends ResizeOverlayHandle>\n implements AfterViewInit, OnDestroy\n{\n protected minWidthPxInternal: number = 0;\n protected maxWidthPxInternal: number = Number.MAX_SAFE_INTEGER;\n\n protected inlineHandle?: HTMLElement;\n protected overlayRef?: OverlayRef;\n protected readonly destroyed = new Subject<void>();\n\n protected abstract readonly columnDef: CdkColumnDef;\n protected abstract readonly columnResize: ColumnResize;\n protected abstract readonly directionality: Directionality;\n protected abstract readonly document: Document;\n protected abstract readonly elementRef: ElementRef;\n protected abstract readonly eventDispatcher: HeaderRowEventDispatcher;\n protected abstract readonly injector: Injector;\n protected abstract readonly ngZone: NgZone;\n protected abstract readonly overlay: Overlay;\n protected abstract readonly resizeNotifier: ColumnResizeNotifierSource;\n protected abstract readonly resizeStrategy: ResizeStrategy;\n protected abstract readonly styleScheduler: _CoalescedStyleScheduler;\n protected abstract readonly viewContainerRef: ViewContainerRef;\n protected abstract readonly changeDetectorRef: ChangeDetectorRef;\n\n private _viewInitialized = false;\n private _isDestroyed = false;\n\n /** The minimum width to allow the column to be sized to. */\n get minWidthPx(): number {\n return this.minWidthPxInternal;\n }\n set minWidthPx(value: number) {\n this.minWidthPxInternal = value;\n\n this.columnResize.setResized();\n if (this.elementRef.nativeElement && this._viewInitialized) {\n this._applyMinWidthPx();\n }\n }\n\n /** The maximum width to allow the column to be sized to. */\n get maxWidthPx(): number {\n return this.maxWidthPxInternal;\n }\n set maxWidthPx(value: number) {\n this.maxWidthPxInternal = value;\n\n this.columnResize.setResized();\n if (this.elementRef.nativeElement && this._viewInitialized) {\n this._applyMaxWidthPx();\n }\n }\n\n ngAfterViewInit() {\n this._listenForRowHoverEvents();\n this._listenForResizeEvents();\n this._appendInlineHandle();\n\n this.styleScheduler.scheduleEnd(() => {\n if (this._isDestroyed) return;\n this._viewInitialized = true;\n this._applyMinWidthPx();\n this._applyMaxWidthPx();\n });\n }\n\n ngOnDestroy(): void {\n this._isDestroyed = true;\n this.destroyed.next();\n this.destroyed.complete();\n this.inlineHandle?.remove();\n this.overlayRef?.dispose();\n }\n\n protected abstract getInlineHandleCssClassName(): string;\n\n protected abstract getOverlayHandleComponentType(): Type<HandleComponent>;\n\n private _createOverlayForHandle(): OverlayRef {\n // Use of overlays allows us to properly capture click events spanning parts\n // of two table cells and is also useful for displaying a resize thumb\n // over both cells and extending it down the table as needed.\n\n const isRtl = this.directionality.value === 'rtl';\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef.nativeElement!)\n .withFlexibleDimensions(false)\n .withGrowAfterOpen(false)\n .withPush(false)\n .withDefaultOffsetX(isRtl ? 1 : 0)\n .withPositions([\n {\n originX: isRtl ? 'start' : 'end',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'top',\n },\n ]);\n\n return this.overlay.create({\n // Always position the overlay based on left-indexed coordinates.\n direction: 'ltr',\n disposeOnNavigation: true,\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n width: '16px',\n });\n }\n\n private _listenForRowHoverEvents(): void {\n const element = this.elementRef.nativeElement!;\n const takeUntilDestroyed = takeUntil<boolean>(this.destroyed);\n\n this.eventDispatcher\n .resizeOverlayVisibleForHeaderRow(_closest(element, HEADER_ROW_SELECTOR)!)\n .pipe(takeUntilDestroyed)\n .subscribe(hoveringRow => {\n if (hoveringRow) {\n if (!this.overlayRef) {\n this.overlayRef = this._createOverlayForHandle();\n }\n\n this._showHandleOverlay();\n } else if (this.overlayRef) {\n // todo - can't detach during an active resize - need to work that out\n this.overlayRef.detach();\n }\n });\n }\n\n private _listenForResizeEvents() {\n const takeUntilDestroyed = takeUntil<ColumnSizeAction>(this.destroyed);\n\n merge(this.resizeNotifier.resizeCanceled, this.resizeNotifier.triggerResize)\n .pipe(\n takeUntilDestroyed,\n filter(columnSize => columnSize.columnId === this.columnDef.name),\n )\n .subscribe(({size, previousSize, completeImmediately}) => {\n this.elementRef.nativeElement!.classList.add(OVERLAY_ACTIVE_CLASS);\n this._applySize(size, previousSize);\n\n if (completeImmediately) {\n this._completeResizeOperation();\n }\n });\n\n merge(this.resizeNotifier.resizeCanceled, this.resizeNotifier.resizeCompleted)\n .pipe(takeUntilDestroyed)\n .subscribe(columnSize => {\n this._cleanUpAfterResize(columnSize);\n });\n }\n\n private _completeResizeOperation(): void {\n this.ngZone.run(() => {\n this.resizeNotifier.resizeCompleted.next({\n columnId: this.columnDef.name,\n size: this.elementRef.nativeElement!.offsetWidth,\n });\n });\n }\n\n private _cleanUpAfterResize(columnSize: ColumnSizeAction): void {\n this.elementRef.nativeElement!.classList.remove(OVERLAY_ACTIVE_CLASS);\n\n if (this.overlayRef && this.overlayRef.hasAttached()) {\n this._updateOverlayHandleHeight();\n this.overlayRef.updatePosition();\n\n if (columnSize.columnId === this.columnDef.name) {\n this.inlineHandle!.focus();\n }\n }\n }\n\n private _createHandlePortal(): ComponentPortal<HandleComponent> {\n const injector = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: ResizeRef,\n useValue: new ResizeRef(\n this.elementRef,\n this.overlayRef!,\n this.minWidthPx,\n this.maxWidthPx,\n ),\n },\n ],\n });\n\n return new ComponentPortal(\n this.getOverlayHandleComponentType(),\n this.viewContainerRef,\n injector,\n );\n }\n\n private _showHandleOverlay(): void {\n this._updateOverlayHandleHeight();\n this.overlayRef!.attach(this._createHandlePortal());\n\n // Needed to ensure that all of the lifecycle hooks inside the overlay run immediately.\n this.changeDetectorRef.markForCheck();\n }\n\n private _updateOverlayHandleHeight() {\n this.overlayRef!.updateSize({height: this.elementRef.nativeElement!.offsetHeight});\n }\n\n private _applySize(sizeInPixels: number, previousSize?: number): void {\n const sizeToApply = Math.min(Math.max(sizeInPixels, this.minWidthPx, 0), this.maxWidthPx);\n\n this.resizeStrategy.applyColumnSize(\n this.columnDef.cssClassFriendlyName,\n this.elementRef.nativeElement!,\n sizeToApply,\n previousSize,\n );\n }\n\n private _applyMinWidthPx(): void {\n this.resizeStrategy.applyMinColumnSize(\n this.columnDef.cssClassFriendlyName,\n this.elementRef.nativeElement,\n this.minWidthPx,\n );\n }\n\n private _applyMaxWidthPx(): void {\n this.resizeStrategy.applyMaxColumnSize(\n this.columnDef.cssClassFriendlyName,\n this.elementRef.nativeElement,\n this.maxWidthPx,\n );\n }\n\n private _appendInlineHandle(): void {\n this.styleScheduler.schedule(() => {\n this.inlineHandle = this.document.createElement('div');\n this.inlineHandle.tabIndex = 0;\n this.inlineHandle.className = this.getInlineHandleCssClassName();\n\n // TODO: Apply correct aria role (probably slider) after a11y spec questions resolved.\n\n this.elementRef.nativeElement!.appendChild(this.inlineHandle);\n });\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {AfterViewInit, Directive, ElementRef, OnDestroy, NgZone} from '@angular/core';\nimport {coerceCssPixelValue} from '@angular/cdk/coercion';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {ESCAPE} from '@angular/cdk/keycodes';\nimport {CdkColumnDef, _CoalescedStyleScheduler} from '@angular/cdk/table';\nimport {fromEvent, Subject, merge} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n mapTo,\n pairwise,\n startWith,\n takeUntil,\n} from 'rxjs/operators';\n\nimport {_closest} from '@angular/cdk-experimental/popover-edit';\n\nimport {HEADER_CELL_SELECTOR} from './selectors';\nimport {ColumnResizeNotifierSource} from './column-resize-notifier';\nimport {HeaderRowEventDispatcher} from './event-dispatcher';\nimport {ResizeRef} from './resize-ref';\n\n// TODO: Take another look at using cdk drag drop. IIRC I ran into a couple\n// good reasons for not using it but I don't remember what they were at this point.\n/**\n * Base class for a component shown over the edge of a resizable column that is responsible\n * for handling column resize mouse events and displaying any visible UI on the column edge.\n */\n@Directive()\nexport abstract class ResizeOverlayHandle implements AfterViewInit, OnDestroy {\n protected readonly destroyed = new Subject<void>();\n\n protected abstract readonly columnDef: CdkColumnDef;\n protected abstract readonly document: Document;\n protected abstract readonly directionality: Directionality;\n protected abstract readonly elementRef: ElementRef;\n protected abstract readonly eventDispatcher: HeaderRowEventDispatcher;\n protected abstract readonly ngZone: NgZone;\n protected abstract readonly resizeNotifier: ColumnResizeNotifierSource;\n protected abstract readonly resizeRef: ResizeRef;\n protected abstract readonly styleScheduler: _CoalescedStyleScheduler;\n\n ngAfterViewInit() {\n this._listenForMouseEvents();\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n\n private _listenForMouseEvents() {\n this.ngZone.runOutsideAngular(() => {\n fromEvent<MouseEvent>(this.elementRef.nativeElement!, 'mouseenter')\n .pipe(mapTo(this.resizeRef.origin.nativeElement!), takeUntil(this.destroyed))\n .subscribe(cell => this.eventDispatcher.headerCellHovered.next(cell));\n\n fromEvent<MouseEvent>(this.elementRef.nativeElement!, 'mouseleave')\n .pipe(\n map(\n event =>\n event.relatedTarget && _closest(event.relatedTarget as Element, HEADER_CELL_SELECTOR),\n ),\n takeUntil(this.destroyed),\n )\n .subscribe(cell => this.eventDispatcher.headerCellHovered.next(cell));\n\n fromEvent<MouseEvent>(this.elementRef.nativeElement!, 'mousedown')\n .pipe(takeUntil(this.destroyed))\n .subscribe(mousedownEvent => {\n this._dragStarted(mousedownEvent);\n });\n });\n }\n\n private _dragStarted(mousedownEvent: MouseEvent) {\n // Only allow dragging using the left mouse button.\n if (mousedownEvent.button !== 0) {\n return;\n }\n\n const mouseup = fromEvent<MouseEvent>(this.document, 'mouseup');\n const mousemove = fromEvent<MouseEvent>(this.document, 'mousemove');\n const escape = fromEvent<KeyboardEvent>(this.document, 'keyup').pipe(\n filter(event => event.keyCode === ESCAPE),\n );\n\n const startX = mousedownEvent.screenX;\n\n const initialSize = this._getOriginWidth();\n let overlayOffset = 0;\n let originOffset = this._getOriginOffset();\n let size = initialSize;\n let overshot = 0;\n\n this.updateResizeActive(true);\n\n mouseup.pipe(takeUntil(merge(escape, this.destroyed))).subscribe(({screenX}) => {\n this.styleScheduler.scheduleEnd(() => {\n this._notifyResizeEnded(size, screenX !== startX);\n });\n });\n\n escape.pipe(takeUntil(merge(mouseup, this.destroyed))).subscribe(() => {\n this._notifyResizeEnded(initialSize);\n });\n\n mousemove\n .pipe(\n map(({screenX}) => screenX),\n startWith(startX),\n distinctUntilChanged(),\n pairwise(),\n takeUntil(merge(mouseup, escape, this.destroyed)),\n )\n .subscribe(([prevX, currX]) => {\n let deltaX = currX - prevX;\n\n // If the mouse moved further than the resize was able to match, limit the\n // movement of the overlay to match the actual size and position of the origin.\n if (overshot !== 0) {\n if ((overshot < 0 && deltaX < 0) || (overshot > 0 && deltaX > 0)) {\n overshot += deltaX;\n return;\n } else {\n const remainingOvershot = overshot + deltaX;\n overshot =\n overshot > 0 ? Math.max(remainingOvershot, 0) : Math.min(remainingOvershot, 0);\n deltaX = remainingOvershot - overshot;\n\n if (deltaX === 0) {\n return;\n }\n }\n }\n\n let computedNewSize: number = size + (this._isLtr() ? deltaX : -deltaX);\n computedNewSize = Math.min(\n Math.max(computedNewSize, this.resizeRef.minWidthPx, 0),\n this.resizeRef.maxWidthPx,\n );\n\n this.resizeNotifier.triggerResize.next({\n columnId: this.columnDef.name,\n size: computedNewSize,\n previousSize: size,\n isStickyColumn: this.columnDef.sticky || this.columnDef.stickyEnd,\n });\n\n this.styleScheduler.scheduleEnd(() => {\n const originNewSize = this._getOriginWidth();\n const originNewOffset = this._getOriginOffset();\n const originOffsetDeltaX = originNewOffset - originOffset;\n const originSizeDeltaX = originNewSize - size;\n size = originNewSize;\n originOffset = originNewOffset;\n\n overshot += deltaX + (this._isLtr() ? -originSizeDeltaX : originSizeDeltaX);\n overlayOffset += originOffsetDeltaX + (this._isLtr() ? originSizeDeltaX : 0);\n\n this._updateOverlayOffset(overlayOffset);\n });\n });\n }\n\n protected updateResizeActive(active: boolean): void {\n this.eventDispatcher.overlayHandleActiveForCell.next(\n active ? this.resizeRef.origin.nativeElement! : null,\n );\n }\n\n private _getOriginWidth(): number {\n return this.resizeRef.origin.nativeElement!.offsetWidth;\n }\n\n private _getOriginOffset(): number {\n return this.resizeRef.origin.nativeElement!.offsetLeft;\n }\n\n private _updateOverlayOffset(offset: number): void {\n this.resizeRef.overlayRef.overlayElement.style.transform = `translateX(${coerceCssPixelValue(\n offset,\n )})`;\n }\n\n private _isLtr(): boolean {\n return this.directionality.value === 'ltr';\n }\n\n private _notifyResizeEnded(size: number, completedSuccessfully = false): void {\n this.updateResizeActive(false);\n\n this.ngZone.run(() => {\n const sizeMessage = {columnId: this.columnDef.name, size};\n if (completedSuccessfully) {\n this.resizeNotifier.resizeCompleted.next(sizeMessage);\n } else {\n this.resizeNotifier.resizeCanceled.next(sizeMessage);\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1.ColumnResize","i1.ColumnResizeNotifier","i2.HeaderRowEventDispatcher","i1.ColumnResizeNotifierSource"],"mappings":"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"}
@@ -218,9 +218,9 @@ class CdkCombobox {
218
218
  this.contentId = contentId;
219
219
  this.contentType = contentType;
220
220
  }
221
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkCombobox, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: DOCUMENT }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
222
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: CdkCombobox, selector: "[cdkCombobox]", inputs: { _panelTemplateRef: ["cdkComboboxTriggerFor", "_panelTemplateRef"], value: "value", disabled: "disabled", openActions: "openActions", autoSetText: "autoSetText" }, outputs: { opened: "comboboxPanelOpened", closed: "comboboxPanelClosed", panelValueChanged: "panelValueChanged" }, host: { attributes: { "role": "combobox" }, listeners: { "click": "_handleInteractions(\"click\")", "focus": "_handleInteractions(\"focus\")", "keydown": "_keydown($event)", "document:click": "_attemptClose($event)" }, properties: { "attr.aria-disabled": "disabled", "attr.aria-owns": "contentId", "attr.aria-haspopup": "contentType", "attr.aria-expanded": "isOpen()", "attr.tabindex": "_getTabIndex()" }, classAttribute: "cdk-combobox" }, providers: [{ provide: CDK_COMBOBOX, useExisting: CdkCombobox }], exportAs: ["cdkCombobox"], ngImport: i0 }); }
221
223
  }
222
- CdkCombobox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkCombobox, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: DOCUMENT }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
223
- CdkCombobox.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: CdkCombobox, selector: "[cdkCombobox]", inputs: { _panelTemplateRef: ["cdkComboboxTriggerFor", "_panelTemplateRef"], value: "value", disabled: "disabled", openActions: "openActions", autoSetText: "autoSetText" }, outputs: { opened: "comboboxPanelOpened", closed: "comboboxPanelClosed", panelValueChanged: "panelValueChanged" }, host: { attributes: { "role": "combobox" }, listeners: { "click": "_handleInteractions(\"click\")", "focus": "_handleInteractions(\"focus\")", "keydown": "_keydown($event)", "document:click": "_attemptClose($event)" }, properties: { "attr.aria-disabled": "disabled", "attr.aria-owns": "contentId", "attr.aria-haspopup": "contentType", "attr.aria-expanded": "isOpen()", "attr.tabindex": "_getTabIndex()" }, classAttribute: "cdk-combobox" }, providers: [{ provide: CDK_COMBOBOX, useExisting: CdkCombobox }], exportAs: ["cdkCombobox"], ngImport: i0 });
224
224
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkCombobox, decorators: [{
225
225
  type: Directive,
226
226
  args: [{
@@ -302,9 +302,9 @@ class CdkComboboxPopup {
302
302
  this._elementRef.nativeElement.focus();
303
303
  }
304
304
  }
305
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkComboboxPopup, deps: [{ token: i0.ElementRef }, { token: CDK_COMBOBOX }], target: i0.ɵɵFactoryTarget.Directive }); }
306
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: CdkComboboxPopup, selector: "[cdkComboboxPopup]", inputs: { role: "role", firstFocus: "firstFocus", id: "id" }, host: { attributes: { "tabindex": "-1" }, listeners: { "focus": "focusFirstElement()" }, properties: { "attr.role": "role", "id": "id" }, classAttribute: "cdk-combobox-popup" }, exportAs: ["cdkComboboxPopup"], ngImport: i0 }); }
305
307
  }
306
- CdkComboboxPopup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkComboboxPopup, deps: [{ token: i0.ElementRef }, { token: CDK_COMBOBOX }], target: i0.ɵɵFactoryTarget.Directive });
307
- CdkComboboxPopup.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.7", type: CdkComboboxPopup, selector: "[cdkComboboxPopup]", inputs: { role: "role", firstFocus: "firstFocus", id: "id" }, host: { attributes: { "tabindex": "-1" }, listeners: { "focus": "focusFirstElement()" }, properties: { "attr.role": "role", "id": "id" }, classAttribute: "cdk-combobox-popup" }, exportAs: ["cdkComboboxPopup"], ngImport: i0 });
308
308
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkComboboxPopup, decorators: [{
309
309
  type: Directive,
310
310
  args: [{
@@ -331,10 +331,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7",
331
331
 
332
332
  const EXPORTED_DECLARATIONS = [CdkCombobox, CdkComboboxPopup];
333
333
  class CdkComboboxModule {
334
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkComboboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
335
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkComboboxModule, declarations: [CdkCombobox, CdkComboboxPopup], imports: [OverlayModule], exports: [CdkCombobox, CdkComboboxPopup] }); }
336
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkComboboxModule, imports: [OverlayModule] }); }
334
337
  }
335
- CdkComboboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkComboboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
336
- CdkComboboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkComboboxModule, declarations: [CdkCombobox, CdkComboboxPopup], imports: [OverlayModule], exports: [CdkCombobox, CdkComboboxPopup] });
337
- CdkComboboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkComboboxModule, imports: [OverlayModule] });
338
338
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.7", ngImport: i0, type: CdkComboboxModule, decorators: [{
339
339
  type: NgModule,
340
340
  args: [{