@angular/cdk 20.0.0-next.7 → 20.0.0-next.9

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 (175) hide show
  1. package/_adev_assets/cdk_testing.json +1 -0
  2. package/_adev_assets/cdk_testing_protractor.json +1 -0
  3. package/_adev_assets/cdk_testing_selenium_webdriver.json +1 -0
  4. package/_adev_assets/cdk_testing_testbed.json +1 -0
  5. package/a11y/index.d.ts +8 -8
  6. package/{a11y-module.d-DrV0SO0k.d.ts → a11y-module.d-DBHGyKoh.d.ts} +3 -3
  7. package/accordion/index.d.ts +2 -2
  8. package/{activedescendant-key-manager.d-DSYvyoT0.d.ts → activedescendant-key-manager.d-Bjic5obv.d.ts} +3 -3
  9. package/bidi/index.d.ts +1 -1
  10. package/{bidi-module.d-bsVYOt0R.d.ts → bidi-module.d-IN1Vp56w.d.ts} +2 -2
  11. package/clipboard/index.d.ts +1 -1
  12. package/coercion/index.d.ts +1 -1
  13. package/collections/index.d.ts +7 -7
  14. package/{data-source.d-DAIyaEMO.d.ts → data-source.d-Bblv7Zvh.d.ts} +2 -2
  15. package/dialog/index.d.ts +16 -15
  16. package/drag-drop/index.d.ts +9 -5
  17. package/fesm2022/{a11y-module-tRUj0Pog.mjs → a11y-module-DpEjWNCj.mjs} +8 -9
  18. package/fesm2022/a11y-module-DpEjWNCj.mjs.map +1 -0
  19. package/fesm2022/a11y.mjs +21 -21
  20. package/fesm2022/a11y.mjs.map +1 -1
  21. package/fesm2022/accordion.mjs +3 -3
  22. package/fesm2022/{activedescendant-key-manager-BYiHZAZc.mjs → activedescendant-key-manager-DC3-fwQI.mjs} +3 -3
  23. package/fesm2022/{activedescendant-key-manager-BYiHZAZc.mjs.map → activedescendant-key-manager-DC3-fwQI.mjs.map} +1 -1
  24. package/fesm2022/{array-Hg8isvLj.mjs → array-I1yfCXUO.mjs} +2 -2
  25. package/fesm2022/{array-Hg8isvLj.mjs.map → array-I1yfCXUO.mjs.map} +1 -1
  26. package/fesm2022/bidi.mjs +3 -4
  27. package/fesm2022/bidi.mjs.map +1 -1
  28. package/fesm2022/{breakpoints-observer-CsCzbYlX.mjs → breakpoints-observer-DpQzdtrE.mjs} +4 -4
  29. package/fesm2022/{breakpoints-observer-CsCzbYlX.mjs.map → breakpoints-observer-DpQzdtrE.mjs.map} +1 -1
  30. package/fesm2022/cdk.mjs +1 -1
  31. package/fesm2022/cdk.mjs.map +1 -1
  32. package/fesm2022/clipboard.mjs +1 -2
  33. package/fesm2022/clipboard.mjs.map +1 -1
  34. package/fesm2022/coercion.mjs +3 -3
  35. package/fesm2022/collections.mjs +5 -5
  36. package/fesm2022/{css-pixel-value-C1yoKJ7R.mjs → css-pixel-value-C_HEqLhI.mjs} +2 -2
  37. package/fesm2022/{css-pixel-value-C1yoKJ7R.mjs.map → css-pixel-value-C_HEqLhI.mjs.map} +1 -1
  38. package/fesm2022/{data-source-CL6Fasig.mjs → data-source-D34wiQZj.mjs} +2 -2
  39. package/fesm2022/{data-source-CL6Fasig.mjs.map → data-source-D34wiQZj.mjs.map} +1 -1
  40. package/fesm2022/dialog.mjs +57 -45
  41. package/fesm2022/dialog.mjs.map +1 -1
  42. package/fesm2022/{directionality-6lVHj23y.mjs → directionality-Ck5Uc9Se.mjs} +3 -4
  43. package/fesm2022/directionality-Ck5Uc9Se.mjs.map +1 -0
  44. package/fesm2022/{dispose-view-repeater-strategy-BLw1RSwm.mjs → dispose-view-repeater-strategy-D_JReLI1.mjs} +3 -3
  45. package/fesm2022/{dispose-view-repeater-strategy-BLw1RSwm.mjs.map → dispose-view-repeater-strategy-D_JReLI1.mjs.map} +1 -1
  46. package/fesm2022/drag-drop.mjs +65 -13
  47. package/fesm2022/drag-drop.mjs.map +1 -1
  48. package/fesm2022/{element-CpqV8p-X.mjs → element-x4z00URv.mjs} +2 -2
  49. package/fesm2022/{element-CpqV8p-X.mjs.map → element-x4z00URv.mjs.map} +1 -1
  50. package/fesm2022/{fake-event-detection-D0_6qVp2.mjs → fake-event-detection-DWOdFTFz.mjs} +2 -2
  51. package/fesm2022/{fake-event-detection-D0_6qVp2.mjs.map → fake-event-detection-DWOdFTFz.mjs.map} +1 -1
  52. package/fesm2022/{focus-key-manager-DgyxYbV2.mjs → focus-key-manager-C1rAQJ5z.mjs} +3 -3
  53. package/fesm2022/{focus-key-manager-DgyxYbV2.mjs.map → focus-key-manager-C1rAQJ5z.mjs.map} +1 -1
  54. package/fesm2022/{focus-monitor-BZnK-7fT.mjs → focus-monitor-DKFfep8Q.mjs} +9 -10
  55. package/fesm2022/focus-monitor-DKFfep8Q.mjs.map +1 -0
  56. package/fesm2022/{id-generator-B33AfkWd.mjs → id-generator-BwB8lolC.mjs} +2 -2
  57. package/fesm2022/{id-generator-B33AfkWd.mjs.map → id-generator-BwB8lolC.mjs.map} +1 -1
  58. package/fesm2022/{keycodes-DPWmI2Ix.mjs → keycodes-CpHkExLC.mjs} +2 -2
  59. package/fesm2022/{keycodes-DPWmI2Ix.mjs.map → keycodes-CpHkExLC.mjs.map} +1 -1
  60. package/fesm2022/keycodes.mjs +1 -1
  61. package/fesm2022/layout.mjs +3 -3
  62. package/fesm2022/{list-key-manager-CYBoL_nN.mjs → list-key-manager-CyOIXo8P.mjs} +4 -4
  63. package/fesm2022/{list-key-manager-CYBoL_nN.mjs.map → list-key-manager-CyOIXo8P.mjs.map} +1 -1
  64. package/fesm2022/listbox.mjs +10 -10
  65. package/fesm2022/listbox.mjs.map +1 -1
  66. package/fesm2022/menu.mjs +31 -37
  67. package/fesm2022/menu.mjs.map +1 -1
  68. package/fesm2022/observers.mjs +2 -2
  69. package/fesm2022/{overlay-module-UgjfuiDh.mjs → overlay-module-BaGhSGqO.mjs} +109 -95
  70. package/fesm2022/overlay-module-BaGhSGqO.mjs.map +1 -0
  71. package/fesm2022/overlay.mjs +16 -16
  72. package/fesm2022/{passive-listeners-ZmZRMx8D.mjs → passive-listeners-esHZRgIN.mjs} +2 -2
  73. package/fesm2022/{passive-listeners-ZmZRMx8D.mjs.map → passive-listeners-esHZRgIN.mjs.map} +1 -1
  74. package/fesm2022/{platform-BInyKIh1.mjs → platform-CPg0IbDW.mjs} +2 -2
  75. package/fesm2022/{platform-BInyKIh1.mjs.map → platform-CPg0IbDW.mjs.map} +1 -1
  76. package/fesm2022/platform.mjs +5 -5
  77. package/fesm2022/portal.mjs +1 -2
  78. package/fesm2022/portal.mjs.map +1 -1
  79. package/fesm2022/private.mjs +2 -2
  80. package/fesm2022/{recycle-view-repeater-strategy-Ce0p4WhD.mjs → recycle-view-repeater-strategy-DoWdPqVw.mjs} +4 -4
  81. package/fesm2022/{recycle-view-repeater-strategy-Ce0p4WhD.mjs.map → recycle-view-repeater-strategy-DoWdPqVw.mjs.map} +1 -1
  82. package/fesm2022/{scrolling-BXVcIfjZ.mjs → scrolling-BkvA05C8.mjs} +2 -2
  83. package/fesm2022/{scrolling-BXVcIfjZ.mjs.map → scrolling-BkvA05C8.mjs.map} +1 -1
  84. package/fesm2022/scrolling.mjs +8 -8
  85. package/fesm2022/scrolling.mjs.map +1 -1
  86. package/fesm2022/{selection-model-88BErm4w.mjs → selection-model-BCgC8uEN.mjs} +2 -2
  87. package/fesm2022/{selection-model-88BErm4w.mjs.map → selection-model-BCgC8uEN.mjs.map} +1 -1
  88. package/fesm2022/{shadow-dom-DFvX9W95.mjs → shadow-dom-B0oHn41l.mjs} +2 -2
  89. package/fesm2022/{shadow-dom-DFvX9W95.mjs.map → shadow-dom-B0oHn41l.mjs.map} +1 -1
  90. package/fesm2022/stepper.mjs +20 -15
  91. package/fesm2022/stepper.mjs.map +1 -1
  92. package/fesm2022/{style-loader-DpEDdstc.mjs → style-loader-BDEAZOey.mjs} +2 -2
  93. package/fesm2022/{style-loader-DpEDdstc.mjs.map → style-loader-BDEAZOey.mjs.map} +1 -1
  94. package/fesm2022/table.mjs +88 -147
  95. package/fesm2022/table.mjs.map +1 -1
  96. package/fesm2022/{test-environment-BgaaXvCA.mjs → test-environment-CT0XxPyp.mjs} +2 -2
  97. package/fesm2022/{test-environment-BgaaXvCA.mjs.map → test-environment-CT0XxPyp.mjs.map} +1 -1
  98. package/fesm2022/testing/selenium-webdriver.mjs.map +1 -1
  99. package/fesm2022/testing/testbed.mjs +1 -1
  100. package/fesm2022/text-field.mjs +5 -5
  101. package/fesm2022/text-field.mjs.map +1 -1
  102. package/fesm2022/{tree-key-manager-DIhQ-v4R.mjs → tree-key-manager-KnCoIkIC.mjs} +4 -4
  103. package/fesm2022/{tree-key-manager-DIhQ-v4R.mjs.map → tree-key-manager-KnCoIkIC.mjs.map} +1 -1
  104. package/fesm2022/tree.mjs +7 -8
  105. package/fesm2022/tree.mjs.map +1 -1
  106. package/fesm2022/{typeahead-BAa3HZoh.mjs → typeahead-9ZW4Dtsf.mjs} +3 -3
  107. package/fesm2022/{typeahead-BAa3HZoh.mjs.map → typeahead-9ZW4Dtsf.mjs.map} +1 -1
  108. package/fesm2022/{unique-selection-dispatcher-SqPM2COI.mjs → unique-selection-dispatcher-Cag6cZJ2.mjs} +2 -2
  109. package/fesm2022/{unique-selection-dispatcher-SqPM2COI.mjs.map → unique-selection-dispatcher-Cag6cZJ2.mjs.map} +1 -1
  110. package/{focus-key-manager.d-DCiEwxN7.d.ts → focus-key-manager.d-BIKDy8oD.d.ts} +4 -4
  111. package/{focus-monitor.d-BBkiOKUH.d.ts → focus-monitor.d-CvvJeQRc.d.ts} +2 -2
  112. package/{harness-environment.d-ByFLvxZh.d.ts → harness-environment.d-BatBdODN.d.ts} +2 -2
  113. package/{list-key-manager.d-CylnKWfo.d.ts → list-key-manager.d-BlK3jyRn.d.ts} +2 -2
  114. package/listbox/index.d.ts +3 -3
  115. package/menu/index.d.ts +13 -16
  116. package/{number-property.d-BzBQchZ2.d.ts → number-property.d-CJVxXUcb.d.ts} +2 -2
  117. package/observers/index.d.ts +2 -2
  118. package/overlay/_index.scss +3 -0
  119. package/overlay/index.d.ts +75 -78
  120. package/{overlay-module.d-24bhgNtF.d.ts → overlay-module.d-BiAhhk6g.d.ts} +15 -9
  121. package/overlay-prebuilt.css +1 -1
  122. package/package.json +1 -1
  123. package/platform/index.d.ts +1 -1
  124. package/{platform.d-cnFZCLss.d.ts → platform.d-B3vREl3q.d.ts} +1 -1
  125. package/portal/index.d.ts +2 -2
  126. package/{portal-directives.d-D9c4J36c.d.ts → portal-directives.d-DbeNrI5D.d.ts} +2 -2
  127. package/private/index.d.ts +1 -1
  128. package/schematics/ng-add/index.js +10 -18
  129. package/schematics/ng-add/index.js.map +1 -1
  130. package/schematics/ng-update/devkit-migration-rule.js.map +1 -1
  131. package/schematics/ng-update/devkit-migration.d.ts +2 -2
  132. package/schematics/utils/ast.d.ts +2 -2
  133. package/schematics/utils/ast.js +2 -2
  134. package/schematics/utils/ast.js.map +1 -1
  135. package/schematics/utils/build-component.js +8 -8
  136. package/schematics/utils/build-component.js.map +1 -1
  137. package/schematics/utils/get-project.d.ts +2 -2
  138. package/schematics/utils/get-project.js.map +1 -1
  139. package/schematics/utils/project-index-file.d.ts +6 -3
  140. package/schematics/utils/project-index-file.js +29 -6
  141. package/schematics/utils/project-index-file.js.map +1 -1
  142. package/schematics/utils/project-main-file.d.ts +3 -2
  143. package/schematics/utils/project-main-file.js.map +1 -1
  144. package/schematics/utils/project-style-file.d.ts +2 -2
  145. package/schematics/utils/project-style-file.js.map +1 -1
  146. package/schematics/utils/project-targets.d.ts +5 -4
  147. package/schematics/utils/project-targets.js +11 -5
  148. package/schematics/utils/project-targets.js.map +1 -1
  149. package/schematics/utils/project-tsconfig-paths.d.ts +3 -3
  150. package/schematics/utils/project-tsconfig-paths.js +2 -2
  151. package/schematics/utils/project-tsconfig-paths.js.map +1 -1
  152. package/schematics/utils/schematic-options.d.ts +2 -2
  153. package/schematics/utils/schematic-options.js +2 -2
  154. package/schematics/utils/schematic-options.js.map +1 -1
  155. package/scrolling/index.d.ts +4 -4
  156. package/{scrolling-module.d-CuNwYGVM.d.ts → scrolling-module.d-DP0Qb7T9.d.ts} +6 -6
  157. package/{selection-model.d-CHuTS0tw.d.ts → selection-model.d-DNgOONDg.d.ts} +2 -2
  158. package/stepper/index.d.ts +5 -5
  159. package/{style-loader.d-DbvWk0ty.d.ts → style-loader.d-BXZfQZTF.d.ts} +1 -1
  160. package/table/index.d.ts +8 -196
  161. package/testing/index.d.ts +1 -1
  162. package/testing/selenium-webdriver/index.d.ts +1 -1
  163. package/testing/testbed/index.d.ts +1 -1
  164. package/text-field/index.d.ts +1 -1
  165. package/tree/index.d.ts +4 -4
  166. package/{tree-key-manager-strategy.d-DipnXoCr.d.ts → tree-key-manager-strategy.d-XB6M79l-.d.ts} +1 -1
  167. package/{unique-selection-dispatcher.d-BgWACqWn.d.ts → unique-selection-dispatcher.d-DSFqf1MM.d.ts} +2 -2
  168. package/{view-repeater.d-CJ9e48MX.d.ts → view-repeater.d-BKljR8u8.d.ts} +3 -3
  169. package/fesm2022/a11y-module-tRUj0Pog.mjs.map +0 -1
  170. package/fesm2022/directionality-6lVHj23y.mjs.map +0 -1
  171. package/fesm2022/focus-monitor-BZnK-7fT.mjs.map +0 -1
  172. package/fesm2022/overlay-module-UgjfuiDh.mjs.map +0 -1
  173. package/schematics/ng-add/package-config.d.ts +0 -12
  174. package/schematics/ng-add/package-config.js +0 -51
  175. package/schematics/ng-add/package-config.js.map +0 -1
@@ -1,17 +1,17 @@
1
- import { isDataSource } from './data-source-CL6Fasig.mjs';
2
- export { DataSource } from './data-source-CL6Fasig.mjs';
3
- import { DOCUMENT } from '@angular/common';
1
+ import { i as isDataSource } from './data-source-D34wiQZj.mjs';
2
+ export { D as DataSource } from './data-source-D34wiQZj.mjs';
4
3
  import * as i0 from '@angular/core';
5
- import { InjectionToken, inject, TemplateRef, booleanAttribute, ElementRef, Directive, ContentChild, Input, NgZone, Injectable, IterableDiffers, ViewContainerRef, ViewEncapsulation, ChangeDetectionStrategy, Component, afterNextRender, ChangeDetectorRef, EventEmitter, Injector, HostAttributeToken, ContentChildren, Output, ViewChild, NgModule } from '@angular/core';
4
+ import { InjectionToken, inject, TemplateRef, Directive, booleanAttribute, Input, ContentChild, ElementRef, IterableDiffers, ViewContainerRef, Component, ChangeDetectionStrategy, ViewEncapsulation, afterNextRender, ChangeDetectorRef, DOCUMENT, EventEmitter, Injector, HostAttributeToken, Output, ContentChildren, ViewChild, NgModule } from '@angular/core';
6
5
  import { Subject, BehaviorSubject, isObservable, of } from 'rxjs';
7
6
  import { takeUntil } from 'rxjs/operators';
8
- import { _RecycleViewRepeaterStrategy, _VIEW_REPEATER_STRATEGY, _ViewRepeaterOperation } from './recycle-view-repeater-strategy-Ce0p4WhD.mjs';
9
- import { _DisposeViewRepeaterStrategy } from './dispose-view-repeater-strategy-BLw1RSwm.mjs';
10
- import { Directionality } from './directionality-6lVHj23y.mjs';
11
- import { Platform } from './platform-BInyKIh1.mjs';
7
+ import { b as _VIEW_REPEATER_STRATEGY, _ as _RecycleViewRepeaterStrategy, a as _ViewRepeaterOperation } from './recycle-view-repeater-strategy-DoWdPqVw.mjs';
8
+ import { _ as _DisposeViewRepeaterStrategy } from './dispose-view-repeater-strategy-D_JReLI1.mjs';
9
+ import { D as Directionality } from './directionality-Ck5Uc9Se.mjs';
10
+ import { P as Platform } from './platform-CPg0IbDW.mjs';
12
11
  import { ViewportRuler, ScrollingModule } from './scrolling.mjs';
13
- import './element-CpqV8p-X.mjs';
14
- import './scrolling-BXVcIfjZ.mjs';
12
+ import '@angular/common';
13
+ import './element-x4z00URv.mjs';
14
+ import './scrolling-BkvA05C8.mjs';
15
15
  import './bidi.mjs';
16
16
 
17
17
  /**
@@ -266,73 +266,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.5",
266
266
  }]
267
267
  }], ctorParameters: () => [] });
268
268
 
269
- /**
270
- * @docs-private
271
- */
272
- class _Schedule {
273
- tasks = [];
274
- endTasks = [];
275
- }
276
- /** Injection token used to provide a coalesced style scheduler. */
277
- const _COALESCED_STYLE_SCHEDULER = new InjectionToken('_COALESCED_STYLE_SCHEDULER');
278
- /**
279
- * Allows grouping up CSSDom mutations after the current execution context.
280
- * This can significantly improve performance when separate consecutive functions are
281
- * reading from the CSSDom and then mutating it.
282
- *
283
- * @docs-private
284
- */
285
- class _CoalescedStyleScheduler {
286
- _currentSchedule = null;
287
- _ngZone = inject(NgZone);
288
- constructor() { }
289
- /**
290
- * Schedules the specified task to run at the end of the current VM turn.
291
- */
292
- schedule(task) {
293
- this._createScheduleIfNeeded();
294
- this._currentSchedule.tasks.push(task);
295
- }
296
- /**
297
- * Schedules the specified task to run after other scheduled tasks at the end of the current
298
- * VM turn.
299
- */
300
- scheduleEnd(task) {
301
- this._createScheduleIfNeeded();
302
- this._currentSchedule.endTasks.push(task);
303
- }
304
- _createScheduleIfNeeded() {
305
- if (this._currentSchedule) {
306
- return;
307
- }
308
- this._currentSchedule = new _Schedule();
309
- this._ngZone.runOutsideAngular(() =>
310
- // TODO(mmalerba): Scheduling this using something that runs less frequently
311
- // (e.g. requestAnimationFrame, setTimeout, etc.) causes noticeable jank with the column
312
- // resizer. We should audit the usages of schedule / scheduleEnd in that component and see
313
- // if we can refactor it so that we don't need to flush the tasks quite so frequently.
314
- queueMicrotask(() => {
315
- while (this._currentSchedule.tasks.length || this._currentSchedule.endTasks.length) {
316
- const schedule = this._currentSchedule;
317
- // Capture new tasks scheduled by the current set of tasks.
318
- this._currentSchedule = new _Schedule();
319
- for (const task of schedule.tasks) {
320
- task();
321
- }
322
- for (const task of schedule.endTasks) {
323
- task();
324
- }
325
- }
326
- this._currentSchedule = null;
327
- }));
328
- }
329
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.5", ngImport: i0, type: _CoalescedStyleScheduler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
330
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.5", ngImport: i0, type: _CoalescedStyleScheduler });
331
- }
332
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.5", ngImport: i0, type: _CoalescedStyleScheduler, decorators: [{
333
- type: Injectable
334
- }], ctorParameters: () => [] });
335
-
336
269
  /**
337
270
  * The row template that can be used by the mat-table. Should not be used outside of the
338
271
  * material library.
@@ -645,10 +578,9 @@ const STICKY_DIRECTIONS = ['top', 'bottom', 'left', 'right'];
645
578
  class StickyStyler {
646
579
  _isNativeHtmlTable;
647
580
  _stickCellCss;
648
- direction;
649
- _coalescedStyleScheduler;
650
581
  _isBrowser;
651
582
  _needsPositionStickyOnElement;
583
+ direction;
652
584
  _positionListener;
653
585
  _tableInjector;
654
586
  _elemSizeCache = new WeakMap();
@@ -675,13 +607,12 @@ class StickyStyler {
675
607
  * and their dimensions.
676
608
  * @param _tableInjector The table's Injector.
677
609
  */
678
- constructor(_isNativeHtmlTable, _stickCellCss, direction, _coalescedStyleScheduler, _isBrowser = true, _needsPositionStickyOnElement = true, _positionListener, _tableInjector) {
610
+ constructor(_isNativeHtmlTable, _stickCellCss, _isBrowser = true, _needsPositionStickyOnElement = true, direction, _positionListener, _tableInjector) {
679
611
  this._isNativeHtmlTable = _isNativeHtmlTable;
680
612
  this._stickCellCss = _stickCellCss;
681
- this.direction = direction;
682
- this._coalescedStyleScheduler = _coalescedStyleScheduler;
683
613
  this._isBrowser = _isBrowser;
684
614
  this._needsPositionStickyOnElement = _needsPositionStickyOnElement;
615
+ this.direction = direction;
685
616
  this._positionListener = _positionListener;
686
617
  this._tableInjector = _tableInjector;
687
618
  this._borderCellCss = {
@@ -711,12 +642,14 @@ class StickyStyler {
711
642
  elementsToClear.push(row, ...Array.from(row.children));
712
643
  }
713
644
  // Coalesce with sticky row/column updates (and potentially other changes like column resize).
714
- this._afterNextRender({
645
+ afterNextRender({
715
646
  write: () => {
716
647
  for (const element of elementsToClear) {
717
648
  this._removeStickyStyle(element, stickyDirections);
718
649
  }
719
650
  },
651
+ }, {
652
+ injector: this._tableInjector,
720
653
  });
721
654
  }
722
655
  /**
@@ -758,7 +691,7 @@ class StickyStyler {
758
691
  stickyEndStates: [...stickyEndStates],
759
692
  });
760
693
  }
761
- this._afterNextRender({
694
+ afterNextRender({
762
695
  earlyRead: () => {
763
696
  cellWidths = this._getCellWidths(firstRow, recalculateCellWidths);
764
697
  startPositions = this._getStickyStartColumnPositions(cellWidths, stickyStartStates);
@@ -789,11 +722,13 @@ class StickyStyler {
789
722
  ? []
790
723
  : cellWidths
791
724
  .slice(firstStickyEnd)
792
- .map((width, index) => (stickyEndStates[index + firstStickyEnd] ? width : null))
725
+ .map((width, index) => stickyEndStates[index + firstStickyEnd] ? width : null)
793
726
  .reverse(),
794
727
  });
795
728
  }
796
729
  },
730
+ }, {
731
+ injector: this._tableInjector,
797
732
  });
798
733
  }
799
734
  /**
@@ -823,7 +758,7 @@ class StickyStyler {
823
758
  const elementsToStick = [];
824
759
  // Coalesce with other sticky row updates (top/bottom), sticky columns updates
825
760
  // (and potentially other changes like column resize).
826
- this._afterNextRender({
761
+ afterNextRender({
827
762
  earlyRead: () => {
828
763
  for (let rowIndex = 0, stickyOffset = 0; rowIndex < rows.length; rowIndex++) {
829
764
  if (!states[rowIndex]) {
@@ -866,6 +801,8 @@ class StickyStyler {
866
801
  });
867
802
  }
868
803
  },
804
+ }, {
805
+ injector: this._tableInjector,
869
806
  });
870
807
  }
871
808
  /**
@@ -879,7 +816,7 @@ class StickyStyler {
879
816
  return;
880
817
  }
881
818
  // Coalesce with other sticky updates (and potentially other changes like column resize).
882
- this._afterNextRender({
819
+ afterNextRender({
883
820
  write: () => {
884
821
  const tfoot = tableElement.querySelector('tfoot');
885
822
  if (tfoot) {
@@ -891,6 +828,8 @@ class StickyStyler {
891
828
  }
892
829
  }
893
830
  },
831
+ }, {
832
+ injector: this._tableInjector,
894
833
  });
895
834
  }
896
835
  /** Triggered by the table's OnDestroy hook. */
@@ -1094,21 +1033,6 @@ class StickyStyler {
1094
1033
  }, 0);
1095
1034
  }
1096
1035
  }
1097
- /**
1098
- * Invoke afterNextRender with the table's injector, falling back to CoalescedStyleScheduler
1099
- * if the injector was not provided.
1100
- */
1101
- _afterNextRender(spec) {
1102
- if (this._tableInjector) {
1103
- afterNextRender(spec, { injector: this._tableInjector });
1104
- }
1105
- else {
1106
- this._coalescedStyleScheduler.schedule(() => {
1107
- spec.earlyRead?.();
1108
- spec.write();
1109
- });
1110
- }
1111
- }
1112
1036
  }
1113
1037
  function isCell(element) {
1114
1038
  return ['cdk-cell', 'cdk-header-cell', 'cdk-footer-cell'].some(klass => element.classList.contains(klass));
@@ -1277,44 +1201,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.5",
1277
1201
  selector: '[noDataRowOutlet]',
1278
1202
  }]
1279
1203
  }], ctorParameters: () => [] });
1280
- /**
1281
- * The table template that can be used by the mat-table. Should not be used outside of the
1282
- * material library.
1283
- * @docs-private
1284
- */
1285
- const CDK_TABLE_TEMPLATE =
1286
- // Note that according to MDN, the `caption` element has to be projected as the **first**
1287
- // element in the table. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption
1288
- `
1289
- <ng-content select="caption"/>
1290
- <ng-content select="colgroup, col"/>
1291
-
1292
- <!--
1293
- Unprojected content throws a hydration error so we need this to capture it.
1294
- It gets removed on the client so it doesn't affect the layout.
1295
- -->
1296
- @if (_isServer) {
1297
- <ng-content/>
1298
- }
1299
-
1300
- @if (_isNativeHtmlTable) {
1301
- <thead role="rowgroup">
1302
- <ng-container headerRowOutlet/>
1303
- </thead>
1304
- <tbody role="rowgroup">
1305
- <ng-container rowOutlet/>
1306
- <ng-container noDataRowOutlet/>
1307
- </tbody>
1308
- <tfoot role="rowgroup">
1309
- <ng-container footerRowOutlet/>
1310
- </tfoot>
1311
- } @else {
1312
- <ng-container headerRowOutlet/>
1313
- <ng-container rowOutlet/>
1314
- <ng-container noDataRowOutlet/>
1315
- <ng-container footerRowOutlet/>
1316
- }
1317
- `;
1318
1204
  /**
1319
1205
  * A data table that can render a header row, data rows, and a footer row.
1320
1206
  * Uses the dataSource input to determine the data to be rendered. The data can be provided either
@@ -1328,7 +1214,6 @@ class CdkTable {
1328
1214
  _dir = inject(Directionality, { optional: true });
1329
1215
  _platform = inject(Platform);
1330
1216
  _viewRepeater = inject(_VIEW_REPEATER_STRATEGY);
1331
- _coalescedStyleScheduler = inject(_COALESCED_STYLE_SCHEDULER);
1332
1217
  _viewportRuler = inject(ViewportRuler);
1333
1218
  _stickyPositioningListener = inject(STICKY_POSITIONING_LISTENER, { optional: true, skipSelf: true });
1334
1219
  _document = inject(DOCUMENT);
@@ -2203,7 +2088,7 @@ class CdkTable {
2203
2088
  */
2204
2089
  _setupStickyStyler() {
2205
2090
  const direction = this._dir ? this._dir.value : 'ltr';
2206
- this._stickyStyler = new StickyStyler(this._isNativeHtmlTable, this.stickyCssClass, direction, this._coalescedStyleScheduler, this._platform.isBrowser, this.needsPositionStickyOnElement, this._stickyPositioningListener, this._injector);
2091
+ this._stickyStyler = new StickyStyler(this._isNativeHtmlTable, this.stickyCssClass, this._platform.isBrowser, this.needsPositionStickyOnElement, direction, this._stickyPositioningListener, this._injector);
2207
2092
  (this._dir ? this._dir.change : of())
2208
2093
  .pipe(takeUntil(this._onDestroy))
2209
2094
  .subscribe(value => {
@@ -2246,20 +2131,76 @@ class CdkTable {
2246
2131
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0-next.5", type: CdkTable, isStandalone: true, selector: "cdk-table, table[cdk-table]", inputs: { trackBy: "trackBy", dataSource: "dataSource", multiTemplateDataRows: ["multiTemplateDataRows", "multiTemplateDataRows", booleanAttribute], fixedLayout: ["fixedLayout", "fixedLayout", booleanAttribute] }, outputs: { contentChanged: "contentChanged" }, host: { properties: { "class.cdk-table-fixed-layout": "fixedLayout" }, classAttribute: "cdk-table" }, providers: [
2247
2132
  { provide: CDK_TABLE, useExisting: CdkTable },
2248
2133
  { provide: _VIEW_REPEATER_STRATEGY, useClass: _DisposeViewRepeaterStrategy },
2249
- { provide: _COALESCED_STYLE_SCHEDULER, useClass: _CoalescedStyleScheduler },
2250
2134
  // Prevent nested tables from seeing this table's StickyPositioningListener.
2251
2135
  { provide: STICKY_POSITIONING_LISTENER, useValue: null },
2252
- ], queries: [{ propertyName: "_noDataRow", first: true, predicate: CdkNoDataRow, descendants: true }, { propertyName: "_contentColumnDefs", predicate: CdkColumnDef, descendants: true }, { propertyName: "_contentRowDefs", predicate: CdkRowDef, descendants: true }, { propertyName: "_contentHeaderRowDefs", predicate: CdkHeaderRowDef, descendants: true }, { propertyName: "_contentFooterRowDefs", predicate: CdkFooterRowDef, descendants: true }], exportAs: ["cdkTable"], ngImport: i0, template: "\n <ng-content select=\"caption\"/>\n <ng-content select=\"colgroup, col\"/>\n\n <!--\n Unprojected content throws a hydration error so we need this to capture it.\n It gets removed on the client so it doesn't affect the layout.\n -->\n @if (_isServer) {\n <ng-content/>\n }\n\n @if (_isNativeHtmlTable) {\n <thead role=\"rowgroup\">\n <ng-container headerRowOutlet/>\n </thead>\n <tbody role=\"rowgroup\">\n <ng-container rowOutlet/>\n <ng-container noDataRowOutlet/>\n </tbody>\n <tfoot role=\"rowgroup\">\n <ng-container footerRowOutlet/>\n </tfoot>\n } @else {\n <ng-container headerRowOutlet/>\n <ng-container rowOutlet/>\n <ng-container noDataRowOutlet/>\n <ng-container footerRowOutlet/>\n }\n", isInline: true, styles: [".cdk-table-fixed-layout{table-layout:fixed}\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 });
2136
+ ], queries: [{ propertyName: "_noDataRow", first: true, predicate: CdkNoDataRow, descendants: true }, { propertyName: "_contentColumnDefs", predicate: CdkColumnDef, descendants: true }, { propertyName: "_contentRowDefs", predicate: CdkRowDef, descendants: true }, { propertyName: "_contentHeaderRowDefs", predicate: CdkHeaderRowDef, descendants: true }, { propertyName: "_contentFooterRowDefs", predicate: CdkFooterRowDef, descendants: true }], exportAs: ["cdkTable"], ngImport: i0, template: `
2137
+ <ng-content select="caption"/>
2138
+ <ng-content select="colgroup, col"/>
2139
+
2140
+ <!--
2141
+ Unprojected content throws a hydration error so we need this to capture it.
2142
+ It gets removed on the client so it doesn't affect the layout.
2143
+ -->
2144
+ @if (_isServer) {
2145
+ <ng-content/>
2146
+ }
2147
+
2148
+ @if (_isNativeHtmlTable) {
2149
+ <thead role="rowgroup">
2150
+ <ng-container headerRowOutlet/>
2151
+ </thead>
2152
+ <tbody role="rowgroup">
2153
+ <ng-container rowOutlet/>
2154
+ <ng-container noDataRowOutlet/>
2155
+ </tbody>
2156
+ <tfoot role="rowgroup">
2157
+ <ng-container footerRowOutlet/>
2158
+ </tfoot>
2159
+ } @else {
2160
+ <ng-container headerRowOutlet/>
2161
+ <ng-container rowOutlet/>
2162
+ <ng-container noDataRowOutlet/>
2163
+ <ng-container footerRowOutlet/>
2164
+ }
2165
+ `, isInline: true, styles: [".cdk-table-fixed-layout{table-layout:fixed}\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 });
2253
2166
  }
2254
2167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.5", ngImport: i0, type: CdkTable, decorators: [{
2255
2168
  type: Component,
2256
- args: [{ selector: 'cdk-table, table[cdk-table]', exportAs: 'cdkTable', template: CDK_TABLE_TEMPLATE, host: {
2169
+ args: [{ selector: 'cdk-table, table[cdk-table]', exportAs: 'cdkTable', template: `
2170
+ <ng-content select="caption"/>
2171
+ <ng-content select="colgroup, col"/>
2172
+
2173
+ <!--
2174
+ Unprojected content throws a hydration error so we need this to capture it.
2175
+ It gets removed on the client so it doesn't affect the layout.
2176
+ -->
2177
+ @if (_isServer) {
2178
+ <ng-content/>
2179
+ }
2180
+
2181
+ @if (_isNativeHtmlTable) {
2182
+ <thead role="rowgroup">
2183
+ <ng-container headerRowOutlet/>
2184
+ </thead>
2185
+ <tbody role="rowgroup">
2186
+ <ng-container rowOutlet/>
2187
+ <ng-container noDataRowOutlet/>
2188
+ </tbody>
2189
+ <tfoot role="rowgroup">
2190
+ <ng-container footerRowOutlet/>
2191
+ </tfoot>
2192
+ } @else {
2193
+ <ng-container headerRowOutlet/>
2194
+ <ng-container rowOutlet/>
2195
+ <ng-container noDataRowOutlet/>
2196
+ <ng-container footerRowOutlet/>
2197
+ }
2198
+ `, host: {
2257
2199
  'class': 'cdk-table',
2258
2200
  '[class.cdk-table-fixed-layout]': 'fixedLayout',
2259
2201
  }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, providers: [
2260
2202
  { provide: CDK_TABLE, useExisting: CdkTable },
2261
2203
  { provide: _VIEW_REPEATER_STRATEGY, useClass: _DisposeViewRepeaterStrategy },
2262
- { provide: _COALESCED_STYLE_SCHEDULER, useClass: _CoalescedStyleScheduler },
2263
2204
  // Prevent nested tables from seeing this table's StickyPositioningListener.
2264
2205
  { provide: STICKY_POSITIONING_LISTENER, useValue: null },
2265
2206
  ], imports: [HeaderRowOutlet, DataRowOutlet, NoDataRowOutlet, FooterRowOutlet], styles: [".cdk-table-fixed-layout{table-layout:fixed}\n"] }]
@@ -2559,5 +2500,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.5",
2559
2500
  }]
2560
2501
  }] });
2561
2502
 
2562
- export { BaseCdkCell, BaseRowDef, CDK_ROW_TEMPLATE, CDK_TABLE, CDK_TABLE_TEMPLATE, CdkCell, CdkCellDef, CdkCellOutlet, CdkColumnDef, CdkFooterCell, CdkFooterCellDef, CdkFooterRow, CdkFooterRowDef, CdkHeaderCell, CdkHeaderCellDef, CdkHeaderRow, CdkHeaderRowDef, CdkNoDataRow, CdkRecycleRows, CdkRow, CdkRowDef, CdkTable, CdkTableModule, CdkTextColumn, DataRowOutlet, FooterRowOutlet, HeaderRowOutlet, NoDataRowOutlet, STICKY_DIRECTIONS, STICKY_POSITIONING_LISTENER, StickyStyler, TEXT_COLUMN_OPTIONS, _COALESCED_STYLE_SCHEDULER, _CoalescedStyleScheduler, _Schedule };
2503
+ export { BaseCdkCell, BaseRowDef, CDK_ROW_TEMPLATE, CDK_TABLE, CdkCell, CdkCellDef, CdkCellOutlet, CdkColumnDef, CdkFooterCell, CdkFooterCellDef, CdkFooterRow, CdkFooterRowDef, CdkHeaderCell, CdkHeaderCellDef, CdkHeaderRow, CdkHeaderRowDef, CdkNoDataRow, CdkRecycleRows, CdkRow, CdkRowDef, CdkTable, CdkTableModule, CdkTextColumn, DataRowOutlet, FooterRowOutlet, HeaderRowOutlet, NoDataRowOutlet, STICKY_POSITIONING_LISTENER, TEXT_COLUMN_OPTIONS };
2563
2504
  //# sourceMappingURL=table.mjs.map