HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/node_modules/@angular/material/fesm2022/list.mjs.map
{"version":3,"file":"list.mjs","sources":["../../../../../../src/material/list/list-option-types.ts","../../../../../../src/material/list/list-item-sections.ts","../../../../../../src/material/list/tokens.ts","../../../../../../src/material/list/list-base.ts","../../../../../../src/material/list/action-list.ts","../../../../../../src/material/list/list.ts","../../../../../../src/material/list/list-item.html","../../../../../../src/material/list/list-option.ts","../../../../../../src/material/list/list-option.html","../../../../../../src/material/list/subheader.ts","../../../../../../src/material/list/nav-list.ts","../../../../../../src/material/list/selection-list.ts","../../../../../../src/material/list/list-module.ts","../../../../../../src/material/list/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 {InjectionToken} from '@angular/core';\n\n/**\n * Type describing possible positions of a checkbox or radio in a list option\n * with respect to the list item's text.\n */\nexport type MatListOptionTogglePosition = 'before' | 'after';\n\n/**\n * Interface describing a list option. This is used to avoid circular\n * dependencies between the list-option and the styler directives.\n * @docs-private\n */\nexport interface ListOption {\n  _getTogglePosition(): MatListOptionTogglePosition;\n}\n\n/**\n * Injection token that can be used to reference instances of an `ListOption`. It serves\n * as alternative token to an actual implementation which could result in undesired\n * retention of the class or circular references breaking runtime execution.\n * @docs-private\n */\nexport const LIST_OPTION = new InjectionToken<ListOption>('ListOption');\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 {Directive, ElementRef, Inject, Optional} from '@angular/core';\nimport {LIST_OPTION, ListOption} from './list-option-types';\n\n/**\n * Directive capturing the title of a list item. A list item usually consists of a\n * title and optional secondary or tertiary lines.\n *\n * Text content for the title never wraps. There can only be a single title per list item.\n */\n@Directive({\n  selector: '[matListItemTitle]',\n  host: {'class': 'mat-mdc-list-item-title mdc-list-item__primary-text'},\n})\nexport class MatListItemTitle {\n  constructor(public _elementRef: ElementRef<HTMLElement>) {}\n}\n\n/**\n * Directive capturing a line in a list item. A list item usually consists of a\n * title and optional secondary or tertiary lines.\n *\n * Text content inside a line never wraps. There can be at maximum two lines per list item.\n */\n@Directive({\n  selector: '[matListItemLine]',\n  host: {'class': 'mat-mdc-list-item-line mdc-list-item__secondary-text'},\n})\nexport class MatListItemLine {\n  constructor(public _elementRef: ElementRef<HTMLElement>) {}\n}\n\n/**\n * Directive matching an optional meta section for list items.\n *\n * List items can reserve space at the end of an item to display a control,\n * button or additional text content.\n */\n@Directive({\n  selector: '[matListItemMeta]',\n  host: {'class': 'mat-mdc-list-item-meta mdc-list-item__end'},\n})\nexport class MatListItemMeta {}\n\n/**\n * @docs-private\n *\n * MDC uses the very intuitively named classes `.mdc-list-item__start` and `.mat-list-item__end` to\n * position content such as icons or checkboxes/radios that comes either before or after the text\n * content respectively. This directive detects the placement of the checkbox/radio and applies the\n * correct MDC class to position the icon/avatar on the opposite side.\n */\n@Directive({\n  host: {\n    // MDC uses intuitively named classes `.mdc-list-item__start` and `.mat-list-item__end` to\n    // position content such as icons or checkboxes/radios that comes either before or after the\n    // text content respectively. This directive detects the placement of the checkbox/radio and\n    // applies the correct MDC class to position the icon/avatar on the opposite side.\n    '[class.mdc-list-item__start]': '_isAlignedAtStart()',\n    '[class.mdc-list-item__end]': '!_isAlignedAtStart()',\n  },\n})\nexport class _MatListItemGraphicBase {\n  constructor(@Optional() @Inject(LIST_OPTION) public _listOption: ListOption) {}\n\n  _isAlignedAtStart() {\n    // By default, in all list items the graphic is aligned at start. In list options,\n    // the graphic is only aligned at start if the checkbox/radio is at the end.\n    return !this._listOption || this._listOption?._getTogglePosition() === 'after';\n  }\n}\n\n/**\n * Directive matching an optional avatar within a list item.\n *\n * List items can reserve space at the beginning of an item to display an avatar.\n */\n@Directive({\n  selector: '[matListItemAvatar]',\n  host: {'class': 'mat-mdc-list-item-avatar'},\n})\nexport class MatListItemAvatar extends _MatListItemGraphicBase {}\n\n/**\n * Directive matching an optional icon within a list item.\n *\n * List items can reserve space at the beginning of an item to display an icon.\n */\n@Directive({\n  selector: '[matListItemIcon]',\n  host: {'class': 'mat-mdc-list-item-icon'},\n})\nexport class MatListItemIcon extends _MatListItemGraphicBase {}\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 {InjectionToken} from '@angular/core';\n\n/** Object that can be used to configure the default options for the list module. */\nexport interface MatListConfig {\n  /** Wheter icon indicators should be hidden for single-selection. */\n  hideSingleSelectionIndicator?: boolean;\n}\n\n/** Injection token that can be used to provide the default options the list module. */\nexport const MAT_LIST_CONFIG = new InjectionToken<MatListConfig>('MAT_LIST_CONFIG');\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 {BooleanInput, coerceBooleanProperty, coerceNumberProperty} from '@angular/cdk/coercion';\nimport {Platform} from '@angular/cdk/platform';\nimport {\n  AfterViewInit,\n  ContentChildren,\n  Directive,\n  ElementRef,\n  inject,\n  Inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  Optional,\n  QueryList,\n} from '@angular/core';\nimport {\n  MAT_RIPPLE_GLOBAL_OPTIONS,\n  RippleConfig,\n  RippleGlobalOptions,\n  RippleRenderer,\n  RippleTarget,\n} from '@angular/material/core';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {Subscription, merge} from 'rxjs';\nimport {\n  MatListItemLine,\n  MatListItemTitle,\n  MatListItemIcon,\n  MatListItemAvatar,\n} from './list-item-sections';\nimport {MAT_LIST_CONFIG} from './tokens';\n\n@Directive({\n  host: {\n    '[attr.aria-disabled]': 'disabled',\n  },\n})\n/** @docs-private */\nexport abstract class MatListBase {\n  _isNonInteractive: boolean = true;\n\n  /** Whether ripples for all list items is disabled. */\n  @Input()\n  get disableRipple(): boolean {\n    return this._disableRipple;\n  }\n  set disableRipple(value: BooleanInput) {\n    this._disableRipple = coerceBooleanProperty(value);\n  }\n  private _disableRipple: boolean = false;\n\n  /**\n   * Whether the entire list is disabled. When disabled, the list itself and each of its list items\n   * are disabled.\n   */\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n  private _disabled = false;\n\n  protected _defaultOptions = inject(MAT_LIST_CONFIG, {optional: true});\n}\n\n@Directive({\n  host: {\n    '[class.mdc-list-item--disabled]': 'disabled',\n    '[attr.aria-disabled]': 'disabled',\n    '[attr.disabled]': '(_isButtonElement && disabled) || null',\n  },\n})\n/** @docs-private */\nexport abstract class MatListItemBase implements AfterViewInit, OnDestroy, RippleTarget {\n  /** Query list matching list-item line elements. */\n  abstract _lines: QueryList<MatListItemLine> | undefined;\n\n  /** Query list matching list-item title elements. */\n  abstract _titles: QueryList<MatListItemTitle> | undefined;\n\n  /**\n   * Element reference to the unscoped content in a list item.\n   *\n   * Unscoped content is user-projected text content in a list item that is\n   * not part of an explicit line or title.\n   */\n  abstract _unscopedContent: ElementRef<HTMLSpanElement> | undefined;\n\n  /** Host element for the list item. */\n  _hostElement: HTMLElement;\n\n  /** indicate whether the host element is a button or not */\n  _isButtonElement: boolean;\n\n  /** Whether animations are disabled. */\n  _noopAnimations: boolean;\n\n  @ContentChildren(MatListItemAvatar, {descendants: false}) _avatars: QueryList<never>;\n  @ContentChildren(MatListItemIcon, {descendants: false}) _icons: QueryList<never>;\n\n  /**\n   * The number of lines this list item should reserve space for. If not specified,\n   * lines are inferred based on the projected content.\n   *\n   * Explicitly specifying the number of lines is useful if you want to acquire additional\n   * space and enable the wrapping of text. The unscoped text content of a list item will\n   * always be able to take up the remaining space of the item, unless it represents the title.\n   *\n   * A maximum of three lines is supported as per the Material Design specification.\n   */\n  @Input()\n  set lines(lines: number | string | null) {\n    this._explicitLines = coerceNumberProperty(lines, null);\n    this._updateItemLines(false);\n  }\n  _explicitLines: number | null = null;\n\n  /** Whether ripples for list items are disabled. */\n  @Input()\n  get disableRipple(): boolean {\n    return (\n      this.disabled ||\n      this._disableRipple ||\n      this._noopAnimations ||\n      !!this._listBase?.disableRipple\n    );\n  }\n  set disableRipple(value: BooleanInput) {\n    this._disableRipple = coerceBooleanProperty(value);\n  }\n  private _disableRipple: boolean = false;\n\n  /** Whether the list-item is disabled. */\n  @Input()\n  get disabled(): boolean {\n    return this._disabled || !!this._listBase?.disabled;\n  }\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n  private _disabled = false;\n\n  private _subscriptions = new Subscription();\n  private _rippleRenderer: RippleRenderer | null = null;\n\n  /** Whether the list item has unscoped text content. */\n  _hasUnscopedTextContent: boolean = false;\n\n  /**\n   * Implemented as part of `RippleTarget`.\n   * @docs-private\n   */\n  rippleConfig: RippleConfig & RippleGlobalOptions;\n\n  /**\n   * Implemented as part of `RippleTarget`.\n   * @docs-private\n   */\n  get rippleDisabled(): boolean {\n    return this.disableRipple || !!this.rippleConfig.disabled;\n  }\n\n  constructor(\n    public _elementRef: ElementRef<HTMLElement>,\n    protected _ngZone: NgZone,\n    @Optional() private _listBase: MatListBase | null,\n    private _platform: Platform,\n    @Optional()\n    @Inject(MAT_RIPPLE_GLOBAL_OPTIONS)\n    globalRippleOptions?: RippleGlobalOptions,\n    @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n  ) {\n    this.rippleConfig = globalRippleOptions || {};\n    this._hostElement = this._elementRef.nativeElement;\n    this._isButtonElement = this._hostElement.nodeName.toLowerCase() === 'button';\n    this._noopAnimations = animationMode === 'NoopAnimations';\n\n    if (_listBase && !_listBase._isNonInteractive) {\n      this._initInteractiveListItem();\n    }\n\n    // If no type attribute is specified for a host `<button>` element, set it to `button`. If a\n    // type attribute is already specified, we do nothing. We do this for backwards compatibility.\n    // TODO: Determine if we intend to continue doing this for the MDC-based list.\n    if (this._isButtonElement && !this._hostElement.hasAttribute('type')) {\n      this._hostElement.setAttribute('type', 'button');\n    }\n  }\n\n  ngAfterViewInit() {\n    this._monitorProjectedLinesAndTitle();\n    this._updateItemLines(true);\n  }\n\n  ngOnDestroy() {\n    this._subscriptions.unsubscribe();\n    if (this._rippleRenderer !== null) {\n      this._rippleRenderer._removeTriggerEvents();\n    }\n  }\n\n  /** Whether the list item has icons or avatars. */\n  _hasIconOrAvatar() {\n    return !!(this._avatars.length || this._icons.length);\n  }\n\n  private _initInteractiveListItem() {\n    this._hostElement.classList.add('mat-mdc-list-item-interactive');\n    this._rippleRenderer = new RippleRenderer(\n      this,\n      this._ngZone,\n      this._hostElement,\n      this._platform,\n    );\n    this._rippleRenderer.setupTriggerEvents(this._hostElement);\n  }\n\n  /**\n   * Subscribes to changes in the projected title and lines. Triggers a\n   * item lines update whenever a change occurs.\n   */\n  private _monitorProjectedLinesAndTitle() {\n    this._ngZone.runOutsideAngular(() => {\n      this._subscriptions.add(\n        merge(this._lines!.changes, this._titles!.changes).subscribe(() =>\n          this._updateItemLines(false),\n        ),\n      );\n    });\n  }\n\n  /**\n   * Updates the lines of the list item. Based on the projected user content and optional\n   * explicit lines setting, the visual appearance of the list item is determined.\n   *\n   * This method should be invoked whenever the projected user content changes, or\n   * when the explicit lines have been updated.\n   *\n   * @param recheckUnscopedContent Whether the projected unscoped content should be re-checked.\n   *   The unscoped content is not re-checked for every update as it is a rather expensive check\n   *   for content that is expected to not change very often.\n   */\n  _updateItemLines(recheckUnscopedContent: boolean) {\n    // If the updated is triggered too early before the view and content is initialized,\n    // we just skip the update. After view initialization the update is triggered again.\n    if (!this._lines || !this._titles || !this._unscopedContent) {\n      return;\n    }\n\n    // Re-check the DOM for unscoped text content if requested. This needs to\n    // happen before any computation or sanity checks run as these rely on the\n    // result of whether there is unscoped text content or not.\n    if (recheckUnscopedContent) {\n      this._checkDomForUnscopedTextContent();\n    }\n\n    // Sanity check the list item lines and title in the content. This is a dev-mode only\n    // check that can be dead-code eliminated by Terser in production.\n    if (typeof ngDevMode === 'undefined' || ngDevMode) {\n      sanityCheckListItemContent(this);\n    }\n\n    const numberOfLines = this._explicitLines ?? this._inferLinesFromContent();\n    const unscopedContentEl = this._unscopedContent.nativeElement;\n\n    // Update the list item element to reflect the number of lines.\n    this._hostElement.classList.toggle('mat-mdc-list-item-single-line', numberOfLines <= 1);\n    this._hostElement.classList.toggle('mdc-list-item--with-one-line', numberOfLines <= 1);\n    this._hostElement.classList.toggle('mdc-list-item--with-two-lines', numberOfLines === 2);\n    this._hostElement.classList.toggle('mdc-list-item--with-three-lines', numberOfLines === 3);\n\n    // If there is no title and the unscoped content is the is the only line, the\n    // unscoped text content will be treated as the title of the list-item.\n    if (this._hasUnscopedTextContent) {\n      const treatAsTitle = this._titles.length === 0 && numberOfLines === 1;\n      unscopedContentEl.classList.toggle('mdc-list-item__primary-text', treatAsTitle);\n      unscopedContentEl.classList.toggle('mdc-list-item__secondary-text', !treatAsTitle);\n    } else {\n      unscopedContentEl.classList.remove('mdc-list-item__primary-text');\n      unscopedContentEl.classList.remove('mdc-list-item__secondary-text');\n    }\n  }\n\n  /**\n   * Infers the number of lines based on the projected user content. This is useful\n   * if no explicit number of lines has been specified on the list item.\n   *\n   * The number of lines is inferred based on whether there is a title, the number of\n   * additional lines (secondary/tertiary). An additional line is acquired if there is\n   * unscoped text content.\n   */\n  private _inferLinesFromContent() {\n    let numOfLines = this._titles!.length + this._lines!.length;\n    if (this._hasUnscopedTextContent) {\n      numOfLines += 1;\n    }\n    return numOfLines;\n  }\n\n  /** Checks whether the list item has unscoped text content. */\n  private _checkDomForUnscopedTextContent() {\n    this._hasUnscopedTextContent = Array.from<ChildNode>(\n      this._unscopedContent!.nativeElement.childNodes,\n    )\n      .filter(node => node.nodeType !== node.COMMENT_NODE)\n      .some(node => !!(node.textContent && node.textContent.trim()));\n  }\n}\n\n/**\n * Sanity checks the configuration of the list item with respect to the amount\n * of lines, whether there is a title, or if there is unscoped text content.\n *\n * The checks are extracted into a top-level function that can be dead-code\n * eliminated by Terser or other optimizers in production mode.\n */\nfunction sanityCheckListItemContent(item: MatListItemBase) {\n  const numTitles = item._titles!.length;\n  const numLines = item._titles!.length;\n\n  if (numTitles > 1) {\n    throw Error('A list item cannot have multiple titles.');\n  }\n  if (numTitles === 0 && numLines > 0) {\n    throw Error('A list item line can only be used if there is a list item title.');\n  }\n  if (\n    numTitles === 0 &&\n    item._hasUnscopedTextContent &&\n    item._explicitLines !== null &&\n    item._explicitLines > 1\n  ) {\n    throw Error('A list item cannot have wrapping content without a title.');\n  }\n  if (numLines > 2 || (numLines === 2 && item._hasUnscopedTextContent)) {\n    throw Error('A list item can have at maximum three lines.');\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 {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {MatListBase} from './list-base';\n\n@Component({\n  selector: 'mat-action-list',\n  exportAs: 'matActionList',\n  template: '<ng-content></ng-content>',\n  host: {\n    'class': 'mat-mdc-action-list mat-mdc-list-base mdc-list',\n    'role': 'group',\n  },\n  styleUrls: ['list.css'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{provide: MatListBase, useExisting: MatActionList}],\n})\nexport class MatActionList extends MatListBase {\n  // An navigation list is considered interactive, but does not extend the interactive list\n  // base class. We do this because as per MDC, items of interactive lists are only reachable\n  // through keyboard shortcuts. We want all items for the navigation list to be reachable\n  // through tab key as we do not intend to provide any special accessibility treatment. The\n  // accessibility treatment depends on how the end-user will interact with it.\n  override _isNonInteractive = false;\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 {Platform} from '@angular/cdk/platform';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  ContentChildren,\n  ElementRef,\n  Inject,\n  NgZone,\n  Optional,\n  QueryList,\n  ViewChild,\n  ViewEncapsulation,\n  InjectionToken,\n} from '@angular/core';\nimport {MAT_RIPPLE_GLOBAL_OPTIONS, RippleGlobalOptions} from '@angular/material/core';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {MatListBase, MatListItemBase} from './list-base';\nimport {MatListItemLine, MatListItemMeta, MatListItemTitle} from './list-item-sections';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\n\n/**\n * Injection token that can be used to inject instances of `MatList`. It serves as\n * alternative token to the actual `MatList` class which could cause unnecessary\n * retention of the class and its component metadata.\n */\nexport const MAT_LIST = new InjectionToken<MatList>('MatList');\n\n@Component({\n  selector: 'mat-list',\n  exportAs: 'matList',\n  template: '<ng-content></ng-content>',\n  host: {\n    'class': 'mat-mdc-list mat-mdc-list-base mdc-list',\n  },\n  styleUrls: ['list.css'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{provide: MatListBase, useExisting: MatList}],\n})\nexport class MatList extends MatListBase {}\n\n@Component({\n  selector: 'mat-list-item, a[mat-list-item], button[mat-list-item]',\n  exportAs: 'matListItem',\n  host: {\n    'class': 'mat-mdc-list-item mdc-list-item',\n    '[class.mdc-list-item--activated]': 'activated',\n    '[class.mdc-list-item--with-leading-avatar]': '_avatars.length !== 0',\n    '[class.mdc-list-item--with-leading-icon]': '_icons.length !== 0',\n    '[class.mdc-list-item--with-trailing-meta]': '_meta.length !== 0',\n    '[class._mat-animation-noopable]': '_noopAnimations',\n    '[attr.aria-current]': '_getAriaCurrent()',\n  },\n  templateUrl: 'list-item.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatListItem extends MatListItemBase {\n  @ContentChildren(MatListItemLine, {descendants: true}) _lines: QueryList<MatListItemLine>;\n  @ContentChildren(MatListItemTitle, {descendants: true}) _titles: QueryList<MatListItemTitle>;\n  @ContentChildren(MatListItemMeta, {descendants: true}) _meta: QueryList<MatListItemMeta>;\n  @ViewChild('unscopedContent') _unscopedContent: ElementRef<HTMLSpanElement>;\n  @ViewChild('text') _itemText: ElementRef<HTMLElement>;\n\n  /** Indicates whether an item in a `<mat-nav-list>` is the currently active page. */\n  @Input()\n  get activated() {\n    return this._activated;\n  }\n  set activated(activated) {\n    this._activated = coerceBooleanProperty(activated);\n  }\n  _activated = false;\n\n  constructor(\n    element: ElementRef,\n    ngZone: NgZone,\n    @Optional() listBase: MatListBase | null,\n    platform: Platform,\n    @Optional() @Inject(MAT_RIPPLE_GLOBAL_OPTIONS) globalRippleOptions?: RippleGlobalOptions,\n    @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n  ) {\n    super(element, ngZone, listBase, platform, globalRippleOptions, animationMode);\n  }\n\n  /**\n   * Determine the value of `aria-current`. Return 'page' if this item is an activated anchor tag.\n   * Otherwise, return `null`. This method is safe to use with server-side rendering.\n   */\n  _getAriaCurrent(): string | null {\n    return this._hostElement.nodeName === 'A' && this._activated ? 'page' : null;\n  }\n}\n","<ng-content select=\"[matListItemAvatar],[matListItemIcon]\"></ng-content>\n\n<span class=\"mdc-list-item__content\">\n  <ng-content select=\"[matListItemTitle]\"></ng-content>\n  <ng-content select=\"[matListItemLine]\"></ng-content>\n  <span #unscopedContent class=\"mat-mdc-list-item-unscoped-content\"\n        (cdkObserveContent)=\"_updateItemLines(true)\">\n    <ng-content></ng-content>\n  </span>\n</span>\n\n<ng-content select=\"[matListItemMeta]\"></ng-content>\n\n<ng-content select=\"mat-divider\"></ng-content>\n\n<!--\n  Strong focus indicator element. MDC uses the `::before` pseudo element for the default\n  focus/hover/selected state, so we need a separate element.\n-->\n<div class=\"mat-mdc-focus-indicator\"></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 {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {SelectionModel} from '@angular/cdk/collections';\nimport {\n  ANIMATION_MODULE_TYPE,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  InjectionToken,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  QueryList,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {MAT_RIPPLE_GLOBAL_OPTIONS, RippleGlobalOptions, ThemePalette} from '@angular/material/core';\nimport {MatListBase, MatListItemBase} from './list-base';\nimport {LIST_OPTION, ListOption, MatListOptionTogglePosition} from './list-option-types';\nimport {MatListItemLine, MatListItemTitle} from './list-item-sections';\nimport {Platform} from '@angular/cdk/platform';\n\n/**\n * Injection token that can be used to reference instances of an `SelectionList`. It serves\n * as alternative token to an actual implementation which would result in circular references.\n * @docs-private\n */\nexport const SELECTION_LIST = new InjectionToken<SelectionList>('SelectionList');\n\n/**\n * Interface describing the containing list of an list option. This is used to avoid\n * circular dependencies between the list-option and the selection list.\n * @docs-private\n */\nexport interface SelectionList extends MatListBase {\n  multiple: boolean;\n  color: ThemePalette;\n  selectedOptions: SelectionModel<MatListOption>;\n  hideSingleSelectionIndicator: boolean;\n  compareWith: (o1: any, o2: any) => boolean;\n  _value: string[] | null;\n  _reportValueChange(): void;\n  _emitChangeEvent(options: MatListOption[]): void;\n  _onTouched(): void;\n}\n\n@Component({\n  selector: 'mat-list-option',\n  exportAs: 'matListOption',\n  styleUrls: ['list-option.css'],\n  host: {\n    'class': 'mat-mdc-list-item mat-mdc-list-option mdc-list-item',\n    'role': 'option',\n    // As per MDC, only list items without checkbox or radio indicator should receive the\n    // `--selected` class.\n    '[class.mdc-list-item--selected]':\n      'selected && !_selectionList.multiple && _selectionList.hideSingleSelectionIndicator',\n    // Based on the checkbox/radio position and whether there are icons or avatars, we apply MDC's\n    // list-item `--leading` and `--trailing` classes.\n    '[class.mdc-list-item--with-leading-avatar]': '_hasProjected(\"avatars\", \"before\")',\n    '[class.mdc-list-item--with-leading-icon]': '_hasProjected(\"icons\", \"before\")',\n    '[class.mdc-list-item--with-trailing-icon]': '_hasProjected(\"icons\", \"after\")',\n    '[class.mat-mdc-list-option-with-trailing-avatar]': '_hasProjected(\"avatars\", \"after\")',\n    // Based on the checkbox/radio position, we apply the `--leading` or `--trailing` MDC classes\n    // which ensure that the checkbox/radio is positioned correctly within the list item.\n    '[class.mdc-list-item--with-leading-checkbox]': '_hasCheckboxAt(\"before\")',\n    '[class.mdc-list-item--with-trailing-checkbox]': '_hasCheckboxAt(\"after\")',\n    '[class.mdc-list-item--with-leading-radio]': '_hasRadioAt(\"before\")',\n    '[class.mdc-list-item--with-trailing-radio]': '_hasRadioAt(\"after\")',\n    '[class.mat-accent]': 'color !== \"primary\" && color !== \"warn\"',\n    '[class.mat-warn]': 'color === \"warn\"',\n    '[class._mat-animation-noopable]': '_noopAnimations',\n    '[attr.aria-selected]': 'selected',\n    '(blur)': '_handleBlur()',\n    '(click)': '_toggleOnInteraction()',\n  },\n  templateUrl: 'list-option.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {provide: MatListItemBase, useExisting: MatListOption},\n    {provide: LIST_OPTION, useExisting: MatListOption},\n  ],\n})\nexport class MatListOption extends MatListItemBase implements ListOption, OnInit, OnDestroy {\n  @ContentChildren(MatListItemLine, {descendants: true}) _lines: QueryList<MatListItemLine>;\n  @ContentChildren(MatListItemTitle, {descendants: true}) _titles: QueryList<MatListItemTitle>;\n  @ViewChild('unscopedContent') _unscopedContent: ElementRef<HTMLSpanElement>;\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  /** Whether the label should appear before or after the checkbox/radio. Defaults to 'after' */\n  @Input() togglePosition: MatListOptionTogglePosition = 'after';\n\n  /**\n   * Whether the label should appear before or after the checkbox/radio. Defaults to 'after'\n   *\n   * @deprecated Use `togglePosition` instead.\n   * @breaking-change 17.0.0\n   */\n  @Input() get checkboxPosition(): MatListOptionTogglePosition {\n    return this.togglePosition;\n  }\n  set checkboxPosition(value: MatListOptionTogglePosition) {\n    this.togglePosition = value;\n  }\n\n  /** Theme color of the list option. This sets the color of the checkbox/radio. */\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  /** Value of the option */\n  @Input()\n  get value(): any {\n    return this._value;\n  }\n  set value(newValue: any) {\n    if (this.selected && newValue !== this.value && this._inputsInitialized) {\n      this.selected = false;\n    }\n\n    this._value = newValue;\n  }\n  private _value: any;\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  private _selected = false;\n\n  /**\n   * This is set to true after the first OnChanges cycle so we don't\n   * clear the value of `selected` in the first cycle.\n   */\n  private _inputsInitialized = false;\n\n  constructor(\n    elementRef: ElementRef<HTMLElement>,\n    ngZone: NgZone,\n    @Inject(SELECTION_LIST) private _selectionList: SelectionList,\n    platform: Platform,\n    private _changeDetectorRef: ChangeDetectorRef,\n    @Optional()\n    @Inject(MAT_RIPPLE_GLOBAL_OPTIONS)\n    globalRippleOptions?: RippleGlobalOptions,\n    @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n  ) {\n    super(elementRef, ngZone, _selectionList, platform, globalRippleOptions, animationMode);\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._changeDetectorRef.markForCheck();\n      }\n    });\n    this._inputsInitialized = true;\n  }\n\n  override ngOnDestroy(): void {\n    super.ngOnDestroy();\n\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\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._hostElement.focus();\n  }\n\n  /** Gets the text label of the list option. Used for the typeahead functionality in the list. */\n  getLabel() {\n    const titleElement = this._titles?.get(0)?._elementRef.nativeElement;\n    // If there is no explicit title element, the unscoped text content\n    // is treated as the list item title.\n    const labelEl = titleElement || this._unscopedContent?.nativeElement;\n    return labelEl?.textContent || '';\n  }\n\n  /** Whether a checkbox is shown at the given position. */\n  _hasCheckboxAt(position: MatListOptionTogglePosition): boolean {\n    return this._selectionList.multiple && this._getTogglePosition() === position;\n  }\n\n  /** Where a radio indicator is shown at the given position. */\n  _hasRadioAt(position: MatListOptionTogglePosition): boolean {\n    return (\n      !this._selectionList.multiple &&\n      this._getTogglePosition() === position &&\n      !this._selectionList.hideSingleSelectionIndicator\n    );\n  }\n\n  /** Whether icons or avatars are shown at the given position. */\n  _hasIconsOrAvatarsAt(position: 'before' | 'after'): boolean {\n    return this._hasProjected('icons', position) || this._hasProjected('avatars', position);\n  }\n\n  /** Gets whether the given type of element is projected at the specified position. */\n  _hasProjected(type: 'icons' | 'avatars', position: 'before' | 'after'): boolean {\n    // If the checkbox/radio is shown at the specified position, neither icons or\n    // avatars can be shown at the position.\n    return (\n      this._getTogglePosition() !== position &&\n      (type === 'avatars' ? this._avatars.length !== 0 : this._icons.length !== 0)\n    );\n  }\n\n  _handleBlur() {\n    this._selectionList._onTouched();\n  }\n\n  /** Gets the current position of the checkbox/radio. */\n  _getTogglePosition() {\n    return this.togglePosition || 'after';\n  }\n\n  /**\n   * Sets the selected state of the option.\n   * @returns Whether the value has changed.\n   */\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._changeDetectorRef.markForCheck();\n    return true;\n  }\n\n  /**\n   * Notifies Angular that the option needs to be checked in the next change detection run.\n   * Mainly used to trigger an update of the list option if the disabled state of the selection\n   * list changed.\n   */\n  _markForCheck() {\n    this._changeDetectorRef.markForCheck();\n  }\n\n  /** Toggles the option's value based on a user interaction. */\n  _toggleOnInteraction() {\n    if (!this.disabled) {\n      if (this._selectionList.multiple) {\n        this.selected = !this.selected;\n        this._selectionList._emitChangeEvent([this]);\n      } else if (!this.selected) {\n        this.selected = true;\n        this._selectionList._emitChangeEvent([this]);\n      }\n    }\n  }\n\n  /** Sets the tabindex of the list option. */\n  _setTabindex(value: number) {\n    this._hostElement.setAttribute('tabindex', value + '');\n  }\n}\n","<!--\n  Save icons and the pseudo checkbox/radio so that they can be re-used in the template without\n  duplication. Also content can only be injected once so we need to extract icons/avatars\n  into a template since we use it in multiple places.\n-->\n<ng-template #icons>\n  <ng-content select=\"[matListItemAvatar],[matListItemIcon]\">\n  </ng-content>\n</ng-template>\n\n<ng-template #checkbox>\n  <div class=\"mdc-checkbox\" [class.mdc-checkbox--disabled]=\"disabled\">\n    <input type=\"checkbox\" class=\"mdc-checkbox__native-control\"\n           [checked]=\"selected\" [disabled]=\"disabled\"/>\n    <div class=\"mdc-checkbox__background\">\n      <svg class=\"mdc-checkbox__checkmark\"\n           viewBox=\"0 0 24 24\"\n           aria-hidden=\"true\">\n        <path class=\"mdc-checkbox__checkmark-path\"\n              fill=\"none\"\n              d=\"M1.73,12.91 8.1,19.28 22.79,4.59\"/>\n      </svg>\n      <div class=\"mdc-checkbox__mixedmark\"></div>\n    </div>\n  </div>\n</ng-template>\n\n<ng-template #radio>\n  <div class=\"mdc-radio\" [class.mdc-radio--disabled]=\"disabled\">\n    <input type=\"radio\" class=\"mdc-radio__native-control\"\n           [checked]=\"selected\" [disabled]=\"disabled\"/>\n    <div class=\"mdc-radio__background\">\n      <div class=\"mdc-radio__outer-circle\"></div>\n      <div class=\"mdc-radio__inner-circle\"></div>\n    </div>\n  </div>\n</ng-template>\n\n<!-- Container for the checkbox at start. -->\n<span class=\"mdc-list-item__start mat-mdc-list-option-checkbox-before\"\n      *ngIf=\"_hasCheckboxAt('before')\">\n  <ng-template [ngTemplateOutlet]=\"checkbox\"></ng-template>\n</span>\n<!-- Container for the radio at the start. -->\n<span class=\"mdc-list-item__start mat-mdc-list-option-radio-before\"\n      *ngIf=\"_hasRadioAt('before')\">\n  <ng-template [ngTemplateOutlet]=\"radio\"></ng-template>\n</span>\n<!-- Conditionally renders icons/avatars before the list item text. -->\n<ng-template [ngIf]=\"_hasIconsOrAvatarsAt('before')\">\n  <ng-template [ngTemplateOutlet]=\"icons\"></ng-template>\n</ng-template>\n\n<!-- Text -->\n<span class=\"mdc-list-item__content\">\n  <ng-content select=\"[matListItemTitle]\"></ng-content>\n  <ng-content select=\"[matListItemLine]\"></ng-content>\n  <span #unscopedContent class=\"mat-mdc-list-item-unscoped-content\"\n        (cdkObserveContent)=\"_updateItemLines(true)\">\n    <ng-content></ng-content>\n  </span>\n</span>\n\n<!-- Container for the checkbox at the end. -->\n<span class=\"mdc-list-item__end\" *ngIf=\"_hasCheckboxAt('after')\">\n  <ng-template [ngTemplateOutlet]=\"checkbox\"></ng-template>\n</span>\n<!-- Container for the radio at the end. -->\n<span class=\"mdc-list-item__end\" *ngIf=\"_hasRadioAt('after')\">\n  <ng-template [ngTemplateOutlet]=\"radio\"></ng-template>\n</span>\n<!-- Conditionally renders icons/avatars after the list item text. -->\n<ng-template [ngIf]=\"_hasIconsOrAvatarsAt('after')\">\n  <ng-template [ngTemplateOutlet]=\"icons\"></ng-template>\n</ng-template>\n\n<!-- Divider -->\n<ng-content select=\"mat-divider\"></ng-content>\n\n<!--\n  Strong focus indicator element. MDC uses the `::before` pseudo element for the default\n  focus/hover/selected state, so we need a separate element.\n-->\n<div class=\"mat-mdc-focus-indicator\"></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 {Directive} from '@angular/core';\n\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\n@Directive({\n  selector: '[mat-subheader], [matSubheader]',\n  // TODO(mmalerba): MDC's subheader font looks identical to the list item font, figure out why and\n  //  make a change in one of the repos to visually distinguish.\n  host: {'class': 'mat-mdc-subheader mdc-list-group__subheader'},\n})\nexport class MatListSubheaderCssMatStyler {}\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 {ChangeDetectionStrategy, Component, InjectionToken, ViewEncapsulation} from '@angular/core';\nimport {MatListBase} from './list-base';\n\n/**\n * Injection token that can be used to inject instances of `MatNavList`. It serves as\n * alternative token to the actual `MatNavList` class which could cause unnecessary\n * retention of the class and its component metadata.\n */\nexport const MAT_NAV_LIST = new InjectionToken<MatNavList>('MatNavList');\n\n@Component({\n  selector: 'mat-nav-list',\n  exportAs: 'matNavList',\n  template: '<ng-content></ng-content>',\n  host: {\n    'class': 'mat-mdc-nav-list mat-mdc-list-base mdc-list',\n    'role': 'navigation',\n  },\n  styleUrls: ['list.css'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{provide: MatListBase, useExisting: MatNavList}],\n})\nexport class MatNavList extends MatListBase {\n  // An navigation list is considered interactive, but does not extend the interactive list\n  // base class. We do this because as per MDC, items of interactive lists are only reachable\n  // through keyboard shortcuts. We want all items for the navigation list to be reachable\n  // through tab key as we do not intend to provide any special accessibility treatment. The\n  // accessibility treatment depends on how the end-user will interact with it.\n  override _isNonInteractive = false;\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 {FocusKeyManager} from '@angular/cdk/a11y';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {SelectionModel} from '@angular/cdk/collections';\nimport {A, ENTER, hasModifierKey, SPACE} from '@angular/cdk/keycodes';\nimport {_getFocusedElementPierceShadowDom} from '@angular/cdk/platform';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  Output,\n  QueryList,\n  SimpleChanges,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {ThemePalette} from '@angular/material/core';\nimport {Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {MatListBase} from './list-base';\nimport {MatListOption, SELECTION_LIST, SelectionList} from './list-option';\n\nexport const MAT_SELECTION_LIST_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => MatSelectionList),\n  multi: true,\n};\n\n/** Change event that is being fired whenever the selected state of an option changes. */\nexport class MatSelectionListChange {\n  constructor(\n    /** Reference to the selection list that emitted the event. */\n    public source: MatSelectionList,\n    /** Reference to the options that have been changed. */\n    public options: MatListOption[],\n  ) {}\n}\n\n@Component({\n  selector: 'mat-selection-list',\n  exportAs: 'matSelectionList',\n  host: {\n    'class': 'mat-mdc-selection-list mat-mdc-list-base mdc-list',\n    'role': 'listbox',\n    '[attr.aria-multiselectable]': 'multiple',\n    '(keydown)': '_handleKeydown($event)',\n  },\n  template: '<ng-content></ng-content>',\n  styleUrls: ['list.css'],\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    MAT_SELECTION_LIST_VALUE_ACCESSOR,\n    {provide: MatListBase, useExisting: MatSelectionList},\n    {provide: SELECTION_LIST, useExisting: MatSelectionList},\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatSelectionList\n  extends MatListBase\n  implements SelectionList, ControlValueAccessor, AfterViewInit, OnChanges, OnDestroy\n{\n  private _initialized = false;\n  private _keyManager: FocusKeyManager<MatListOption>;\n\n  /** Emits when the list has been destroyed. */\n  private _destroyed = new Subject<void>();\n\n  /** Whether the list has been destroyed. */\n  private _isDestroyed: boolean;\n\n  /** View to model callback that should be called whenever the selected options change. */\n  private _onChange: (value: any) => void = (_: any) => {};\n\n  @ContentChildren(MatListOption, {descendants: true}) _items: QueryList<MatListOption>;\n\n  /** Emits a change event whenever the selected state of an option changes. */\n  @Output() readonly selectionChange: EventEmitter<MatSelectionListChange> =\n    new EventEmitter<MatSelectionListChange>();\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 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 ((typeof ngDevMode === 'undefined' || ngDevMode) && this._initialized) {\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  private _multiple = true;\n\n  /** Whether radio indicator for all list items is hidden. */\n  @Input()\n  get hideSingleSelectionIndicator(): boolean {\n    return this._hideSingleSelectionIndicator;\n  }\n  set hideSingleSelectionIndicator(value: BooleanInput) {\n    this._hideSingleSelectionIndicator = coerceBooleanProperty(value);\n  }\n  private _hideSingleSelectionIndicator: boolean =\n    this._defaultOptions?.hideSingleSelectionIndicator ?? false;\n\n  /** The currently selected options. */\n  selectedOptions = new SelectionModel<MatListOption>(this._multiple);\n\n  /** Keeps track of the currently-selected value. */\n  _value: string[] | null;\n\n  /** View to model callback that should be called if the list or its options lost focus. */\n  _onTouched: () => void = () => {};\n\n  constructor(public _element: ElementRef<HTMLElement>, private _ngZone: NgZone) {\n    super();\n    this._isNonInteractive = false;\n  }\n\n  ngAfterViewInit() {\n    // Mark the selection list as initialized so that the `multiple`\n    // binding can no longer be changed.\n    this._initialized = true;\n    this._setupRovingTabindex();\n\n    // These events are bound outside the zone, because they don't change\n    // any change-detected properties and they can trigger timeouts.\n    this._ngZone.runOutsideAngular(() => {\n      this._element.nativeElement.addEventListener('focusin', this._handleFocusin);\n      this._element.nativeElement.addEventListener('focusout', this._handleFocusout);\n    });\n\n    if (this._value) {\n      this._setOptionsFromValues(this._value);\n    }\n\n    this._watchForSelectionChange();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    const disabledChanges = changes['disabled'];\n    const disableRippleChanges = changes['disableRipple'];\n    const hideSingleSelectionIndicatorChanges = changes['hideSingleSelectionIndicator'];\n\n    if (\n      (disableRippleChanges && !disableRippleChanges.firstChange) ||\n      (disabledChanges && !disabledChanges.firstChange) ||\n      (hideSingleSelectionIndicatorChanges && !hideSingleSelectionIndicatorChanges.firstChange)\n    ) {\n      this._markOptionsForCheck();\n    }\n  }\n\n  ngOnDestroy() {\n    this._keyManager?.destroy();\n    this._element.nativeElement.removeEventListener('focusin', this._handleFocusin);\n    this._element.nativeElement.removeEventListener('focusout', this._handleFocusout);\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(): MatListOption[] {\n    return this._setAllOptionsSelected(true);\n  }\n\n  /** Deselects all of the options. Returns the options that changed as a result. */\n  deselectAll(): MatListOption[] {\n    return this._setAllOptionsSelected(false);\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: MatListOption[]) {\n    this.selectionChange.emit(new MatSelectionListChange(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  /**\n   * Whether the *entire* selection list is disabled. When true, each list item is also disabled\n   * and each list item is removed from the tab order (has tabindex=\"-1\").\n   */\n  @Input()\n  override get disabled(): boolean {\n    return this._selectionListDisabled;\n  }\n  override set disabled(value: BooleanInput) {\n    // Update the disabled state of this list. Write to `this._selectionListDisabled` instead of\n    // `super.disabled`. That is to avoid closure compiler compatibility issues with assigning to\n    // a super property.\n    this._selectionListDisabled = coerceBooleanProperty(value);\n    if (this._selectionListDisabled) {\n      this._keyManager?.setActiveItem(-1);\n    }\n  }\n  private _selectionListDisabled = false;\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  /** Watches for changes in the selected state of the options and updates the list accordingly. */\n  private _watchForSelectionChange() {\n    this.selectedOptions.changed.pipe(takeUntil(this._destroyed)).subscribe(event => {\n      // Sync external changes to the model back to the options.\n      for (let item of event.added) {\n        item.selected = true;\n      }\n\n      for (let item of event.removed) {\n        item.selected = false;\n      }\n\n      if (!this._containsFocus()) {\n        this._resetActiveOption();\n      }\n    });\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  /** 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   * Sets the selected state on all of the options\n   * and emits an event if anything changed.\n   */\n  private _setAllOptionsSelected(isSelected: boolean, skipDisabled?: boolean): MatListOption[] {\n    // Keep track of whether anything changed, because we only want to\n    // emit the changed event when something actually changed.\n    const changedOptions: MatListOption[] = [];\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\n    return changedOptions;\n  }\n\n  // Note: This getter exists for backwards compatibility. The `_items` query list\n  // cannot be named `options` as it will be picked up by the interactive list base.\n  /** The option components contained within this selection-list. */\n  get options(): QueryList<MatListOption> {\n    return this._items;\n  }\n\n  /** Handles keydown events within the list. */\n  _handleKeydown(event: KeyboardEvent) {\n    const activeItem = this._keyManager.activeItem;\n\n    if (\n      (event.keyCode === ENTER || event.keyCode === SPACE) &&\n      !this._keyManager.isTyping() &&\n      activeItem &&\n      !activeItem.disabled\n    ) {\n      event.preventDefault();\n      activeItem._toggleOnInteraction();\n    } else if (\n      event.keyCode === A &&\n      this.multiple &&\n      !this._keyManager.isTyping() &&\n      hasModifierKey(event, 'ctrlKey')\n    ) {\n      const shouldSelect = this.options.some(option => !option.disabled && !option.selected);\n      event.preventDefault();\n      this._emitChangeEvent(this._setAllOptionsSelected(shouldSelect, true));\n    } else {\n      this._keyManager.onKeydown(event);\n    }\n  }\n\n  /** Handles focusout events within the list. */\n  private _handleFocusout = () => {\n    // Focus takes a while to update so we have to wrap our call in a timeout.\n    setTimeout(() => {\n      if (!this._containsFocus()) {\n        this._resetActiveOption();\n      }\n    });\n  };\n\n  /** Handles focusin events within the list. */\n  private _handleFocusin = (event: FocusEvent) => {\n    if (this.disabled) {\n      return;\n    }\n\n    const activeIndex = this._items\n      .toArray()\n      .findIndex(item => item._elementRef.nativeElement.contains(event.target as HTMLElement));\n\n    if (activeIndex > -1) {\n      this._setActiveOption(activeIndex);\n    } else {\n      this._resetActiveOption();\n    }\n  };\n\n  /**\n   * Sets up the logic for maintaining the roving tabindex.\n   *\n   * `skipPredicate` determines if key manager should avoid putting a given list item in the tab\n   * index. Allow disabled list items to receive focus to align with WAI ARIA recommendation.\n   * Normally WAI ARIA's instructions are to exclude disabled items from the tab order, but it\n   * makes a few exceptions for compound widgets.\n   *\n   * From [Developing a Keyboard Interface](\n   * https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/):\n   *   \"For the following composite widget elements, keep them focusable when disabled: Options in a\n   *   Listbox...\"\n   */\n  private _setupRovingTabindex() {\n    this._keyManager = new FocusKeyManager(this._items)\n      .withHomeAndEnd()\n      .withTypeAhead()\n      .withWrap()\n      .skipPredicate(() => this.disabled);\n\n    // Set the initial focus.\n    this._resetActiveOption();\n\n    // Move the tabindex to the currently-focused list item.\n    this._keyManager.change.subscribe(activeItemIndex => this._setActiveOption(activeItemIndex));\n\n    // If the active item is removed from the list, reset back to the first one.\n    this._items.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n      const activeItem = this._keyManager.activeItem;\n\n      if (!activeItem || !this._items.toArray().indexOf(activeItem)) {\n        this._resetActiveOption();\n      }\n    });\n  }\n\n  /**\n   * Sets an option as active.\n   * @param index Index of the active option. If set to -1, no option will be active.\n   */\n  private _setActiveOption(index: number) {\n    this._items.forEach((item, itemIndex) => item._setTabindex(itemIndex === index ? 0 : -1));\n    this._keyManager.updateActiveItem(index);\n  }\n\n  /**\n   * Resets the active option. When the list is disabled, remove all options from to the tab order.\n   * Otherwise, focus the first selected option.\n   */\n  private _resetActiveOption() {\n    if (this.disabled) {\n      this._setActiveOption(-1);\n      return;\n    }\n\n    const activeItem =\n      this._items.find(item => item.selected && !item.disabled) || this._items.first;\n    this._setActiveOption(activeItem ? this._items.toArray().indexOf(activeItem) : -1);\n  }\n\n  /** Returns whether the focus is currently within the list. */\n  private _containsFocus() {\n    const activeElement = _getFocusedElementPierceShadowDom();\n    return activeElement && this._element.nativeElement.contains(activeElement);\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 {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatPseudoCheckboxModule, MatRippleModule, MatCommonModule} from '@angular/material/core';\nimport {MatDividerModule} from '@angular/material/divider';\nimport {MatActionList} from './action-list';\nimport {MatList, MatListItem} from './list';\nimport {MatListOption} from './list-option';\nimport {MatListSubheaderCssMatStyler} from './subheader';\nimport {\n  MatListItemLine,\n  MatListItemTitle,\n  MatListItemMeta,\n  MatListItemAvatar,\n  MatListItemIcon,\n} from './list-item-sections';\nimport {MatNavList} from './nav-list';\nimport {MatSelectionList} from './selection-list';\nimport {ObserversModule} from '@angular/cdk/observers';\n\n@NgModule({\n  imports: [\n    ObserversModule,\n    CommonModule,\n    MatCommonModule,\n    MatRippleModule,\n    MatPseudoCheckboxModule,\n  ],\n  exports: [\n    MatList,\n    MatActionList,\n    MatNavList,\n    MatSelectionList,\n    MatListItem,\n    MatListOption,\n    MatListItemAvatar,\n    MatListItemIcon,\n    MatListSubheaderCssMatStyler,\n    MatDividerModule,\n    MatListItemLine,\n    MatListItemTitle,\n    MatListItemMeta,\n  ],\n  declarations: [\n    MatList,\n    MatActionList,\n    MatNavList,\n    MatSelectionList,\n    MatListItem,\n    MatListOption,\n    MatListSubheaderCssMatStyler,\n    MatListItemAvatar,\n    MatListItemIcon,\n    MatListItemLine,\n    MatListItemTitle,\n    MatListItemMeta,\n  ],\n})\nexport class MatListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.MatListBase","i2","ANIMATION_MODULE_TYPE","i3"],"mappings":"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"}