{"version":3,"file":"selection.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk-experimental/selection/selection-set.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk-experimental/selection/selection.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk-experimental/selection/select-all.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk-experimental/selection/selection-toggle.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk-experimental/selection/selection-column.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk-experimental/selection/row-selection.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/cdk-experimental/selection/selection-module.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 {TrackByFunction} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * Maintains a set of selected values. One or more values can be added to or removed from the\n * selection.\n */\ninterface TrackBySelection<T> {\n  isSelected(value: SelectableWithIndex<T>): boolean;\n  select(...values: SelectableWithIndex<T>[]): void;\n  deselect(...values: SelectableWithIndex<T>[]): void;\n  changed: Subject<SelectionChange<T>>;\n}\n\n/**\n * A selectable value with an optional index. The index is required when the selection is used with\n * `trackBy`.\n */\nexport interface SelectableWithIndex<T> {\n  value: T;\n  index?: number;\n}\n\n/**\n * Represents the change in the selection set.\n */\nexport interface SelectionChange<T> {\n  before: SelectableWithIndex<T>[];\n  after: SelectableWithIndex<T>[];\n}\n\n/**\n * Maintains a set of selected items. Support selecting and deselecting items, and checking if a\n * value is selected.\n * When constructed with a `trackByFn`, all the items will be identified by applying the `trackByFn`\n * on them. Because `trackByFn` requires the index of the item to be passed in, the `index` field is\n * expected to be set when calling `isSelected`, `select` and `deselect`.\n */\nexport class SelectionSet<T> implements TrackBySelection<T> {\n  private _selectionMap = new Map<T | ReturnType<TrackByFunction<T>>, SelectableWithIndex<T>>();\n  changed = new Subject<SelectionChange<T>>();\n\n  constructor(\n    private _multiple = false,\n    private _trackByFn?: TrackByFunction<T>,\n  ) {}\n\n  isSelected(value: SelectableWithIndex<T>): boolean {\n    return this._selectionMap.has(this._getTrackedByValue(value));\n  }\n\n  select(...selects: SelectableWithIndex<T>[]) {\n    if (!this._multiple && selects.length > 1 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error('SelectionSet: not multiple selection');\n    }\n\n    const before = this._getCurrentSelection();\n\n    if (!this._multiple) {\n      this._selectionMap.clear();\n    }\n\n    const toSelect: SelectableWithIndex<T>[] = [];\n    for (const select of selects) {\n      if (this.isSelected(select)) {\n        continue;\n      }\n\n      toSelect.push(select);\n      this._markSelected(this._getTrackedByValue(select), select);\n    }\n\n    const after = this._getCurrentSelection();\n\n    this.changed.next({before, after});\n  }\n\n  deselect(...selects: SelectableWithIndex<T>[]) {\n    if (!this._multiple && selects.length > 1 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error('SelectionSet: not multiple selection');\n    }\n\n    const before = this._getCurrentSelection();\n    const toDeselect: SelectableWithIndex<T>[] = [];\n\n    for (const select of selects) {\n      if (!this.isSelected(select)) {\n        continue;\n      }\n\n      toDeselect.push(select);\n      this._markDeselected(this._getTrackedByValue(select));\n    }\n\n    const after = this._getCurrentSelection();\n    this.changed.next({before, after});\n  }\n\n  private _markSelected(key: T | ReturnType<TrackByFunction<T>>, toSelect: SelectableWithIndex<T>) {\n    this._selectionMap.set(key, toSelect);\n  }\n\n  private _markDeselected(key: T | ReturnType<TrackByFunction<T>>) {\n    this._selectionMap.delete(key);\n  }\n\n  private _getTrackedByValue(select: SelectableWithIndex<T>) {\n    if (!this._trackByFn) {\n      return select.value;\n    }\n\n    if (select.index == null && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error('SelectionSet: index required when trackByFn is used.');\n    }\n\n    return this._trackByFn(select.index!, select.value);\n  }\n\n  private _getCurrentSelection(): SelectableWithIndex<T>[] {\n    return Array.from(this._selectionMap.values());\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 {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {CollectionViewer, DataSource, isDataSource, ListRange} from '@angular/cdk/collections';\nimport {\n  AfterContentChecked,\n  Directive,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  TrackByFunction,\n} from '@angular/core';\nimport {Observable, of as observableOf, Subject, Subscription} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {SelectableWithIndex, SelectionChange, SelectionSet} from './selection-set';\n\n/**\n * Manages the selection states of the items and provides methods to check and update the selection\n * states.\n * It must be applied to the parent element if `cdkSelectionToggle`, `cdkSelectAll`,\n * `cdkRowSelection` and `cdkSelectionColumn` are applied.\n */\n@Directive({\n  selector: '[cdkSelection]',\n  exportAs: 'cdkSelection',\n})\nexport class CdkSelection<T> implements OnInit, AfterContentChecked, CollectionViewer, OnDestroy {\n  viewChange!: Observable<ListRange>;\n\n  @Input()\n  get dataSource(): TableDataSource<T> {\n    return this._dataSource;\n  }\n  set dataSource(dataSource: TableDataSource<T>) {\n    if (this._dataSource !== dataSource) {\n      this._switchDataSource(dataSource);\n    }\n  }\n  private _dataSource!: TableDataSource<T>;\n\n  @Input('trackBy') trackByFn!: TrackByFunction<T>;\n\n  /** Whether to support multiple selection */\n  @Input('cdkSelectionMultiple')\n  get multiple(): boolean {\n    return this._multiple;\n  }\n  set multiple(multiple: BooleanInput) {\n    this._multiple = coerceBooleanProperty(multiple);\n  }\n  protected _multiple: boolean = false;\n\n  /** Emits when selection changes. */\n  @Output('cdkSelectionChange') readonly change = new EventEmitter<SelectionChange<T>>();\n\n  /** Latest data provided by the data source. */\n  private _data!: T[] | readonly T[];\n\n  /** Subscription that listens for the data provided by the data source.  */\n  private _renderChangeSubscription: Subscription | null = null;\n\n  private _destroyed = new Subject<void>();\n\n  private _selection!: SelectionSet<T>;\n\n  private _switchDataSource(dataSource: TableDataSource<T>) {\n    this._data = [];\n\n    // TODO: Move this logic to a shared function in `cdk/collections`.\n    if (isDataSource(this._dataSource)) {\n      this._dataSource.disconnect(this);\n    }\n\n    if (this._renderChangeSubscription) {\n      this._renderChangeSubscription.unsubscribe();\n      this._renderChangeSubscription = null;\n    }\n\n    this._dataSource = dataSource;\n  }\n\n  private _observeRenderChanges() {\n    if (!this._dataSource) {\n      return;\n    }\n\n    let dataStream: Observable<readonly T[]> | undefined;\n\n    if (isDataSource(this._dataSource)) {\n      dataStream = this._dataSource.connect(this);\n    } else if (this._dataSource instanceof Observable) {\n      dataStream = this._dataSource;\n    } else if (Array.isArray(this._dataSource)) {\n      dataStream = observableOf(this._dataSource);\n    }\n\n    if (dataStream == null && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error('Unknown data source');\n    }\n\n    this._renderChangeSubscription = dataStream!\n      .pipe(takeUntil(this._destroyed))\n      .subscribe(data => {\n        this._data = data || [];\n      });\n  }\n\n  ngOnInit() {\n    this._selection = new SelectionSet<T>(this._multiple, this.trackByFn);\n    this._selection.changed.pipe(takeUntil(this._destroyed)).subscribe(change => {\n      this._updateSelectAllState();\n      this.change.emit(change);\n    });\n  }\n\n  ngAfterContentChecked() {\n    if (this._dataSource && !this._renderChangeSubscription) {\n      this._observeRenderChanges();\n    }\n  }\n\n  ngOnDestroy() {\n    this._destroyed.next();\n    this._destroyed.complete();\n\n    if (isDataSource(this._dataSource)) {\n      this._dataSource.disconnect(this);\n    }\n  }\n\n  /** Toggles selection for a given value. `index` is required if `trackBy` is used. */\n  toggleSelection(value: T, index?: number) {\n    if (!!this.trackByFn && index == null && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error('CdkSelection: index required when trackBy is used');\n    }\n\n    if (this.isSelected(value, index)) {\n      this._selection.deselect({value, index});\n    } else {\n      this._selection.select({value, index});\n    }\n  }\n\n  /**\n   * Toggles select-all. If no value is selected, select all values. If all values or some of the\n   * values are selected, de-select all values.\n   */\n  toggleSelectAll() {\n    if (!this._multiple && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error('CdkSelection: multiple selection not enabled');\n    }\n\n    if (this.selectAllState === 'none') {\n      this._selectAll();\n    } else {\n      this._clearAll();\n    }\n  }\n\n  /** Checks whether a value is selected. `index` is required if `trackBy` is used. */\n  isSelected(value: T, index?: number) {\n    if (!!this.trackByFn && index == null && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error('CdkSelection: index required when trackBy is used');\n    }\n\n    return this._selection.isSelected({value, index});\n  }\n\n  /** Checks whether all values are selected. */\n  isAllSelected() {\n    return this._data.every((value, index) => this._selection.isSelected({value, index}));\n  }\n\n  /** Checks whether partially selected. */\n  isPartialSelected() {\n    return (\n      !this.isAllSelected() &&\n      this._data.some((value, index) => this._selection.isSelected({value, index}))\n    );\n  }\n\n  private _selectAll() {\n    const toSelect: SelectableWithIndex<T>[] = [];\n    this._data.forEach((value, index) => {\n      toSelect.push({value, index});\n    });\n\n    this._selection.select(...toSelect);\n  }\n\n  private _clearAll() {\n    const toDeselect: SelectableWithIndex<T>[] = [];\n    this._data.forEach((value, index) => {\n      toDeselect.push({value, index});\n    });\n\n    this._selection.deselect(...toDeselect);\n  }\n\n  private _updateSelectAllState() {\n    if (this.isAllSelected()) {\n      this.selectAllState = 'all';\n    } else if (this.isPartialSelected()) {\n      this.selectAllState = 'partial';\n    } else {\n      this.selectAllState = 'none';\n    }\n  }\n\n  selectAllState: SelectAllState = 'none';\n}\n\ntype SelectAllState = 'all' | 'none' | 'partial';\ntype TableDataSource<T> = DataSource<T> | Observable<readonly T[]> | readonly T[];\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 {Directive, OnDestroy, OnInit, inject} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {Observable, of as observableOf, Subject} from 'rxjs';\nimport {switchMap, takeUntil} from 'rxjs/operators';\n\nimport {CdkSelection} from './selection';\n\n/**\n * Makes the element a select-all toggle.\n *\n * Must be used within a parent `CdkSelection` directive. It toggles the selection states\n * of all the selection toggles connected with the `CdkSelection` directive.\n * If the element implements `ControlValueAccessor`, e.g. `MatCheckbox`, the directive\n * automatically connects it with the select-all state provided by the `CdkSelection` directive. If\n * not, use `checked$` to get the checked state, `indeterminate$` to get the indeterminate state,\n * and `toggle()` to change the selection state.\n */\n@Directive({\n  selector: '[cdkSelectAll]',\n  exportAs: 'cdkSelectAll',\n})\nexport class CdkSelectAll<T> implements OnDestroy, OnInit {\n  private readonly _selection = inject<CdkSelection<T>>(CdkSelection, {optional: true})!;\n  private readonly _controlValueAccessor = inject(NG_VALUE_ACCESSOR, {optional: true, self: true});\n\n  /**\n   * The checked state of the toggle.\n   * Resolves to `true` if all the values are selected, `false` if no value is selected.\n   */\n  readonly checked: Observable<boolean>;\n\n  /**\n   * The indeterminate state of the toggle.\n   * Resolves to `true` if part (not all) of the values are selected, `false` if all values or no\n   * value at all are selected.\n   */\n  readonly indeterminate: Observable<boolean>;\n\n  /**\n   * Toggles the select-all state.\n   * @param event The click event if the toggle is triggered by a (mouse or keyboard) click. If\n   *     using with a native `<input type=\"checkbox\">`, the parameter is required for the\n   *     indeterminate state to work properly.\n   */\n  toggle(event?: MouseEvent) {\n    // This is needed when applying the directive on a native <input type=\"checkbox\">\n    // checkbox. The default behavior needs to be prevented in order to support the indeterminate\n    // state. The timeout is also needed so the checkbox can show the latest state.\n    if (event) {\n      event.preventDefault();\n    }\n\n    setTimeout(() => {\n      this._selection.toggleSelectAll();\n    });\n  }\n\n  private readonly _destroyed = new Subject<void>();\n\n  constructor() {\n    const _selection = this._selection;\n\n    this.checked = _selection.change.pipe(\n      switchMap(() => observableOf(_selection.isAllSelected())),\n    );\n\n    this.indeterminate = _selection.change.pipe(\n      switchMap(() => observableOf(_selection.isPartialSelected())),\n    );\n  }\n\n  ngOnInit() {\n    this._assertValidParentSelection();\n    this._configureControlValueAccessor();\n  }\n\n  private _configureControlValueAccessor() {\n    if (this._controlValueAccessor && this._controlValueAccessor.length) {\n      this._controlValueAccessor[0].registerOnChange((e: unknown) => {\n        if (e === true || e === false) {\n          this.toggle();\n        }\n      });\n      this.checked.pipe(takeUntil(this._destroyed)).subscribe(state => {\n        this._controlValueAccessor![0].writeValue(state);\n      });\n    }\n  }\n\n  private _assertValidParentSelection() {\n    if (!this._selection && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error('CdkSelectAll: missing CdkSelection in the parent');\n    }\n\n    if (!this._selection.multiple && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error('CdkSelectAll: CdkSelection must have cdkSelectionMultiple set to true');\n    }\n  }\n\n  ngOnDestroy() {\n    this._destroyed.next();\n    this._destroyed.complete();\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 {coerceNumberProperty, NumberInput} from '@angular/cdk/coercion';\nimport {Directive, Input, OnDestroy, OnInit, inject} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {Observable, of as observableOf, Subject} from 'rxjs';\nimport {distinctUntilChanged, switchMap, takeUntil} from 'rxjs/operators';\n\nimport {CdkSelection} from './selection';\n\n/**\n * Makes the element a selection toggle.\n *\n * Must be used within a parent `CdkSelection` directive.\n * Must be provided with the value. If `trackBy` is used on `CdkSelection`, the index of the value\n * is required. If the element implements `ControlValueAccessor`, e.g. `MatCheckbox`, the directive\n * automatically connects it with the selection state provided by the `CdkSelection` directive. If\n * not, use `checked$` to get the checked state of the value, and `toggle()` to change the selection\n * state.\n */\n@Directive({\n  selector: '[cdkSelectionToggle]',\n  exportAs: 'cdkSelectionToggle',\n})\nexport class CdkSelectionToggle<T> implements OnDestroy, OnInit {\n  private _selection = inject<CdkSelection<T>>(CdkSelection, {optional: true})!;\n  private _controlValueAccessors = inject(NG_VALUE_ACCESSOR, {optional: true, self: true});\n\n  /** The value that is associated with the toggle */\n  @Input('cdkSelectionToggleValue') value!: T;\n\n  /** The index of the value in the list. Required when used with `trackBy` */\n  @Input('cdkSelectionToggleIndex')\n  get index(): number | undefined {\n    return this._index;\n  }\n  set index(index: NumberInput) {\n    this._index = coerceNumberProperty(index);\n  }\n  protected _index?: number;\n\n  /** The checked state of the selection toggle */\n  readonly checked: Observable<boolean>;\n\n  /** Toggles the selection */\n  toggle() {\n    this._selection.toggleSelection(this.value, this.index);\n  }\n\n  private _destroyed = new Subject<void>();\n\n  constructor() {\n    const _selection = this._selection;\n\n    this.checked = _selection.change.pipe(\n      switchMap(() => observableOf(this._isSelected())),\n      distinctUntilChanged(),\n    );\n  }\n\n  ngOnInit() {\n    this._assertValidParentSelection();\n    this._configureControlValueAccessor();\n  }\n\n  ngOnDestroy() {\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n\n  private _assertValidParentSelection() {\n    if (!this._selection && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error('CdkSelectAll: missing CdkSelection in the parent');\n    }\n  }\n\n  private _configureControlValueAccessor() {\n    if (this._controlValueAccessors && this._controlValueAccessors.length) {\n      this._controlValueAccessors[0].registerOnChange((e: unknown) => {\n        if (typeof e === 'boolean') {\n          this.toggle();\n        }\n      });\n\n      this.checked.pipe(takeUntil(this._destroyed)).subscribe(state => {\n        this._controlValueAccessors![0].writeValue(state);\n      });\n    }\n  }\n\n  private _isSelected(): boolean {\n    return this._selection.isSelected(this.value, this.index);\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 {CdkCellDef, CdkColumnDef, CdkHeaderCellDef, CdkTable} from '@angular/cdk/table';\nimport {\n  Component,\n  Input,\n  OnDestroy,\n  OnInit,\n  ViewChild,\n  ViewEncapsulation,\n  inject,\n} from '@angular/core';\n\nimport {CdkSelection} from './selection';\nimport {AsyncPipe} from '@angular/common';\nimport {CdkSelectionToggle} from './selection-toggle';\nimport {CdkSelectAll} from './select-all';\n\n/**\n * Column that adds row selecting checkboxes and a select-all checkbox if `cdkSelectionMultiple` is\n * `true`.\n *\n * Must be used within a parent `CdkSelection` directive.\n */\n@Component({\n  selector: 'cdk-selection-column',\n  template: `\n    <ng-container cdkColumnDef>\n      <th cdkHeaderCell *cdkHeaderCellDef>\n        @if (selection && selection.multiple) {\n          <input type=\"checkbox\"\n              cdkSelectAll\n              #allToggler=\"cdkSelectAll\"\n              [checked]=\"allToggler.checked | async\"\n              [indeterminate]=\"allToggler.indeterminate | async\"\n              (click)=\"allToggler.toggle($event)\">\n        }\n      </th>\n      <td cdkCell *cdkCellDef=\"let row; let i = $index\">\n        <input type=\"checkbox\"\n            #toggler=\"cdkSelectionToggle\"\n            cdkSelectionToggle\n            [cdkSelectionToggleValue]=\"row\"\n            [cdkSelectionToggleIndex]=\"i\"\n            (click)=\"toggler.toggle()\"\n            [checked]=\"toggler.checked | async\">\n      </td>\n    </ng-container>\n  `,\n  encapsulation: ViewEncapsulation.None,\n  imports: [\n    CdkColumnDef,\n    CdkHeaderCellDef,\n    CdkSelectAll,\n    CdkCellDef,\n    CdkSelectionToggle,\n    AsyncPipe,\n  ],\n})\nexport class CdkSelectionColumn<T> implements OnInit, OnDestroy {\n  private _table = inject<CdkTable<T>>(CdkTable, {optional: true});\n  readonly selection = inject<CdkSelection<T>>(CdkSelection, {optional: true});\n\n  /** Column name that should be used to reference this column. */\n  @Input('cdkSelectionColumnName')\n  get name(): string {\n    return this._name;\n  }\n  set name(name: string) {\n    this._name = name;\n\n    this._syncColumnDefName();\n  }\n  private _name!: string;\n\n  @ViewChild(CdkColumnDef, {static: true}) private readonly _columnDef!: CdkColumnDef;\n  @ViewChild(CdkCellDef, {static: true}) private readonly _cell!: CdkCellDef;\n  @ViewChild(CdkHeaderCellDef, {static: true}) private readonly _headerCell!: CdkHeaderCellDef;\n\n  ngOnInit() {\n    if (!this.selection && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error('CdkSelectionColumn: missing CdkSelection in the parent');\n    }\n\n    this._syncColumnDefName();\n\n    if (this._table) {\n      this._columnDef.cell = this._cell;\n      this._columnDef.headerCell = this._headerCell;\n      this._table.addColumnDef(this._columnDef);\n    } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n      throw Error('CdkSelectionColumn: missing parent table');\n    }\n  }\n\n  ngOnDestroy() {\n    if (this._table) {\n      this._table.removeColumnDef(this._columnDef);\n    }\n  }\n\n  private _syncColumnDefName() {\n    if (this._columnDef) {\n      this._columnDef.name = this._name;\n    }\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {coerceNumberProperty, NumberInput} from '@angular/cdk/coercion';\nimport {Directive, Input, inject} from '@angular/core';\n\nimport {CdkSelection} from './selection';\n\n/**\n * Applies `cdk-selected` class and `aria-selected` to an element.\n *\n * Must be used within a parent `CdkSelection` directive.\n * Must be provided with the value. The index is required if `trackBy` is used on the `CdkSelection`\n * directive.\n */\n@Directive({\n  selector: '[cdkRowSelection]',\n  host: {\n    '[class.cdk-selected]': '_selection.isSelected(this.value, this.index)',\n    '[attr.aria-selected]': '_selection.isSelected(this.value, this.index)',\n  },\n})\nexport class CdkRowSelection<T> {\n  readonly _selection = inject<CdkSelection<T>>(CdkSelection);\n\n  // We need an initializer here to avoid a TS error.\n  @Input('cdkRowSelectionValue') value: T = undefined!;\n\n  @Input('cdkRowSelectionIndex')\n  get index(): number | undefined {\n    return this._index;\n  }\n  set index(index: NumberInput) {\n    this._index = coerceNumberProperty(index);\n  }\n  protected _index?: number;\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 {CdkTableModule} from '@angular/cdk/table';\nimport {NgModule} from '@angular/core';\n\nimport {CdkRowSelection} from './row-selection';\nimport {CdkSelectAll} from './select-all';\nimport {CdkSelection} from './selection';\nimport {CdkSelectionColumn} from './selection-column';\nimport {CdkSelectionToggle} from './selection-toggle';\n\n@NgModule({\n  imports: [\n    CdkTableModule,\n    CdkSelection,\n    CdkSelectionToggle,\n    CdkSelectAll,\n    CdkSelectionColumn,\n    CdkRowSelection,\n  ],\n  exports: [CdkSelection, CdkSelectionToggle, CdkSelectAll, CdkSelectionColumn, CdkRowSelection],\n})\nexport class CdkSelectionModule {}\n"],"names":["SelectionSet","_multiple","_trackByFn","_selectionMap","Map","changed","Subject","constructor","isSelected","value","has","_getTrackedByValue","select","selects","length","ngDevMode","Error","before","_getCurrentSelection","clear","_markSelected","after","next","deselect","_markDeselected","key","toSelect","set","delete","index","Array","from","values","CdkSelection","viewChange","dataSource","_dataSource","_switchDataSource","trackByFn","multiple","coerceBooleanProperty","change","EventEmitter","_data","_renderChangeSubscription","_destroyed","_selection","isDataSource","disconnect","unsubscribe","_observeRenderChanges","dataStream","connect","Observable","isArray","observableOf","pipe","takeUntil","subscribe","data","ngOnInit","_updateSelectAllState","emit","ngAfterContentChecked","ngOnDestroy","complete","toggleSelection","toggleSelectAll","selectAllState","_selectAll","_clearAll","isAllSelected","every","isPartialSelected","some","forEach","push","toDeselect","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","outputs","exportAs","ngImport","decorators","args","Input","Output","CdkSelectAll","inject","optional","_controlValueAccessor","NG_VALUE_ACCESSOR","self","checked","indeterminate","toggle","event","preventDefault","setTimeout","switchMap","_assertValidParentSelection","_configureControlValueAccessor","registerOnChange","e","state","writeValue","CdkSelectionToggle","_controlValueAccessors","_index","coerceNumberProperty","_isSelected","distinctUntilChanged","CdkSelectionColumn","_table","CdkTable","selection","name","_name","_syncColumnDefName","_columnDef","_cell","_headerCell","cell","headerCell","addColumnDef","removeColumnDef","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","CdkColumnDef","descendants","static","propertyName","first","predicate","CdkCellDef","CdkHeaderCellDef","template","isInline","dependencies","kind","AsyncPipe","encapsulation","ViewEncapsulation","None","imports","ViewChild","CdkRowSelection","undefined","host","properties","CdkSelectionModule","NgModule","ɵmod","ɵɵngDeclareNgModule","CdkTableModule","exports","ɵinj","ɵɵngDeclareInjector"],"mappings":"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"}