{"version":3,"file":"legacy-list.mjs","sources":["../../../../../../src/material/legacy-list/list.ts","../../../../../../src/material/legacy-list/list.html","../../../../../../src/material/legacy-list/list-item.html","../../../../../../src/material/legacy-list/selection-list.ts","../../../../../../src/material/legacy-list/list-option.html","../../../../../../src/material/legacy-list/list-module.ts","../../../../../../src/material/legacy-list/public-api.ts","../../../../../../src/material/legacy-list/index.ts","../../../../../../src/material/legacy-list/legacy-list_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 {coerceBooleanProperty, BooleanInput} from '@angular/cdk/coercion';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  ContentChildren,\n  Directive,\n  ElementRef,\n  Optional,\n  QueryList,\n  ViewEncapsulation,\n  OnChanges,\n  OnDestroy,\n  ChangeDetectorRef,\n  Input,\n  Inject,\n} from '@angular/core';\nimport {\n  CanDisable,\n  CanDisableRipple,\n  MatLine,\n  setLines,\n  mixinDisableRipple,\n  mixinDisabled,\n} from '@angular/material/core';\nimport {MAT_LIST, MAT_NAV_LIST} from '@angular/material/list';\nimport {Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n// Boilerplate for applying mixins to MatList.\n/** @docs-private */\nconst _MatListBase = mixinDisabled(mixinDisableRipple(class {}));\n\n// Boilerplate for applying mixins to MatListItem.\n/** @docs-private */\nconst _MatListItemMixinBase = mixinDisableRipple(class {});\n\n/**\n * @deprecated Use `MatNavList` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\n@Component({\n  selector: 'mat-nav-list',\n  exportAs: 'matNavList',\n  host: {\n    'role': 'navigation',\n    'class': 'mat-nav-list mat-list-base',\n  },\n  templateUrl: 'list.html',\n  styleUrls: ['list.css'],\n  inputs: ['disableRipple', 'disabled'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{provide: MAT_NAV_LIST, useExisting: MatLegacyNavList}],\n})\nexport class MatLegacyNavList\n  extends _MatListBase\n  implements CanDisable, CanDisableRipple, OnChanges, OnDestroy\n{\n  /** Emits when the state of the list changes. */\n  readonly _stateChanges = new Subject<void>();\n\n  ngOnChanges() {\n    this._stateChanges.next();\n  }\n\n  ngOnDestroy() {\n    this._stateChanges.complete();\n  }\n}\n\n/**\n * @deprecated Use `MatList` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\n@Component({\n  selector: 'mat-list, mat-action-list',\n  exportAs: 'matList',\n  templateUrl: 'list.html',\n  host: {\n    'class': 'mat-list mat-list-base',\n  },\n  styleUrls: ['list.css'],\n  inputs: ['disableRipple', 'disabled'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{provide: MAT_LIST, useExisting: MatLegacyList}],\n})\nexport class MatLegacyList\n  extends _MatListBase\n  implements CanDisable, CanDisableRipple, OnChanges, OnDestroy\n{\n  /** Emits when the state of the list changes. */\n  readonly _stateChanges = new Subject<void>();\n\n  constructor(private _elementRef: ElementRef<HTMLElement>) {\n    super();\n\n    if (this._getListType() === 'action-list') {\n      _elementRef.nativeElement.classList.add('mat-action-list');\n      _elementRef.nativeElement.setAttribute('role', 'group');\n    }\n  }\n\n  _getListType(): 'list' | 'action-list' | null {\n    const nodeName = this._elementRef.nativeElement.nodeName.toLowerCase();\n\n    if (nodeName === 'mat-list') {\n      return 'list';\n    }\n\n    if (nodeName === 'mat-action-list') {\n      return 'action-list';\n    }\n\n    return null;\n  }\n\n  ngOnChanges() {\n    this._stateChanges.next();\n  }\n\n  ngOnDestroy() {\n    this._stateChanges.complete();\n  }\n}\n\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n * @deprecated Use `MatListAvatarCssMatStyler` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\n@Directive({\n  selector: '[mat-list-avatar], [matListAvatar]',\n  host: {'class': 'mat-list-avatar'},\n})\nexport class MatLegacyListAvatarCssMatStyler {}\n\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n * @deprecated Use `MatListIconCssMatStyler` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\n@Directive({\n  selector: '[mat-list-icon], [matListIcon]',\n  host: {'class': 'mat-list-icon'},\n})\nexport class MatLegacyListIconCssMatStyler {}\n\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n * @deprecated Use `MatListSubheaderCssMatStyler` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\n@Directive({\n  selector: '[mat-subheader], [matSubheader]',\n  host: {'class': 'mat-subheader'},\n})\nexport class MatLegacyListSubheaderCssMatStyler {}\n\n/**\n * An item within a Material Design list.\n * @deprecated Use `MatListItem` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\n@Component({\n  selector: 'mat-list-item, a[mat-list-item], button[mat-list-item]',\n  exportAs: 'matListItem',\n  host: {\n    'class': 'mat-list-item mat-focus-indicator',\n    '[class.mat-list-item-disabled]': 'disabled',\n    '[class.mat-list-item-with-avatar]': '_avatar || _icon',\n  },\n  inputs: ['disableRipple'],\n  templateUrl: 'list-item.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatLegacyListItem\n  extends _MatListItemMixinBase\n  implements AfterContentInit, CanDisableRipple, OnDestroy\n{\n  private _isInteractiveList: boolean = false;\n  private _list?: MatLegacyNavList | MatLegacyList;\n  private readonly _destroyed = new Subject<void>();\n\n  @ContentChildren(MatLine, {descendants: true}) _lines: QueryList<MatLine>;\n  @ContentChild(MatLegacyListAvatarCssMatStyler) _avatar: MatLegacyListAvatarCssMatStyler;\n  @ContentChild(MatLegacyListIconCssMatStyler) _icon: MatLegacyListIconCssMatStyler;\n\n  constructor(\n    private _element: ElementRef<HTMLElement>,\n    _changeDetectorRef: ChangeDetectorRef,\n    @Optional() @Inject(MAT_NAV_LIST) navList?: MatLegacyNavList,\n    @Optional() @Inject(MAT_LIST) list?: MatLegacyList,\n  ) {\n    super();\n    this._isInteractiveList = !!(navList || (list && list._getListType() === 'action-list'));\n    this._list = navList || list;\n\n    // If no type attribute is specified for <button>, set it to \"button\".\n    // If a type attribute is already specified, do nothing.\n    const element = this._getHostElement();\n\n    if (element.nodeName.toLowerCase() === 'button' && !element.hasAttribute('type')) {\n      element.setAttribute('type', 'button');\n    }\n\n    if (this._list) {\n      // React to changes in the state of the parent list since\n      // some of the item's properties depend on it (e.g. `disableRipple`).\n      this._list._stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => {\n        _changeDetectorRef.markForCheck();\n      });\n    }\n  }\n\n  /** Whether the option is disabled. */\n  @Input()\n  get disabled(): boolean {\n    return this._disabled || !!(this._list && this._list.disabled);\n  }\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n  private _disabled = false;\n\n  ngAfterContentInit() {\n    setLines(this._lines, this._element);\n  }\n\n  ngOnDestroy() {\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n\n  /** Whether this list item should show a ripple effect when clicked. */\n  _isRippleDisabled() {\n    return (\n      !this._isInteractiveList || this.disableRipple || !!(this._list && this._list.disableRipple)\n    );\n  }\n\n  /** Retrieves the DOM element of the component host. */\n  _getHostElement(): HTMLElement {\n    return this._element.nativeElement;\n  }\n}\n","<ng-content></ng-content>\n\n","<span class=\"mat-list-item-content\">\n  <span class=\"mat-list-item-ripple\" mat-ripple\n       [matRippleTrigger]=\"_getHostElement()\"\n       [matRippleDisabled]=\"_isRippleDisabled()\">\n  </span>\n\n  <ng-content select=\"[mat-list-avatar], [mat-list-icon], [matListAvatar], [matListIcon]\">\n  </ng-content>\n\n  <span class=\"mat-list-text\"><ng-content select=\"[mat-line], [matLine]\"></ng-content></span>\n\n  <ng-content></ng-content>\n</span>\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 {FocusableOption, FocusKeyManager, FocusMonitor} from '@angular/cdk/a11y';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {SelectionModel} from '@angular/cdk/collections';\nimport {A, DOWN_ARROW, ENTER, hasModifierKey, SPACE, UP_ARROW} from '@angular/cdk/keycodes';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Inject,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  QueryList,\n  SimpleChanges,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {\n  CanDisableRipple,\n  MatLine,\n  mixinDisableRipple,\n  setLines,\n  ThemePalette,\n} from '@angular/material/core';\nimport {Subject} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\nimport {MatLegacyListAvatarCssMatStyler, MatLegacyListIconCssMatStyler} from './list';\n\nconst _MatSelectionListBase = mixinDisableRipple(class {});\nconst _MatListOptionBase = mixinDisableRipple(class {});\n\n/**\n * @docs-private\n * @deprecated Use `MAT_SELECTION_LIST_VALUE_ACCESSOR` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nexport const MAT_LEGACY_SELECTION_LIST_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => MatLegacySelectionList),\n  multi: true,\n};\n\n/**\n * Change event that is being fired whenever the selected state of an option changes.\n * @deprecated Use `MatSelectionListChange` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nexport class MatLegacySelectionListChange {\n  constructor(\n    /** Reference to the selection list that emitted the event. */\n    public source: MatLegacySelectionList,\n    /** Reference to the options that have been changed. */\n    public options: MatLegacyListOption[],\n  ) {}\n}\n\n/**\n * Type describing possible positions of a checkbox in a list option\n * with respect to the list item's text.\n * @deprecated Use `MatListOptionTogglePosition` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nexport type MatLegacyListOptionCheckboxPosition = 'before' | 'after';\n\n/**\n * Component for list-options of selection-list. Each list-option can automatically\n * generate a checkbox and can put current item into the selectionModel of selection-list\n * if the current item is selected.\n * @deprecated Use `MatListOption` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\n@Component({\n  selector: 'mat-list-option',\n  exportAs: 'matListOption',\n  inputs: ['disableRipple'],\n  host: {\n    'role': 'option',\n    'class': 'mat-list-item mat-list-option mat-focus-indicator',\n    '(focus)': '_handleFocus()',\n    '(blur)': '_handleBlur()',\n    '(click)': '_handleClick()',\n    '[class.mat-list-item-disabled]': 'disabled',\n    '[class.mat-list-item-with-avatar]': '_avatar || _icon',\n    // Manually set the \"primary\" or \"warn\" class if the color has been explicitly\n    // set to \"primary\" or \"warn\". The pseudo checkbox picks up these classes for\n    // its theme.\n    '[class.mat-primary]': 'color === \"primary\"',\n    // Even though accent is the default, we need to set this class anyway, because the  list might\n    // be placed inside a parent that has one of the other colors with a higher specificity.\n    '[class.mat-accent]': 'color !== \"primary\" && color !== \"warn\"',\n    '[class.mat-warn]': 'color === \"warn\"',\n    '[class.mat-list-single-selected-option]': 'selected && !selectionList.multiple',\n    '[attr.aria-selected]': 'selected',\n    '[attr.aria-disabled]': 'disabled',\n    '[attr.tabindex]': '-1',\n  },\n  templateUrl: 'list-option.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatLegacyListOption\n  extends _MatListOptionBase\n  implements AfterContentInit, OnDestroy, OnInit, FocusableOption, CanDisableRipple\n{\n  private _selected = false;\n  private _disabled = false;\n  private _hasFocus = false;\n\n  @ContentChild(MatLegacyListAvatarCssMatStyler) _avatar: MatLegacyListAvatarCssMatStyler;\n  @ContentChild(MatLegacyListIconCssMatStyler) _icon: MatLegacyListIconCssMatStyler;\n  @ContentChildren(MatLine, {descendants: true}) _lines: QueryList<MatLine>;\n\n  /**\n   * Emits when the selected state of the option has changed.\n   * Use to facilitate two-data binding to the `selected` property.\n   * @docs-private\n   */\n  @Output()\n  readonly selectedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  /** DOM element containing the item's text. */\n  @ViewChild('text') _text: ElementRef;\n\n  /** Whether the label should appear before or after the checkbox. Defaults to 'after' */\n  @Input() checkboxPosition: MatLegacyListOptionCheckboxPosition = 'after';\n\n  /** Theme color of the list option. This sets the color of the checkbox. */\n  @Input()\n  get color(): ThemePalette {\n    return this._color || this.selectionList.color;\n  }\n  set color(newValue: ThemePalette) {\n    this._color = newValue;\n  }\n  private _color: ThemePalette;\n\n  /**\n   * This is set to true after the first OnChanges cycle so we don't clear the value of `selected`\n   * in the first cycle.\n   */\n  private _inputsInitialized = false;\n  /** Value of the option */\n  @Input()\n  get value(): any {\n    return this._value;\n  }\n  set value(newValue: any) {\n    if (\n      this.selected &&\n      !this.selectionList.compareWith(newValue, this.value) &&\n      this._inputsInitialized\n    ) {\n      this.selected = false;\n    }\n\n    this._value = newValue;\n  }\n  private _value: any;\n\n  /** Whether the option is disabled. */\n  @Input()\n  get disabled(): boolean {\n    return this._disabled || (this.selectionList && this.selectionList.disabled);\n  }\n  set disabled(value: BooleanInput) {\n    const newValue = coerceBooleanProperty(value);\n\n    if (newValue !== this._disabled) {\n      this._disabled = newValue;\n      this._changeDetector.markForCheck();\n    }\n  }\n\n  /** Whether the option is selected. */\n  @Input()\n  get selected(): boolean {\n    return this.selectionList.selectedOptions.isSelected(this);\n  }\n  set selected(value: BooleanInput) {\n    const isSelected = coerceBooleanProperty(value);\n\n    if (isSelected !== this._selected) {\n      this._setSelected(isSelected);\n\n      if (isSelected || this.selectionList.multiple) {\n        this.selectionList._reportValueChange();\n      }\n    }\n  }\n\n  constructor(\n    private _element: ElementRef<HTMLElement>,\n    private _changeDetector: ChangeDetectorRef,\n    /** @docs-private */\n    @Inject(forwardRef(() => MatLegacySelectionList)) public selectionList: MatLegacySelectionList,\n  ) {\n    super();\n  }\n\n  ngOnInit() {\n    const list = this.selectionList;\n\n    if (list._value && list._value.some(value => list.compareWith(this._value, value))) {\n      this._setSelected(true);\n    }\n\n    const wasSelected = this._selected;\n\n    // List options that are selected at initialization can't be reported properly to the form\n    // control. This is because it takes some time until the selection-list knows about all\n    // available options. Also it can happen that the ControlValueAccessor has an initial value\n    // that should be used instead. Deferring the value change report to the next tick ensures\n    // that the form control value is not being overwritten.\n    Promise.resolve().then(() => {\n      if (this._selected || wasSelected) {\n        this.selected = true;\n        this._changeDetector.markForCheck();\n      }\n    });\n    this._inputsInitialized = true;\n  }\n\n  ngAfterContentInit() {\n    setLines(this._lines, this._element);\n  }\n\n  ngOnDestroy(): void {\n    if (this.selected) {\n      // We have to delay this until the next tick in order\n      // to avoid changed after checked errors.\n      Promise.resolve().then(() => {\n        this.selected = false;\n      });\n    }\n\n    const hadFocus = this._hasFocus;\n    const newActiveItem = this.selectionList._removeOptionFromList(this);\n\n    // Only move focus if this option was focused at the time it was destroyed.\n    if (hadFocus && newActiveItem) {\n      newActiveItem.focus();\n    }\n  }\n\n  /** Toggles the selection state of the option. */\n  toggle(): void {\n    this.selected = !this.selected;\n  }\n\n  /** Allows for programmatic focusing of the option. */\n  focus(): void {\n    this._element.nativeElement.focus();\n  }\n\n  /**\n   * Returns the list item's text label. Implemented as a part of the FocusKeyManager.\n   * @docs-private\n   */\n  getLabel() {\n    return this._text ? this._text.nativeElement.textContent || '' : '';\n  }\n\n  /** Whether this list item should show a ripple effect when clicked. */\n  _isRippleDisabled() {\n    return this.disabled || this.disableRipple || this.selectionList.disableRipple;\n  }\n\n  _handleClick() {\n    if (!this.disabled && (this.selectionList.multiple || !this.selected)) {\n      this.toggle();\n\n      // Emit a change event if the selected state of the option changed through user interaction.\n      this.selectionList._emitChangeEvent([this]);\n    }\n  }\n\n  _handleFocus() {\n    this.selectionList._setFocusedOption(this);\n    this._hasFocus = true;\n  }\n\n  _handleBlur() {\n    this.selectionList._onTouched();\n    this._hasFocus = false;\n  }\n\n  /** Retrieves the DOM element of the component host. */\n  _getHostElement(): HTMLElement {\n    return this._element.nativeElement;\n  }\n\n  /** Sets the selected state of the option. Returns whether the value has changed. */\n  _setSelected(selected: boolean): boolean {\n    if (selected === this._selected) {\n      return false;\n    }\n\n    this._selected = selected;\n\n    if (selected) {\n      this.selectionList.selectedOptions.select(this);\n    } else {\n      this.selectionList.selectedOptions.deselect(this);\n    }\n\n    this.selectedChange.emit(selected);\n    this._changeDetector.markForCheck();\n    return true;\n  }\n\n  /**\n   * Notifies Angular that the option needs to be checked in the next change detection run. Mainly\n   * used to trigger an update of the list option if the disabled state of the selection list\n   * changed.\n   */\n  _markForCheck() {\n    this._changeDetector.markForCheck();\n  }\n}\n\n/**\n * Material Design list component where each item is a selectable option. Behaves as a listbox.\n * @deprecated Use `MatSelectionList` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\n@Component({\n  selector: 'mat-selection-list',\n  exportAs: 'matSelectionList',\n  inputs: ['disableRipple'],\n  host: {\n    'role': 'listbox',\n    'class': 'mat-selection-list mat-list-base',\n    '(keydown)': '_keydown($event)',\n    '[attr.aria-multiselectable]': 'multiple',\n    '[attr.aria-disabled]': 'disabled.toString()',\n    '[attr.tabindex]': '_tabIndex',\n  },\n  template: '<ng-content></ng-content>',\n  styleUrls: ['list.css'],\n  encapsulation: ViewEncapsulation.None,\n  providers: [MAT_LEGACY_SELECTION_LIST_VALUE_ACCESSOR],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatLegacySelectionList\n  extends _MatSelectionListBase\n  implements CanDisableRipple, AfterContentInit, ControlValueAccessor, OnDestroy, OnChanges\n{\n  private _multiple = true;\n  private _contentInitialized = false;\n\n  /** The FocusKeyManager which handles focus. */\n  _keyManager: FocusKeyManager<MatLegacyListOption>;\n\n  /** The option components contained within this selection-list. */\n  @ContentChildren(MatLegacyListOption, {descendants: true})\n  options: QueryList<MatLegacyListOption>;\n\n  /** Emits a change event whenever the selected state of an option changes. */\n  @Output() readonly selectionChange: EventEmitter<MatLegacySelectionListChange> =\n    new EventEmitter<MatLegacySelectionListChange>();\n\n  /** Theme color of the selection list. This sets the checkbox color for all list options. */\n  @Input() color: ThemePalette = 'accent';\n\n  /**\n   * Function used for comparing an option against the selected value when determining which\n   * options should appear as selected. The first argument is the value of an options. The second\n   * one is a value from the selected value. A boolean must be returned.\n   */\n  @Input() compareWith: (o1: any, o2: any) => boolean = (a1, a2) => a1 === a2;\n\n  /** Whether the selection list is disabled. */\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n\n    // The `MatSelectionList` and `MatListOption` are using the `OnPush` change detection\n    // strategy. Therefore the options will not check for any changes if the `MatSelectionList`\n    // changed its state. Since we know that a change to `disabled` property of the list affects\n    // the state of the options, we manually mark each option for check.\n    this._markOptionsForCheck();\n  }\n  private _disabled: boolean = false;\n\n  /** Whether selection is limited to one or multiple items (default multiple). */\n  @Input()\n  get multiple(): boolean {\n    return this._multiple;\n  }\n  set multiple(value: BooleanInput) {\n    const newValue = coerceBooleanProperty(value);\n\n    if (newValue !== this._multiple) {\n      if (this._contentInitialized && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n        throw new Error(\n          'Cannot change `multiple` mode of mat-selection-list after initialization.',\n        );\n      }\n\n      this._multiple = newValue;\n      this.selectedOptions = new SelectionModel(this._multiple, this.selectedOptions.selected);\n    }\n  }\n\n  /** The currently selected options. */\n  selectedOptions = new SelectionModel<MatLegacyListOption>(this._multiple);\n\n  /** The tabindex of the selection list. */\n  _tabIndex = -1;\n\n  /** View to model callback that should be called whenever the selected options change. */\n  private _onChange: (value: any) => void = (_: any) => {};\n\n  /** Keeps track of the currently-selected value. */\n  _value: string[] | null;\n\n  /** Emits when the list has been destroyed. */\n  private readonly _destroyed = new Subject<void>();\n\n  /** View to model callback that should be called if the list or its options lost focus. */\n  _onTouched: () => void = () => {};\n\n  /** Whether the list has been destroyed. */\n  private _isDestroyed: boolean;\n\n  constructor(\n    private _element: ElementRef<HTMLElement>,\n    private _changeDetector: ChangeDetectorRef,\n    private _focusMonitor: FocusMonitor,\n  ) {\n    super();\n  }\n\n  ngAfterContentInit(): void {\n    this._contentInitialized = true;\n\n    this._keyManager = new FocusKeyManager<MatLegacyListOption>(this.options)\n      .withWrap()\n      .withTypeAhead()\n      .withHomeAndEnd()\n      // Allow disabled items to be focusable. For accessibility reasons, there must be a way for\n      // screen reader users, that allows reading the different options of the list.\n      .skipPredicate(() => false)\n      .withAllowedModifierKeys(['shiftKey']);\n\n    if (this._value) {\n      this._setOptionsFromValues(this._value);\n    }\n\n    // If the user attempts to tab out of the selection list, allow focus to escape.\n    this._keyManager.tabOut.subscribe(() => this._allowFocusEscape());\n\n    // When the number of options change, update the tabindex of the selection list.\n    this.options.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n      this._updateTabIndex();\n    });\n\n    // Sync external changes to the model back to the options.\n    this.selectedOptions.changed.pipe(takeUntil(this._destroyed)).subscribe(event => {\n      if (event.added) {\n        for (let item of event.added) {\n          item.selected = true;\n        }\n      }\n\n      if (event.removed) {\n        for (let item of event.removed) {\n          item.selected = false;\n        }\n      }\n    });\n\n    this._focusMonitor\n      .monitor(this._element)\n      .pipe(takeUntil(this._destroyed))\n      .subscribe(origin => {\n        if (origin === 'keyboard' || origin === 'program') {\n          let toFocus = 0;\n          for (let i = 0; i < this.options.length; i++) {\n            if (this.options.get(i)?.selected) {\n              toFocus = i;\n              break;\n            }\n          }\n          this._keyManager.setActiveItem(toFocus);\n        }\n      });\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    const disableRippleChanges = changes['disableRipple'];\n    const colorChanges = changes['color'];\n\n    if (\n      (disableRippleChanges && !disableRippleChanges.firstChange) ||\n      (colorChanges && !colorChanges.firstChange)\n    ) {\n      this._markOptionsForCheck();\n    }\n  }\n\n  ngOnDestroy() {\n    this._keyManager?.destroy();\n    this._focusMonitor.stopMonitoring(this._element);\n    this._destroyed.next();\n    this._destroyed.complete();\n    this._isDestroyed = true;\n  }\n\n  /** Focuses the selection list. */\n  focus(options?: FocusOptions) {\n    this._element.nativeElement.focus(options);\n  }\n\n  /** Selects all of the options. Returns the options that changed as a result. */\n  selectAll(): MatLegacyListOption[] {\n    return this._setAllOptionsSelected(true);\n  }\n\n  /** Deselects all of the options. Returns the options that changed as a result. */\n  deselectAll(): MatLegacyListOption[] {\n    return this._setAllOptionsSelected(false);\n  }\n\n  /** Sets the focused option of the selection-list. */\n  _setFocusedOption(option: MatLegacyListOption) {\n    this._keyManager.updateActiveItem(option);\n  }\n\n  /**\n   * Removes an option from the selection list and updates the active item.\n   * @returns Currently-active item.\n   */\n  _removeOptionFromList(option: MatLegacyListOption): MatLegacyListOption | null {\n    const optionIndex = this._getOptionIndex(option);\n\n    if (optionIndex > -1 && this._keyManager.activeItemIndex === optionIndex) {\n      // Check whether the option is the last item\n      if (optionIndex > 0) {\n        this._keyManager.updateActiveItem(optionIndex - 1);\n      } else if (optionIndex === 0 && this.options.length > 1) {\n        this._keyManager.updateActiveItem(Math.min(optionIndex + 1, this.options.length - 1));\n      }\n    }\n\n    return this._keyManager.activeItem;\n  }\n\n  /** Passes relevant key presses to our key manager. */\n  _keydown(event: KeyboardEvent) {\n    const keyCode = event.keyCode;\n    const manager = this._keyManager;\n    const previousFocusIndex = manager.activeItemIndex;\n    const hasModifier = hasModifierKey(event);\n\n    switch (keyCode) {\n      case SPACE:\n      case ENTER:\n        if (!hasModifier && !manager.isTyping()) {\n          this._toggleFocusedOption();\n          // Always prevent space from scrolling the page since the list has focus\n          event.preventDefault();\n        }\n        break;\n      default:\n        // The \"A\" key gets special treatment, because it's used for the \"select all\" functionality.\n        if (\n          keyCode === A &&\n          this.multiple &&\n          hasModifierKey(event, 'ctrlKey') &&\n          !manager.isTyping()\n        ) {\n          const shouldSelect = this.options.some(option => !option.disabled && !option.selected);\n          this._setAllOptionsSelected(shouldSelect, true, true);\n          event.preventDefault();\n        } else {\n          manager.onKeydown(event);\n        }\n    }\n\n    if (\n      this.multiple &&\n      (keyCode === UP_ARROW || keyCode === DOWN_ARROW) &&\n      event.shiftKey &&\n      manager.activeItemIndex !== previousFocusIndex\n    ) {\n      this._toggleFocusedOption();\n    }\n  }\n\n  /** Reports a value change to the ControlValueAccessor */\n  _reportValueChange() {\n    // Stop reporting value changes after the list has been destroyed. This avoids\n    // cases where the list might wrongly reset its value once it is removed, but\n    // the form control is still live.\n    if (this.options && !this._isDestroyed) {\n      const value = this._getSelectedOptionValues();\n      this._onChange(value);\n      this._value = value;\n    }\n  }\n\n  /** Emits a change event if the selected state of an option changed. */\n  _emitChangeEvent(options: MatLegacyListOption[]) {\n    this.selectionChange.emit(new MatLegacySelectionListChange(this, options));\n  }\n\n  /** Implemented as part of ControlValueAccessor. */\n  writeValue(values: string[]): void {\n    this._value = values;\n\n    if (this.options) {\n      this._setOptionsFromValues(values || []);\n    }\n  }\n\n  /** Implemented as a part of ControlValueAccessor. */\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  /** Implemented as part of ControlValueAccessor. */\n  registerOnChange(fn: (value: any) => void): void {\n    this._onChange = fn;\n  }\n\n  /** Implemented as part of ControlValueAccessor. */\n  registerOnTouched(fn: () => void): void {\n    this._onTouched = fn;\n  }\n\n  /** Sets the selected options based on the specified values. */\n  private _setOptionsFromValues(values: string[]) {\n    this.options.forEach(option => option._setSelected(false));\n\n    values.forEach(value => {\n      const correspondingOption = this.options.find(option => {\n        // Skip options that are already in the model. This allows us to handle cases\n        // where the same primitive value is selected multiple times.\n        return option.selected ? false : this.compareWith(option.value, value);\n      });\n\n      if (correspondingOption) {\n        correspondingOption._setSelected(true);\n      }\n    });\n  }\n\n  /** Returns the values of the selected options. */\n  private _getSelectedOptionValues(): string[] {\n    return this.options.filter(option => option.selected).map(option => option.value);\n  }\n\n  /** Toggles the state of the currently focused option if enabled. */\n  private _toggleFocusedOption(): void {\n    let focusedIndex = this._keyManager.activeItemIndex;\n\n    if (focusedIndex != null && this._isValidIndex(focusedIndex)) {\n      let focusedOption: MatLegacyListOption = this.options.toArray()[focusedIndex];\n\n      if (focusedOption && !focusedOption.disabled && (this._multiple || !focusedOption.selected)) {\n        focusedOption.toggle();\n\n        // Emit a change event because the focused option changed its state through user\n        // interaction.\n        this._emitChangeEvent([focusedOption]);\n      }\n    }\n  }\n\n  /**\n   * Sets the selected state on all of the options\n   * and emits an event if anything changed.\n   */\n  private _setAllOptionsSelected(\n    isSelected: boolean,\n    skipDisabled?: boolean,\n    isUserInput?: boolean,\n  ): MatLegacyListOption[] {\n    // Keep track of whether anything changed, because we only want to\n    // emit the changed event when something actually changed.\n    const changedOptions: MatLegacyListOption[] = [];\n\n    this.options.forEach(option => {\n      if ((!skipDisabled || !option.disabled) && option._setSelected(isSelected)) {\n        changedOptions.push(option);\n      }\n    });\n\n    if (changedOptions.length) {\n      this._reportValueChange();\n\n      if (isUserInput) {\n        this._emitChangeEvent(changedOptions);\n      }\n    }\n\n    return changedOptions;\n  }\n\n  /**\n   * Utility to ensure all indexes are valid.\n   * @param index The index to be checked.\n   * @returns True if the index is valid for our list of options.\n   */\n  private _isValidIndex(index: number): boolean {\n    return index >= 0 && index < this.options.length;\n  }\n\n  /** Returns the index of the specified list option. */\n  private _getOptionIndex(option: MatLegacyListOption): number {\n    return this.options.toArray().indexOf(option);\n  }\n\n  /** Marks all the options to be checked in the next change detection run. */\n  private _markOptionsForCheck() {\n    if (this.options) {\n      this.options.forEach(option => option._markForCheck());\n    }\n  }\n\n  /**\n   * Removes the tabindex from the selection list and resets it back afterwards, allowing the user\n   * to tab out of it. This prevents the list from capturing focus and redirecting it back within\n   * the list, creating a focus trap if it user tries to tab away.\n   */\n  private _allowFocusEscape() {\n    this._tabIndex = -1;\n\n    setTimeout(() => {\n      this._tabIndex = 0;\n      this._changeDetector.markForCheck();\n    });\n  }\n\n  /** Updates the tabindex based upon if the selection list is empty. */\n  private _updateTabIndex(): void {\n    this._tabIndex = this.options.length === 0 ? -1 : 0;\n  }\n}\n","<div class=\"mat-list-item-content\"\n  [class.mat-list-item-content-reverse]=\"checkboxPosition == 'after'\">\n\n  <div mat-ripple\n    class=\"mat-list-item-ripple\"\n    [matRippleTrigger]=\"_getHostElement()\"\n    [matRippleDisabled]=\"_isRippleDisabled()\"></div>\n\n  <mat-pseudo-checkbox\n    *ngIf=\"selectionList.multiple\"\n    [state]=\"selected ? 'checked' : 'unchecked'\"\n    [disabled]=\"disabled\"></mat-pseudo-checkbox>\n\n  <div class=\"mat-list-text\" #text><ng-content></ng-content></div>\n\n  <ng-content select=\"[mat-list-avatar], [mat-list-icon], [matListAvatar], [matListIcon]\">\n  </ng-content>\n\n</div>\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 {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n  MatCommonModule,\n  MatLineModule,\n  MatPseudoCheckboxModule,\n  MatRippleModule,\n} from '@angular/material/core';\nimport {\n  MatLegacyList,\n  MatLegacyNavList,\n  MatLegacyListAvatarCssMatStyler,\n  MatLegacyListIconCssMatStyler,\n  MatLegacyListItem,\n  MatLegacyListSubheaderCssMatStyler,\n} from './list';\nimport {MatLegacyListOption, MatLegacySelectionList} from './selection-list';\nimport {MatDividerModule} from '@angular/material/divider';\n\n/**\n * @deprecated Use `MatListModule` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\n@NgModule({\n  imports: [MatLineModule, MatRippleModule, MatCommonModule, MatPseudoCheckboxModule, CommonModule],\n  exports: [\n    MatLegacyList,\n    MatLegacyNavList,\n    MatLegacyListItem,\n    MatLegacyListAvatarCssMatStyler,\n    MatLineModule,\n    MatCommonModule,\n    MatLegacyListIconCssMatStyler,\n    MatLegacyListSubheaderCssMatStyler,\n    MatPseudoCheckboxModule,\n    MatLegacySelectionList,\n    MatLegacyListOption,\n    MatDividerModule,\n  ],\n  declarations: [\n    MatLegacyList,\n    MatLegacyNavList,\n    MatLegacyListItem,\n    MatLegacyListAvatarCssMatStyler,\n    MatLegacyListIconCssMatStyler,\n    MatLegacyListSubheaderCssMatStyler,\n    MatLegacySelectionList,\n    MatLegacyListOption,\n  ],\n})\nexport class MatLegacyListModule {}\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\nexport {MatLegacyListModule} from './list-module';\nexport {\n  MatLegacyNavList,\n  MatLegacyList,\n  MatLegacyListAvatarCssMatStyler,\n  MatLegacyListIconCssMatStyler,\n  MatLegacyListSubheaderCssMatStyler,\n  MatLegacyListItem,\n} from './list';\nexport {\n  MAT_LEGACY_SELECTION_LIST_VALUE_ACCESSOR,\n  MatLegacySelectionListChange,\n  MatLegacyListOptionCheckboxPosition,\n  MatLegacyListOption,\n  MatLegacySelectionList,\n} from './selection-list';\n\nexport {\n  /**\n   * @deprecated Use `MAT_LIST` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n   * @breaking-change 17.0.0\n   */\n  MAT_LIST as MAT_LEGACY_LIST,\n\n  /**\n   * @deprecated Use `MAT_NAV_LIST` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n   * @breaking-change 17.0.0\n   */\n  MAT_NAV_LIST as MAT_LEGACY_NAV_LIST,\n} from '@angular/material/list';\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\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}