@angular/material 21.0.0-next.9 → 21.0.0-rc.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 (202) hide show
  1. package/core/tokens/_classes.scss +1 -1
  2. package/core/tokens/m2/_md-sys-color.scss +17 -17
  3. package/fesm2022/_animation-chunk.mjs +10 -16
  4. package/fesm2022/_animation-chunk.mjs.map +1 -1
  5. package/fesm2022/_date-formats-chunk.mjs +68 -164
  6. package/fesm2022/_date-formats-chunk.mjs.map +1 -1
  7. package/fesm2022/_date-range-input-harness-chunk.mjs +284 -463
  8. package/fesm2022/_date-range-input-harness-chunk.mjs.map +1 -1
  9. package/fesm2022/_error-options-chunk.mjs +56 -19
  10. package/fesm2022/_error-options-chunk.mjs.map +1 -1
  11. package/fesm2022/_error-state-chunk.mjs +24 -31
  12. package/fesm2022/_error-state-chunk.mjs.map +1 -1
  13. package/fesm2022/_form-field-chunk.mjs +1224 -1017
  14. package/fesm2022/_form-field-chunk.mjs.map +1 -1
  15. package/fesm2022/_icon-button-chunk.mjs +243 -187
  16. package/fesm2022/_icon-button-chunk.mjs.map +1 -1
  17. package/fesm2022/_icon-registry-chunk.mjs +350 -575
  18. package/fesm2022/_icon-registry-chunk.mjs.map +1 -1
  19. package/fesm2022/_input-harness-chunk.mjs +56 -107
  20. package/fesm2022/_input-harness-chunk.mjs.map +1 -1
  21. package/fesm2022/_input-value-accessor-chunk.mjs +0 -6
  22. package/fesm2022/_input-value-accessor-chunk.mjs.map +1 -1
  23. package/fesm2022/_internal-form-field-chunk.mjs +59 -19
  24. package/fesm2022/_internal-form-field-chunk.mjs.map +1 -1
  25. package/fesm2022/_line-chunk.mjs +83 -43
  26. package/fesm2022/_line-chunk.mjs.map +1 -1
  27. package/fesm2022/_option-chunk.mjs +348 -311
  28. package/fesm2022/_option-chunk.mjs.map +1 -1
  29. package/fesm2022/_option-harness-chunk.mjs +23 -39
  30. package/fesm2022/_option-harness-chunk.mjs.map +1 -1
  31. package/fesm2022/_option-module-chunk.mjs +36 -10
  32. package/fesm2022/_option-module-chunk.mjs.map +1 -1
  33. package/fesm2022/_pseudo-checkbox-chunk.mjs +79 -44
  34. package/fesm2022/_pseudo-checkbox-chunk.mjs.map +1 -1
  35. package/fesm2022/_pseudo-checkbox-module-chunk.mjs +36 -10
  36. package/fesm2022/_pseudo-checkbox-module-chunk.mjs.map +1 -1
  37. package/fesm2022/_public-api-chunk.mjs +71 -134
  38. package/fesm2022/_public-api-chunk.mjs.map +1 -1
  39. package/fesm2022/_ripple-chunk.mjs +504 -600
  40. package/fesm2022/_ripple-chunk.mjs.map +1 -1
  41. package/fesm2022/_ripple-loader-chunk.mjs +120 -138
  42. package/fesm2022/_ripple-loader-chunk.mjs.map +1 -1
  43. package/fesm2022/_ripple-module-chunk.mjs +36 -10
  44. package/fesm2022/_ripple-module-chunk.mjs.map +1 -1
  45. package/fesm2022/_structural-styles-chunk.mjs +37 -10
  46. package/fesm2022/_structural-styles-chunk.mjs.map +1 -1
  47. package/fesm2022/_tooltip-chunk.mjs +810 -888
  48. package/fesm2022/_tooltip-chunk.mjs.map +1 -1
  49. package/fesm2022/autocomplete-testing.mjs +62 -86
  50. package/fesm2022/autocomplete-testing.mjs.map +1 -1
  51. package/fesm2022/autocomplete.mjs +965 -1126
  52. package/fesm2022/autocomplete.mjs.map +1 -1
  53. package/fesm2022/badge-testing.mjs +38 -54
  54. package/fesm2022/badge-testing.mjs.map +1 -1
  55. package/fesm2022/badge.mjs +321 -272
  56. package/fesm2022/badge.mjs.map +1 -1
  57. package/fesm2022/bottom-sheet-testing.mjs +10 -24
  58. package/fesm2022/bottom-sheet-testing.mjs.map +1 -1
  59. package/fesm2022/bottom-sheet.mjs +349 -344
  60. package/fesm2022/bottom-sheet.mjs.map +1 -1
  61. package/fesm2022/button-testing.mjs +60 -94
  62. package/fesm2022/button-testing.mjs.map +1 -1
  63. package/fesm2022/button-toggle-testing.mjs +76 -125
  64. package/fesm2022/button-toggle-testing.mjs.map +1 -1
  65. package/fesm2022/button-toggle.mjs +752 -662
  66. package/fesm2022/button-toggle.mjs.map +1 -1
  67. package/fesm2022/button.mjs +263 -158
  68. package/fesm2022/button.mjs.map +1 -1
  69. package/fesm2022/card-testing.mjs +19 -33
  70. package/fesm2022/card-testing.mjs.map +1 -1
  71. package/fesm2022/card.mjs +576 -272
  72. package/fesm2022/card.mjs.map +1 -1
  73. package/fesm2022/checkbox-testing.mjs +71 -123
  74. package/fesm2022/checkbox-testing.mjs.map +1 -1
  75. package/fesm2022/checkbox.mjs +515 -477
  76. package/fesm2022/checkbox.mjs.map +1 -1
  77. package/fesm2022/chips-testing.mjs +201 -344
  78. package/fesm2022/chips-testing.mjs.map +1 -1
  79. package/fesm2022/chips.mjs +2552 -2289
  80. package/fesm2022/chips.mjs.map +1 -1
  81. package/fesm2022/core-testing.mjs +14 -28
  82. package/fesm2022/core-testing.mjs.map +1 -1
  83. package/fesm2022/core.mjs +357 -328
  84. package/fesm2022/core.mjs.map +1 -1
  85. package/fesm2022/datepicker-testing.mjs +15 -25
  86. package/fesm2022/datepicker-testing.mjs.map +1 -1
  87. package/fesm2022/datepicker.mjs +4826 -4563
  88. package/fesm2022/datepicker.mjs.map +1 -1
  89. package/fesm2022/dialog-testing.mjs +93 -129
  90. package/fesm2022/dialog-testing.mjs.map +1 -1
  91. package/fesm2022/dialog.mjs +810 -829
  92. package/fesm2022/dialog.mjs.map +1 -1
  93. package/fesm2022/divider-testing.mjs +10 -11
  94. package/fesm2022/divider-testing.mjs.map +1 -1
  95. package/fesm2022/divider.mjs +119 -43
  96. package/fesm2022/divider.mjs.map +1 -1
  97. package/fesm2022/expansion-testing.mjs +74 -130
  98. package/fesm2022/expansion-testing.mjs.map +1 -1
  99. package/fesm2022/expansion.mjs +703 -515
  100. package/fesm2022/expansion.mjs.map +1 -1
  101. package/fesm2022/form-field-testing-control.mjs +16 -33
  102. package/fesm2022/form-field-testing-control.mjs.map +1 -1
  103. package/fesm2022/form-field-testing.mjs +118 -179
  104. package/fesm2022/form-field-testing.mjs.map +1 -1
  105. package/fesm2022/form-field.mjs +36 -10
  106. package/fesm2022/form-field.mjs.map +1 -1
  107. package/fesm2022/grid-list-testing.mjs +65 -113
  108. package/fesm2022/grid-list-testing.mjs.map +1 -1
  109. package/fesm2022/grid-list.mjs +559 -494
  110. package/fesm2022/grid-list.mjs.map +1 -1
  111. package/fesm2022/icon-testing.mjs +148 -127
  112. package/fesm2022/icon-testing.mjs.map +1 -1
  113. package/fesm2022/icon.mjs +325 -351
  114. package/fesm2022/icon.mjs.map +1 -1
  115. package/fesm2022/input-testing.mjs +59 -99
  116. package/fesm2022/input-testing.mjs.map +1 -1
  117. package/fesm2022/input.mjs +457 -520
  118. package/fesm2022/input.mjs.map +1 -1
  119. package/fesm2022/list-testing.mjs +251 -434
  120. package/fesm2022/list-testing.mjs.map +1 -1
  121. package/fesm2022/list.mjs +1522 -1204
  122. package/fesm2022/list.mjs.map +1 -1
  123. package/fesm2022/material.mjs +0 -5
  124. package/fesm2022/material.mjs.map +1 -1
  125. package/fesm2022/menu-testing.mjs +159 -228
  126. package/fesm2022/menu-testing.mjs.map +1 -1
  127. package/fesm2022/menu.mjs +1338 -1343
  128. package/fesm2022/menu.mjs.map +1 -1
  129. package/fesm2022/paginator-testing.mjs +55 -79
  130. package/fesm2022/paginator-testing.mjs.map +1 -1
  131. package/fesm2022/paginator.mjs +381 -309
  132. package/fesm2022/paginator.mjs.map +1 -1
  133. package/fesm2022/progress-bar-testing.mjs +12 -21
  134. package/fesm2022/progress-bar-testing.mjs.map +1 -1
  135. package/fesm2022/progress-bar.mjs +224 -169
  136. package/fesm2022/progress-bar.mjs.map +1 -1
  137. package/fesm2022/progress-spinner-testing.mjs +13 -23
  138. package/fesm2022/progress-spinner-testing.mjs.map +1 -1
  139. package/fesm2022/progress-spinner.mjs +235 -160
  140. package/fesm2022/progress-spinner.mjs.map +1 -1
  141. package/fesm2022/radio-testing.mjs +133 -208
  142. package/fesm2022/radio-testing.mjs.map +1 -1
  143. package/fesm2022/radio.mjs +712 -679
  144. package/fesm2022/radio.mjs.map +1 -1
  145. package/fesm2022/select-testing.mjs +83 -117
  146. package/fesm2022/select-testing.mjs.map +1 -1
  147. package/fesm2022/select.mjs +1116 -1246
  148. package/fesm2022/select.mjs.map +1 -1
  149. package/fesm2022/sidenav-testing.mjs +54 -120
  150. package/fesm2022/sidenav-testing.mjs.map +1 -1
  151. package/fesm2022/sidenav.mjs +1078 -995
  152. package/fesm2022/sidenav.mjs.map +1 -1
  153. package/fesm2022/slide-toggle-testing.mjs +57 -92
  154. package/fesm2022/slide-toggle-testing.mjs.map +1 -1
  155. package/fesm2022/slide-toggle.mjs +369 -279
  156. package/fesm2022/slide-toggle.mjs.map +1 -1
  157. package/fesm2022/slider-testing.mjs +90 -138
  158. package/fesm2022/slider-testing.mjs.map +1 -1
  159. package/fesm2022/slider.mjs +1651 -1716
  160. package/fesm2022/slider.mjs.map +1 -1
  161. package/fesm2022/snack-bar-testing.mjs +40 -87
  162. package/fesm2022/snack-bar-testing.mjs.map +1 -1
  163. package/fesm2022/snack-bar.mjs +763 -714
  164. package/fesm2022/snack-bar.mjs.map +1 -1
  165. package/fesm2022/sort-testing.mjs +45 -66
  166. package/fesm2022/sort-testing.mjs.map +1 -1
  167. package/fesm2022/sort.mjs +419 -344
  168. package/fesm2022/sort.mjs.map +1 -1
  169. package/fesm2022/stepper-testing.mjs +78 -154
  170. package/fesm2022/stepper-testing.mjs.map +1 -1
  171. package/fesm2022/stepper.mjs +790 -498
  172. package/fesm2022/stepper.mjs.map +1 -1
  173. package/fesm2022/table-testing.mjs +120 -213
  174. package/fesm2022/table-testing.mjs.map +1 -1
  175. package/fesm2022/table.mjs +1026 -684
  176. package/fesm2022/table.mjs.map +1 -1
  177. package/fesm2022/tabs-testing.mjs +125 -197
  178. package/fesm2022/tabs-testing.mjs.map +1 -1
  179. package/fesm2022/tabs.mjs +2351 -2028
  180. package/fesm2022/tabs.mjs.map +1 -1
  181. package/fesm2022/timepicker-testing.mjs +113 -172
  182. package/fesm2022/timepicker-testing.mjs.map +1 -1
  183. package/fesm2022/timepicker.mjs +1019 -826
  184. package/fesm2022/timepicker.mjs.map +1 -1
  185. package/fesm2022/toolbar-testing.mjs +16 -27
  186. package/fesm2022/toolbar-testing.mjs.map +1 -1
  187. package/fesm2022/toolbar.mjs +163 -78
  188. package/fesm2022/toolbar.mjs.map +1 -1
  189. package/fesm2022/tooltip-testing.mjs +41 -52
  190. package/fesm2022/tooltip-testing.mjs.map +1 -1
  191. package/fesm2022/tooltip.mjs +36 -10
  192. package/fesm2022/tooltip.mjs.map +1 -1
  193. package/fesm2022/tree-testing.mjs +86 -162
  194. package/fesm2022/tree-testing.mjs.map +1 -1
  195. package/fesm2022/tree.mjs +638 -466
  196. package/fesm2022/tree.mjs.map +1 -1
  197. package/package.json +2 -2
  198. package/schematics/ng-add/index.js +1 -1
  199. package/types/expansion.d.ts +4 -2
  200. package/types/menu-testing.d.ts +2 -0
  201. package/types/select.d.ts +1 -1
  202. package/types/timepicker.d.ts +1 -0
@@ -7,36 +7,84 @@ import { BehaviorSubject, Subject, merge, of, combineLatest } from 'rxjs';
7
7
  import { _isNumberValue } from '@angular/cdk/coercion';
8
8
  import { map } from 'rxjs/operators';
9
9
 
10
- /**
11
- * Enables the recycle view repeater strategy, which reduces rendering latency. Not compatible with
12
- * tables that animate rows.
13
- */
14
10
  class MatRecycleRows {
15
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatRecycleRows, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatRecycleRows, isStandalone: true, selector: "mat-table[recycleRows], table[mat-table][recycleRows]", providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }], ngImport: i0 });
11
+ static ɵfac = i0.ɵɵngDeclareFactory({
12
+ minVersion: "12.0.0",
13
+ version: "20.2.0-next.2",
14
+ ngImport: i0,
15
+ type: MatRecycleRows,
16
+ deps: [],
17
+ target: i0.ɵɵFactoryTarget.Directive
18
+ });
19
+ static ɵdir = i0.ɵɵngDeclareDirective({
20
+ minVersion: "14.0.0",
21
+ version: "20.2.0-next.2",
22
+ type: MatRecycleRows,
23
+ isStandalone: true,
24
+ selector: "mat-table[recycleRows], table[mat-table][recycleRows]",
25
+ providers: [{
26
+ provide: _VIEW_REPEATER_STRATEGY,
27
+ useClass: _RecycleViewRepeaterStrategy
28
+ }],
29
+ ngImport: i0
30
+ });
17
31
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatRecycleRows, decorators: [{
19
- type: Directive,
20
- args: [{
21
- selector: 'mat-table[recycleRows], table[mat-table][recycleRows]',
22
- providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }],
23
- }]
24
- }] });
32
+ i0.ɵɵngDeclareClassMetadata({
33
+ minVersion: "12.0.0",
34
+ version: "20.2.0-next.2",
35
+ ngImport: i0,
36
+ type: MatRecycleRows,
37
+ decorators: [{
38
+ type: Directive,
39
+ args: [{
40
+ selector: 'mat-table[recycleRows], table[mat-table][recycleRows]',
41
+ providers: [{
42
+ provide: _VIEW_REPEATER_STRATEGY,
43
+ useClass: _RecycleViewRepeaterStrategy
44
+ }]
45
+ }]
46
+ }]
47
+ });
25
48
  class MatTable extends CdkTable {
26
- /** Overrides the sticky CSS class set by the `CdkTable`. */
27
- stickyCssClass = 'mat-mdc-table-sticky';
28
- /** Overrides the need to add position: sticky on every sticky cell element in `CdkTable`. */
29
- needsPositionStickyOnElement = false;
30
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTable, deps: null, target: i0.ɵɵFactoryTarget.Component });
31
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.0-next.2", type: MatTable, isStandalone: true, selector: "mat-table, table[mat-table]", host: { properties: { "class.mdc-table-fixed-layout": "fixedLayout" }, classAttribute: "mat-mdc-table mdc-data-table__table" }, providers: [
32
- { provide: CdkTable, useExisting: MatTable },
33
- { provide: CDK_TABLE, useExisting: MatTable },
34
- // TODO(michaeljamesparsons) Abstract the view repeater strategy to a directive API so this code
35
- // is only included in the build if used.
36
- { provide: _VIEW_REPEATER_STRATEGY, useClass: _DisposeViewRepeaterStrategy },
37
- // Prevent nested tables from seeing this table's StickyPositioningListener.
38
- { provide: STICKY_POSITIONING_LISTENER, useValue: null },
39
- ], exportAs: ["matTable"], usesInheritance: true, ngImport: i0, template: `
49
+ stickyCssClass = 'mat-mdc-table-sticky';
50
+ needsPositionStickyOnElement = false;
51
+ static ɵfac = i0.ɵɵngDeclareFactory({
52
+ minVersion: "12.0.0",
53
+ version: "20.2.0-next.2",
54
+ ngImport: i0,
55
+ type: MatTable,
56
+ deps: null,
57
+ target: i0.ɵɵFactoryTarget.Component
58
+ });
59
+ static ɵcmp = i0.ɵɵngDeclareComponent({
60
+ minVersion: "17.0.0",
61
+ version: "20.2.0-next.2",
62
+ type: MatTable,
63
+ isStandalone: true,
64
+ selector: "mat-table, table[mat-table]",
65
+ host: {
66
+ properties: {
67
+ "class.mdc-table-fixed-layout": "fixedLayout"
68
+ },
69
+ classAttribute: "mat-mdc-table mdc-data-table__table"
70
+ },
71
+ providers: [{
72
+ provide: CdkTable,
73
+ useExisting: MatTable
74
+ }, {
75
+ provide: CDK_TABLE,
76
+ useExisting: MatTable
77
+ }, {
78
+ provide: _VIEW_REPEATER_STRATEGY,
79
+ useClass: _DisposeViewRepeaterStrategy
80
+ }, {
81
+ provide: STICKY_POSITIONING_LISTENER,
82
+ useValue: null
83
+ }],
84
+ exportAs: ["matTable"],
85
+ usesInheritance: true,
86
+ ngImport: i0,
87
+ template: `
40
88
  <ng-content select="caption"/>
41
89
  <ng-content select="colgroup, col"/>
42
90
 
@@ -65,11 +113,41 @@ class MatTable extends CdkTable {
65
113
  <ng-container noDataRowOutlet/>
66
114
  <ng-container footerRowOutlet/>
67
115
  }
68
- `, isInline: true, styles: [".mat-mdc-table-sticky{position:sticky !important}mat-table{display:block}mat-header-row{min-height:var(--mat-table-header-container-height, 56px)}mat-row{min-height:var(--mat-table-row-item-container-height, 52px)}mat-footer-row{min-height:var(--mat-table-footer-container-height, 52px)}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{min-width:100%;border:0;border-spacing:0;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color, var(--mat-sys-surface))}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell{text-align:right}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-header-headline-font, var(--mat-sys-title-small-font, Roboto, sans-serif));line-height:var(--mat-table-header-headline-line-height, var(--mat-sys-title-small-line-height));font-size:var(--mat-table-header-headline-size, var(--mat-sys-title-small-size, 14px));font-weight:var(--mat-table-header-headline-weight, var(--mat-sys-title-small-weight, 500))}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-row-item-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-row-item-label-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-row-item-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-footer-supporting-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-footer-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-footer-supporting-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-footer-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mat-table-footer-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking, var(--mat-sys-title-small-tracking));font-weight:inherit;line-height:inherit;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mat-mdc-header-cell{text-align:right}.mdc-data-table__row:last-child>.mat-mdc-header-cell{border-bottom:none}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking));line-height:inherit}.mdc-data-table__row:last-child>.mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking))}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}\n"], dependencies: [{ kind: "directive", type: HeaderRowOutlet, selector: "[headerRowOutlet]" }, { kind: "directive", type: DataRowOutlet, selector: "[rowOutlet]" }, { kind: "directive", type: NoDataRowOutlet, selector: "[noDataRowOutlet]" }, { kind: "directive", type: FooterRowOutlet, selector: "[footerRowOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
116
+ `,
117
+ isInline: true,
118
+ styles: [".mat-mdc-table-sticky{position:sticky !important}mat-table{display:block}mat-header-row{min-height:var(--mat-table-header-container-height, 56px)}mat-row{min-height:var(--mat-table-row-item-container-height, 52px)}mat-footer-row{min-height:var(--mat-table-footer-container-height, 52px)}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{min-width:100%;border:0;border-spacing:0;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color, var(--mat-sys-surface))}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell{text-align:right}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-header-headline-font, var(--mat-sys-title-small-font, Roboto, sans-serif));line-height:var(--mat-table-header-headline-line-height, var(--mat-sys-title-small-line-height));font-size:var(--mat-table-header-headline-size, var(--mat-sys-title-small-size, 14px));font-weight:var(--mat-table-header-headline-weight, var(--mat-sys-title-small-weight, 500))}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-row-item-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-row-item-label-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-row-item-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-footer-supporting-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-footer-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-footer-supporting-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-footer-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mat-table-footer-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking, var(--mat-sys-title-small-tracking));font-weight:inherit;line-height:inherit;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mat-mdc-header-cell{text-align:right}.mdc-data-table__row:last-child>.mat-mdc-header-cell{border-bottom:none}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking));line-height:inherit}.mdc-data-table__row:last-child>.mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking))}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}\n"],
119
+ dependencies: [{
120
+ kind: "directive",
121
+ type: HeaderRowOutlet,
122
+ selector: "[headerRowOutlet]"
123
+ }, {
124
+ kind: "directive",
125
+ type: DataRowOutlet,
126
+ selector: "[rowOutlet]"
127
+ }, {
128
+ kind: "directive",
129
+ type: NoDataRowOutlet,
130
+ selector: "[noDataRowOutlet]"
131
+ }, {
132
+ kind: "directive",
133
+ type: FooterRowOutlet,
134
+ selector: "[footerRowOutlet]"
135
+ }],
136
+ changeDetection: i0.ChangeDetectionStrategy.Default,
137
+ encapsulation: i0.ViewEncapsulation.None
138
+ });
69
139
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTable, decorators: [{
71
- type: Component,
72
- args: [{ selector: 'mat-table, table[mat-table]', exportAs: 'matTable', template: `
140
+ i0.ɵɵngDeclareClassMetadata({
141
+ minVersion: "12.0.0",
142
+ version: "20.2.0-next.2",
143
+ ngImport: i0,
144
+ type: MatTable,
145
+ decorators: [{
146
+ type: Component,
147
+ args: [{
148
+ selector: 'mat-table, table[mat-table]',
149
+ exportAs: 'matTable',
150
+ template: `
73
151
  <ng-content select="caption"/>
74
152
  <ng-content select="colgroup, col"/>
75
153
 
@@ -98,310 +176,739 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2",
98
176
  <ng-container noDataRowOutlet/>
99
177
  <ng-container footerRowOutlet/>
100
178
  }
101
- `, host: {
102
- 'class': 'mat-mdc-table mdc-data-table__table',
103
- '[class.mdc-table-fixed-layout]': 'fixedLayout',
104
- }, providers: [
105
- { provide: CdkTable, useExisting: MatTable },
106
- { provide: CDK_TABLE, useExisting: MatTable },
107
- // TODO(michaeljamesparsons) Abstract the view repeater strategy to a directive API so this code
108
- // is only included in the build if used.
109
- { provide: _VIEW_REPEATER_STRATEGY, useClass: _DisposeViewRepeaterStrategy },
110
- // Prevent nested tables from seeing this table's StickyPositioningListener.
111
- { provide: STICKY_POSITIONING_LISTENER, useValue: null },
112
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, imports: [HeaderRowOutlet, DataRowOutlet, NoDataRowOutlet, FooterRowOutlet], styles: [".mat-mdc-table-sticky{position:sticky !important}mat-table{display:block}mat-header-row{min-height:var(--mat-table-header-container-height, 56px)}mat-row{min-height:var(--mat-table-row-item-container-height, 52px)}mat-footer-row{min-height:var(--mat-table-footer-container-height, 52px)}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{min-width:100%;border:0;border-spacing:0;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color, var(--mat-sys-surface))}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell{text-align:right}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-header-headline-font, var(--mat-sys-title-small-font, Roboto, sans-serif));line-height:var(--mat-table-header-headline-line-height, var(--mat-sys-title-small-line-height));font-size:var(--mat-table-header-headline-size, var(--mat-sys-title-small-size, 14px));font-weight:var(--mat-table-header-headline-weight, var(--mat-sys-title-small-weight, 500))}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-row-item-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-row-item-label-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-row-item-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-footer-supporting-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-footer-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-footer-supporting-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-footer-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mat-table-footer-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking, var(--mat-sys-title-small-tracking));font-weight:inherit;line-height:inherit;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mat-mdc-header-cell{text-align:right}.mdc-data-table__row:last-child>.mat-mdc-header-cell{border-bottom:none}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking));line-height:inherit}.mdc-data-table__row:last-child>.mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking))}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}\n"] }]
113
- }] });
179
+ `,
180
+ host: {
181
+ 'class': 'mat-mdc-table mdc-data-table__table',
182
+ '[class.mdc-table-fixed-layout]': 'fixedLayout'
183
+ },
184
+ providers: [{
185
+ provide: CdkTable,
186
+ useExisting: MatTable
187
+ }, {
188
+ provide: CDK_TABLE,
189
+ useExisting: MatTable
190
+ }, {
191
+ provide: _VIEW_REPEATER_STRATEGY,
192
+ useClass: _DisposeViewRepeaterStrategy
193
+ }, {
194
+ provide: STICKY_POSITIONING_LISTENER,
195
+ useValue: null
196
+ }],
197
+ encapsulation: ViewEncapsulation.None,
198
+ changeDetection: ChangeDetectionStrategy.Default,
199
+ imports: [HeaderRowOutlet, DataRowOutlet, NoDataRowOutlet, FooterRowOutlet],
200
+ styles: [".mat-mdc-table-sticky{position:sticky !important}mat-table{display:block}mat-header-row{min-height:var(--mat-table-header-container-height, 56px)}mat-row{min-height:var(--mat-table-row-item-container-height, 52px)}mat-footer-row{min-height:var(--mat-table-footer-container-height, 52px)}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{min-width:100%;border:0;border-spacing:0;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color, var(--mat-sys-surface))}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell{text-align:right}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-header-headline-font, var(--mat-sys-title-small-font, Roboto, sans-serif));line-height:var(--mat-table-header-headline-line-height, var(--mat-sys-title-small-line-height));font-size:var(--mat-table-header-headline-size, var(--mat-sys-title-small-size, 14px));font-weight:var(--mat-table-header-headline-weight, var(--mat-sys-title-small-weight, 500))}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-row-item-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-row-item-label-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-row-item-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-footer-supporting-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-footer-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-footer-supporting-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-footer-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mat-table-footer-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking, var(--mat-sys-title-small-tracking));font-weight:inherit;line-height:inherit;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mat-mdc-header-cell{text-align:right}.mdc-data-table__row:last-child>.mat-mdc-header-cell{border-bottom:none}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking));line-height:inherit}.mdc-data-table__row:last-child>.mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking))}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}\n"]
201
+ }]
202
+ }]
203
+ });
114
204
 
115
- /**
116
- * Cell definition for the mat-table.
117
- * Captures the template of a column's data row cell as well as cell-specific properties.
118
- */
119
205
  class MatCellDef extends CdkCellDef {
120
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatCellDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
121
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatCellDef, isStandalone: true, selector: "[matCellDef]", providers: [{ provide: CdkCellDef, useExisting: MatCellDef }], usesInheritance: true, ngImport: i0 });
206
+ static ɵfac = i0.ɵɵngDeclareFactory({
207
+ minVersion: "12.0.0",
208
+ version: "20.2.0-next.2",
209
+ ngImport: i0,
210
+ type: MatCellDef,
211
+ deps: null,
212
+ target: i0.ɵɵFactoryTarget.Directive
213
+ });
214
+ static ɵdir = i0.ɵɵngDeclareDirective({
215
+ minVersion: "14.0.0",
216
+ version: "20.2.0-next.2",
217
+ type: MatCellDef,
218
+ isStandalone: true,
219
+ selector: "[matCellDef]",
220
+ providers: [{
221
+ provide: CdkCellDef,
222
+ useExisting: MatCellDef
223
+ }],
224
+ usesInheritance: true,
225
+ ngImport: i0
226
+ });
122
227
  }
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatCellDef, decorators: [{
124
- type: Directive,
125
- args: [{
126
- selector: '[matCellDef]',
127
- providers: [{ provide: CdkCellDef, useExisting: MatCellDef }],
128
- }]
129
- }] });
130
- /**
131
- * Header cell definition for the mat-table.
132
- * Captures the template of a column's header cell and as well as cell-specific properties.
133
- */
228
+ i0.ɵɵngDeclareClassMetadata({
229
+ minVersion: "12.0.0",
230
+ version: "20.2.0-next.2",
231
+ ngImport: i0,
232
+ type: MatCellDef,
233
+ decorators: [{
234
+ type: Directive,
235
+ args: [{
236
+ selector: '[matCellDef]',
237
+ providers: [{
238
+ provide: CdkCellDef,
239
+ useExisting: MatCellDef
240
+ }]
241
+ }]
242
+ }]
243
+ });
134
244
  class MatHeaderCellDef extends CdkHeaderCellDef {
135
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatHeaderCellDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
136
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatHeaderCellDef, isStandalone: true, selector: "[matHeaderCellDef]", providers: [{ provide: CdkHeaderCellDef, useExisting: MatHeaderCellDef }], usesInheritance: true, ngImport: i0 });
245
+ static ɵfac = i0.ɵɵngDeclareFactory({
246
+ minVersion: "12.0.0",
247
+ version: "20.2.0-next.2",
248
+ ngImport: i0,
249
+ type: MatHeaderCellDef,
250
+ deps: null,
251
+ target: i0.ɵɵFactoryTarget.Directive
252
+ });
253
+ static ɵdir = i0.ɵɵngDeclareDirective({
254
+ minVersion: "14.0.0",
255
+ version: "20.2.0-next.2",
256
+ type: MatHeaderCellDef,
257
+ isStandalone: true,
258
+ selector: "[matHeaderCellDef]",
259
+ providers: [{
260
+ provide: CdkHeaderCellDef,
261
+ useExisting: MatHeaderCellDef
262
+ }],
263
+ usesInheritance: true,
264
+ ngImport: i0
265
+ });
137
266
  }
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatHeaderCellDef, decorators: [{
139
- type: Directive,
140
- args: [{
141
- selector: '[matHeaderCellDef]',
142
- providers: [{ provide: CdkHeaderCellDef, useExisting: MatHeaderCellDef }],
143
- }]
144
- }] });
145
- /**
146
- * Footer cell definition for the mat-table.
147
- * Captures the template of a column's footer cell and as well as cell-specific properties.
148
- */
267
+ i0.ɵɵngDeclareClassMetadata({
268
+ minVersion: "12.0.0",
269
+ version: "20.2.0-next.2",
270
+ ngImport: i0,
271
+ type: MatHeaderCellDef,
272
+ decorators: [{
273
+ type: Directive,
274
+ args: [{
275
+ selector: '[matHeaderCellDef]',
276
+ providers: [{
277
+ provide: CdkHeaderCellDef,
278
+ useExisting: MatHeaderCellDef
279
+ }]
280
+ }]
281
+ }]
282
+ });
149
283
  class MatFooterCellDef extends CdkFooterCellDef {
150
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatFooterCellDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
151
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatFooterCellDef, isStandalone: true, selector: "[matFooterCellDef]", providers: [{ provide: CdkFooterCellDef, useExisting: MatFooterCellDef }], usesInheritance: true, ngImport: i0 });
284
+ static ɵfac = i0.ɵɵngDeclareFactory({
285
+ minVersion: "12.0.0",
286
+ version: "20.2.0-next.2",
287
+ ngImport: i0,
288
+ type: MatFooterCellDef,
289
+ deps: null,
290
+ target: i0.ɵɵFactoryTarget.Directive
291
+ });
292
+ static ɵdir = i0.ɵɵngDeclareDirective({
293
+ minVersion: "14.0.0",
294
+ version: "20.2.0-next.2",
295
+ type: MatFooterCellDef,
296
+ isStandalone: true,
297
+ selector: "[matFooterCellDef]",
298
+ providers: [{
299
+ provide: CdkFooterCellDef,
300
+ useExisting: MatFooterCellDef
301
+ }],
302
+ usesInheritance: true,
303
+ ngImport: i0
304
+ });
152
305
  }
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatFooterCellDef, decorators: [{
154
- type: Directive,
155
- args: [{
156
- selector: '[matFooterCellDef]',
157
- providers: [{ provide: CdkFooterCellDef, useExisting: MatFooterCellDef }],
158
- }]
159
- }] });
160
- /**
161
- * Column definition for the mat-table.
162
- * Defines a set of cells available for a table column.
163
- */
306
+ i0.ɵɵngDeclareClassMetadata({
307
+ minVersion: "12.0.0",
308
+ version: "20.2.0-next.2",
309
+ ngImport: i0,
310
+ type: MatFooterCellDef,
311
+ decorators: [{
312
+ type: Directive,
313
+ args: [{
314
+ selector: '[matFooterCellDef]',
315
+ providers: [{
316
+ provide: CdkFooterCellDef,
317
+ useExisting: MatFooterCellDef
318
+ }]
319
+ }]
320
+ }]
321
+ });
164
322
  class MatColumnDef extends CdkColumnDef {
165
- /** Unique name for this column. */
166
- get name() {
167
- return this._name;
168
- }
169
- set name(name) {
170
- this._setNameInput(name);
171
- }
172
- /**
173
- * Add "mat-column-" prefix in addition to "cdk-column-" prefix.
174
- * In the future, this will only add "mat-column-" and columnCssClassName
175
- * will change from type string[] to string.
176
- * @docs-private
177
- */
178
- _updateColumnCssClassName() {
179
- super._updateColumnCssClassName();
180
- this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`);
181
- }
182
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatColumnDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
183
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatColumnDef, isStandalone: true, selector: "[matColumnDef]", inputs: { name: ["matColumnDef", "name"] }, providers: [
184
- { provide: CdkColumnDef, useExisting: MatColumnDef },
185
- { provide: 'MAT_SORT_HEADER_COLUMN_DEF', useExisting: MatColumnDef },
186
- ], usesInheritance: true, ngImport: i0 });
323
+ get name() {
324
+ return this._name;
325
+ }
326
+ set name(name) {
327
+ this._setNameInput(name);
328
+ }
329
+ _updateColumnCssClassName() {
330
+ super._updateColumnCssClassName();
331
+ this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`);
332
+ }
333
+ static ɵfac = i0.ɵɵngDeclareFactory({
334
+ minVersion: "12.0.0",
335
+ version: "20.2.0-next.2",
336
+ ngImport: i0,
337
+ type: MatColumnDef,
338
+ deps: null,
339
+ target: i0.ɵɵFactoryTarget.Directive
340
+ });
341
+ static ɵdir = i0.ɵɵngDeclareDirective({
342
+ minVersion: "14.0.0",
343
+ version: "20.2.0-next.2",
344
+ type: MatColumnDef,
345
+ isStandalone: true,
346
+ selector: "[matColumnDef]",
347
+ inputs: {
348
+ name: ["matColumnDef", "name"]
349
+ },
350
+ providers: [{
351
+ provide: CdkColumnDef,
352
+ useExisting: MatColumnDef
353
+ }, {
354
+ provide: 'MAT_SORT_HEADER_COLUMN_DEF',
355
+ useExisting: MatColumnDef
356
+ }],
357
+ usesInheritance: true,
358
+ ngImport: i0
359
+ });
187
360
  }
188
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatColumnDef, decorators: [{
189
- type: Directive,
190
- args: [{
191
- selector: '[matColumnDef]',
192
- providers: [
193
- { provide: CdkColumnDef, useExisting: MatColumnDef },
194
- { provide: 'MAT_SORT_HEADER_COLUMN_DEF', useExisting: MatColumnDef },
195
- ],
196
- }]
197
- }], propDecorators: { name: [{
198
- type: Input,
199
- args: ['matColumnDef']
200
- }] } });
201
- /** Header cell template container that adds the right classes and role. */
361
+ i0.ɵɵngDeclareClassMetadata({
362
+ minVersion: "12.0.0",
363
+ version: "20.2.0-next.2",
364
+ ngImport: i0,
365
+ type: MatColumnDef,
366
+ decorators: [{
367
+ type: Directive,
368
+ args: [{
369
+ selector: '[matColumnDef]',
370
+ providers: [{
371
+ provide: CdkColumnDef,
372
+ useExisting: MatColumnDef
373
+ }, {
374
+ provide: 'MAT_SORT_HEADER_COLUMN_DEF',
375
+ useExisting: MatColumnDef
376
+ }]
377
+ }]
378
+ }],
379
+ propDecorators: {
380
+ name: [{
381
+ type: Input,
382
+ args: ['matColumnDef']
383
+ }]
384
+ }
385
+ });
202
386
  class MatHeaderCell extends CdkHeaderCell {
203
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatHeaderCell, deps: null, target: i0.ɵɵFactoryTarget.Directive });
204
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatHeaderCell, isStandalone: true, selector: "mat-header-cell, th[mat-header-cell]", host: { attributes: { "role": "columnheader" }, classAttribute: "mat-mdc-header-cell mdc-data-table__header-cell" }, usesInheritance: true, ngImport: i0 });
387
+ static ɵfac = i0.ɵɵngDeclareFactory({
388
+ minVersion: "12.0.0",
389
+ version: "20.2.0-next.2",
390
+ ngImport: i0,
391
+ type: MatHeaderCell,
392
+ deps: null,
393
+ target: i0.ɵɵFactoryTarget.Directive
394
+ });
395
+ static ɵdir = i0.ɵɵngDeclareDirective({
396
+ minVersion: "14.0.0",
397
+ version: "20.2.0-next.2",
398
+ type: MatHeaderCell,
399
+ isStandalone: true,
400
+ selector: "mat-header-cell, th[mat-header-cell]",
401
+ host: {
402
+ attributes: {
403
+ "role": "columnheader"
404
+ },
405
+ classAttribute: "mat-mdc-header-cell mdc-data-table__header-cell"
406
+ },
407
+ usesInheritance: true,
408
+ ngImport: i0
409
+ });
205
410
  }
206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatHeaderCell, decorators: [{
207
- type: Directive,
208
- args: [{
209
- selector: 'mat-header-cell, th[mat-header-cell]',
210
- host: {
211
- 'class': 'mat-mdc-header-cell mdc-data-table__header-cell',
212
- 'role': 'columnheader',
213
- },
214
- }]
215
- }] });
216
- /** Footer cell template container that adds the right classes and role. */
411
+ i0.ɵɵngDeclareClassMetadata({
412
+ minVersion: "12.0.0",
413
+ version: "20.2.0-next.2",
414
+ ngImport: i0,
415
+ type: MatHeaderCell,
416
+ decorators: [{
417
+ type: Directive,
418
+ args: [{
419
+ selector: 'mat-header-cell, th[mat-header-cell]',
420
+ host: {
421
+ 'class': 'mat-mdc-header-cell mdc-data-table__header-cell',
422
+ 'role': 'columnheader'
423
+ }
424
+ }]
425
+ }]
426
+ });
217
427
  class MatFooterCell extends CdkFooterCell {
218
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatFooterCell, deps: null, target: i0.ɵɵFactoryTarget.Directive });
219
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatFooterCell, isStandalone: true, selector: "mat-footer-cell, td[mat-footer-cell]", host: { classAttribute: "mat-mdc-footer-cell mdc-data-table__cell" }, usesInheritance: true, ngImport: i0 });
428
+ static ɵfac = i0.ɵɵngDeclareFactory({
429
+ minVersion: "12.0.0",
430
+ version: "20.2.0-next.2",
431
+ ngImport: i0,
432
+ type: MatFooterCell,
433
+ deps: null,
434
+ target: i0.ɵɵFactoryTarget.Directive
435
+ });
436
+ static ɵdir = i0.ɵɵngDeclareDirective({
437
+ minVersion: "14.0.0",
438
+ version: "20.2.0-next.2",
439
+ type: MatFooterCell,
440
+ isStandalone: true,
441
+ selector: "mat-footer-cell, td[mat-footer-cell]",
442
+ host: {
443
+ classAttribute: "mat-mdc-footer-cell mdc-data-table__cell"
444
+ },
445
+ usesInheritance: true,
446
+ ngImport: i0
447
+ });
220
448
  }
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatFooterCell, decorators: [{
222
- type: Directive,
223
- args: [{
224
- selector: 'mat-footer-cell, td[mat-footer-cell]',
225
- host: {
226
- 'class': 'mat-mdc-footer-cell mdc-data-table__cell',
227
- },
228
- }]
229
- }] });
230
- /** Cell template container that adds the right classes and role. */
449
+ i0.ɵɵngDeclareClassMetadata({
450
+ minVersion: "12.0.0",
451
+ version: "20.2.0-next.2",
452
+ ngImport: i0,
453
+ type: MatFooterCell,
454
+ decorators: [{
455
+ type: Directive,
456
+ args: [{
457
+ selector: 'mat-footer-cell, td[mat-footer-cell]',
458
+ host: {
459
+ 'class': 'mat-mdc-footer-cell mdc-data-table__cell'
460
+ }
461
+ }]
462
+ }]
463
+ });
231
464
  class MatCell extends CdkCell {
232
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatCell, deps: null, target: i0.ɵɵFactoryTarget.Directive });
233
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatCell, isStandalone: true, selector: "mat-cell, td[mat-cell]", host: { classAttribute: "mat-mdc-cell mdc-data-table__cell" }, usesInheritance: true, ngImport: i0 });
465
+ static ɵfac = i0.ɵɵngDeclareFactory({
466
+ minVersion: "12.0.0",
467
+ version: "20.2.0-next.2",
468
+ ngImport: i0,
469
+ type: MatCell,
470
+ deps: null,
471
+ target: i0.ɵɵFactoryTarget.Directive
472
+ });
473
+ static ɵdir = i0.ɵɵngDeclareDirective({
474
+ minVersion: "14.0.0",
475
+ version: "20.2.0-next.2",
476
+ type: MatCell,
477
+ isStandalone: true,
478
+ selector: "mat-cell, td[mat-cell]",
479
+ host: {
480
+ classAttribute: "mat-mdc-cell mdc-data-table__cell"
481
+ },
482
+ usesInheritance: true,
483
+ ngImport: i0
484
+ });
234
485
  }
235
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatCell, decorators: [{
236
- type: Directive,
237
- args: [{
238
- selector: 'mat-cell, td[mat-cell]',
239
- host: {
240
- 'class': 'mat-mdc-cell mdc-data-table__cell',
241
- },
242
- }]
243
- }] });
486
+ i0.ɵɵngDeclareClassMetadata({
487
+ minVersion: "12.0.0",
488
+ version: "20.2.0-next.2",
489
+ ngImport: i0,
490
+ type: MatCell,
491
+ decorators: [{
492
+ type: Directive,
493
+ args: [{
494
+ selector: 'mat-cell, td[mat-cell]',
495
+ host: {
496
+ 'class': 'mat-mdc-cell mdc-data-table__cell'
497
+ }
498
+ }]
499
+ }]
500
+ });
244
501
 
245
- // We can't reuse `CDK_ROW_TEMPLATE` because it's incompatible with local compilation mode.
246
502
  const ROW_TEMPLATE = `<ng-container cdkCellOutlet></ng-container>`;
247
- /**
248
- * Header row definition for the mat-table.
249
- * Captures the header row's template and other header properties such as the columns to display.
250
- */
251
503
  class MatHeaderRowDef extends CdkHeaderRowDef {
252
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatHeaderRowDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
253
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.2.0-next.2", type: MatHeaderRowDef, isStandalone: true, selector: "[matHeaderRowDef]", inputs: { columns: ["matHeaderRowDef", "columns"], sticky: ["matHeaderRowDefSticky", "sticky", booleanAttribute] }, providers: [{ provide: CdkHeaderRowDef, useExisting: MatHeaderRowDef }], usesInheritance: true, ngImport: i0 });
504
+ static ɵfac = i0.ɵɵngDeclareFactory({
505
+ minVersion: "12.0.0",
506
+ version: "20.2.0-next.2",
507
+ ngImport: i0,
508
+ type: MatHeaderRowDef,
509
+ deps: null,
510
+ target: i0.ɵɵFactoryTarget.Directive
511
+ });
512
+ static ɵdir = i0.ɵɵngDeclareDirective({
513
+ minVersion: "16.1.0",
514
+ version: "20.2.0-next.2",
515
+ type: MatHeaderRowDef,
516
+ isStandalone: true,
517
+ selector: "[matHeaderRowDef]",
518
+ inputs: {
519
+ columns: ["matHeaderRowDef", "columns"],
520
+ sticky: ["matHeaderRowDefSticky", "sticky", booleanAttribute]
521
+ },
522
+ providers: [{
523
+ provide: CdkHeaderRowDef,
524
+ useExisting: MatHeaderRowDef
525
+ }],
526
+ usesInheritance: true,
527
+ ngImport: i0
528
+ });
254
529
  }
255
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatHeaderRowDef, decorators: [{
256
- type: Directive,
257
- args: [{
258
- selector: '[matHeaderRowDef]',
259
- providers: [{ provide: CdkHeaderRowDef, useExisting: MatHeaderRowDef }],
260
- inputs: [
261
- { name: 'columns', alias: 'matHeaderRowDef' },
262
- { name: 'sticky', alias: 'matHeaderRowDefSticky', transform: booleanAttribute },
263
- ],
264
- }]
265
- }] });
266
- /**
267
- * Footer row definition for the mat-table.
268
- * Captures the footer row's template and other footer properties such as the columns to display.
269
- */
530
+ i0.ɵɵngDeclareClassMetadata({
531
+ minVersion: "12.0.0",
532
+ version: "20.2.0-next.2",
533
+ ngImport: i0,
534
+ type: MatHeaderRowDef,
535
+ decorators: [{
536
+ type: Directive,
537
+ args: [{
538
+ selector: '[matHeaderRowDef]',
539
+ providers: [{
540
+ provide: CdkHeaderRowDef,
541
+ useExisting: MatHeaderRowDef
542
+ }],
543
+ inputs: [{
544
+ name: 'columns',
545
+ alias: 'matHeaderRowDef'
546
+ }, {
547
+ name: 'sticky',
548
+ alias: 'matHeaderRowDefSticky',
549
+ transform: booleanAttribute
550
+ }]
551
+ }]
552
+ }]
553
+ });
270
554
  class MatFooterRowDef extends CdkFooterRowDef {
271
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatFooterRowDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
272
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.2.0-next.2", type: MatFooterRowDef, isStandalone: true, selector: "[matFooterRowDef]", inputs: { columns: ["matFooterRowDef", "columns"], sticky: ["matFooterRowDefSticky", "sticky", booleanAttribute] }, providers: [{ provide: CdkFooterRowDef, useExisting: MatFooterRowDef }], usesInheritance: true, ngImport: i0 });
555
+ static ɵfac = i0.ɵɵngDeclareFactory({
556
+ minVersion: "12.0.0",
557
+ version: "20.2.0-next.2",
558
+ ngImport: i0,
559
+ type: MatFooterRowDef,
560
+ deps: null,
561
+ target: i0.ɵɵFactoryTarget.Directive
562
+ });
563
+ static ɵdir = i0.ɵɵngDeclareDirective({
564
+ minVersion: "16.1.0",
565
+ version: "20.2.0-next.2",
566
+ type: MatFooterRowDef,
567
+ isStandalone: true,
568
+ selector: "[matFooterRowDef]",
569
+ inputs: {
570
+ columns: ["matFooterRowDef", "columns"],
571
+ sticky: ["matFooterRowDefSticky", "sticky", booleanAttribute]
572
+ },
573
+ providers: [{
574
+ provide: CdkFooterRowDef,
575
+ useExisting: MatFooterRowDef
576
+ }],
577
+ usesInheritance: true,
578
+ ngImport: i0
579
+ });
273
580
  }
274
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatFooterRowDef, decorators: [{
275
- type: Directive,
276
- args: [{
277
- selector: '[matFooterRowDef]',
278
- providers: [{ provide: CdkFooterRowDef, useExisting: MatFooterRowDef }],
279
- inputs: [
280
- { name: 'columns', alias: 'matFooterRowDef' },
281
- { name: 'sticky', alias: 'matFooterRowDefSticky', transform: booleanAttribute },
282
- ],
283
- }]
284
- }] });
285
- /**
286
- * Data row definition for the mat-table.
287
- * Captures the data row's template and other properties such as the columns to display and
288
- * a when predicate that describes when this row should be used.
289
- */
581
+ i0.ɵɵngDeclareClassMetadata({
582
+ minVersion: "12.0.0",
583
+ version: "20.2.0-next.2",
584
+ ngImport: i0,
585
+ type: MatFooterRowDef,
586
+ decorators: [{
587
+ type: Directive,
588
+ args: [{
589
+ selector: '[matFooterRowDef]',
590
+ providers: [{
591
+ provide: CdkFooterRowDef,
592
+ useExisting: MatFooterRowDef
593
+ }],
594
+ inputs: [{
595
+ name: 'columns',
596
+ alias: 'matFooterRowDef'
597
+ }, {
598
+ name: 'sticky',
599
+ alias: 'matFooterRowDefSticky',
600
+ transform: booleanAttribute
601
+ }]
602
+ }]
603
+ }]
604
+ });
290
605
  class MatRowDef extends CdkRowDef {
291
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatRowDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
292
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatRowDef, isStandalone: true, selector: "[matRowDef]", inputs: { columns: ["matRowDefColumns", "columns"], when: ["matRowDefWhen", "when"] }, providers: [{ provide: CdkRowDef, useExisting: MatRowDef }], usesInheritance: true, ngImport: i0 });
606
+ static ɵfac = i0.ɵɵngDeclareFactory({
607
+ minVersion: "12.0.0",
608
+ version: "20.2.0-next.2",
609
+ ngImport: i0,
610
+ type: MatRowDef,
611
+ deps: null,
612
+ target: i0.ɵɵFactoryTarget.Directive
613
+ });
614
+ static ɵdir = i0.ɵɵngDeclareDirective({
615
+ minVersion: "14.0.0",
616
+ version: "20.2.0-next.2",
617
+ type: MatRowDef,
618
+ isStandalone: true,
619
+ selector: "[matRowDef]",
620
+ inputs: {
621
+ columns: ["matRowDefColumns", "columns"],
622
+ when: ["matRowDefWhen", "when"]
623
+ },
624
+ providers: [{
625
+ provide: CdkRowDef,
626
+ useExisting: MatRowDef
627
+ }],
628
+ usesInheritance: true,
629
+ ngImport: i0
630
+ });
293
631
  }
294
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatRowDef, decorators: [{
295
- type: Directive,
296
- args: [{
297
- selector: '[matRowDef]',
298
- providers: [{ provide: CdkRowDef, useExisting: MatRowDef }],
299
- inputs: [
300
- { name: 'columns', alias: 'matRowDefColumns' },
301
- { name: 'when', alias: 'matRowDefWhen' },
302
- ],
303
- }]
304
- }] });
305
- /** Header template container that contains the cell outlet. Adds the right class and role. */
632
+ i0.ɵɵngDeclareClassMetadata({
633
+ minVersion: "12.0.0",
634
+ version: "20.2.0-next.2",
635
+ ngImport: i0,
636
+ type: MatRowDef,
637
+ decorators: [{
638
+ type: Directive,
639
+ args: [{
640
+ selector: '[matRowDef]',
641
+ providers: [{
642
+ provide: CdkRowDef,
643
+ useExisting: MatRowDef
644
+ }],
645
+ inputs: [{
646
+ name: 'columns',
647
+ alias: 'matRowDefColumns'
648
+ }, {
649
+ name: 'when',
650
+ alias: 'matRowDefWhen'
651
+ }]
652
+ }]
653
+ }]
654
+ });
306
655
  class MatHeaderRow extends CdkHeaderRow {
307
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatHeaderRow, deps: null, target: i0.ɵɵFactoryTarget.Component });
308
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatHeaderRow, isStandalone: true, selector: "mat-header-row, tr[mat-header-row]", host: { attributes: { "role": "row" }, classAttribute: "mat-mdc-header-row mdc-data-table__header-row" }, providers: [{ provide: CdkHeaderRow, useExisting: MatHeaderRow }], exportAs: ["matHeaderRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "directive", type: CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
656
+ static ɵfac = i0.ɵɵngDeclareFactory({
657
+ minVersion: "12.0.0",
658
+ version: "20.2.0-next.2",
659
+ ngImport: i0,
660
+ type: MatHeaderRow,
661
+ deps: null,
662
+ target: i0.ɵɵFactoryTarget.Component
663
+ });
664
+ static ɵcmp = i0.ɵɵngDeclareComponent({
665
+ minVersion: "14.0.0",
666
+ version: "20.2.0-next.2",
667
+ type: MatHeaderRow,
668
+ isStandalone: true,
669
+ selector: "mat-header-row, tr[mat-header-row]",
670
+ host: {
671
+ attributes: {
672
+ "role": "row"
673
+ },
674
+ classAttribute: "mat-mdc-header-row mdc-data-table__header-row"
675
+ },
676
+ providers: [{
677
+ provide: CdkHeaderRow,
678
+ useExisting: MatHeaderRow
679
+ }],
680
+ exportAs: ["matHeaderRow"],
681
+ usesInheritance: true,
682
+ ngImport: i0,
683
+ template: "<ng-container cdkCellOutlet></ng-container>",
684
+ isInline: true,
685
+ dependencies: [{
686
+ kind: "directive",
687
+ type: CdkCellOutlet,
688
+ selector: "[cdkCellOutlet]"
689
+ }],
690
+ changeDetection: i0.ChangeDetectionStrategy.Default,
691
+ encapsulation: i0.ViewEncapsulation.None
692
+ });
309
693
  }
310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatHeaderRow, decorators: [{
311
- type: Component,
312
- args: [{
313
- selector: 'mat-header-row, tr[mat-header-row]',
314
- template: ROW_TEMPLATE,
315
- host: {
316
- 'class': 'mat-mdc-header-row mdc-data-table__header-row',
317
- 'role': 'row',
318
- },
319
- // See note on CdkTable for explanation on why this uses the default change detection strategy.
320
- // tslint:disable-next-line:validate-decorators
321
- changeDetection: ChangeDetectionStrategy.Default,
322
- encapsulation: ViewEncapsulation.None,
323
- exportAs: 'matHeaderRow',
324
- providers: [{ provide: CdkHeaderRow, useExisting: MatHeaderRow }],
325
- imports: [CdkCellOutlet],
326
- }]
327
- }] });
328
- /** Footer template container that contains the cell outlet. Adds the right class and role. */
694
+ i0.ɵɵngDeclareClassMetadata({
695
+ minVersion: "12.0.0",
696
+ version: "20.2.0-next.2",
697
+ ngImport: i0,
698
+ type: MatHeaderRow,
699
+ decorators: [{
700
+ type: Component,
701
+ args: [{
702
+ selector: 'mat-header-row, tr[mat-header-row]',
703
+ template: ROW_TEMPLATE,
704
+ host: {
705
+ 'class': 'mat-mdc-header-row mdc-data-table__header-row',
706
+ 'role': 'row'
707
+ },
708
+ changeDetection: ChangeDetectionStrategy.Default,
709
+ encapsulation: ViewEncapsulation.None,
710
+ exportAs: 'matHeaderRow',
711
+ providers: [{
712
+ provide: CdkHeaderRow,
713
+ useExisting: MatHeaderRow
714
+ }],
715
+ imports: [CdkCellOutlet]
716
+ }]
717
+ }]
718
+ });
329
719
  class MatFooterRow extends CdkFooterRow {
330
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatFooterRow, deps: null, target: i0.ɵɵFactoryTarget.Component });
331
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatFooterRow, isStandalone: true, selector: "mat-footer-row, tr[mat-footer-row]", host: { attributes: { "role": "row" }, classAttribute: "mat-mdc-footer-row mdc-data-table__row" }, providers: [{ provide: CdkFooterRow, useExisting: MatFooterRow }], exportAs: ["matFooterRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "directive", type: CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
720
+ static ɵfac = i0.ɵɵngDeclareFactory({
721
+ minVersion: "12.0.0",
722
+ version: "20.2.0-next.2",
723
+ ngImport: i0,
724
+ type: MatFooterRow,
725
+ deps: null,
726
+ target: i0.ɵɵFactoryTarget.Component
727
+ });
728
+ static ɵcmp = i0.ɵɵngDeclareComponent({
729
+ minVersion: "14.0.0",
730
+ version: "20.2.0-next.2",
731
+ type: MatFooterRow,
732
+ isStandalone: true,
733
+ selector: "mat-footer-row, tr[mat-footer-row]",
734
+ host: {
735
+ attributes: {
736
+ "role": "row"
737
+ },
738
+ classAttribute: "mat-mdc-footer-row mdc-data-table__row"
739
+ },
740
+ providers: [{
741
+ provide: CdkFooterRow,
742
+ useExisting: MatFooterRow
743
+ }],
744
+ exportAs: ["matFooterRow"],
745
+ usesInheritance: true,
746
+ ngImport: i0,
747
+ template: "<ng-container cdkCellOutlet></ng-container>",
748
+ isInline: true,
749
+ dependencies: [{
750
+ kind: "directive",
751
+ type: CdkCellOutlet,
752
+ selector: "[cdkCellOutlet]"
753
+ }],
754
+ changeDetection: i0.ChangeDetectionStrategy.Default,
755
+ encapsulation: i0.ViewEncapsulation.None
756
+ });
332
757
  }
333
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatFooterRow, decorators: [{
334
- type: Component,
335
- args: [{
336
- selector: 'mat-footer-row, tr[mat-footer-row]',
337
- template: ROW_TEMPLATE,
338
- host: {
339
- 'class': 'mat-mdc-footer-row mdc-data-table__row',
340
- 'role': 'row',
341
- },
342
- // See note on CdkTable for explanation on why this uses the default change detection strategy.
343
- // tslint:disable-next-line:validate-decorators
344
- changeDetection: ChangeDetectionStrategy.Default,
345
- encapsulation: ViewEncapsulation.None,
346
- exportAs: 'matFooterRow',
347
- providers: [{ provide: CdkFooterRow, useExisting: MatFooterRow }],
348
- imports: [CdkCellOutlet],
349
- }]
350
- }] });
351
- /** Data row template container that contains the cell outlet. Adds the right class and role. */
758
+ i0.ɵɵngDeclareClassMetadata({
759
+ minVersion: "12.0.0",
760
+ version: "20.2.0-next.2",
761
+ ngImport: i0,
762
+ type: MatFooterRow,
763
+ decorators: [{
764
+ type: Component,
765
+ args: [{
766
+ selector: 'mat-footer-row, tr[mat-footer-row]',
767
+ template: ROW_TEMPLATE,
768
+ host: {
769
+ 'class': 'mat-mdc-footer-row mdc-data-table__row',
770
+ 'role': 'row'
771
+ },
772
+ changeDetection: ChangeDetectionStrategy.Default,
773
+ encapsulation: ViewEncapsulation.None,
774
+ exportAs: 'matFooterRow',
775
+ providers: [{
776
+ provide: CdkFooterRow,
777
+ useExisting: MatFooterRow
778
+ }],
779
+ imports: [CdkCellOutlet]
780
+ }]
781
+ }]
782
+ });
352
783
  class MatRow extends CdkRow {
353
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatRow, deps: null, target: i0.ɵɵFactoryTarget.Component });
354
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatRow, isStandalone: true, selector: "mat-row, tr[mat-row]", host: { attributes: { "role": "row" }, classAttribute: "mat-mdc-row mdc-data-table__row" }, providers: [{ provide: CdkRow, useExisting: MatRow }], exportAs: ["matRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "directive", type: CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
784
+ static ɵfac = i0.ɵɵngDeclareFactory({
785
+ minVersion: "12.0.0",
786
+ version: "20.2.0-next.2",
787
+ ngImport: i0,
788
+ type: MatRow,
789
+ deps: null,
790
+ target: i0.ɵɵFactoryTarget.Component
791
+ });
792
+ static ɵcmp = i0.ɵɵngDeclareComponent({
793
+ minVersion: "14.0.0",
794
+ version: "20.2.0-next.2",
795
+ type: MatRow,
796
+ isStandalone: true,
797
+ selector: "mat-row, tr[mat-row]",
798
+ host: {
799
+ attributes: {
800
+ "role": "row"
801
+ },
802
+ classAttribute: "mat-mdc-row mdc-data-table__row"
803
+ },
804
+ providers: [{
805
+ provide: CdkRow,
806
+ useExisting: MatRow
807
+ }],
808
+ exportAs: ["matRow"],
809
+ usesInheritance: true,
810
+ ngImport: i0,
811
+ template: "<ng-container cdkCellOutlet></ng-container>",
812
+ isInline: true,
813
+ dependencies: [{
814
+ kind: "directive",
815
+ type: CdkCellOutlet,
816
+ selector: "[cdkCellOutlet]"
817
+ }],
818
+ changeDetection: i0.ChangeDetectionStrategy.Default,
819
+ encapsulation: i0.ViewEncapsulation.None
820
+ });
355
821
  }
356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatRow, decorators: [{
357
- type: Component,
358
- args: [{
359
- selector: 'mat-row, tr[mat-row]',
360
- template: ROW_TEMPLATE,
361
- host: {
362
- 'class': 'mat-mdc-row mdc-data-table__row',
363
- 'role': 'row',
364
- },
365
- // See note on CdkTable for explanation on why this uses the default change detection strategy.
366
- // tslint:disable-next-line:validate-decorators
367
- changeDetection: ChangeDetectionStrategy.Default,
368
- encapsulation: ViewEncapsulation.None,
369
- exportAs: 'matRow',
370
- providers: [{ provide: CdkRow, useExisting: MatRow }],
371
- imports: [CdkCellOutlet],
372
- }]
373
- }] });
374
- /** Row that can be used to display a message when no data is shown in the table. */
822
+ i0.ɵɵngDeclareClassMetadata({
823
+ minVersion: "12.0.0",
824
+ version: "20.2.0-next.2",
825
+ ngImport: i0,
826
+ type: MatRow,
827
+ decorators: [{
828
+ type: Component,
829
+ args: [{
830
+ selector: 'mat-row, tr[mat-row]',
831
+ template: ROW_TEMPLATE,
832
+ host: {
833
+ 'class': 'mat-mdc-row mdc-data-table__row',
834
+ 'role': 'row'
835
+ },
836
+ changeDetection: ChangeDetectionStrategy.Default,
837
+ encapsulation: ViewEncapsulation.None,
838
+ exportAs: 'matRow',
839
+ providers: [{
840
+ provide: CdkRow,
841
+ useExisting: MatRow
842
+ }],
843
+ imports: [CdkCellOutlet]
844
+ }]
845
+ }]
846
+ });
375
847
  class MatNoDataRow extends CdkNoDataRow {
376
- _cellSelector = 'td, mat-cell, [mat-cell], .mat-cell';
377
- constructor() {
378
- super();
379
- this._contentClassNames.push('mat-mdc-no-data-row', 'mat-mdc-row', 'mdc-data-table__row');
380
- this._cellClassNames.push('mat-mdc-cell', 'mdc-data-table__cell', 'mat-no-data-cell');
381
- }
382
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatNoDataRow, deps: [], target: i0.ɵɵFactoryTarget.Directive });
383
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatNoDataRow, isStandalone: true, selector: "ng-template[matNoDataRow]", providers: [{ provide: CdkNoDataRow, useExisting: MatNoDataRow }], usesInheritance: true, ngImport: i0 });
848
+ _cellSelector = 'td, mat-cell, [mat-cell], .mat-cell';
849
+ constructor() {
850
+ super();
851
+ this._contentClassNames.push('mat-mdc-no-data-row', 'mat-mdc-row', 'mdc-data-table__row');
852
+ this._cellClassNames.push('mat-mdc-cell', 'mdc-data-table__cell', 'mat-no-data-cell');
853
+ }
854
+ static ɵfac = i0.ɵɵngDeclareFactory({
855
+ minVersion: "12.0.0",
856
+ version: "20.2.0-next.2",
857
+ ngImport: i0,
858
+ type: MatNoDataRow,
859
+ deps: [],
860
+ target: i0.ɵɵFactoryTarget.Directive
861
+ });
862
+ static ɵdir = i0.ɵɵngDeclareDirective({
863
+ minVersion: "14.0.0",
864
+ version: "20.2.0-next.2",
865
+ type: MatNoDataRow,
866
+ isStandalone: true,
867
+ selector: "ng-template[matNoDataRow]",
868
+ providers: [{
869
+ provide: CdkNoDataRow,
870
+ useExisting: MatNoDataRow
871
+ }],
872
+ usesInheritance: true,
873
+ ngImport: i0
874
+ });
384
875
  }
385
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatNoDataRow, decorators: [{
386
- type: Directive,
387
- args: [{
388
- selector: 'ng-template[matNoDataRow]',
389
- providers: [{ provide: CdkNoDataRow, useExisting: MatNoDataRow }],
390
- }]
391
- }], ctorParameters: () => [] });
876
+ i0.ɵɵngDeclareClassMetadata({
877
+ minVersion: "12.0.0",
878
+ version: "20.2.0-next.2",
879
+ ngImport: i0,
880
+ type: MatNoDataRow,
881
+ decorators: [{
882
+ type: Directive,
883
+ args: [{
884
+ selector: 'ng-template[matNoDataRow]',
885
+ providers: [{
886
+ provide: CdkNoDataRow,
887
+ useExisting: MatNoDataRow
888
+ }]
889
+ }]
890
+ }],
891
+ ctorParameters: () => []
892
+ });
392
893
 
393
- /**
394
- * Column that simply shows text content for the header and row cells. Assumes that the table
395
- * is using the native table implementation (`<table>`).
396
- *
397
- * By default, the name of this column will be the header text and data property accessor.
398
- * The header text can be overridden with the `headerText` input. Cell values can be overridden with
399
- * the `dataAccessor` input. Change the text justification to the start or end using the `justify`
400
- * input.
401
- */
402
894
  class MatTextColumn extends CdkTextColumn {
403
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTextColumn, deps: null, target: i0.ɵɵFactoryTarget.Component });
404
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.0-next.2", type: MatTextColumn, isStandalone: true, selector: "mat-text-column", usesInheritance: true, ngImport: i0, template: `
895
+ static ɵfac = i0.ɵɵngDeclareFactory({
896
+ minVersion: "12.0.0",
897
+ version: "20.2.0-next.2",
898
+ ngImport: i0,
899
+ type: MatTextColumn,
900
+ deps: null,
901
+ target: i0.ɵɵFactoryTarget.Component
902
+ });
903
+ static ɵcmp = i0.ɵɵngDeclareComponent({
904
+ minVersion: "14.0.0",
905
+ version: "20.2.0-next.2",
906
+ type: MatTextColumn,
907
+ isStandalone: true,
908
+ selector: "mat-text-column",
909
+ usesInheritance: true,
910
+ ngImport: i0,
911
+ template: `
405
912
  <ng-container matColumnDef>
406
913
  <th mat-header-cell *matHeaderCellDef [style.text-align]="justify">
407
914
  {{headerText}}
@@ -410,13 +917,44 @@ class MatTextColumn extends CdkTextColumn {
410
917
  {{dataAccessor(data, name)}}
411
918
  </td>
412
919
  </ng-container>
413
- `, isInline: true, dependencies: [{ kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
920
+ `,
921
+ isInline: true,
922
+ dependencies: [{
923
+ kind: "directive",
924
+ type: MatColumnDef,
925
+ selector: "[matColumnDef]",
926
+ inputs: ["matColumnDef"]
927
+ }, {
928
+ kind: "directive",
929
+ type: MatHeaderCellDef,
930
+ selector: "[matHeaderCellDef]"
931
+ }, {
932
+ kind: "directive",
933
+ type: MatHeaderCell,
934
+ selector: "mat-header-cell, th[mat-header-cell]"
935
+ }, {
936
+ kind: "directive",
937
+ type: MatCellDef,
938
+ selector: "[matCellDef]"
939
+ }, {
940
+ kind: "directive",
941
+ type: MatCell,
942
+ selector: "mat-cell, td[mat-cell]"
943
+ }],
944
+ changeDetection: i0.ChangeDetectionStrategy.Default,
945
+ encapsulation: i0.ViewEncapsulation.None
946
+ });
414
947
  }
415
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTextColumn, decorators: [{
416
- type: Component,
417
- args: [{
418
- selector: 'mat-text-column',
419
- template: `
948
+ i0.ɵɵngDeclareClassMetadata({
949
+ minVersion: "12.0.0",
950
+ version: "20.2.0-next.2",
951
+ ngImport: i0,
952
+ type: MatTextColumn,
953
+ decorators: [{
954
+ type: Component,
955
+ args: [{
956
+ selector: 'mat-text-column',
957
+ template: `
420
958
  <ng-container matColumnDef>
421
959
  <th mat-header-cell *matHeaderCellDef [style.text-align]="justify">
422
960
  {{headerText}}
@@ -426,400 +964,204 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2",
426
964
  </td>
427
965
  </ng-container>
428
966
  `,
429
- encapsulation: ViewEncapsulation.None,
430
- // Change detection is intentionally not set to OnPush. This component's template will be provided
431
- // to the table to be inserted into its view. This is problematic when change detection runs since
432
- // the bindings in this template will be evaluated _after_ the table's view is evaluated, which
433
- // mean's the template in the table's view will not have the updated value (and in fact will cause
434
- // an ExpressionChangedAfterItHasBeenCheckedError).
435
- // tslint:disable-next-line:validate-decorators
436
- changeDetection: ChangeDetectionStrategy.Default,
437
- imports: [MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell],
438
- }]
439
- }] });
967
+ encapsulation: ViewEncapsulation.None,
968
+ changeDetection: ChangeDetectionStrategy.Default,
969
+ imports: [MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell]
970
+ }]
971
+ }]
972
+ });
440
973
 
441
- const EXPORTED_DECLARATIONS = [
442
- // Table
443
- MatTable,
444
- MatRecycleRows,
445
- // Template defs
446
- MatHeaderCellDef,
447
- MatHeaderRowDef,
448
- MatColumnDef,
449
- MatCellDef,
450
- MatRowDef,
451
- MatFooterCellDef,
452
- MatFooterRowDef,
453
- // Cell directives
454
- MatHeaderCell,
455
- MatCell,
456
- MatFooterCell,
457
- // Row directives
458
- MatHeaderRow,
459
- MatRow,
460
- MatFooterRow,
461
- MatNoDataRow,
462
- MatTextColumn,
463
- ];
974
+ const EXPORTED_DECLARATIONS = [MatTable, MatRecycleRows, MatHeaderCellDef, MatHeaderRowDef, MatColumnDef, MatCellDef, MatRowDef, MatFooterCellDef, MatFooterRowDef, MatHeaderCell, MatCell, MatFooterCell, MatHeaderRow, MatRow, MatFooterRow, MatNoDataRow, MatTextColumn];
464
975
  class MatTableModule {
465
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
466
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTableModule, imports: [CdkTableModule,
467
- // Table
468
- MatTable,
469
- MatRecycleRows,
470
- // Template defs
471
- MatHeaderCellDef,
472
- MatHeaderRowDef,
473
- MatColumnDef,
474
- MatCellDef,
475
- MatRowDef,
476
- MatFooterCellDef,
477
- MatFooterRowDef,
478
- // Cell directives
479
- MatHeaderCell,
480
- MatCell,
481
- MatFooterCell,
482
- // Row directives
483
- MatHeaderRow,
484
- MatRow,
485
- MatFooterRow,
486
- MatNoDataRow,
487
- MatTextColumn], exports: [BidiModule,
488
- // Table
489
- MatTable,
490
- MatRecycleRows,
491
- // Template defs
492
- MatHeaderCellDef,
493
- MatHeaderRowDef,
494
- MatColumnDef,
495
- MatCellDef,
496
- MatRowDef,
497
- MatFooterCellDef,
498
- MatFooterRowDef,
499
- // Cell directives
500
- MatHeaderCell,
501
- MatCell,
502
- MatFooterCell,
503
- // Row directives
504
- MatHeaderRow,
505
- MatRow,
506
- MatFooterRow,
507
- MatNoDataRow,
508
- MatTextColumn] });
509
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTableModule, imports: [CdkTableModule, BidiModule] });
976
+ static ɵfac = i0.ɵɵngDeclareFactory({
977
+ minVersion: "12.0.0",
978
+ version: "20.2.0-next.2",
979
+ ngImport: i0,
980
+ type: MatTableModule,
981
+ deps: [],
982
+ target: i0.ɵɵFactoryTarget.NgModule
983
+ });
984
+ static ɵmod = i0.ɵɵngDeclareNgModule({
985
+ minVersion: "14.0.0",
986
+ version: "20.2.0-next.2",
987
+ ngImport: i0,
988
+ type: MatTableModule,
989
+ imports: [CdkTableModule, MatTable, MatRecycleRows, MatHeaderCellDef, MatHeaderRowDef, MatColumnDef, MatCellDef, MatRowDef, MatFooterCellDef, MatFooterRowDef, MatHeaderCell, MatCell, MatFooterCell, MatHeaderRow, MatRow, MatFooterRow, MatNoDataRow, MatTextColumn],
990
+ exports: [BidiModule, MatTable, MatRecycleRows, MatHeaderCellDef, MatHeaderRowDef, MatColumnDef, MatCellDef, MatRowDef, MatFooterCellDef, MatFooterRowDef, MatHeaderCell, MatCell, MatFooterCell, MatHeaderRow, MatRow, MatFooterRow, MatNoDataRow, MatTextColumn]
991
+ });
992
+ static ɵinj = i0.ɵɵngDeclareInjector({
993
+ minVersion: "12.0.0",
994
+ version: "20.2.0-next.2",
995
+ ngImport: i0,
996
+ type: MatTableModule,
997
+ imports: [CdkTableModule, BidiModule]
998
+ });
510
999
  }
511
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: MatTableModule, decorators: [{
512
- type: NgModule,
513
- args: [{
514
- imports: [CdkTableModule, ...EXPORTED_DECLARATIONS],
515
- exports: [BidiModule, EXPORTED_DECLARATIONS],
516
- }]
517
- }] });
1000
+ i0.ɵɵngDeclareClassMetadata({
1001
+ minVersion: "12.0.0",
1002
+ version: "20.2.0-next.2",
1003
+ ngImport: i0,
1004
+ type: MatTableModule,
1005
+ decorators: [{
1006
+ type: NgModule,
1007
+ args: [{
1008
+ imports: [CdkTableModule, ...EXPORTED_DECLARATIONS],
1009
+ exports: [BidiModule, EXPORTED_DECLARATIONS]
1010
+ }]
1011
+ }]
1012
+ });
518
1013
 
519
- /**
520
- * Corresponds to `Number.MAX_SAFE_INTEGER`. Moved out into a variable here due to
521
- * flaky browser support and the value not being defined in Closure's typings.
522
- */
523
1014
  const MAX_SAFE_INTEGER = 9007199254740991;
524
- /**
525
- * Data source that accepts a client-side data array and includes native support of filtering,
526
- * sorting (using MatSort), and pagination (using MatPaginator).
527
- *
528
- * Allows for sort customization by overriding sortingDataAccessor, which defines how data
529
- * properties are accessed. Also allows for filter customization by overriding filterPredicate,
530
- * which defines how row data is converted to a string for filter matching.
531
- *
532
- * **Note:** This class is meant to be a simple data source to help you get started. As such
533
- * it isn't equipped to handle some more advanced cases like robust i18n support or server-side
534
- * interactions. If your app needs to support more advanced use cases, consider implementing your
535
- * own `DataSource`.
536
- */
537
1015
  class MatTableDataSource extends DataSource {
538
- /** Stream that emits when a new data array is set on the data source. */
539
- _data;
540
- /** Stream emitting render data to the table (depends on ordered data changes). */
541
- _renderData = new BehaviorSubject([]);
542
- /** Stream that emits when a new filter string is set on the data source. */
543
- _filter = new BehaviorSubject('');
544
- /** Used to react to internal changes of the paginator that are made by the data source itself. */
545
- _internalPageChanges = new Subject();
546
- /**
547
- * Subscription to the changes that should trigger an update to the table's rendered rows, such
548
- * as filtering, sorting, pagination, or base data changes.
549
- */
550
- _renderChangesSubscription = null;
551
- /**
552
- * The filtered set of data that has been matched by the filter string, or all the data if there
553
- * is no filter. Useful for knowing the set of data the table represents.
554
- * For example, a 'selectAll()' function would likely want to select the set of filtered data
555
- * shown to the user rather than all the data.
556
- */
557
- filteredData;
558
- /** Array of data that should be rendered by the table, where each object represents one row. */
559
- get data() {
560
- return this._data.value;
1016
+ _data;
1017
+ _renderData = new BehaviorSubject([]);
1018
+ _filter = new BehaviorSubject('');
1019
+ _internalPageChanges = new Subject();
1020
+ _renderChangesSubscription = null;
1021
+ filteredData;
1022
+ get data() {
1023
+ return this._data.value;
1024
+ }
1025
+ set data(data) {
1026
+ data = Array.isArray(data) ? data : [];
1027
+ this._data.next(data);
1028
+ if (!this._renderChangesSubscription) {
1029
+ this._filterData(data);
561
1030
  }
562
- set data(data) {
563
- data = Array.isArray(data) ? data : [];
564
- this._data.next(data);
565
- // Normally the `filteredData` is updated by the re-render
566
- // subscription, but that won't happen if it's inactive.
567
- if (!this._renderChangesSubscription) {
568
- this._filterData(data);
569
- }
1031
+ }
1032
+ get filter() {
1033
+ return this._filter.value;
1034
+ }
1035
+ set filter(filter) {
1036
+ this._filter.next(filter);
1037
+ if (!this._renderChangesSubscription) {
1038
+ this._filterData(this.data);
570
1039
  }
571
- /**
572
- * Filter term that should be used to filter out objects from the data array. To override how
573
- * data objects match to this filter string, provide a custom function for filterPredicate.
574
- */
575
- get filter() {
576
- return this._filter.value;
577
- }
578
- set filter(filter) {
579
- this._filter.next(filter);
580
- // Normally the `filteredData` is updated by the re-render
581
- // subscription, but that won't happen if it's inactive.
582
- if (!this._renderChangesSubscription) {
583
- this._filterData(this.data);
584
- }
1040
+ }
1041
+ get sort() {
1042
+ return this._sort;
1043
+ }
1044
+ set sort(sort) {
1045
+ this._sort = sort;
1046
+ this._updateChangeSubscription();
1047
+ }
1048
+ _sort;
1049
+ get paginator() {
1050
+ return this._paginator;
1051
+ }
1052
+ set paginator(paginator) {
1053
+ this._paginator = paginator;
1054
+ this._updateChangeSubscription();
1055
+ }
1056
+ _paginator;
1057
+ sortingDataAccessor = (data, sortHeaderId) => {
1058
+ const value = data[sortHeaderId];
1059
+ if (_isNumberValue(value)) {
1060
+ const numberValue = Number(value);
1061
+ return numberValue < MAX_SAFE_INTEGER ? numberValue : value;
585
1062
  }
586
- /**
587
- * Instance of the MatSort directive used by the table to control its sorting. Sort changes
588
- * emitted by the MatSort will trigger an update to the table's rendered data.
589
- */
590
- get sort() {
591
- return this._sort;
1063
+ return value;
1064
+ };
1065
+ sortData = (data, sort) => {
1066
+ const active = sort.active;
1067
+ const direction = sort.direction;
1068
+ if (!active || direction == '') {
1069
+ return data;
592
1070
  }
593
- set sort(sort) {
594
- this._sort = sort;
595
- this._updateChangeSubscription();
596
- }
597
- _sort;
598
- /**
599
- * Instance of the paginator component used by the table to control what page of the data is
600
- * displayed. Page changes emitted by the paginator will trigger an update to the
601
- * table's rendered data.
602
- *
603
- * Note that the data source uses the paginator's properties to calculate which page of data
604
- * should be displayed. If the paginator receives its properties as template inputs,
605
- * e.g. `[pageLength]=100` or `[pageIndex]=1`, then be sure that the paginator's view has been
606
- * initialized before assigning it to this data source.
607
- */
608
- get paginator() {
609
- return this._paginator;
610
- }
611
- set paginator(paginator) {
612
- this._paginator = paginator;
613
- this._updateChangeSubscription();
614
- }
615
- _paginator;
616
- /**
617
- * Data accessor function that is used for accessing data properties for sorting through
618
- * the default sortData function.
619
- * This default function assumes that the sort header IDs (which defaults to the column name)
620
- * matches the data's properties (e.g. column Xyz represents data['Xyz']).
621
- * May be set to a custom function for different behavior.
622
- * @param data Data object that is being accessed.
623
- * @param sortHeaderId The name of the column that represents the data.
624
- */
625
- sortingDataAccessor = (data, sortHeaderId) => {
626
- const value = data[sortHeaderId];
627
- if (_isNumberValue(value)) {
628
- const numberValue = Number(value);
629
- // Numbers beyond `MAX_SAFE_INTEGER` can't be compared reliably so we leave them as strings.
630
- // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER
631
- return numberValue < MAX_SAFE_INTEGER ? numberValue : value;
1071
+ return data.sort((a, b) => {
1072
+ let valueA = this.sortingDataAccessor(a, active);
1073
+ let valueB = this.sortingDataAccessor(b, active);
1074
+ const valueAType = typeof valueA;
1075
+ const valueBType = typeof valueB;
1076
+ if (valueAType !== valueBType) {
1077
+ if (valueAType === 'number') {
1078
+ valueA += '';
632
1079
  }
633
- return value;
634
- };
635
- /**
636
- * Gets a sorted copy of the data array based on the state of the MatSort. Called
637
- * after changes are made to the filtered data or when sort changes are emitted from MatSort.
638
- * By default, the function retrieves the active sort and its direction and compares data
639
- * by retrieving data using the sortingDataAccessor. May be overridden for a custom implementation
640
- * of data ordering.
641
- * @param data The array of data that should be sorted.
642
- * @param sort The connected MatSort that holds the current sort state.
643
- */
644
- sortData = (data, sort) => {
645
- const active = sort.active;
646
- const direction = sort.direction;
647
- if (!active || direction == '') {
648
- return data;
1080
+ if (valueBType === 'number') {
1081
+ valueB += '';
649
1082
  }
650
- return data.sort((a, b) => {
651
- let valueA = this.sortingDataAccessor(a, active);
652
- let valueB = this.sortingDataAccessor(b, active);
653
- // If there are data in the column that can be converted to a number,
654
- // it must be ensured that the rest of the data
655
- // is of the same type so as not to order incorrectly.
656
- const valueAType = typeof valueA;
657
- const valueBType = typeof valueB;
658
- if (valueAType !== valueBType) {
659
- if (valueAType === 'number') {
660
- valueA += '';
661
- }
662
- if (valueBType === 'number') {
663
- valueB += '';
664
- }
665
- }
666
- // If both valueA and valueB exist (truthy), then compare the two. Otherwise, check if
667
- // one value exists while the other doesn't. In this case, existing value should come last.
668
- // This avoids inconsistent results when comparing values to undefined/null.
669
- // If neither value exists, return 0 (equal).
670
- let comparatorResult = 0;
671
- if (valueA != null && valueB != null) {
672
- // Check if one value is greater than the other; if equal, comparatorResult should remain 0.
673
- if (valueA > valueB) {
674
- comparatorResult = 1;
675
- }
676
- else if (valueA < valueB) {
677
- comparatorResult = -1;
678
- }
679
- }
680
- else if (valueA != null) {
681
- comparatorResult = 1;
682
- }
683
- else if (valueB != null) {
684
- comparatorResult = -1;
685
- }
686
- return comparatorResult * (direction == 'asc' ? 1 : -1);
687
- });
688
- };
689
- /**
690
- * Checks if a data object matches the data source's filter string. By default, each data object
691
- * is converted to a string of its properties and returns true if the filter has
692
- * at least one occurrence in that string. By default, the filter string has its whitespace
693
- * trimmed and the match is case-insensitive. May be overridden for a custom implementation of
694
- * filter matching.
695
- * @param data Data object used to check against the filter.
696
- * @param filter Filter string that has been set on the data source.
697
- * @returns Whether the filter matches against the data
698
- */
699
- filterPredicate = (data, filter) => {
700
- // Transform the filter by converting it to lowercase and removing whitespace.
701
- const transformedFilter = filter.trim().toLowerCase();
702
- // Loops over the values in the array and returns true if any of them match the filter string
703
- return Object.values(data).some(value => `${value}`.toLowerCase().includes(transformedFilter));
704
- };
705
- constructor(initialData = []) {
706
- super();
707
- this._data = new BehaviorSubject(initialData);
708
- this._updateChangeSubscription();
709
- }
710
- /**
711
- * Subscribe to changes that should trigger an update to the table's rendered rows. When the
712
- * changes occur, process the current state of the filter, sort, and pagination along with
713
- * the provided base data and send it to the table for rendering.
714
- */
715
- _updateChangeSubscription() {
716
- // Sorting and/or pagination should be watched if sort and/or paginator are provided.
717
- // The events should emit whenever the component emits a change or initializes, or if no
718
- // component is provided, a stream with just a null event should be provided.
719
- // The `sortChange` and `pageChange` acts as a signal to the combineLatests below so that the
720
- // pipeline can progress to the next step. Note that the value from these streams are not used,
721
- // they purely act as a signal to progress in the pipeline.
722
- const sortChange = this._sort
723
- ? merge(this._sort.sortChange, this._sort.initialized)
724
- : of(null);
725
- const pageChange = this._paginator
726
- ? merge(this._paginator.page, this._internalPageChanges, this._paginator.initialized)
727
- : of(null);
728
- const dataStream = this._data;
729
- // Watch for base data or filter changes to provide a filtered set of data.
730
- const filteredData = combineLatest([dataStream, this._filter]).pipe(map(([data]) => this._filterData(data)));
731
- // Watch for filtered data or sort changes to provide an ordered set of data.
732
- const orderedData = combineLatest([filteredData, sortChange]).pipe(map(([data]) => this._orderData(data)));
733
- // Watch for ordered data or page changes to provide a paged set of data.
734
- const paginatedData = combineLatest([orderedData, pageChange]).pipe(map(([data]) => this._pageData(data)));
735
- // Watched for paged data changes and send the result to the table to render.
736
- this._renderChangesSubscription?.unsubscribe();
737
- this._renderChangesSubscription = paginatedData.subscribe(data => this._renderData.next(data));
738
- }
739
- /**
740
- * Returns a filtered data array where each filter object contains the filter string within
741
- * the result of the filterPredicate function. If no filter is set, returns the data array
742
- * as provided.
743
- */
744
- _filterData(data) {
745
- // If there is a filter string, filter out data that does not contain it.
746
- // Each data object is converted to a string using the function defined by filterPredicate.
747
- // May be overridden for customization.
748
- this.filteredData =
749
- this.filter == null || this.filter === ''
750
- ? data
751
- : data.filter(obj => this.filterPredicate(obj, this.filter));
752
- if (this.paginator) {
753
- this._updatePaginator(this.filteredData.length);
1083
+ }
1084
+ let comparatorResult = 0;
1085
+ if (valueA != null && valueB != null) {
1086
+ if (valueA > valueB) {
1087
+ comparatorResult = 1;
1088
+ } else if (valueA < valueB) {
1089
+ comparatorResult = -1;
754
1090
  }
755
- return this.filteredData;
1091
+ } else if (valueA != null) {
1092
+ comparatorResult = 1;
1093
+ } else if (valueB != null) {
1094
+ comparatorResult = -1;
1095
+ }
1096
+ return comparatorResult * (direction == 'asc' ? 1 : -1);
1097
+ });
1098
+ };
1099
+ filterPredicate = (data, filter) => {
1100
+ const transformedFilter = filter.trim().toLowerCase();
1101
+ return Object.values(data).some(value => `${value}`.toLowerCase().includes(transformedFilter));
1102
+ };
1103
+ constructor(initialData = []) {
1104
+ super();
1105
+ this._data = new BehaviorSubject(initialData);
1106
+ this._updateChangeSubscription();
1107
+ }
1108
+ _updateChangeSubscription() {
1109
+ const sortChange = this._sort ? merge(this._sort.sortChange, this._sort.initialized) : of(null);
1110
+ const pageChange = this._paginator ? merge(this._paginator.page, this._internalPageChanges, this._paginator.initialized) : of(null);
1111
+ const dataStream = this._data;
1112
+ const filteredData = combineLatest([dataStream, this._filter]).pipe(map(([data]) => this._filterData(data)));
1113
+ const orderedData = combineLatest([filteredData, sortChange]).pipe(map(([data]) => this._orderData(data)));
1114
+ const paginatedData = combineLatest([orderedData, pageChange]).pipe(map(([data]) => this._pageData(data)));
1115
+ this._renderChangesSubscription?.unsubscribe();
1116
+ this._renderChangesSubscription = paginatedData.subscribe(data => this._renderData.next(data));
1117
+ }
1118
+ _filterData(data) {
1119
+ this.filteredData = this.filter == null || this.filter === '' ? data : data.filter(obj => this.filterPredicate(obj, this.filter));
1120
+ if (this.paginator) {
1121
+ this._updatePaginator(this.filteredData.length);
756
1122
  }
757
- /**
758
- * Returns a sorted copy of the data if MatSort has a sort applied, otherwise just returns the
759
- * data array as provided. Uses the default data accessor for data lookup, unless a
760
- * sortDataAccessor function is defined.
761
- */
762
- _orderData(data) {
763
- // If there is no active sort or direction, return the data without trying to sort.
764
- if (!this.sort) {
765
- return data;
766
- }
767
- return this.sortData(data.slice(), this.sort);
768
- }
769
- /**
770
- * Returns a paged slice of the provided data array according to the provided paginator's page
771
- * index and length. If there is no paginator provided, returns the data array as provided.
772
- */
773
- _pageData(data) {
774
- if (!this.paginator) {
775
- return data;
776
- }
777
- const startIndex = this.paginator.pageIndex * this.paginator.pageSize;
778
- return data.slice(startIndex, startIndex + this.paginator.pageSize);
1123
+ return this.filteredData;
1124
+ }
1125
+ _orderData(data) {
1126
+ if (!this.sort) {
1127
+ return data;
779
1128
  }
780
- /**
781
- * Updates the paginator to reflect the length of the filtered data, and makes sure that the page
782
- * index does not exceed the paginator's last page. Values are changed in a resolved promise to
783
- * guard against making property changes within a round of change detection.
784
- */
785
- _updatePaginator(filteredDataLength) {
786
- Promise.resolve().then(() => {
787
- const paginator = this.paginator;
788
- if (!paginator) {
789
- return;
790
- }
791
- paginator.length = filteredDataLength;
792
- // If the page index is set beyond the page, reduce it to the last page.
793
- if (paginator.pageIndex > 0) {
794
- const lastPageIndex = Math.ceil(paginator.length / paginator.pageSize) - 1 || 0;
795
- const newPageIndex = Math.min(paginator.pageIndex, lastPageIndex);
796
- if (newPageIndex !== paginator.pageIndex) {
797
- paginator.pageIndex = newPageIndex;
798
- // Since the paginator only emits after user-generated changes,
799
- // we need our own stream so we know to should re-render the data.
800
- this._internalPageChanges.next();
801
- }
802
- }
803
- });
1129
+ return this.sortData(data.slice(), this.sort);
1130
+ }
1131
+ _pageData(data) {
1132
+ if (!this.paginator) {
1133
+ return data;
804
1134
  }
805
- /**
806
- * Used by the MatTable. Called when it connects to the data source.
807
- * @docs-private
808
- */
809
- connect() {
810
- if (!this._renderChangesSubscription) {
811
- this._updateChangeSubscription();
1135
+ const startIndex = this.paginator.pageIndex * this.paginator.pageSize;
1136
+ return data.slice(startIndex, startIndex + this.paginator.pageSize);
1137
+ }
1138
+ _updatePaginator(filteredDataLength) {
1139
+ Promise.resolve().then(() => {
1140
+ const paginator = this.paginator;
1141
+ if (!paginator) {
1142
+ return;
1143
+ }
1144
+ paginator.length = filteredDataLength;
1145
+ if (paginator.pageIndex > 0) {
1146
+ const lastPageIndex = Math.ceil(paginator.length / paginator.pageSize) - 1 || 0;
1147
+ const newPageIndex = Math.min(paginator.pageIndex, lastPageIndex);
1148
+ if (newPageIndex !== paginator.pageIndex) {
1149
+ paginator.pageIndex = newPageIndex;
1150
+ this._internalPageChanges.next();
812
1151
  }
813
- return this._renderData;
814
- }
815
- /**
816
- * Used by the MatTable. Called when it disconnects from the data source.
817
- * @docs-private
818
- */
819
- disconnect() {
820
- this._renderChangesSubscription?.unsubscribe();
821
- this._renderChangesSubscription = null;
1152
+ }
1153
+ });
1154
+ }
1155
+ connect() {
1156
+ if (!this._renderChangesSubscription) {
1157
+ this._updateChangeSubscription();
822
1158
  }
1159
+ return this._renderData;
1160
+ }
1161
+ disconnect() {
1162
+ this._renderChangesSubscription?.unsubscribe();
1163
+ this._renderChangesSubscription = null;
1164
+ }
823
1165
  }
824
1166
 
825
1167
  export { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatFooterRow, MatFooterRowDef, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef, MatNoDataRow, MatRecycleRows, MatRow, MatRowDef, MatTable, MatTableDataSource, MatTableModule, MatTextColumn };