@angular/cdk 11.0.2 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/LICENSE +1 -1
  2. package/a11y/aria-describer/aria-describer.d.ts +9 -14
  3. package/a11y/focus-monitor/focus-monitor.d.ts +6 -0
  4. package/a11y/index.metadata.json +1 -1
  5. package/bundles/cdk-a11y.umd.js +83 -66
  6. package/bundles/cdk-a11y.umd.js.map +1 -1
  7. package/bundles/cdk-a11y.umd.min.js +13 -21
  8. package/bundles/cdk-a11y.umd.min.js.map +1 -1
  9. package/bundles/cdk-accordion.umd.js.map +1 -1
  10. package/bundles/cdk-bidi.umd.js.map +1 -1
  11. package/bundles/cdk-coercion.umd.js +9 -1
  12. package/bundles/cdk-coercion.umd.js.map +1 -1
  13. package/bundles/cdk-coercion.umd.min.js.map +1 -1
  14. package/bundles/cdk-collections.umd.js +9 -1
  15. package/bundles/cdk-collections.umd.js.map +1 -1
  16. package/bundles/cdk-collections.umd.min.js +1 -1
  17. package/bundles/cdk-collections.umd.min.js.map +1 -1
  18. package/bundles/cdk-drag-drop.umd.js +96 -50
  19. package/bundles/cdk-drag-drop.umd.js.map +1 -1
  20. package/bundles/cdk-drag-drop.umd.min.js +8 -8
  21. package/bundles/cdk-drag-drop.umd.min.js.map +1 -1
  22. package/bundles/cdk-overlay.umd.js +48 -10
  23. package/bundles/cdk-overlay.umd.js.map +1 -1
  24. package/bundles/cdk-overlay.umd.min.js +18 -25
  25. package/bundles/cdk-overlay.umd.min.js.map +1 -1
  26. package/bundles/cdk-platform.umd.js +1 -0
  27. package/bundles/cdk-platform.umd.js.map +1 -1
  28. package/bundles/cdk-platform.umd.min.js +1 -1
  29. package/bundles/cdk-platform.umd.min.js.map +1 -1
  30. package/bundles/cdk-portal.umd.js +9 -1
  31. package/bundles/cdk-portal.umd.js.map +1 -1
  32. package/bundles/cdk-portal.umd.min.js +2 -2
  33. package/bundles/cdk-portal.umd.min.js.map +1 -1
  34. package/bundles/cdk-scrolling.umd.js +25 -11
  35. package/bundles/cdk-scrolling.umd.js.map +1 -1
  36. package/bundles/cdk-scrolling.umd.min.js +4 -4
  37. package/bundles/cdk-scrolling.umd.min.js.map +1 -1
  38. package/bundles/cdk-table.umd.js +99 -30
  39. package/bundles/cdk-table.umd.js.map +1 -1
  40. package/bundles/cdk-table.umd.min.js +7 -7
  41. package/bundles/cdk-table.umd.min.js.map +1 -1
  42. package/bundles/cdk-testing-protractor.umd.js +59 -13
  43. package/bundles/cdk-testing-protractor.umd.js.map +1 -1
  44. package/bundles/cdk-testing-protractor.umd.min.js +2 -2
  45. package/bundles/cdk-testing-protractor.umd.min.js.map +1 -1
  46. package/bundles/cdk-testing-testbed.umd.js +40 -15
  47. package/bundles/cdk-testing-testbed.umd.js.map +1 -1
  48. package/bundles/cdk-testing-testbed.umd.min.js +7 -7
  49. package/bundles/cdk-testing-testbed.umd.min.js.map +1 -1
  50. package/bundles/cdk-testing.umd.js +11 -10
  51. package/bundles/cdk-testing.umd.js.map +1 -1
  52. package/bundles/cdk-testing.umd.min.js +2 -2
  53. package/bundles/cdk-testing.umd.min.js.map +1 -1
  54. package/bundles/cdk-tree.umd.js +9 -1
  55. package/bundles/cdk-tree.umd.js.map +1 -1
  56. package/bundles/cdk-tree.umd.min.js +5 -5
  57. package/bundles/cdk-tree.umd.min.js.map +1 -1
  58. package/bundles/cdk.umd.js +1 -1
  59. package/bundles/cdk.umd.js.map +1 -1
  60. package/bundles/cdk.umd.min.js +1 -1
  61. package/bundles/cdk.umd.min.js.map +1 -1
  62. package/drag-drop/directives/drag.d.ts +1 -1
  63. package/drag-drop/directives/drop-list.d.ts +4 -1
  64. package/drag-drop/drag-drop-registry.d.ts +8 -1
  65. package/drag-drop/drag-ref.d.ts +2 -0
  66. package/drag-drop/drop-list-ref.d.ts +7 -1
  67. package/drag-drop/index.metadata.json +1 -1
  68. package/esm2015/a11y/aria-describer/aria-describer.js +50 -55
  69. package/esm2015/a11y/focus-monitor/focus-monitor.js +18 -3
  70. package/esm2015/drag-drop/directives/drag.js +6 -4
  71. package/esm2015/drag-drop/directives/drop-list.js +4 -2
  72. package/esm2015/drag-drop/drag-drop-registry.js +25 -12
  73. package/esm2015/drag-drop/drag-ref.js +10 -8
  74. package/esm2015/drag-drop/drop-list-ref.js +46 -28
  75. package/esm2015/overlay/position/flexible-connected-position-strategy.js +25 -3
  76. package/esm2015/overlay/scroll/block-scroll-strategy.js +13 -4
  77. package/esm2015/platform/features/scrolling.js +2 -1
  78. package/esm2015/scrolling/fixed-size-virtual-scroll.js +3 -2
  79. package/esm2015/scrolling/scroll-dispatcher.js +9 -8
  80. package/esm2015/scrolling/virtual-for-of.js +8 -4
  81. package/esm2015/scrolling/virtual-scroll-viewport.js +1 -1
  82. package/esm2015/table/public-api.js +2 -1
  83. package/esm2015/table/sticky-position-listener.js +11 -0
  84. package/esm2015/table/sticky-styler.js +60 -14
  85. package/esm2015/table/table.js +9 -4
  86. package/esm2015/testing/change-detection.js +1 -8
  87. package/esm2015/testing/harness-environment.js +3 -3
  88. package/esm2015/testing/protractor/protractor-element.js +29 -13
  89. package/esm2015/testing/test-element.js +1 -1
  90. package/esm2015/testing/testbed/fake-events/dispatch-events.js +3 -3
  91. package/esm2015/testing/testbed/fake-events/event-objects.js +6 -6
  92. package/esm2015/testing/testbed/unit-test-element.js +21 -9
  93. package/esm2015/tree/nested-node.js +1 -1
  94. package/esm2015/tree/padding.js +1 -1
  95. package/esm2015/tree/toggle.js +1 -1
  96. package/esm2015/tree/tree.js +1 -1
  97. package/esm2015/version.js +1 -1
  98. package/fesm2015/a11y.js +67 -55
  99. package/fesm2015/a11y.js.map +1 -1
  100. package/fesm2015/accordion.js.map +1 -1
  101. package/fesm2015/bidi.js.map +1 -1
  102. package/fesm2015/cdk.js +1 -1
  103. package/fesm2015/cdk.js.map +1 -1
  104. package/fesm2015/drag-drop.js +85 -48
  105. package/fesm2015/drag-drop.js.map +1 -1
  106. package/fesm2015/overlay.js +36 -6
  107. package/fesm2015/overlay.js.map +1 -1
  108. package/fesm2015/platform.js +1 -0
  109. package/fesm2015/platform.js.map +1 -1
  110. package/fesm2015/scrolling.js +17 -12
  111. package/fesm2015/scrolling.js.map +1 -1
  112. package/fesm2015/table.js +77 -17
  113. package/fesm2015/table.js.map +1 -1
  114. package/fesm2015/testing/protractor.js +27 -11
  115. package/fesm2015/testing/protractor.js.map +1 -1
  116. package/fesm2015/testing/testbed.js +25 -13
  117. package/fesm2015/testing/testbed.js.map +1 -1
  118. package/fesm2015/testing.js +2 -9
  119. package/fesm2015/testing.js.map +1 -1
  120. package/fesm2015/tree.js.map +1 -1
  121. package/overlay/index.metadata.json +1 -1
  122. package/package.json +1 -1
  123. package/schematics/ng-add/index.js +1 -1
  124. package/scrolling/index.metadata.json +1 -1
  125. package/scrolling/scroll-dispatcher.d.ts +3 -3
  126. package/table/index.metadata.json +1 -1
  127. package/table/public-api.d.ts +1 -0
  128. package/table/sticky-position-listener.d.ts +28 -0
  129. package/table/sticky-styler.d.ts +7 -2
  130. package/table/table.d.ts +4 -2
  131. package/testing/change-detection.d.ts +44 -1
  132. package/testing/protractor/protractor-element.d.ts +12 -4
  133. package/testing/test-element.d.ts +11 -5
  134. package/testing/testbed/fake-events/dispatch-events.d.ts +1 -1
  135. package/testing/testbed/fake-events/event-objects.d.ts +1 -1
  136. package/testing/testbed/unit-test-element.d.ts +12 -4
  137. package/tree/index.metadata.json +1 -1
  138. package/tree/nested-node.d.ts +3 -3
  139. package/tree/padding.d.ts +2 -2
  140. package/tree/toggle.d.ts +4 -4
  141. package/tree/tree.d.ts +5 -5
package/fesm2015/table.js CHANGED
@@ -5,7 +5,7 @@ export { DataSource } from '@angular/cdk/collections';
5
5
  import { Platform } from '@angular/cdk/platform';
6
6
  import { ViewportRuler, ScrollingModule } from '@angular/cdk/scrolling';
7
7
  import { DOCUMENT } from '@angular/common';
8
- import { InjectionToken, Directive, TemplateRef, Inject, Optional, Input, ContentChild, ElementRef, Injectable, NgZone, IterableDiffers, ViewContainerRef, Component, ChangeDetectionStrategy, ViewEncapsulation, EmbeddedViewRef, ChangeDetectorRef, Attribute, ViewChild, ContentChildren, NgModule } from '@angular/core';
8
+ import { InjectionToken, Directive, TemplateRef, Inject, Optional, Input, ContentChild, ElementRef, Injectable, NgZone, IterableDiffers, ViewContainerRef, Component, ChangeDetectionStrategy, ViewEncapsulation, EmbeddedViewRef, ChangeDetectorRef, Attribute, SkipSelf, ViewChild, ContentChildren, NgModule } from '@angular/core';
9
9
  import { Subject, from, BehaviorSubject, isObservable, of } from 'rxjs';
10
10
  import { takeUntil, take } from 'rxjs/operators';
11
11
 
@@ -615,20 +615,29 @@ class StickyStyler {
615
615
  * @param _needsPositionStickyOnElement Whether we need to specify position: sticky on cells
616
616
  * using inline styles. If false, it is assumed that position: sticky is included in
617
617
  * the component stylesheet for _stickCellCss.
618
+ * @param _positionListener A listener that is notified of changes to sticky rows/columns
619
+ * and their dimensions.
618
620
  */
619
621
  constructor(_isNativeHtmlTable, _stickCellCss, direction,
620
622
  /**
621
623
  * @deprecated `_coalescedStyleScheduler` parameter to become required.
622
624
  * @breaking-change 11.0.0
623
625
  */
624
- _coalescedStyleScheduler, _isBrowser = true, _needsPositionStickyOnElement = true) {
626
+ _coalescedStyleScheduler, _isBrowser = true, _needsPositionStickyOnElement = true, _positionListener) {
625
627
  this._isNativeHtmlTable = _isNativeHtmlTable;
626
628
  this._stickCellCss = _stickCellCss;
627
629
  this.direction = direction;
628
630
  this._coalescedStyleScheduler = _coalescedStyleScheduler;
629
631
  this._isBrowser = _isBrowser;
630
632
  this._needsPositionStickyOnElement = _needsPositionStickyOnElement;
633
+ this._positionListener = _positionListener;
631
634
  this._cachedCellWidths = [];
635
+ this._borderCellCss = {
636
+ 'top': `${_stickCellCss}-border-elem-top`,
637
+ 'bottom': `${_stickCellCss}-border-elem-bottom`,
638
+ 'left': `${_stickCellCss}-border-elem-left`,
639
+ 'right': `${_stickCellCss}-border-elem-right`,
640
+ };
632
641
  }
633
642
  /**
634
643
  * Clears the sticky positioning styles from the row and its cells by resetting the `position`
@@ -670,6 +679,10 @@ class StickyStyler {
670
679
  updateStickyColumns(rows, stickyStartStates, stickyEndStates, recalculateCellWidths = true) {
671
680
  if (!rows.length || !this._isBrowser || !(stickyStartStates.some(state => state) ||
672
681
  stickyEndStates.some(state => state))) {
682
+ if (this._positionListener) {
683
+ this._positionListener.stickyColumnsUpdated({ sizes: [] });
684
+ this._positionListener.stickyEndColumnsUpdated({ sizes: [] });
685
+ }
673
686
  return;
674
687
  }
675
688
  const firstRow = rows[0];
@@ -677,6 +690,8 @@ class StickyStyler {
677
690
  const cellWidths = this._getCellWidths(firstRow, recalculateCellWidths);
678
691
  const startPositions = this._getStickyStartColumnPositions(cellWidths, stickyStartStates);
679
692
  const endPositions = this._getStickyEndColumnPositions(cellWidths, stickyEndStates);
693
+ const lastStickyStart = stickyStartStates.lastIndexOf(true);
694
+ const firstStickyEnd = stickyEndStates.indexOf(true);
680
695
  // Coalesce with sticky row updates (and potentially other changes like column resize).
681
696
  this._scheduleStyleChanges(() => {
682
697
  const isRtl = this.direction === 'rtl';
@@ -686,13 +701,30 @@ class StickyStyler {
686
701
  for (let i = 0; i < numCells; i++) {
687
702
  const cell = row.children[i];
688
703
  if (stickyStartStates[i]) {
689
- this._addStickyStyle(cell, start, startPositions[i]);
704
+ this._addStickyStyle(cell, start, startPositions[i], i === lastStickyStart);
690
705
  }
691
706
  if (stickyEndStates[i]) {
692
- this._addStickyStyle(cell, end, endPositions[i]);
707
+ this._addStickyStyle(cell, end, endPositions[i], i === firstStickyEnd);
693
708
  }
694
709
  }
695
710
  }
711
+ if (this._positionListener) {
712
+ this._positionListener.stickyColumnsUpdated({
713
+ sizes: lastStickyStart === -1 ?
714
+ [] :
715
+ cellWidths
716
+ .slice(0, lastStickyStart + 1)
717
+ .map((width, index) => stickyStartStates[index] ? width : null)
718
+ });
719
+ this._positionListener.stickyEndColumnsUpdated({
720
+ sizes: firstStickyEnd === -1 ?
721
+ [] :
722
+ cellWidths
723
+ .slice(firstStickyEnd)
724
+ .map((width, index) => stickyEndStates[index + firstStickyEnd] ? width : null)
725
+ .reverse()
726
+ });
727
+ }
696
728
  });
697
729
  }
698
730
  /**
@@ -717,32 +749,42 @@ class StickyStyler {
717
749
  const rows = position === 'bottom' ? rowsToStick.slice().reverse() : rowsToStick;
718
750
  const states = position === 'bottom' ? stickyStates.slice().reverse() : stickyStates;
719
751
  // Measure row heights all at once before adding sticky styles to reduce layout thrashing.
720
- const stickyHeights = [];
752
+ const stickyOffsets = [];
753
+ const stickyCellHeights = [];
721
754
  const elementsToStick = [];
722
- for (let rowIndex = 0, stickyHeight = 0; rowIndex < rows.length; rowIndex++) {
723
- stickyHeights[rowIndex] = stickyHeight;
755
+ for (let rowIndex = 0, stickyOffset = 0; rowIndex < rows.length; rowIndex++) {
756
+ stickyOffsets[rowIndex] = stickyOffset;
724
757
  if (!states[rowIndex]) {
725
758
  continue;
726
759
  }
727
760
  const row = rows[rowIndex];
728
761
  elementsToStick[rowIndex] = this._isNativeHtmlTable ?
729
762
  Array.from(row.children) : [row];
730
- if (rowIndex !== rows.length - 1) {
731
- stickyHeight += row.getBoundingClientRect().height;
732
- }
763
+ const height = row.getBoundingClientRect().height;
764
+ stickyOffset += height;
765
+ stickyCellHeights[rowIndex] = height;
733
766
  }
767
+ const borderedRowIndex = states.lastIndexOf(true);
734
768
  // Coalesce with other sticky row updates (top/bottom), sticky columns updates
735
769
  // (and potentially other changes like column resize).
736
770
  this._scheduleStyleChanges(() => {
771
+ var _a, _b;
737
772
  for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {
738
773
  if (!states[rowIndex]) {
739
774
  continue;
740
775
  }
741
- const height = stickyHeights[rowIndex];
776
+ const offset = stickyOffsets[rowIndex];
777
+ const isBorderedRowIndex = rowIndex === borderedRowIndex;
742
778
  for (const element of elementsToStick[rowIndex]) {
743
- this._addStickyStyle(element, position, height);
779
+ this._addStickyStyle(element, position, offset, isBorderedRowIndex);
744
780
  }
745
781
  }
782
+ if (position === 'top') {
783
+ (_a = this._positionListener) === null || _a === void 0 ? void 0 : _a.stickyHeaderRowsUpdated({ sizes: stickyCellHeights });
784
+ }
785
+ else {
786
+ (_b = this._positionListener) === null || _b === void 0 ? void 0 : _b.stickyFooterRowsUpdated({ sizes: stickyCellHeights });
787
+ }
746
788
  });
747
789
  }
748
790
  /**
@@ -762,7 +804,7 @@ class StickyStyler {
762
804
  this._removeStickyStyle(tfoot, ['bottom']);
763
805
  }
764
806
  else {
765
- this._addStickyStyle(tfoot, 'bottom', 0);
807
+ this._addStickyStyle(tfoot, 'bottom', 0, false);
766
808
  }
767
809
  });
768
810
  }
@@ -774,6 +816,7 @@ class StickyStyler {
774
816
  _removeStickyStyle(element, stickyDirections) {
775
817
  for (const dir of stickyDirections) {
776
818
  element.style[dir] = '';
819
+ element.classList.remove(this._borderCellCss[dir]);
777
820
  }
778
821
  // If the element no longer has any more sticky directions, remove sticky positioning and
779
822
  // the sticky CSS class.
@@ -797,8 +840,11 @@ class StickyStyler {
797
840
  * to be sticky (and -webkit-sticky), setting the appropriate zIndex, and adding a sticky
798
841
  * direction and value.
799
842
  */
800
- _addStickyStyle(element, dir, dirValue) {
843
+ _addStickyStyle(element, dir, dirValue, isBorderElement) {
801
844
  element.classList.add(this._stickCellCss);
845
+ if (isBorderElement) {
846
+ element.classList.add(this._borderCellCss[dir]);
847
+ }
802
848
  element.style[dir] = `${dirValue}px`;
803
849
  element.style.zIndex = this._getCalculatedZIndex(element);
804
850
  if (this._needsPositionStickyOnElement) {
@@ -962,6 +1008,16 @@ function getTableTextColumnMissingNameError() {
962
1008
  return Error(`Table text column must have a name.`);
963
1009
  }
964
1010
 
1011
+ /**
1012
+ * @license
1013
+ * Copyright Google LLC All Rights Reserved.
1014
+ *
1015
+ * Use of this source code is governed by an MIT-style license that can be
1016
+ * found in the LICENSE file at https://angular.io/license
1017
+ */
1018
+ /** The injection token used to specify the StickyPositioningListener. */
1019
+ const STICKY_POSITIONING_LISTENER = new InjectionToken('CDK_SPL');
1020
+
965
1021
  /**
966
1022
  * @license
967
1023
  * Copyright Google LLC All Rights Reserved.
@@ -1073,7 +1129,7 @@ class CdkTable {
1073
1129
  * parameters to become required.
1074
1130
  * @breaking-change 11.0.0
1075
1131
  */
1076
- _viewRepeater, _coalescedStyleScheduler,
1132
+ _viewRepeater, _coalescedStyleScheduler, _stickyPositioningListener,
1077
1133
  // Optional for backwards compatibility. The viewport ruler is provided in root. Therefore,
1078
1134
  // this property will never be null.
1079
1135
  // tslint:disable-next-line: lightweight-tokens
@@ -1085,6 +1141,7 @@ class CdkTable {
1085
1141
  this._platform = _platform;
1086
1142
  this._viewRepeater = _viewRepeater;
1087
1143
  this._coalescedStyleScheduler = _coalescedStyleScheduler;
1144
+ this._stickyPositioningListener = _stickyPositioningListener;
1088
1145
  this._viewportRuler = _viewportRuler;
1089
1146
  /** Subject that emits when the component has been destroyed. */
1090
1147
  this._onDestroy = new Subject();
@@ -1854,7 +1911,7 @@ class CdkTable {
1854
1911
  */
1855
1912
  _setupStickyStyler() {
1856
1913
  const direction = this._dir ? this._dir.value : 'ltr';
1857
- this._stickyStyler = new StickyStyler(this._isNativeHtmlTable, this.stickyCssClass, direction, this._coalescedStyleScheduler, this._platform.isBrowser, this.needsPositionStickyOnElement);
1914
+ this._stickyStyler = new StickyStyler(this._isNativeHtmlTable, this.stickyCssClass, direction, this._coalescedStyleScheduler, this._platform.isBrowser, this.needsPositionStickyOnElement, this._stickyPositioningListener);
1858
1915
  (this._dir ? this._dir.change : of())
1859
1916
  .pipe(takeUntil(this._onDestroy))
1860
1917
  .subscribe(value => {
@@ -1898,6 +1955,8 @@ CdkTable.decorators = [
1898
1955
  { provide: CDK_TABLE, useExisting: CdkTable },
1899
1956
  { provide: _VIEW_REPEATER_STRATEGY, useClass: _DisposeViewRepeaterStrategy },
1900
1957
  { provide: _COALESCED_STYLE_SCHEDULER, useClass: _CoalescedStyleScheduler },
1958
+ // Prevent nested tables from seeing this table's StickyPositioningListener.
1959
+ { provide: STICKY_POSITIONING_LISTENER, useValue: null },
1901
1960
  ],
1902
1961
  styles: [".cdk-table-fixed-layout{table-layout:fixed}\n"]
1903
1962
  },] }
@@ -1912,6 +1971,7 @@ CdkTable.ctorParameters = () => [
1912
1971
  { type: Platform },
1913
1972
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [_VIEW_REPEATER_STRATEGY,] }] },
1914
1973
  { type: _CoalescedStyleScheduler, decorators: [{ type: Optional }, { type: Inject, args: [_COALESCED_STYLE_SCHEDULER,] }] },
1974
+ { type: undefined, decorators: [{ type: Optional }, { type: SkipSelf }, { type: Inject, args: [STICKY_POSITIONING_LISTENER,] }] },
1915
1975
  { type: ViewportRuler, decorators: [{ type: Optional }] }
1916
1976
  ];
1917
1977
  CdkTable.propDecorators = {
@@ -2112,5 +2172,5 @@ CdkTableModule.decorators = [
2112
2172
  * Generated bundle index. Do not edit.
2113
2173
  */
2114
2174
 
2115
- export { BaseCdkCell, BaseRowDef, CDK_ROW_TEMPLATE, CDK_TABLE, CDK_TABLE_TEMPLATE, CdkCell, CdkCellDef, CdkCellOutlet, CdkColumnDef, CdkFooterCell, CdkFooterCellDef, CdkFooterRow, CdkFooterRowDef, CdkHeaderCell, CdkHeaderCellDef, CdkHeaderRow, CdkHeaderRowDef, CdkNoDataRow, CdkRow, CdkRowDef, CdkTable, CdkTableModule, CdkTextColumn, DataRowOutlet, FooterRowOutlet, HeaderRowOutlet, NoDataRowOutlet, STICKY_DIRECTIONS, StickyStyler, TEXT_COLUMN_OPTIONS, _COALESCED_STYLE_SCHEDULER, _CoalescedStyleScheduler, _Schedule, mixinHasStickyInput };
2175
+ export { BaseCdkCell, BaseRowDef, CDK_ROW_TEMPLATE, CDK_TABLE, CDK_TABLE_TEMPLATE, CdkCell, CdkCellDef, CdkCellOutlet, CdkColumnDef, CdkFooterCell, CdkFooterCellDef, CdkFooterRow, CdkFooterRowDef, CdkHeaderCell, CdkHeaderCellDef, CdkHeaderRow, CdkHeaderRowDef, CdkNoDataRow, CdkRow, CdkRowDef, CdkTable, CdkTableModule, CdkTextColumn, DataRowOutlet, FooterRowOutlet, HeaderRowOutlet, NoDataRowOutlet, STICKY_DIRECTIONS, STICKY_POSITIONING_LISTENER, StickyStyler, TEXT_COLUMN_OPTIONS, _COALESCED_STYLE_SCHEDULER, _CoalescedStyleScheduler, _Schedule, mixinHasStickyInput };
2116
2176
  //# sourceMappingURL=table.js.map