@angular/cdk-experimental 19.0.0-next.0 → 19.0.0-next.10

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 (81) hide show
  1. package/column-resize/index.d.ts +5 -13
  2. package/combobox/index.d.ts +5 -11
  3. package/fesm2022/cdk-experimental.mjs +1 -1
  4. package/fesm2022/cdk-experimental.mjs.map +1 -1
  5. package/fesm2022/column-resize.mjs +112 -131
  6. package/fesm2022/column-resize.mjs.map +1 -1
  7. package/fesm2022/combobox.mjs +38 -49
  8. package/fesm2022/combobox.mjs.map +1 -1
  9. package/fesm2022/popover-edit.mjs +121 -133
  10. package/fesm2022/popover-edit.mjs.map +1 -1
  11. package/fesm2022/scrolling.mjs +7 -8
  12. package/fesm2022/scrolling.mjs.map +1 -1
  13. package/fesm2022/selection.mjs +43 -81
  14. package/fesm2022/selection.mjs.map +1 -1
  15. package/fesm2022/table-scroll-container.mjs +17 -31
  16. package/fesm2022/table-scroll-container.mjs.map +1 -1
  17. package/package.json +2 -16
  18. package/popover-edit/index.d.ts +11 -19
  19. package/selection/index.d.ts +6 -10
  20. package/table-scroll-container/index.d.ts +3 -6
  21. package/esm2022/column-resize/column-resize-directives/column-resize-flex.mjs +0 -43
  22. package/esm2022/column-resize/column-resize-directives/column-resize.mjs +0 -43
  23. package/esm2022/column-resize/column-resize-directives/constants.mjs +0 -21
  24. package/esm2022/column-resize/column-resize-directives/default-enabled-column-resize-flex.mjs +0 -49
  25. package/esm2022/column-resize/column-resize-directives/default-enabled-column-resize.mjs +0 -49
  26. package/esm2022/column-resize/column-resize-module.mjs +0 -46
  27. package/esm2022/column-resize/column-resize-notifier.mjs +0 -52
  28. package/esm2022/column-resize/column-resize.mjs +0 -82
  29. package/esm2022/column-resize/column-resize_public_index.mjs +0 -5
  30. package/esm2022/column-resize/column-size-store.mjs +0 -20
  31. package/esm2022/column-resize/event-dispatcher.mjs +0 -70
  32. package/esm2022/column-resize/index.mjs +0 -9
  33. package/esm2022/column-resize/overlay-handle.mjs +0 -146
  34. package/esm2022/column-resize/public-api.mjs +0 -21
  35. package/esm2022/column-resize/resizable.mjs +0 -199
  36. package/esm2022/column-resize/resize-ref.mjs +0 -17
  37. package/esm2022/column-resize/resize-strategy.mjs +0 -239
  38. package/esm2022/column-resize/selectors.mjs +0 -13
  39. package/esm2022/combobox/combobox-module.mjs +0 -26
  40. package/esm2022/combobox/combobox-popup.mjs +0 -73
  41. package/esm2022/combobox/combobox.mjs +0 -281
  42. package/esm2022/combobox/combobox_public_index.mjs +0 -5
  43. package/esm2022/combobox/index.mjs +0 -9
  44. package/esm2022/combobox/public-api.mjs +0 -11
  45. package/esm2022/index.mjs +0 -9
  46. package/esm2022/popover-edit/constants.mjs +0 -20
  47. package/esm2022/popover-edit/edit-event-dispatcher.mjs +0 -227
  48. package/esm2022/popover-edit/edit-ref.mjs +0 -83
  49. package/esm2022/popover-edit/edit-services.mjs +0 -45
  50. package/esm2022/popover-edit/focus-dispatcher.mjs +0 -82
  51. package/esm2022/popover-edit/focus-escape-notifier.mjs +0 -69
  52. package/esm2022/popover-edit/form-value-container.mjs +0 -33
  53. package/esm2022/popover-edit/index.mjs +0 -9
  54. package/esm2022/popover-edit/lens-directives.mjs +0 -185
  55. package/esm2022/popover-edit/polyfill.mjs +0 -19
  56. package/esm2022/popover-edit/popover-edit-module.mjs +0 -49
  57. package/esm2022/popover-edit/popover-edit_public_index.mjs +0 -5
  58. package/esm2022/popover-edit/public-api.mjs +0 -18
  59. package/esm2022/popover-edit/table-directives.mjs +0 -441
  60. package/esm2022/public-api.mjs +0 -9
  61. package/esm2022/scrolling/auto-size-virtual-scroll.mjs +0 -422
  62. package/esm2022/scrolling/index.mjs +0 -9
  63. package/esm2022/scrolling/public-api.mjs +0 -10
  64. package/esm2022/scrolling/scrolling-module.mjs +0 -23
  65. package/esm2022/scrolling/scrolling_public_index.mjs +0 -5
  66. package/esm2022/selection/index.mjs +0 -9
  67. package/esm2022/selection/public-api.mjs +0 -15
  68. package/esm2022/selection/row-selection.mjs +0 -52
  69. package/esm2022/selection/select-all.mjs +0 -101
  70. package/esm2022/selection/selection-column.mjs +0 -147
  71. package/esm2022/selection/selection-module.mjs +0 -44
  72. package/esm2022/selection/selection-set.mjs +0 -80
  73. package/esm2022/selection/selection-toggle.mjs +0 -101
  74. package/esm2022/selection/selection.mjs +0 -187
  75. package/esm2022/selection/selection_public_index.mjs +0 -5
  76. package/esm2022/table-scroll-container/index.mjs +0 -9
  77. package/esm2022/table-scroll-container/public-api.mjs +0 -10
  78. package/esm2022/table-scroll-container/table-scroll-container-module.mjs +0 -23
  79. package/esm2022/table-scroll-container/table-scroll-container.mjs +0 -141
  80. package/esm2022/table-scroll-container/table-scroll-container_public_index.mjs +0 -5
  81. package/esm2022/version.mjs +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"scrolling.mjs","sources":["../../../../../../src/cdk-experimental/scrolling/auto-size-virtual-scroll.ts","../../../../../../src/cdk-experimental/scrolling/scrolling-module.ts","../../../../../../src/cdk-experimental/scrolling/scrolling_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {coerceNumberProperty, NumberInput} from '@angular/cdk/coercion';\nimport {ListRange} from '@angular/cdk/collections';\nimport {\n CdkVirtualScrollViewport,\n VIRTUAL_SCROLL_STRATEGY,\n VirtualScrollStrategy,\n} from '@angular/cdk/scrolling';\nimport {Directive, forwardRef, Input, OnChanges} from '@angular/core';\nimport {Observable} from 'rxjs';\n\n/**\n * A class that tracks the size of items that have been seen and uses it to estimate the average\n * item size.\n */\nexport class ItemSizeAverager {\n /** The total amount of weight behind the current average. */\n private _totalWeight = 0;\n\n /** The current average item size. */\n private _averageItemSize: number;\n\n /** The default size to use for items when no data is available. */\n private _defaultItemSize: number;\n\n /** @param defaultItemSize The default size to use for items when no data is available. */\n constructor(defaultItemSize = 50) {\n this._defaultItemSize = defaultItemSize;\n this._averageItemSize = defaultItemSize;\n }\n\n /** Returns the average item size. */\n getAverageItemSize(): number {\n return this._averageItemSize;\n }\n\n /**\n * Adds a measurement sample for the estimator to consider.\n * @param range The measured range.\n * @param size The measured size of the given range in pixels.\n */\n addSample(range: ListRange, size: number) {\n const newTotalWeight = this._totalWeight + range.end - range.start;\n if (newTotalWeight) {\n const newAverageItemSize =\n (size + this._averageItemSize * this._totalWeight) / newTotalWeight;\n if (newAverageItemSize) {\n this._averageItemSize = newAverageItemSize;\n this._totalWeight = newTotalWeight;\n }\n }\n }\n\n /** Resets the averager. */\n reset() {\n this._averageItemSize = this._defaultItemSize;\n this._totalWeight = 0;\n }\n}\n\n/** Virtual scrolling strategy for lists with items of unknown or dynamic size. */\nexport class AutoSizeVirtualScrollStrategy implements VirtualScrollStrategy {\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n scrolledIndexChange = new Observable<number>(() => {\n // TODO(mmalerba): Implement.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw Error(\n 'cdk-virtual-scroll: scrolledIndexChange is currently not supported for the' +\n ' autosize scroll strategy',\n );\n }\n });\n\n /** The attached viewport. */\n private _viewport: CdkVirtualScrollViewport | null = null;\n\n /** The minimum amount of buffer rendered beyond the viewport (in pixels). */\n private _minBufferPx: number;\n\n /** The number of buffer items to render beyond the edge of the viewport (in pixels). */\n private _maxBufferPx: number;\n\n /** The estimator used to estimate the size of unseen items. */\n private _averager: ItemSizeAverager;\n\n /** The last measured scroll offset of the viewport. */\n private _lastScrollOffset: number;\n\n /** The last measured size of the rendered content in the viewport. */\n private _lastRenderedContentSize: number;\n\n /** The last measured size of the rendered content in the viewport. */\n private _lastRenderedContentOffset: number;\n\n /**\n * The number of consecutive cycles where removing extra items has failed. Failure here means that\n * we estimated how many items we could safely remove, but our estimate turned out to be too much\n * and it wasn't safe to remove that many elements.\n */\n private _removalFailures = 0;\n\n /**\n * @param minBufferPx The minimum amount of buffer rendered beyond the viewport (in pixels).\n * If the amount of buffer dips below this number, more items will be rendered.\n * @param maxBufferPx The number of pixels worth of buffer to shoot for when rendering new items.\n * If the actual amount turns out to be less it will not necessarily trigger an additional\n * rendering cycle (as long as the amount of buffer is still greater than `minBufferPx`).\n * @param averager The averager used to estimate the size of unseen items.\n */\n constructor(minBufferPx: number, maxBufferPx: number, averager = new ItemSizeAverager()) {\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n this._averager = averager;\n }\n\n /**\n * Attaches this scroll strategy to a viewport.\n * @param viewport The viewport to attach this strategy to.\n */\n attach(viewport: CdkVirtualScrollViewport) {\n this._averager.reset();\n this._viewport = viewport;\n this._renderContentForCurrentOffset();\n }\n\n /** Detaches this scroll strategy from the currently attached viewport. */\n detach() {\n this._viewport = null;\n }\n\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentScrolled() {\n if (this._viewport) {\n this._updateRenderedContentAfterScroll();\n }\n }\n\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onDataLengthChanged() {\n if (this._viewport) {\n this._renderContentForCurrentOffset();\n this._checkRenderedContentSize();\n }\n }\n\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentRendered() {\n if (this._viewport) {\n this._checkRenderedContentSize();\n }\n }\n\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onRenderedOffsetChanged() {\n if (this._viewport) {\n this._checkRenderedContentOffset();\n }\n }\n\n /** Scroll to the offset for the given index. */\n scrollToIndex(): void {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // TODO(mmalerba): Implement.\n throw Error(\n 'cdk-virtual-scroll: scrollToIndex is currently not supported for the autosize' +\n ' scroll strategy',\n );\n }\n }\n\n /**\n * Update the buffer parameters.\n * @param minBufferPx The minimum amount of buffer rendered beyond the viewport (in pixels).\n * @param maxBufferPx The number of buffer items to render beyond the edge of the viewport (in\n * pixels).\n */\n updateBufferSize(minBufferPx: number, maxBufferPx: number) {\n if (maxBufferPx < minBufferPx) {\n throw Error('CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx');\n }\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n }\n\n /** Update the rendered content after the user scrolls. */\n private _updateRenderedContentAfterScroll() {\n const viewport = this._viewport!;\n\n // The current scroll offset.\n const scrollOffset = viewport.measureScrollOffset();\n // The delta between the current scroll offset and the previously recorded scroll offset.\n let scrollDelta = scrollOffset - this._lastScrollOffset;\n // The magnitude of the scroll delta.\n let scrollMagnitude = Math.abs(scrollDelta);\n\n // The currently rendered range.\n const renderedRange = viewport.getRenderedRange();\n\n // If we're scrolling toward the top, we need to account for the fact that the predicted amount\n // of content and the actual amount of scrollable space may differ. We address this by slowly\n // correcting the difference on each scroll event.\n let offsetCorrection = 0;\n if (scrollDelta < 0) {\n // The content offset we would expect based on the average item size.\n const predictedOffset = renderedRange.start * this._averager.getAverageItemSize();\n // The difference between the predicted size of the un-rendered content at the beginning and\n // the actual available space to scroll over. We need to reduce this to zero by the time the\n // user scrolls to the top.\n // - 0 indicates that the predicted size and available space are the same.\n // - A negative number that the predicted size is smaller than the available space.\n // - A positive number indicates the predicted size is larger than the available space\n const offsetDifference = predictedOffset - this._lastRenderedContentOffset;\n // The amount of difference to correct during this scroll event. We calculate this as a\n // percentage of the total difference based on the percentage of the distance toward the top\n // that the user scrolled.\n offsetCorrection = Math.round(\n offsetDifference *\n Math.max(0, Math.min(1, scrollMagnitude / (scrollOffset + scrollMagnitude))),\n );\n\n // Based on the offset correction above, we pretend that the scroll delta was bigger or\n // smaller than it actually was, this way we can start to eliminate the difference.\n scrollDelta = scrollDelta - offsetCorrection;\n scrollMagnitude = Math.abs(scrollDelta);\n }\n\n // The current amount of buffer past the start of the viewport.\n const startBuffer = this._lastScrollOffset - this._lastRenderedContentOffset;\n // The current amount of buffer past the end of the viewport.\n const endBuffer =\n this._lastRenderedContentOffset +\n this._lastRenderedContentSize -\n (this._lastScrollOffset + viewport.getViewportSize());\n // The amount of unfilled space that should be filled on the side the user is scrolling toward\n // in order to safely absorb the scroll delta.\n const underscan =\n scrollMagnitude + this._minBufferPx - (scrollDelta < 0 ? startBuffer : endBuffer);\n\n // Check if there's unfilled space that we need to render new elements to fill.\n if (underscan > 0) {\n // Check if the scroll magnitude was larger than the viewport size. In this case the user\n // won't notice a discontinuity if we just jump to the new estimated position in the list.\n // However, if the scroll magnitude is smaller than the viewport the user might notice some\n // jitteriness if we just jump to the estimated position. Instead we make sure to scroll by\n // the same number of pixels as the scroll magnitude.\n if (scrollMagnitude >= viewport.getViewportSize()) {\n this._renderContentForCurrentOffset();\n } else {\n // The number of new items to render on the side the user is scrolling towards. Rather than\n // just filling the underscan space, we actually fill enough to have a buffer size of\n // `maxBufferPx`. This gives us a little wiggle room in case our item size estimate is off.\n const addItems = Math.max(\n 0,\n Math.ceil(\n (underscan - this._minBufferPx + this._maxBufferPx) /\n this._averager.getAverageItemSize(),\n ),\n );\n // The amount of filled space beyond what is necessary on the side the user is scrolling\n // away from.\n const overscan =\n (scrollDelta < 0 ? endBuffer : startBuffer) - this._minBufferPx + scrollMagnitude;\n // The number of currently rendered items to remove on the side the user is scrolling away\n // from. If removal has failed in recent cycles we are less aggressive in how much we try to\n // remove.\n const unboundedRemoveItems = Math.floor(\n overscan / this._averager.getAverageItemSize() / (this._removalFailures + 1),\n );\n const removeItems = Math.min(\n renderedRange.end - renderedRange.start,\n Math.max(0, unboundedRemoveItems),\n );\n\n // The new range we will tell the viewport to render. We first expand it to include the new\n // items we want rendered, we then contract the opposite side to remove items we no longer\n // want rendered.\n const range = this._expandRange(\n renderedRange,\n scrollDelta < 0 ? addItems : 0,\n scrollDelta > 0 ? addItems : 0,\n );\n if (scrollDelta < 0) {\n range.end = Math.max(range.start + 1, range.end - removeItems);\n } else {\n range.start = Math.min(range.end - 1, range.start + removeItems);\n }\n\n // The new offset we want to set on the rendered content. To determine this we measure the\n // number of pixels we removed and then adjust the offset to the start of the rendered\n // content or to the end of the rendered content accordingly (whichever one doesn't require\n // that the newly added items to be rendered to calculate.)\n let contentOffset: number;\n let contentOffsetTo: 'to-start' | 'to-end';\n if (scrollDelta < 0) {\n let removedSize = viewport.measureRangeSize({\n start: range.end,\n end: renderedRange.end,\n });\n // Check that we're not removing too much.\n if (removedSize <= overscan) {\n contentOffset =\n this._lastRenderedContentOffset + this._lastRenderedContentSize - removedSize;\n this._removalFailures = 0;\n } else {\n // If the removal is more than the overscan can absorb just undo it and record the fact\n // that the removal failed so we can be less aggressive next time.\n range.end = renderedRange.end;\n contentOffset = this._lastRenderedContentOffset + this._lastRenderedContentSize;\n this._removalFailures++;\n }\n contentOffsetTo = 'to-end';\n } else {\n const removedSize = viewport.measureRangeSize({\n start: renderedRange.start,\n end: range.start,\n });\n // Check that we're not removing too much.\n if (removedSize <= overscan) {\n contentOffset = this._lastRenderedContentOffset + removedSize;\n this._removalFailures = 0;\n } else {\n // If the removal is more than the overscan can absorb just undo it and record the fact\n // that the removal failed so we can be less aggressive next time.\n range.start = renderedRange.start;\n contentOffset = this._lastRenderedContentOffset;\n this._removalFailures++;\n }\n contentOffsetTo = 'to-start';\n }\n\n // Set the range and offset we calculated above.\n viewport.setRenderedRange(range);\n viewport.setRenderedContentOffset(contentOffset + offsetCorrection, contentOffsetTo);\n }\n } else if (offsetCorrection) {\n // Even if the rendered range didn't change, we may still need to adjust the content offset to\n // simulate scrolling slightly slower or faster than the user actually scrolled.\n viewport.setRenderedContentOffset(this._lastRenderedContentOffset + offsetCorrection);\n }\n\n // Save the scroll offset to be compared to the new value on the next scroll event.\n this._lastScrollOffset = scrollOffset;\n }\n\n /**\n * Checks the size of the currently rendered content and uses it to update the estimated item size\n * and estimated total content size.\n */\n private _checkRenderedContentSize() {\n const viewport = this._viewport!;\n this._lastRenderedContentSize = viewport.measureRenderedContentSize();\n this._averager.addSample(viewport.getRenderedRange(), this._lastRenderedContentSize);\n this._updateTotalContentSize(this._lastRenderedContentSize);\n }\n\n /** Checks the currently rendered content offset and saves the value for later use. */\n private _checkRenderedContentOffset() {\n const viewport = this._viewport!;\n this._lastRenderedContentOffset = viewport.getOffsetToRenderedContentStart()!;\n }\n\n /**\n * Recalculates the rendered content based on our estimate of what should be shown at the current\n * scroll offset.\n */\n private _renderContentForCurrentOffset() {\n const viewport = this._viewport!;\n const scrollOffset = viewport.measureScrollOffset();\n this._lastScrollOffset = scrollOffset;\n this._removalFailures = 0;\n\n const itemSize = this._averager.getAverageItemSize();\n const firstVisibleIndex = Math.min(\n viewport.getDataLength() - 1,\n Math.floor(scrollOffset / itemSize),\n );\n const bufferSize = Math.ceil(this._maxBufferPx / itemSize);\n const range = this._expandRange(\n this._getVisibleRangeForIndex(firstVisibleIndex),\n bufferSize,\n bufferSize,\n );\n\n viewport.setRenderedRange(range);\n viewport.setRenderedContentOffset(itemSize * range.start);\n }\n\n // TODO: maybe move to base class, can probably share with fixed size strategy.\n /**\n * Gets the visible range of data for the given start index. If the start index is too close to\n * the end of the list it may be backed up to ensure the estimated size of the range is enough to\n * fill the viewport.\n * Note: must not be called if `this._viewport` is null\n * @param startIndex The index to start the range at\n * @return a range estimated to be large enough to fill the viewport when rendered.\n */\n private _getVisibleRangeForIndex(startIndex: number): ListRange {\n const viewport = this._viewport!;\n const range: ListRange = {\n start: startIndex,\n end: startIndex + Math.ceil(viewport.getViewportSize() / this._averager.getAverageItemSize()),\n };\n const extra = range.end - viewport.getDataLength();\n if (extra > 0) {\n range.start = Math.max(0, range.start - extra);\n }\n return range;\n }\n\n // TODO: maybe move to base class, can probably share with fixed size strategy.\n /**\n * Expand the given range by the given amount in either direction.\n * Note: must not be called if `this._viewport` is null\n * @param range The range to expand\n * @param expandStart The number of items to expand the start of the range by.\n * @param expandEnd The number of items to expand the end of the range by.\n * @return The expanded range.\n */\n private _expandRange(range: ListRange, expandStart: number, expandEnd: number): ListRange {\n const viewport = this._viewport!;\n const start = Math.max(0, range.start - expandStart);\n const end = Math.min(viewport.getDataLength(), range.end + expandEnd);\n return {start, end};\n }\n\n /** Update the viewport's total content size. */\n private _updateTotalContentSize(renderedContentSize: number) {\n const viewport = this._viewport!;\n const renderedRange = viewport.getRenderedRange();\n const totalSize =\n renderedContentSize +\n (viewport.getDataLength() - (renderedRange.end - renderedRange.start)) *\n this._averager.getAverageItemSize();\n viewport.setTotalContentSize(totalSize);\n }\n}\n\n/**\n * Provider factory for `AutoSizeVirtualScrollStrategy` that simply extracts the already created\n * `AutoSizeVirtualScrollStrategy` from the given directive.\n * @param autoSizeDir The instance of `CdkAutoSizeVirtualScroll` to extract the\n * `AutoSizeVirtualScrollStrategy` from.\n */\nexport function _autoSizeVirtualScrollStrategyFactory(autoSizeDir: CdkAutoSizeVirtualScroll) {\n return autoSizeDir._scrollStrategy;\n}\n\n/** A virtual scroll strategy that supports unknown or dynamic size items. */\n@Directive({\n selector: 'cdk-virtual-scroll-viewport[autosize]',\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _autoSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkAutoSizeVirtualScroll)],\n },\n ],\n standalone: true,\n})\nexport class CdkAutoSizeVirtualScroll implements OnChanges {\n /**\n * The minimum amount of buffer rendered beyond the viewport (in pixels).\n * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.\n */\n @Input()\n get minBufferPx(): number {\n return this._minBufferPx;\n }\n set minBufferPx(value: NumberInput) {\n this._minBufferPx = coerceNumberProperty(value);\n }\n _minBufferPx = 100;\n\n /**\n * The number of pixels worth of buffer to shoot for when rendering new items.\n * If the actual amount turns out to be less it will not necessarily trigger an additional\n * rendering cycle (as long as the amount of buffer is still greater than `minBufferPx`).\n * Defaults to 200px.\n */\n @Input()\n get maxBufferPx(): number {\n return this._maxBufferPx;\n }\n set maxBufferPx(value: NumberInput) {\n this._maxBufferPx = coerceNumberProperty(value);\n }\n _maxBufferPx = 200;\n\n /** The scroll strategy used by this directive. */\n _scrollStrategy = new AutoSizeVirtualScrollStrategy(this.minBufferPx, this.maxBufferPx);\n\n ngOnChanges() {\n this._scrollStrategy.updateBufferSize(this.minBufferPx, this.maxBufferPx);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {CdkAutoSizeVirtualScroll} from './auto-size-virtual-scroll';\n\n@NgModule({\n imports: [CdkAutoSizeVirtualScroll],\n exports: [CdkAutoSizeVirtualScroll],\n})\nexport class ScrollingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scrolling.mjs","sources":["../../../../../../src/cdk-experimental/scrolling/auto-size-virtual-scroll.ts","../../../../../../src/cdk-experimental/scrolling/scrolling-module.ts","../../../../../../src/cdk-experimental/scrolling/scrolling_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {coerceNumberProperty, NumberInput} from '@angular/cdk/coercion';\nimport {ListRange} from '@angular/cdk/collections';\nimport {\n CdkVirtualScrollViewport,\n VIRTUAL_SCROLL_STRATEGY,\n VirtualScrollStrategy,\n} from '@angular/cdk/scrolling';\nimport {Directive, forwardRef, Input, OnChanges} from '@angular/core';\nimport {Observable} from 'rxjs';\n\n/**\n * A class that tracks the size of items that have been seen and uses it to estimate the average\n * item size.\n */\nexport class ItemSizeAverager {\n /** The total amount of weight behind the current average. */\n private _totalWeight = 0;\n\n /** The current average item size. */\n private _averageItemSize: number;\n\n /** The default size to use for items when no data is available. */\n private _defaultItemSize: number;\n\n /** @param defaultItemSize The default size to use for items when no data is available. */\n constructor(defaultItemSize = 50) {\n this._defaultItemSize = defaultItemSize;\n this._averageItemSize = defaultItemSize;\n }\n\n /** Returns the average item size. */\n getAverageItemSize(): number {\n return this._averageItemSize;\n }\n\n /**\n * Adds a measurement sample for the estimator to consider.\n * @param range The measured range.\n * @param size The measured size of the given range in pixels.\n */\n addSample(range: ListRange, size: number) {\n const newTotalWeight = this._totalWeight + range.end - range.start;\n if (newTotalWeight) {\n const newAverageItemSize =\n (size + this._averageItemSize * this._totalWeight) / newTotalWeight;\n if (newAverageItemSize) {\n this._averageItemSize = newAverageItemSize;\n this._totalWeight = newTotalWeight;\n }\n }\n }\n\n /** Resets the averager. */\n reset() {\n this._averageItemSize = this._defaultItemSize;\n this._totalWeight = 0;\n }\n}\n\n/** Virtual scrolling strategy for lists with items of unknown or dynamic size. */\nexport class AutoSizeVirtualScrollStrategy implements VirtualScrollStrategy {\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n scrolledIndexChange = new Observable<number>(() => {\n // TODO(mmalerba): Implement.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw Error(\n 'cdk-virtual-scroll: scrolledIndexChange is currently not supported for the' +\n ' autosize scroll strategy',\n );\n }\n });\n\n /** The attached viewport. */\n private _viewport: CdkVirtualScrollViewport | null = null;\n\n /** The minimum amount of buffer rendered beyond the viewport (in pixels). */\n private _minBufferPx: number;\n\n /** The number of buffer items to render beyond the edge of the viewport (in pixels). */\n private _maxBufferPx: number;\n\n /** The estimator used to estimate the size of unseen items. */\n private _averager: ItemSizeAverager;\n\n /** The last measured scroll offset of the viewport. */\n private _lastScrollOffset: number;\n\n /** The last measured size of the rendered content in the viewport. */\n private _lastRenderedContentSize: number;\n\n /** The last measured size of the rendered content in the viewport. */\n private _lastRenderedContentOffset: number;\n\n /**\n * The number of consecutive cycles where removing extra items has failed. Failure here means that\n * we estimated how many items we could safely remove, but our estimate turned out to be too much\n * and it wasn't safe to remove that many elements.\n */\n private _removalFailures = 0;\n\n /**\n * @param minBufferPx The minimum amount of buffer rendered beyond the viewport (in pixels).\n * If the amount of buffer dips below this number, more items will be rendered.\n * @param maxBufferPx The number of pixels worth of buffer to shoot for when rendering new items.\n * If the actual amount turns out to be less it will not necessarily trigger an additional\n * rendering cycle (as long as the amount of buffer is still greater than `minBufferPx`).\n * @param averager The averager used to estimate the size of unseen items.\n */\n constructor(minBufferPx: number, maxBufferPx: number, averager = new ItemSizeAverager()) {\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n this._averager = averager;\n }\n\n /**\n * Attaches this scroll strategy to a viewport.\n * @param viewport The viewport to attach this strategy to.\n */\n attach(viewport: CdkVirtualScrollViewport) {\n this._averager.reset();\n this._viewport = viewport;\n this._renderContentForCurrentOffset();\n }\n\n /** Detaches this scroll strategy from the currently attached viewport. */\n detach() {\n this._viewport = null;\n }\n\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentScrolled() {\n if (this._viewport) {\n this._updateRenderedContentAfterScroll();\n }\n }\n\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onDataLengthChanged() {\n if (this._viewport) {\n this._renderContentForCurrentOffset();\n this._checkRenderedContentSize();\n }\n }\n\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentRendered() {\n if (this._viewport) {\n this._checkRenderedContentSize();\n }\n }\n\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onRenderedOffsetChanged() {\n if (this._viewport) {\n this._checkRenderedContentOffset();\n }\n }\n\n /** Scroll to the offset for the given index. */\n scrollToIndex(): void {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // TODO(mmalerba): Implement.\n throw Error(\n 'cdk-virtual-scroll: scrollToIndex is currently not supported for the autosize' +\n ' scroll strategy',\n );\n }\n }\n\n /**\n * Update the buffer parameters.\n * @param minBufferPx The minimum amount of buffer rendered beyond the viewport (in pixels).\n * @param maxBufferPx The number of buffer items to render beyond the edge of the viewport (in\n * pixels).\n */\n updateBufferSize(minBufferPx: number, maxBufferPx: number) {\n if (maxBufferPx < minBufferPx) {\n throw Error('CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx');\n }\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n }\n\n /** Update the rendered content after the user scrolls. */\n private _updateRenderedContentAfterScroll() {\n const viewport = this._viewport!;\n\n // The current scroll offset.\n const scrollOffset = viewport.measureScrollOffset();\n // The delta between the current scroll offset and the previously recorded scroll offset.\n let scrollDelta = scrollOffset - this._lastScrollOffset;\n // The magnitude of the scroll delta.\n let scrollMagnitude = Math.abs(scrollDelta);\n\n // The currently rendered range.\n const renderedRange = viewport.getRenderedRange();\n\n // If we're scrolling toward the top, we need to account for the fact that the predicted amount\n // of content and the actual amount of scrollable space may differ. We address this by slowly\n // correcting the difference on each scroll event.\n let offsetCorrection = 0;\n if (scrollDelta < 0) {\n // The content offset we would expect based on the average item size.\n const predictedOffset = renderedRange.start * this._averager.getAverageItemSize();\n // The difference between the predicted size of the un-rendered content at the beginning and\n // the actual available space to scroll over. We need to reduce this to zero by the time the\n // user scrolls to the top.\n // - 0 indicates that the predicted size and available space are the same.\n // - A negative number that the predicted size is smaller than the available space.\n // - A positive number indicates the predicted size is larger than the available space\n const offsetDifference = predictedOffset - this._lastRenderedContentOffset;\n // The amount of difference to correct during this scroll event. We calculate this as a\n // percentage of the total difference based on the percentage of the distance toward the top\n // that the user scrolled.\n offsetCorrection = Math.round(\n offsetDifference *\n Math.max(0, Math.min(1, scrollMagnitude / (scrollOffset + scrollMagnitude))),\n );\n\n // Based on the offset correction above, we pretend that the scroll delta was bigger or\n // smaller than it actually was, this way we can start to eliminate the difference.\n scrollDelta = scrollDelta - offsetCorrection;\n scrollMagnitude = Math.abs(scrollDelta);\n }\n\n // The current amount of buffer past the start of the viewport.\n const startBuffer = this._lastScrollOffset - this._lastRenderedContentOffset;\n // The current amount of buffer past the end of the viewport.\n const endBuffer =\n this._lastRenderedContentOffset +\n this._lastRenderedContentSize -\n (this._lastScrollOffset + viewport.getViewportSize());\n // The amount of unfilled space that should be filled on the side the user is scrolling toward\n // in order to safely absorb the scroll delta.\n const underscan =\n scrollMagnitude + this._minBufferPx - (scrollDelta < 0 ? startBuffer : endBuffer);\n\n // Check if there's unfilled space that we need to render new elements to fill.\n if (underscan > 0) {\n // Check if the scroll magnitude was larger than the viewport size. In this case the user\n // won't notice a discontinuity if we just jump to the new estimated position in the list.\n // However, if the scroll magnitude is smaller than the viewport the user might notice some\n // jitteriness if we just jump to the estimated position. Instead we make sure to scroll by\n // the same number of pixels as the scroll magnitude.\n if (scrollMagnitude >= viewport.getViewportSize()) {\n this._renderContentForCurrentOffset();\n } else {\n // The number of new items to render on the side the user is scrolling towards. Rather than\n // just filling the underscan space, we actually fill enough to have a buffer size of\n // `maxBufferPx`. This gives us a little wiggle room in case our item size estimate is off.\n const addItems = Math.max(\n 0,\n Math.ceil(\n (underscan - this._minBufferPx + this._maxBufferPx) /\n this._averager.getAverageItemSize(),\n ),\n );\n // The amount of filled space beyond what is necessary on the side the user is scrolling\n // away from.\n const overscan =\n (scrollDelta < 0 ? endBuffer : startBuffer) - this._minBufferPx + scrollMagnitude;\n // The number of currently rendered items to remove on the side the user is scrolling away\n // from. If removal has failed in recent cycles we are less aggressive in how much we try to\n // remove.\n const unboundedRemoveItems = Math.floor(\n overscan / this._averager.getAverageItemSize() / (this._removalFailures + 1),\n );\n const removeItems = Math.min(\n renderedRange.end - renderedRange.start,\n Math.max(0, unboundedRemoveItems),\n );\n\n // The new range we will tell the viewport to render. We first expand it to include the new\n // items we want rendered, we then contract the opposite side to remove items we no longer\n // want rendered.\n const range = this._expandRange(\n renderedRange,\n scrollDelta < 0 ? addItems : 0,\n scrollDelta > 0 ? addItems : 0,\n );\n if (scrollDelta < 0) {\n range.end = Math.max(range.start + 1, range.end - removeItems);\n } else {\n range.start = Math.min(range.end - 1, range.start + removeItems);\n }\n\n // The new offset we want to set on the rendered content. To determine this we measure the\n // number of pixels we removed and then adjust the offset to the start of the rendered\n // content or to the end of the rendered content accordingly (whichever one doesn't require\n // that the newly added items to be rendered to calculate.)\n let contentOffset: number;\n let contentOffsetTo: 'to-start' | 'to-end';\n if (scrollDelta < 0) {\n let removedSize = viewport.measureRangeSize({\n start: range.end,\n end: renderedRange.end,\n });\n // Check that we're not removing too much.\n if (removedSize <= overscan) {\n contentOffset =\n this._lastRenderedContentOffset + this._lastRenderedContentSize - removedSize;\n this._removalFailures = 0;\n } else {\n // If the removal is more than the overscan can absorb just undo it and record the fact\n // that the removal failed so we can be less aggressive next time.\n range.end = renderedRange.end;\n contentOffset = this._lastRenderedContentOffset + this._lastRenderedContentSize;\n this._removalFailures++;\n }\n contentOffsetTo = 'to-end';\n } else {\n const removedSize = viewport.measureRangeSize({\n start: renderedRange.start,\n end: range.start,\n });\n // Check that we're not removing too much.\n if (removedSize <= overscan) {\n contentOffset = this._lastRenderedContentOffset + removedSize;\n this._removalFailures = 0;\n } else {\n // If the removal is more than the overscan can absorb just undo it and record the fact\n // that the removal failed so we can be less aggressive next time.\n range.start = renderedRange.start;\n contentOffset = this._lastRenderedContentOffset;\n this._removalFailures++;\n }\n contentOffsetTo = 'to-start';\n }\n\n // Set the range and offset we calculated above.\n viewport.setRenderedRange(range);\n viewport.setRenderedContentOffset(contentOffset + offsetCorrection, contentOffsetTo);\n }\n } else if (offsetCorrection) {\n // Even if the rendered range didn't change, we may still need to adjust the content offset to\n // simulate scrolling slightly slower or faster than the user actually scrolled.\n viewport.setRenderedContentOffset(this._lastRenderedContentOffset + offsetCorrection);\n }\n\n // Save the scroll offset to be compared to the new value on the next scroll event.\n this._lastScrollOffset = scrollOffset;\n }\n\n /**\n * Checks the size of the currently rendered content and uses it to update the estimated item size\n * and estimated total content size.\n */\n private _checkRenderedContentSize() {\n const viewport = this._viewport!;\n this._lastRenderedContentSize = viewport.measureRenderedContentSize();\n this._averager.addSample(viewport.getRenderedRange(), this._lastRenderedContentSize);\n this._updateTotalContentSize(this._lastRenderedContentSize);\n }\n\n /** Checks the currently rendered content offset and saves the value for later use. */\n private _checkRenderedContentOffset() {\n const viewport = this._viewport!;\n this._lastRenderedContentOffset = viewport.getOffsetToRenderedContentStart()!;\n }\n\n /**\n * Recalculates the rendered content based on our estimate of what should be shown at the current\n * scroll offset.\n */\n private _renderContentForCurrentOffset() {\n const viewport = this._viewport!;\n const scrollOffset = viewport.measureScrollOffset();\n this._lastScrollOffset = scrollOffset;\n this._removalFailures = 0;\n\n const itemSize = this._averager.getAverageItemSize();\n const firstVisibleIndex = Math.min(\n viewport.getDataLength() - 1,\n Math.floor(scrollOffset / itemSize),\n );\n const bufferSize = Math.ceil(this._maxBufferPx / itemSize);\n const range = this._expandRange(\n this._getVisibleRangeForIndex(firstVisibleIndex),\n bufferSize,\n bufferSize,\n );\n\n viewport.setRenderedRange(range);\n viewport.setRenderedContentOffset(itemSize * range.start);\n }\n\n // TODO: maybe move to base class, can probably share with fixed size strategy.\n /**\n * Gets the visible range of data for the given start index. If the start index is too close to\n * the end of the list it may be backed up to ensure the estimated size of the range is enough to\n * fill the viewport.\n * Note: must not be called if `this._viewport` is null\n * @param startIndex The index to start the range at\n * @return a range estimated to be large enough to fill the viewport when rendered.\n */\n private _getVisibleRangeForIndex(startIndex: number): ListRange {\n const viewport = this._viewport!;\n const range: ListRange = {\n start: startIndex,\n end: startIndex + Math.ceil(viewport.getViewportSize() / this._averager.getAverageItemSize()),\n };\n const extra = range.end - viewport.getDataLength();\n if (extra > 0) {\n range.start = Math.max(0, range.start - extra);\n }\n return range;\n }\n\n // TODO: maybe move to base class, can probably share with fixed size strategy.\n /**\n * Expand the given range by the given amount in either direction.\n * Note: must not be called if `this._viewport` is null\n * @param range The range to expand\n * @param expandStart The number of items to expand the start of the range by.\n * @param expandEnd The number of items to expand the end of the range by.\n * @return The expanded range.\n */\n private _expandRange(range: ListRange, expandStart: number, expandEnd: number): ListRange {\n const viewport = this._viewport!;\n const start = Math.max(0, range.start - expandStart);\n const end = Math.min(viewport.getDataLength(), range.end + expandEnd);\n return {start, end};\n }\n\n /** Update the viewport's total content size. */\n private _updateTotalContentSize(renderedContentSize: number) {\n const viewport = this._viewport!;\n const renderedRange = viewport.getRenderedRange();\n const totalSize =\n renderedContentSize +\n (viewport.getDataLength() - (renderedRange.end - renderedRange.start)) *\n this._averager.getAverageItemSize();\n viewport.setTotalContentSize(totalSize);\n }\n}\n\n/**\n * Provider factory for `AutoSizeVirtualScrollStrategy` that simply extracts the already created\n * `AutoSizeVirtualScrollStrategy` from the given directive.\n * @param autoSizeDir The instance of `CdkAutoSizeVirtualScroll` to extract the\n * `AutoSizeVirtualScrollStrategy` from.\n */\nexport function _autoSizeVirtualScrollStrategyFactory(autoSizeDir: CdkAutoSizeVirtualScroll) {\n return autoSizeDir._scrollStrategy;\n}\n\n/** A virtual scroll strategy that supports unknown or dynamic size items. */\n@Directive({\n selector: 'cdk-virtual-scroll-viewport[autosize]',\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _autoSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkAutoSizeVirtualScroll)],\n },\n ],\n})\nexport class CdkAutoSizeVirtualScroll implements OnChanges {\n /**\n * The minimum amount of buffer rendered beyond the viewport (in pixels).\n * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.\n */\n @Input()\n get minBufferPx(): number {\n return this._minBufferPx;\n }\n set minBufferPx(value: NumberInput) {\n this._minBufferPx = coerceNumberProperty(value);\n }\n _minBufferPx = 100;\n\n /**\n * The number of pixels worth of buffer to shoot for when rendering new items.\n * If the actual amount turns out to be less it will not necessarily trigger an additional\n * rendering cycle (as long as the amount of buffer is still greater than `minBufferPx`).\n * Defaults to 200px.\n */\n @Input()\n get maxBufferPx(): number {\n return this._maxBufferPx;\n }\n set maxBufferPx(value: NumberInput) {\n this._maxBufferPx = coerceNumberProperty(value);\n }\n _maxBufferPx = 200;\n\n /** The scroll strategy used by this directive. */\n _scrollStrategy = new AutoSizeVirtualScrollStrategy(this.minBufferPx, this.maxBufferPx);\n\n ngOnChanges() {\n this._scrollStrategy.updateBufferSize(this.minBufferPx, this.maxBufferPx);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {CdkAutoSizeVirtualScroll} from './auto-size-virtual-scroll';\n\n@NgModule({\n imports: [CdkAutoSizeVirtualScroll],\n exports: [CdkAutoSizeVirtualScroll],\n})\nexport class ScrollingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
2
2
  import { isDataSource } from '@angular/cdk/collections';
3
3
  import * as i0 from '@angular/core';
4
- import { EventEmitter, Directive, Input, Output, Optional, Inject, Self, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, NgModule } from '@angular/core';
4
+ import { EventEmitter, Directive, Input, Output, inject, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, NgModule } from '@angular/core';
5
5
  import { Subject, Observable, of } from 'rxjs';
6
6
  import { takeUntil, switchMap, distinctUntilChanged } from 'rxjs/operators';
7
7
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
8
- import * as i1 from '@angular/cdk/table';
9
8
  import { CdkTable, CdkColumnDef, CdkCellDef, CdkHeaderCellDef, CdkTableModule } from '@angular/cdk/table';
10
9
  import { AsyncPipe, CommonModule } from '@angular/common';
11
10
 
@@ -231,15 +230,14 @@ class CdkSelection {
231
230
  this.selectAllState = 'none';
232
231
  }
233
232
  }
234
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkSelection, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
235
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0-next.2", type: CdkSelection, isStandalone: true, selector: "[cdkSelection]", inputs: { dataSource: "dataSource", trackByFn: ["trackBy", "trackByFn"], multiple: ["cdkSelectionMultiple", "multiple"] }, outputs: { change: "cdkSelectionChange" }, exportAs: ["cdkSelection"], ngImport: i0 }); }
233
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkSelection, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
234
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkSelection, isStandalone: true, selector: "[cdkSelection]", inputs: { dataSource: "dataSource", trackByFn: ["trackBy", "trackByFn"], multiple: ["cdkSelectionMultiple", "multiple"] }, outputs: { change: "cdkSelectionChange" }, exportAs: ["cdkSelection"], ngImport: i0 }); }
236
235
  }
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkSelection, decorators: [{
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkSelection, decorators: [{
238
237
  type: Directive,
239
238
  args: [{
240
239
  selector: '[cdkSelection]',
241
240
  exportAs: 'cdkSelection',
242
- standalone: true,
243
241
  }]
244
242
  }], propDecorators: { dataSource: [{
245
243
  type: Input
@@ -282,10 +280,11 @@ class CdkSelectAll {
282
280
  this._selection.toggleSelectAll();
283
281
  });
284
282
  }
285
- constructor(_selection, _controlValueAccessor) {
286
- this._selection = _selection;
287
- this._controlValueAccessor = _controlValueAccessor;
283
+ constructor() {
284
+ this._selection = inject(CdkSelection, { optional: true });
285
+ this._controlValueAccessor = inject(NG_VALUE_ACCESSOR, { optional: true, self: true });
288
286
  this._destroyed = new Subject();
287
+ const _selection = this._selection;
289
288
  this.checked = _selection.change.pipe(switchMap(() => of(_selection.isAllSelected())));
290
289
  this.indeterminate = _selection.change.pipe(switchMap(() => of(_selection.isPartialSelected())));
291
290
  }
@@ -317,29 +316,16 @@ class CdkSelectAll {
317
316
  this._destroyed.next();
318
317
  this._destroyed.complete();
319
318
  }
320
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkSelectAll, deps: [{ token: CdkSelection, optional: true }, { token: NG_VALUE_ACCESSOR, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
321
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0-next.2", type: CdkSelectAll, isStandalone: true, selector: "[cdkSelectAll]", exportAs: ["cdkSelectAll"], ngImport: i0 }); }
319
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkSelectAll, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
320
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkSelectAll, isStandalone: true, selector: "[cdkSelectAll]", exportAs: ["cdkSelectAll"], ngImport: i0 }); }
322
321
  }
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkSelectAll, decorators: [{
322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkSelectAll, decorators: [{
324
323
  type: Directive,
325
324
  args: [{
326
325
  selector: '[cdkSelectAll]',
327
326
  exportAs: 'cdkSelectAll',
328
- standalone: true,
329
327
  }]
330
- }], ctorParameters: () => [{ type: CdkSelection, decorators: [{
331
- type: Optional
332
- }, {
333
- type: Inject,
334
- args: [CdkSelection]
335
- }] }, { type: undefined, decorators: [{
336
- type: Optional
337
- }, {
338
- type: Self
339
- }, {
340
- type: Inject,
341
- args: [NG_VALUE_ACCESSOR]
342
- }] }] });
328
+ }], ctorParameters: () => [] });
343
329
 
344
330
  /**
345
331
  * Makes the element a selection toggle.
@@ -363,10 +349,11 @@ class CdkSelectionToggle {
363
349
  toggle() {
364
350
  this._selection.toggleSelection(this.value, this.index);
365
351
  }
366
- constructor(_selection, _controlValueAccessors) {
367
- this._selection = _selection;
368
- this._controlValueAccessors = _controlValueAccessors;
352
+ constructor() {
353
+ this._selection = inject(CdkSelection, { optional: true });
354
+ this._controlValueAccessors = inject(NG_VALUE_ACCESSOR, { optional: true, self: true });
369
355
  this._destroyed = new Subject();
356
+ const _selection = this._selection;
370
357
  this.checked = _selection.change.pipe(switchMap(() => of(this._isSelected())), distinctUntilChanged());
371
358
  }
372
359
  ngOnInit() {
@@ -397,29 +384,16 @@ class CdkSelectionToggle {
397
384
  _isSelected() {
398
385
  return this._selection.isSelected(this.value, this.index);
399
386
  }
400
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkSelectionToggle, deps: [{ token: CdkSelection, optional: true }, { token: NG_VALUE_ACCESSOR, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
401
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0-next.2", type: CdkSelectionToggle, isStandalone: true, selector: "[cdkSelectionToggle]", inputs: { value: ["cdkSelectionToggleValue", "value"], index: ["cdkSelectionToggleIndex", "index"] }, exportAs: ["cdkSelectionToggle"], ngImport: i0 }); }
387
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkSelectionToggle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
388
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkSelectionToggle, isStandalone: true, selector: "[cdkSelectionToggle]", inputs: { value: ["cdkSelectionToggleValue", "value"], index: ["cdkSelectionToggleIndex", "index"] }, exportAs: ["cdkSelectionToggle"], ngImport: i0 }); }
402
389
  }
403
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkSelectionToggle, decorators: [{
390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkSelectionToggle, decorators: [{
404
391
  type: Directive,
405
392
  args: [{
406
393
  selector: '[cdkSelectionToggle]',
407
394
  exportAs: 'cdkSelectionToggle',
408
- standalone: true,
409
395
  }]
410
- }], ctorParameters: () => [{ type: CdkSelection, decorators: [{
411
- type: Optional
412
- }, {
413
- type: Inject,
414
- args: [CdkSelection]
415
- }] }, { type: undefined, decorators: [{
416
- type: Optional
417
- }, {
418
- type: Self
419
- }, {
420
- type: Inject,
421
- args: [NG_VALUE_ACCESSOR]
422
- }] }], propDecorators: { value: [{
396
+ }], ctorParameters: () => [], propDecorators: { value: [{
423
397
  type: Input,
424
398
  args: ['cdkSelectionToggleValue']
425
399
  }], index: [{
@@ -434,6 +408,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2",
434
408
  * Must be used within a parent `CdkSelection` directive.
435
409
  */
436
410
  class CdkSelectionColumn {
411
+ constructor() {
412
+ this._table = inject(CdkTable, { optional: true });
413
+ this.selection = inject(CdkSelection, { optional: true });
414
+ }
437
415
  /** Column name that should be used to reference this column. */
438
416
  get name() {
439
417
  return this._name;
@@ -442,10 +420,6 @@ class CdkSelectionColumn {
442
420
  this._name = name;
443
421
  this._syncColumnDefName();
444
422
  }
445
- constructor(_table, selection) {
446
- this._table = _table;
447
- this.selection = selection;
448
- }
449
423
  ngOnInit() {
450
424
  if (!this.selection && (typeof ngDevMode === 'undefined' || ngDevMode)) {
451
425
  throw Error('CdkSelectionColumn: missing CdkSelection in the parent');
@@ -470,11 +444,11 @@ class CdkSelectionColumn {
470
444
  this._columnDef.name = this._name;
471
445
  }
472
446
  }
473
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkSelectionColumn, deps: [{ token: CdkTable, optional: true }, { token: CdkSelection, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
474
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0-next.2", type: CdkSelectionColumn, isStandalone: true, selector: "cdk-selection-column", inputs: { name: ["cdkSelectionColumnName", "name"] }, viewQueries: [{ propertyName: "_columnDef", first: true, predicate: CdkColumnDef, descendants: true, static: true }, { propertyName: "_cell", first: true, predicate: CdkCellDef, descendants: true, static: true }, { propertyName: "_headerCell", first: true, predicate: CdkHeaderCellDef, descendants: true, static: true }], ngImport: i0, template: `
447
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkSelectionColumn, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
448
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.0-next.10", type: CdkSelectionColumn, isStandalone: true, selector: "cdk-selection-column", inputs: { name: ["cdkSelectionColumnName", "name"] }, viewQueries: [{ propertyName: "_columnDef", first: true, predicate: CdkColumnDef, descendants: true, static: true }, { propertyName: "_cell", first: true, predicate: CdkCellDef, descendants: true, static: true }, { propertyName: "_headerCell", first: true, predicate: CdkHeaderCellDef, descendants: true, static: true }], ngImport: i0, template: `
475
449
  <ng-container cdkColumnDef>
476
450
  <th cdkHeaderCell *cdkHeaderCellDef>
477
- @if (selection.multiple) {
451
+ @if (selection && selection.multiple) {
478
452
  <input type="checkbox"
479
453
  cdkSelectAll
480
454
  #allToggler="cdkSelectAll"
@@ -495,14 +469,14 @@ class CdkSelectionColumn {
495
469
  </ng-container>
496
470
  `, isInline: true, dependencies: [{ kind: "directive", type: CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["cdkColumnDef", "sticky", "stickyEnd"] }, { kind: "directive", type: CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { kind: "directive", type: CdkSelectAll, selector: "[cdkSelectAll]", exportAs: ["cdkSelectAll"] }, { kind: "directive", type: CdkCellDef, selector: "[cdkCellDef]" }, { kind: "directive", type: CdkSelectionToggle, selector: "[cdkSelectionToggle]", inputs: ["cdkSelectionToggleValue", "cdkSelectionToggleIndex"], exportAs: ["cdkSelectionToggle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
497
471
  }
498
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkSelectionColumn, decorators: [{
472
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkSelectionColumn, decorators: [{
499
473
  type: Component,
500
474
  args: [{
501
475
  selector: 'cdk-selection-column',
502
476
  template: `
503
477
  <ng-container cdkColumnDef>
504
478
  <th cdkHeaderCell *cdkHeaderCellDef>
505
- @if (selection.multiple) {
479
+ @if (selection && selection.multiple) {
506
480
  <input type="checkbox"
507
481
  cdkSelectAll
508
482
  #allToggler="cdkSelectAll"
@@ -524,7 +498,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2",
524
498
  `,
525
499
  changeDetection: ChangeDetectionStrategy.OnPush,
526
500
  encapsulation: ViewEncapsulation.None,
527
- standalone: true,
528
501
  imports: [
529
502
  CdkColumnDef,
530
503
  CdkHeaderCellDef,
@@ -534,17 +507,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2",
534
507
  AsyncPipe,
535
508
  ],
536
509
  }]
537
- }], ctorParameters: () => [{ type: i1.CdkTable, decorators: [{
538
- type: Optional
539
- }, {
540
- type: Inject,
541
- args: [CdkTable]
542
- }] }, { type: CdkSelection, decorators: [{
543
- type: Optional
544
- }, {
545
- type: Inject,
546
- args: [CdkSelection]
547
- }] }], propDecorators: { name: [{
510
+ }], propDecorators: { name: [{
548
511
  type: Input,
549
512
  args: ['cdkSelectionColumnName']
550
513
  }], _columnDef: [{
@@ -566,21 +529,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2",
566
529
  * directive.
567
530
  */
568
531
  class CdkRowSelection {
532
+ constructor() {
533
+ this._selection = inject(CdkSelection);
534
+ // We need an initializer here to avoid a TS error.
535
+ this.value = undefined;
536
+ }
569
537
  get index() {
570
538
  return this._index;
571
539
  }
572
540
  set index(index) {
573
541
  this._index = coerceNumberProperty(index);
574
542
  }
575
- constructor(_selection) {
576
- this._selection = _selection;
577
- // We need an initializer here to avoid a TS error.
578
- this.value = undefined;
579
- }
580
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkRowSelection, deps: [{ token: CdkSelection }], target: i0.ɵɵFactoryTarget.Directive }); }
581
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0-next.2", type: CdkRowSelection, isStandalone: true, selector: "[cdkRowSelection]", inputs: { value: ["cdkRowSelectionValue", "value"], index: ["cdkRowSelectionIndex", "index"] }, host: { properties: { "class.cdk-selected": "_selection.isSelected(this.value, this.index)", "attr.aria-selected": "_selection.isSelected(this.value, this.index)" } }, ngImport: i0 }); }
543
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkRowSelection, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
544
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkRowSelection, isStandalone: true, selector: "[cdkRowSelection]", inputs: { value: ["cdkRowSelectionValue", "value"], index: ["cdkRowSelectionIndex", "index"] }, host: { properties: { "class.cdk-selected": "_selection.isSelected(this.value, this.index)", "attr.aria-selected": "_selection.isSelected(this.value, this.index)" } }, ngImport: i0 }); }
582
545
  }
583
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkRowSelection, decorators: [{
546
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkRowSelection, decorators: [{
584
547
  type: Directive,
585
548
  args: [{
586
549
  selector: '[cdkRowSelection]',
@@ -588,9 +551,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2",
588
551
  '[class.cdk-selected]': '_selection.isSelected(this.value, this.index)',
589
552
  '[attr.aria-selected]': '_selection.isSelected(this.value, this.index)',
590
553
  },
591
- standalone: true,
592
554
  }]
593
- }], ctorParameters: () => [{ type: CdkSelection }], propDecorators: { value: [{
555
+ }], propDecorators: { value: [{
594
556
  type: Input,
595
557
  args: ['cdkRowSelectionValue']
596
558
  }], index: [{
@@ -599,18 +561,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2",
599
561
  }] } });
600
562
 
601
563
  class CdkSelectionModule {
602
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkSelectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
603
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkSelectionModule, imports: [CommonModule,
564
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkSelectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
565
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkSelectionModule, imports: [CommonModule,
604
566
  CdkTableModule,
605
567
  CdkSelection,
606
568
  CdkSelectionToggle,
607
569
  CdkSelectAll,
608
570
  CdkSelectionColumn,
609
571
  CdkRowSelection], exports: [CdkSelection, CdkSelectionToggle, CdkSelectAll, CdkSelectionColumn, CdkRowSelection] }); }
610
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkSelectionModule, imports: [CommonModule,
572
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkSelectionModule, imports: [CommonModule,
611
573
  CdkTableModule] }); }
612
574
  }
613
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkSelectionModule, decorators: [{
575
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkSelectionModule, decorators: [{
614
576
  type: NgModule,
615
577
  args: [{
616
578
  imports: [