{"version":3,"file":"chips.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/chip-action.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/chip-icons.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/chip.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/chip.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/chip-option.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/chip-option.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/chip-edit-input.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/chip-row.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/chip-row.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/chip-set.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/chip-listbox.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/chip-grid.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/chip-input.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/chips/chips-module.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ENTER, ModifierKey} from '@angular/cdk/keycodes';\nimport {InjectionToken} from '@angular/core';\n\n/** Key that can be used as a separator between chips. */\nexport interface SeparatorKey {\n  keyCode: number;\n  modifiers: readonly ModifierKey[];\n}\n\n/** Default options, for the chips module, that can be overridden. */\nexport interface MatChipsDefaultOptions {\n  /** The list of key codes that will trigger a chipEnd event. */\n  separatorKeyCodes: readonly (number | SeparatorKey)[] | ReadonlySet<number | SeparatorKey>;\n\n  /** Whether icon indicators should be hidden for single-selection. */\n  hideSingleSelectionIndicator?: boolean;\n\n  /** Whether the chip input should be interactive while disabled by default. */\n  inputDisabledInteractive?: boolean;\n}\n\n/** Injection token to be used to override the default options for the chips module. */\nexport const MAT_CHIPS_DEFAULT_OPTIONS = new InjectionToken<MatChipsDefaultOptions>(\n  'mat-chips-default-options',\n  {\n    providedIn: 'root',\n    factory: () => ({\n      separatorKeyCodes: [ENTER],\n    }),\n  },\n);\n\n/**\n * Injection token that can be used to reference instances of `MatChipAvatar`. It serves as\n * alternative token to the actual `MatChipAvatar` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_CHIP_AVATAR = new InjectionToken('MatChipAvatar');\n\n/**\n * Injection token that can be used to reference instances of `MatChipTrailingIcon`. It serves as\n * alternative token to the actual `MatChipTrailingIcon` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_CHIP_TRAILING_ICON = new InjectionToken('MatChipTrailingIcon');\n\n/**\n * Injection token that can be used to reference instances of `MatChipEdit`. It serves as\n * alternative token to the actual `MatChipEdit` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_CHIP_EDIT = new InjectionToken('MatChipEdit');\n\n/**\n * Injection token that can be used to reference instances of `MatChipRemove`. It serves as\n * alternative token to the actual `MatChipRemove` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_CHIP_REMOVE = new InjectionToken('MatChipRemove');\n\n/**\n * Injection token used to avoid a circular dependency between the `MatChip` and `MatChipAction`.\n */\nexport const MAT_CHIP = new InjectionToken('MatChip');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n  Directive,\n  ElementRef,\n  Input,\n  booleanAttribute,\n  numberAttribute,\n  inject,\n} from '@angular/core';\nimport {ENTER, SPACE} from '@angular/cdk/keycodes';\nimport {MAT_CHIP} from './tokens';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\nimport {_StructuralStylesLoader} from '../core';\n\n/**\n * A non-interactive section of a chip.\n * @docs-private\n */\n@Directive({\n  selector: '[matChipContent]',\n  host: {\n    'class':\n      'mat-mdc-chip-action mdc-evolution-chip__action mdc-evolution-chip__action--presentational',\n    '[class.mdc-evolution-chip__action--primary]': '_isPrimary',\n    '[class.mdc-evolution-chip__action--secondary]': '!_isPrimary',\n    '[class.mdc-evolution-chip__action--trailing]': '!_isPrimary && !_isLeading',\n    '[attr.disabled]': '_getDisabledAttribute()',\n    '[attr.aria-disabled]': 'disabled',\n  },\n})\nexport class MatChipContent {\n  _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n  protected _parentChip = inject<{\n    _handlePrimaryActionInteraction(): void;\n    remove(): void;\n    disabled: boolean;\n    _edit(): void;\n    _isEditing?: boolean;\n  }>(MAT_CHIP);\n\n  /** Whether this is the primary action in the chip. */\n  _isPrimary = true;\n\n  /** Whether this is the leading action in the chip. */\n  _isLeading = false; // TODO(adolgachev): consolidate usage to secondary css class\n\n  /** Whether the action is disabled. */\n  @Input({transform: booleanAttribute})\n  get disabled(): boolean {\n    return this._disabled || this._parentChip?.disabled || false;\n  }\n  set disabled(value: boolean) {\n    this._disabled = value;\n  }\n  private _disabled = false;\n\n  /** Tab index of the action. */\n  @Input({\n    transform: (value: unknown) => (value == null ? -1 : numberAttribute(value)),\n  })\n  tabIndex: number = -1;\n\n  /**\n   * Private API to allow focusing this chip when it is disabled.\n   */\n  @Input()\n  _allowFocusWhenDisabled = false;\n\n  /**\n   * Determine the value of the disabled attribute for this chip action.\n   */\n  protected _getDisabledAttribute(): string | null {\n    // When this chip action is disabled and focusing disabled chips is not permitted, return empty\n    // string to indicate that disabled attribute should be included.\n    return this.disabled && !this._allowFocusWhenDisabled ? '' : null;\n  }\n\n  constructor(...args: unknown[]);\n\n  constructor() {\n    inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n    if (this._elementRef.nativeElement.nodeName === 'BUTTON') {\n      this._elementRef.nativeElement.setAttribute('type', 'button');\n    }\n  }\n\n  focus() {\n    this._elementRef.nativeElement.focus();\n  }\n}\n\n/**\n * Interactive section of a chip.\n * @docs-private\n */\n@Directive({\n  selector: '[matChipAction]',\n  host: {\n    '[attr.tabindex]': '_getTabindex()',\n    '[class.mdc-evolution-chip__action--presentational]': 'false',\n    '(click)': '_handleClick($event)',\n    '(keydown)': '_handleKeydown($event)',\n  },\n})\nexport class MatChipAction extends MatChipContent {\n  /**\n   * Determine the value of the tabindex attribute for this chip action.\n   */\n  protected _getTabindex(): string | null {\n    return this.disabled && !this._allowFocusWhenDisabled ? null : this.tabIndex.toString();\n  }\n\n  _handleClick(event: MouseEvent) {\n    if (!this.disabled && this._isPrimary) {\n      event.preventDefault();\n      this._parentChip._handlePrimaryActionInteraction();\n    }\n  }\n\n  _handleKeydown(event: KeyboardEvent) {\n    if (\n      (event.keyCode === ENTER || event.keyCode === SPACE) &&\n      !this.disabled &&\n      this._isPrimary &&\n      !this._parentChip._isEditing\n    ) {\n      event.preventDefault();\n      this._parentChip._handlePrimaryActionInteraction();\n    }\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ENTER, SPACE} from '@angular/cdk/keycodes';\nimport {Directive} from '@angular/core';\nimport {MatChipAction, MatChipContent} from './chip-action';\nimport {MAT_CHIP_AVATAR, MAT_CHIP_EDIT, MAT_CHIP_REMOVE, MAT_CHIP_TRAILING_ICON} from './tokens';\n\n/** Avatar image within a chip. */\n@Directive({\n  selector: 'mat-chip-avatar, [matChipAvatar]',\n  host: {\n    'class': 'mat-mdc-chip-avatar mdc-evolution-chip__icon mdc-evolution-chip__icon--primary',\n    'role': 'img',\n  },\n  providers: [{provide: MAT_CHIP_AVATAR, useExisting: MatChipAvatar}],\n})\nexport class MatChipAvatar {}\n\n/** Non-interactive trailing icon in a chip. */\n@Directive({\n  selector: 'mat-chip-trailing-icon, [matChipTrailingIcon]',\n  host: {\n    'class':\n      'mat-mdc-chip-trailing-icon mdc-evolution-chip__icon mdc-evolution-chip__icon--trailing',\n    'aria-hidden': 'true',\n  },\n  providers: [{provide: MAT_CHIP_TRAILING_ICON, useExisting: MatChipTrailingIcon}],\n})\nexport class MatChipTrailingIcon extends MatChipContent {\n  override _isPrimary = false;\n}\n\n/**\n * Directive to edit the parent chip when the leading action icon is clicked or\n * when the ENTER key is pressed on it.\n *\n * Recommended for use with the Material Design \"edit\" icon\n * available at https://material.io/icons/#ic_edit.\n *\n * Example:\n *\n * ```\n * <mat-chip>\n *   <button matChipEdit aria-label=\"Edit\">\n *     <mat-icon>edit</mat-icon>\n *   </button>\n * </mat-chip>\n * ```\n */\n\n@Directive({\n  selector: '[matChipEdit]',\n  host: {\n    'class':\n      'mat-mdc-chip-edit mat-mdc-chip-avatar mat-focus-indicator ' +\n      'mdc-evolution-chip__icon mdc-evolution-chip__icon--primary',\n    'role': 'button',\n    '[attr.aria-hidden]': 'null',\n  },\n  providers: [{provide: MAT_CHIP_EDIT, useExisting: MatChipEdit}],\n})\nexport class MatChipEdit extends MatChipAction {\n  override _isPrimary = false;\n  override _isLeading = true;\n\n  override _handleClick(event: MouseEvent): void {\n    if (!this.disabled) {\n      event.stopPropagation();\n      event.preventDefault();\n      this._parentChip._edit();\n    }\n  }\n\n  override _handleKeydown(event: KeyboardEvent) {\n    if ((event.keyCode === ENTER || event.keyCode === SPACE) && !this.disabled) {\n      event.stopPropagation();\n      event.preventDefault();\n      this._parentChip._edit();\n    }\n  }\n}\n\n/**\n * Directive to remove the parent chip when the trailing icon is clicked or\n * when the ENTER key is pressed on it.\n *\n * Recommended for use with the Material Design \"cancel\" icon\n * available at https://material.io/icons/#ic_cancel.\n *\n * Example:\n *\n * ```\n * <mat-chip>\n *   <mat-icon matChipRemove>cancel</mat-icon>\n * </mat-chip>\n * ```\n */\n\n@Directive({\n  selector: '[matChipRemove]',\n  host: {\n    'class':\n      'mat-mdc-chip-remove mat-mdc-chip-trailing-icon mat-focus-indicator ' +\n      'mdc-evolution-chip__icon mdc-evolution-chip__icon--trailing',\n    'role': 'button',\n    '[attr.aria-hidden]': 'null',\n  },\n  providers: [{provide: MAT_CHIP_REMOVE, useExisting: MatChipRemove}],\n})\nexport class MatChipRemove extends MatChipAction {\n  override _isPrimary = false;\n\n  override _handleClick(event: MouseEvent): void {\n    if (!this.disabled) {\n      event.stopPropagation();\n      event.preventDefault();\n      this._parentChip.remove();\n    }\n  }\n\n  override _handleKeydown(event: KeyboardEvent) {\n    if ((event.keyCode === ENTER || event.keyCode === SPACE) && !this.disabled) {\n      event.stopPropagation();\n      event.preventDefault();\n      this._parentChip.remove();\n    }\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {FocusMonitor, _IdGenerator} from '@angular/cdk/a11y';\nimport {BACKSPACE, DELETE} from '@angular/cdk/keycodes';\nimport {_CdkPrivateStyleLoader, _VisuallyHiddenLoader} from '@angular/cdk/private';\n\nimport {\n  AfterContentInit,\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ContentChildren,\n  DoCheck,\n  ElementRef,\n  EventEmitter,\n  HOST_TAG_NAME,\n  Injector,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Output,\n  QueryList,\n  ViewChild,\n  ViewEncapsulation,\n  booleanAttribute,\n  inject,\n  DOCUMENT,\n} from '@angular/core';\nimport {\n  MAT_RIPPLE_GLOBAL_OPTIONS,\n  MatRippleLoader,\n  RippleGlobalOptions,\n  _StructuralStylesLoader,\n  _animationsDisabled,\n} from '../core';\nimport {Subject, Subscription, merge} from 'rxjs';\nimport {MatChipAction, MatChipContent} from './chip-action';\nimport {MatChipAvatar, MatChipEdit, MatChipRemove, MatChipTrailingIcon} from './chip-icons';\nimport {\n  MAT_CHIP,\n  MAT_CHIP_AVATAR,\n  MAT_CHIP_EDIT,\n  MAT_CHIP_REMOVE,\n  MAT_CHIP_TRAILING_ICON,\n} from './tokens';\n\n/** Represents an event fired on an individual `mat-chip`. */\nexport interface MatChipEvent {\n  /** The chip the event was fired on. */\n  chip: MatChip;\n}\n\n/**\n * Material design styled Chip base component. Used inside the MatChipSet component.\n *\n * Extended by MatChipOption and MatChipRow for different interaction patterns.\n */\n@Component({\n  selector: 'mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]',\n  exportAs: 'matChip',\n  templateUrl: 'chip.html',\n  styleUrl: 'chip.css',\n  host: {\n    'class': 'mat-mdc-chip',\n    '[class]': '\"mat-\" + (color || \"primary\")',\n    '[class.mdc-evolution-chip]': '!_isBasicChip',\n    '[class.mdc-evolution-chip--disabled]': 'disabled',\n    '[class.mdc-evolution-chip--with-trailing-action]': '_hasTrailingIcon()',\n    '[class.mdc-evolution-chip--with-primary-graphic]': 'leadingIcon',\n    '[class.mdc-evolution-chip--with-primary-icon]': 'leadingIcon',\n    '[class.mdc-evolution-chip--with-avatar]': 'leadingIcon',\n    '[class.mat-mdc-chip-with-avatar]': 'leadingIcon',\n    '[class.mat-mdc-chip-highlighted]': 'highlighted',\n    '[class.mat-mdc-chip-disabled]': 'disabled',\n    '[class.mat-mdc-basic-chip]': '_isBasicChip',\n    '[class.mat-mdc-standard-chip]': '!_isBasicChip',\n    '[class.mat-mdc-chip-with-trailing-icon]': '_hasTrailingIcon()',\n    '[class._mat-animation-noopable]': '_animationsDisabled',\n    '[id]': 'id',\n    '[attr.role]': 'role',\n    '[attr.aria-label]': 'ariaLabel',\n    '(keydown)': '_handleKeydown($event)',\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [{provide: MAT_CHIP, useExisting: MatChip}],\n  imports: [MatChipContent],\n})\nexport class MatChip implements OnInit, AfterViewInit, AfterContentInit, DoCheck, OnDestroy {\n  _changeDetectorRef = inject(ChangeDetectorRef);\n  _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n  private readonly _tagName = inject(HOST_TAG_NAME);\n  protected _ngZone = inject(NgZone);\n  private _focusMonitor = inject(FocusMonitor);\n  private _globalRippleOptions = inject<RippleGlobalOptions>(MAT_RIPPLE_GLOBAL_OPTIONS, {\n    optional: true,\n  });\n\n  protected _document = inject(DOCUMENT);\n\n  /** Emits when the chip is focused. */\n  readonly _onFocus = new Subject<MatChipEvent>();\n\n  /** Emits when the chip is blurred. */\n  readonly _onBlur = new Subject<MatChipEvent>();\n\n  /** Whether this chip is a basic (unstyled) chip. */\n  _isBasicChip: boolean;\n\n  /** Role for the root of the chip. */\n  @Input() role: string | null = null;\n\n  /** Whether the chip has focus. */\n  private _hasFocusInternal = false;\n\n  /** Whether moving focus into the chip is pending. */\n  private _pendingFocus: boolean;\n\n  /** Subscription to changes in the chip's actions. */\n  private _actionChanges: Subscription | undefined;\n\n  /** Whether animations for the chip are enabled. */\n  _animationsDisabled = _animationsDisabled();\n\n  /** All avatars present in the chip. */\n  @ContentChildren(MAT_CHIP_AVATAR, {descendants: true})\n  protected _allLeadingIcons: QueryList<MatChipAvatar>;\n\n  /** All trailing icons present in the chip. */\n  @ContentChildren(MAT_CHIP_TRAILING_ICON, {descendants: true})\n  protected _allTrailingIcons: QueryList<MatChipTrailingIcon>;\n\n  /** All edit icons present in the chip. */\n  @ContentChildren(MAT_CHIP_EDIT, {descendants: true})\n  protected _allEditIcons: QueryList<MatChipEdit>;\n\n  /** All remove icons present in the chip. */\n  @ContentChildren(MAT_CHIP_REMOVE, {descendants: true})\n  protected _allRemoveIcons: QueryList<MatChipRemove>;\n\n  _hasFocus() {\n    return this._hasFocusInternal;\n  }\n\n  /** A unique id for the chip. If none is supplied, it will be auto-generated. */\n  @Input() id: string = inject(_IdGenerator).getId('mat-mdc-chip-');\n\n  // TODO(#26104): Consider deprecating and using `_computeAriaAccessibleName` instead.\n  // `ariaLabel` may be unnecessary, and `_computeAriaAccessibleName` only supports\n  // datepicker's use case.\n  /** ARIA label for the content of the chip. */\n  @Input('aria-label') ariaLabel: string | null = null;\n\n  // TODO(#26104): Consider deprecating and using `_computeAriaAccessibleName` instead.\n  // `ariaDescription` may be unnecessary, and `_computeAriaAccessibleName` only supports\n  // datepicker's use case.\n  /** ARIA description for the content of the chip. */\n  @Input('aria-description') ariaDescription: string | null = null;\n\n  /** Whether the chip list is disabled. */\n  _chipListDisabled: boolean = false;\n\n  /** Whether the chip was focused when it was removed. */\n  _hadFocusOnRemove = false;\n\n  private _textElement!: HTMLElement;\n\n  /**\n   * The value of the chip. Defaults to the content inside\n   * the `mat-mdc-chip-action-label` element.\n   */\n  @Input()\n  get value(): any {\n    return this._value !== undefined ? this._value : this._textElement.textContent!.trim();\n  }\n  set value(value: any) {\n    this._value = value;\n  }\n  protected _value: any;\n\n  // TODO: should be typed as `ThemePalette` but internal apps pass in arbitrary strings.\n  /**\n   * Theme color of the chip. This API is supported in M2 themes only, it has no\n   * effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/chips/styling.\n   *\n   * For information on applying color variants in M3, see\n   * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n   */\n  @Input() color?: string | null;\n\n  /**\n   * Determines whether or not the chip displays the remove styling and emits (removed) events.\n   */\n  @Input({transform: booleanAttribute})\n  removable: boolean = true;\n\n  /**\n   * Colors the chip for emphasis as if it were selected.\n   */\n  @Input({transform: booleanAttribute})\n  highlighted: boolean = false;\n\n  /** Whether the ripple effect is disabled or not. */\n  @Input({transform: booleanAttribute})\n  disableRipple: boolean = false;\n\n  /** Whether the chip is disabled. */\n  @Input({transform: booleanAttribute})\n  get disabled(): boolean {\n    return this._disabled || this._chipListDisabled;\n  }\n  set disabled(value: boolean) {\n    this._disabled = value;\n  }\n  private _disabled = false;\n\n  /** Emitted when a chip is to be removed. */\n  @Output() readonly removed: EventEmitter<MatChipEvent> = new EventEmitter<MatChipEvent>();\n\n  /** Emitted when the chip is destroyed. */\n  @Output() readonly destroyed: EventEmitter<MatChipEvent> = new EventEmitter<MatChipEvent>();\n\n  /** The unstyled chip selector for this component. */\n  protected basicChipAttrName = 'mat-basic-chip';\n\n  /** The chip's leading icon. */\n  @ContentChild(MAT_CHIP_AVATAR) leadingIcon: MatChipAvatar;\n\n  /** The chip's leading edit icon. */\n  @ContentChild(MAT_CHIP_EDIT) editIcon: MatChipEdit;\n\n  /** The chip's trailing icon. */\n  @ContentChild(MAT_CHIP_TRAILING_ICON) trailingIcon: MatChipTrailingIcon;\n\n  /** The chip's trailing remove icon. */\n  @ContentChild(MAT_CHIP_REMOVE) removeIcon: MatChipRemove;\n\n  /** Action receiving the primary set of user interactions. */\n  @ViewChild(MatChipAction) primaryAction: MatChipAction;\n\n  /**\n   * Handles the lazy creation of the MatChip ripple.\n   * Used to improve initial load time of large applications.\n   */\n  private _rippleLoader: MatRippleLoader = inject(MatRippleLoader);\n\n  protected _injector = inject(Injector);\n\n  constructor(...args: unknown[]);\n\n  constructor() {\n    const styleLoader = inject(_CdkPrivateStyleLoader);\n    styleLoader.load(_StructuralStylesLoader);\n    styleLoader.load(_VisuallyHiddenLoader);\n    this._monitorFocus();\n\n    this._rippleLoader?.configureRipple(this._elementRef.nativeElement, {\n      className: 'mat-mdc-chip-ripple',\n      disabled: this._isRippleDisabled(),\n    });\n  }\n\n  ngOnInit() {\n    // This check needs to happen in `ngOnInit` so the overridden value of\n    // `basicChipAttrName` coming from base classes can be picked up.\n    this._isBasicChip =\n      this._elementRef.nativeElement.hasAttribute(this.basicChipAttrName) ||\n      this._tagName.toLowerCase() === this.basicChipAttrName;\n  }\n\n  ngAfterViewInit() {\n    this._textElement = this._elementRef.nativeElement.querySelector('.mat-mdc-chip-action-label')!;\n\n    if (this._pendingFocus) {\n      this._pendingFocus = false;\n      this.focus();\n    }\n  }\n\n  ngAfterContentInit(): void {\n    // Since the styling depends on the presence of some\n    // actions, we have to mark for check on changes.\n    this._actionChanges = merge(\n      this._allLeadingIcons.changes,\n      this._allTrailingIcons.changes,\n      this._allEditIcons.changes,\n      this._allRemoveIcons.changes,\n    ).subscribe(() => this._changeDetectorRef.markForCheck());\n  }\n\n  ngDoCheck(): void {\n    this._rippleLoader.setDisabled(this._elementRef.nativeElement, this._isRippleDisabled());\n  }\n\n  ngOnDestroy() {\n    this._focusMonitor.stopMonitoring(this._elementRef);\n    this._rippleLoader?.destroyRipple(this._elementRef.nativeElement);\n    this._actionChanges?.unsubscribe();\n    this.destroyed.emit({chip: this});\n    this.destroyed.complete();\n  }\n\n  /**\n   * Allows for programmatic removal of the chip.\n   *\n   * Informs any listeners of the removal request. Does not remove the chip from the DOM.\n   */\n  remove(): void {\n    if (this.removable) {\n      this._hadFocusOnRemove = this._hasFocus();\n      this.removed.emit({chip: this});\n    }\n  }\n\n  /** Whether or not the ripple should be disabled. */\n  _isRippleDisabled(): boolean {\n    return (\n      this.disabled ||\n      this.disableRipple ||\n      this._animationsDisabled ||\n      this._isBasicChip ||\n      !this._hasInteractiveActions() ||\n      !!this._globalRippleOptions?.disabled\n    );\n  }\n\n  /** Returns whether the chip has a trailing icon. */\n  _hasTrailingIcon() {\n    return !!(this.trailingIcon || this.removeIcon);\n  }\n\n  /** Handles keyboard events on the chip. */\n  _handleKeydown(event: KeyboardEvent) {\n    // Ignore backspace events where the user is holding down the key\n    // so that we don't accidentally remove too many chips.\n    if ((event.keyCode === BACKSPACE && !event.repeat) || event.keyCode === DELETE) {\n      event.preventDefault();\n      this.remove();\n    }\n  }\n\n  /** Allows for programmatic focusing of the chip. */\n  focus(): void {\n    if (!this.disabled) {\n      // If `focus` is called before `ngAfterViewInit`, we won't have access to the primary action.\n      // This can happen if the consumer tries to focus a chip immediately after it is added.\n      // Queue the method to be called again on init.\n      if (this.primaryAction) {\n        this.primaryAction.focus();\n      } else {\n        this._pendingFocus = true;\n      }\n    }\n  }\n\n  /** Gets the action that contains a specific target node. */\n  _getSourceAction(target: Node): MatChipAction | undefined {\n    return this._getActions().find(action => {\n      const element = action._elementRef.nativeElement;\n      return element === target || element.contains(target);\n    });\n  }\n\n  /** Gets all of the actions within the chip. */\n  _getActions(): MatChipAction[] {\n    const result: MatChipAction[] = [];\n\n    if (this.editIcon) {\n      result.push(this.editIcon);\n    }\n\n    if (this.primaryAction) {\n      result.push(this.primaryAction);\n    }\n\n    if (this.removeIcon) {\n      result.push(this.removeIcon);\n    }\n\n    return result;\n  }\n\n  /** Handles interactions with the primary action of the chip. */\n  _handlePrimaryActionInteraction() {\n    // Empty here, but is overwritten in child classes.\n  }\n\n  /** Returns whether the chip has any interactive actions. */\n  _hasInteractiveActions(): boolean {\n    return this._getActions().length > 0;\n  }\n\n  /** Handles interactions with the edit action of the chip. */\n  _edit(event: Event) {\n    // Empty here, but is overwritten in child classes.\n  }\n\n  /** Starts the focus monitoring process on the chip. */\n  private _monitorFocus() {\n    this._focusMonitor.monitor(this._elementRef, true).subscribe(origin => {\n      const hasFocus = origin !== null;\n\n      if (hasFocus !== this._hasFocusInternal) {\n        this._hasFocusInternal = hasFocus;\n\n        if (hasFocus) {\n          this._onFocus.next({chip: this});\n        } else {\n          // When animations are enabled, Angular may end up removing the chip from the DOM a little\n          // earlier than usual, causing it to be blurred and throwing off the logic in the chip list\n          // that moves focus to the next item. To work around the issue, we defer marking the chip\n          // as not focused until after the next render.\n          this._changeDetectorRef.markForCheck();\n          setTimeout(() => this._ngZone.run(() => this._onBlur.next({chip: this})));\n        }\n      }\n    });\n  }\n}\n","<span class=\"mat-mdc-chip-focus-overlay\"></span>\n\n<span class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--primary\">\n  <span matChipContent>\n    @if (leadingIcon) {\n      <span class=\"mdc-evolution-chip__graphic mat-mdc-chip-graphic\">\n        <ng-content select=\"mat-chip-avatar, [matChipAvatar]\"></ng-content>\n      </span>\n    }\n    <span class=\"mdc-evolution-chip__text-label mat-mdc-chip-action-label\">\n      <ng-content></ng-content>\n      <span class=\"mat-mdc-chip-primary-focus-indicator mat-focus-indicator\"></span>\n    </span>\n  </span>\n</span>\n\n@if (_hasTrailingIcon()) {\n  <span class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing\">\n    <ng-content select=\"mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]\"></ng-content>\n  </span>\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  ViewEncapsulation,\n  OnInit,\n  inject,\n  booleanAttribute,\n} from '@angular/core';\nimport {MatChip} from './chip';\nimport {MAT_CHIP, MAT_CHIPS_DEFAULT_OPTIONS} from './tokens';\nimport {MatChipAction} from './chip-action';\n\n/** Event object emitted by MatChipOption when selected or deselected. */\nexport class MatChipSelectionChange {\n  constructor(\n    /** Reference to the chip that emitted the event. */\n    public source: MatChipOption,\n    /** Whether the chip that emitted the event is selected. */\n    public selected: boolean,\n    /** Whether the selection change was a result of a user interaction. */\n    public isUserInput = false,\n  ) {}\n}\n\n/**\n * An extension of the MatChip component that supports chip selection. Used with MatChipListbox.\n *\n * Unlike other chips, the user can focus on disabled chip options inside a MatChipListbox. The\n * user cannot click disabled chips.\n */\n@Component({\n  selector: 'mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]',\n  templateUrl: 'chip-option.html',\n  styleUrl: 'chip.css',\n  host: {\n    'class': 'mat-mdc-chip mat-mdc-chip-option',\n    '[class.mdc-evolution-chip]': '!_isBasicChip',\n    '[class.mdc-evolution-chip--filter]': '!_isBasicChip',\n    '[class.mdc-evolution-chip--selectable]': '!_isBasicChip',\n    '[class.mat-mdc-chip-selected]': 'selected',\n    '[class.mat-mdc-chip-multiple]': '_chipListMultiple',\n    '[class.mat-mdc-chip-disabled]': 'disabled',\n    '[class.mat-mdc-chip-with-avatar]': 'leadingIcon',\n    '[class.mdc-evolution-chip--disabled]': 'disabled',\n    '[class.mdc-evolution-chip--selected]': 'selected',\n    // This class enables the transition on the checkmark. Usually MDC adds it when selection\n    // starts and removes it once the animation is finished. We don't need to go through all\n    // the trouble, because we only care about the selection animation. MDC needs to do it,\n    // because they also have an exit animation that we don't care about.\n    '[class.mdc-evolution-chip--selecting]': '!_animationsDisabled',\n    '[class.mdc-evolution-chip--with-trailing-action]': '_hasTrailingIcon()',\n    '[class.mdc-evolution-chip--with-primary-icon]': 'leadingIcon',\n    '[class.mdc-evolution-chip--with-primary-graphic]': '_hasLeadingGraphic()',\n    '[class.mdc-evolution-chip--with-avatar]': 'leadingIcon',\n    '[class.mat-mdc-chip-highlighted]': 'highlighted',\n    '[class.mat-mdc-chip-with-trailing-icon]': '_hasTrailingIcon()',\n    '[attr.tabindex]': 'null',\n    '[attr.aria-label]': 'null',\n    '[attr.aria-description]': 'null',\n    '[attr.role]': 'role',\n    '[id]': 'id',\n  },\n  providers: [\n    {provide: MatChip, useExisting: MatChipOption},\n    {provide: MAT_CHIP, useExisting: MatChipOption},\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [MatChipAction],\n})\nexport class MatChipOption extends MatChip implements OnInit {\n  /** Default chip options. */\n  private _defaultOptions = inject(MAT_CHIPS_DEFAULT_OPTIONS, {optional: true});\n\n  /** Whether the chip list is selectable. */\n  chipListSelectable: boolean = true;\n\n  /** Whether the chip list is in multi-selection mode. */\n  _chipListMultiple: boolean = false;\n\n  /** Whether the chip list hides single-selection indicator. */\n  _chipListHideSingleSelectionIndicator: boolean =\n    this._defaultOptions?.hideSingleSelectionIndicator ?? false;\n\n  /**\n   * Whether or not the chip is selectable.\n   *\n   * When a chip is not selectable, changes to its selected state are always\n   * ignored. By default an option chip is selectable, and it becomes\n   * non-selectable if its parent chip list is not selectable.\n   */\n  @Input({transform: booleanAttribute})\n  get selectable(): boolean {\n    return this._selectable && this.chipListSelectable;\n  }\n  set selectable(value: boolean) {\n    this._selectable = value;\n    this._changeDetectorRef.markForCheck();\n  }\n  protected _selectable: boolean = true;\n\n  /** Whether the chip is selected. */\n  @Input({transform: booleanAttribute})\n  get selected(): boolean {\n    return this._selected;\n  }\n  set selected(value: boolean) {\n    this._setSelectedState(value, false, true);\n  }\n  private _selected = false;\n\n  /**\n   * The ARIA selected applied to the chip. Conforms to WAI ARIA best practices for listbox\n   * interaction patterns.\n   *\n   * From [WAI ARIA Listbox authoring practices guide](\n   * https://www.w3.org/WAI/ARIA/apg/patterns/listbox/):\n   *  \"If any options are selected, each selected option has either aria-selected or aria-checked\n   *  set to true. All options that are selectable but not selected have either aria-selected or\n   *  aria-checked set to false.\"\n   *\n   * Set `aria-selected=\"false\"` on not-selected listbox options that are selectable to fix\n   * VoiceOver reading every option as \"selected\" (#25736).\n   */\n  get ariaSelected(): string | null {\n    return this.selectable ? this.selected.toString() : null;\n  }\n\n  /** The unstyled chip selector for this component. */\n  protected override basicChipAttrName = 'mat-basic-chip-option';\n\n  /** Emitted when the chip is selected or deselected. */\n  @Output() readonly selectionChange: EventEmitter<MatChipSelectionChange> =\n    new EventEmitter<MatChipSelectionChange>();\n\n  override ngOnInit() {\n    super.ngOnInit();\n    this.role = 'presentation';\n  }\n\n  /** Selects the chip. */\n  select(): void {\n    this._setSelectedState(true, false, true);\n  }\n\n  /** Deselects the chip. */\n  deselect(): void {\n    this._setSelectedState(false, false, true);\n  }\n\n  /** Selects this chip and emits userInputSelection event */\n  selectViaInteraction(): void {\n    this._setSelectedState(true, true, true);\n  }\n\n  /** Toggles the current selected state of this chip. */\n  toggleSelected(isUserInput: boolean = false): boolean {\n    this._setSelectedState(!this.selected, isUserInput, true);\n    return this.selected;\n  }\n\n  override _handlePrimaryActionInteraction() {\n    if (!this.disabled) {\n      // Interacting with the primary action implies that the chip already has focus, however\n      // there's a bug in Safari where focus ends up lingering on the previous chip (see #27544).\n      // We work around it by explicitly focusing the primary action of the current chip.\n      this.focus();\n\n      if (this.selectable) {\n        this.toggleSelected(true);\n      }\n    }\n  }\n\n  _hasLeadingGraphic() {\n    if (this.leadingIcon) {\n      return true;\n    }\n\n    // The checkmark graphic communicates selected state for both single-select and multi-select.\n    // Include checkmark in single-select to fix a11y issue where selected state is communicated\n    // visually only using color (#25886).\n    return !this._chipListHideSingleSelectionIndicator || this._chipListMultiple;\n  }\n\n  _setSelectedState(isSelected: boolean, isUserInput: boolean, emitEvent: boolean) {\n    if (isSelected !== this.selected) {\n      this._selected = isSelected;\n\n      if (emitEvent) {\n        this.selectionChange.emit({\n          source: this,\n          isUserInput,\n          selected: this.selected,\n        });\n      }\n\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n}\n","<span class=\"mat-mdc-chip-focus-overlay\"></span>\n\n<span class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--primary\">\n  <button\n    matChipAction\n    [_allowFocusWhenDisabled]=\"true\"\n    [attr.aria-description]=\"ariaDescription\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-selected]=\"ariaSelected\"\n    role=\"option\">\n    @if (_hasLeadingGraphic()) {\n      <span class=\"mdc-evolution-chip__graphic mat-mdc-chip-graphic\">\n        <ng-content select=\"mat-chip-avatar, [matChipAvatar]\"></ng-content>\n        <span class=\"mdc-evolution-chip__checkmark\">\n          <svg\n            class=\"mdc-evolution-chip__checkmark-svg\"\n            viewBox=\"-2 -3 30 30\"\n            focusable=\"false\"\n            aria-hidden=\"true\">\n            <path class=\"mdc-evolution-chip__checkmark-path\"\n                  fill=\"none\" stroke=\"currentColor\" d=\"M1.73,12.91 8.1,19.28 22.79,4.59\" />\n          </svg>\n        </span>\n      </span>\n    }\n    <span class=\"mdc-evolution-chip__text-label mat-mdc-chip-action-label\">\n      <ng-content></ng-content>\n      <span class=\"mat-mdc-chip-primary-focus-indicator mat-focus-indicator\"></span>\n    </span>\n  </button>\n</span>\n\n@if (_hasTrailingIcon()) {\n  <span class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing\">\n    <ng-content select=\"mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]\"></ng-content>\n  </span>\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, ElementRef, inject, DOCUMENT} from '@angular/core';\n\n/**\n * A directive that makes a span editable and exposes functions to modify and retrieve the\n * element's contents.\n */\n@Directive({\n  selector: 'span[matChipEditInput]',\n  host: {\n    'class': 'mat-chip-edit-input',\n    'role': 'textbox',\n    'tabindex': '-1',\n    'contenteditable': 'true',\n  },\n})\nexport class MatChipEditInput {\n  private readonly _elementRef = inject(ElementRef);\n  private readonly _document = inject(DOCUMENT);\n\n  constructor(...args: unknown[]);\n  constructor() {}\n\n  initialize(initialValue: string) {\n    this.getNativeElement().focus();\n    this.setValue(initialValue);\n  }\n\n  getNativeElement(): HTMLElement {\n    return this._elementRef.nativeElement;\n  }\n\n  setValue(value: string) {\n    this.getNativeElement().textContent = value;\n    this._moveCursorToEndOfInput();\n  }\n\n  getValue(): string {\n    return this.getNativeElement().textContent || '';\n  }\n\n  private _moveCursorToEndOfInput() {\n    const range = this._document.createRange();\n    range.selectNodeContents(this.getNativeElement());\n    range.collapse(false);\n    const sel = window.getSelection()!;\n    sel.removeAllRanges();\n    sel.addRange(range);\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ENTER} from '@angular/cdk/keycodes';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  EventEmitter,\n  Input,\n  Output,\n  ViewChild,\n  ViewEncapsulation,\n  afterNextRender,\n} from '@angular/core';\nimport {takeUntil} from 'rxjs/operators';\nimport {MatChip, MatChipEvent} from './chip';\nimport {MatChipAction} from './chip-action';\nimport {MatChipEditInput} from './chip-edit-input';\nimport {MAT_CHIP} from './tokens';\n\n/** Represents an event fired on an individual `mat-chip` when it is edited. */\nexport interface MatChipEditedEvent extends MatChipEvent {\n  /** The final edit value. */\n  value: string;\n}\n\n/**\n * An extension of the MatChip component used with MatChipGrid and\n * the matChipInputFor directive.\n */\n@Component({\n  selector: 'mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]',\n  templateUrl: 'chip-row.html',\n  styleUrl: 'chip.css',\n  host: {\n    'class': 'mat-mdc-chip mat-mdc-chip-row mdc-evolution-chip',\n    '[class.mat-mdc-chip-with-avatar]': 'leadingIcon',\n    '[class.mat-mdc-chip-disabled]': 'disabled',\n    '[class.mat-mdc-chip-editing]': '_isEditing',\n    '[class.mat-mdc-chip-editable]': 'editable',\n    '[class.mdc-evolution-chip--disabled]': 'disabled',\n    '[class.mdc-evolution-chip--with-leading-action]': '_hasLeadingActionIcon()',\n    '[class.mdc-evolution-chip--with-trailing-action]': '_hasTrailingIcon()',\n    '[class.mdc-evolution-chip--with-primary-graphic]': 'leadingIcon',\n    '[class.mdc-evolution-chip--with-primary-icon]': 'leadingIcon',\n    '[class.mdc-evolution-chip--with-avatar]': 'leadingIcon',\n    '[class.mat-mdc-chip-highlighted]': 'highlighted',\n    '[class.mat-mdc-chip-with-trailing-icon]': '_hasTrailingIcon()',\n    '[id]': 'id',\n    // Has to have a negative tabindex in order to capture\n    // focus and redirect it to the primary action.\n    '[attr.tabindex]': 'disabled ? null : -1',\n    '[attr.aria-label]': 'null',\n    '[attr.aria-description]': 'null',\n    '[attr.role]': 'role',\n    '(focus)': '_handleFocus()',\n    '(click)': 'this._hasInteractiveActions() ? _handleClick($event) : null',\n    '(dblclick)': '_handleDoubleclick($event)',\n  },\n  providers: [\n    {provide: MatChip, useExisting: MatChipRow},\n    {provide: MAT_CHIP, useExisting: MatChipRow},\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [MatChipAction, MatChipEditInput],\n})\nexport class MatChipRow extends MatChip implements AfterViewInit {\n  protected override basicChipAttrName = 'mat-basic-chip-row';\n\n  /**\n   * The editing action has to be triggered in a timeout. While we're waiting on it, a blur\n   * event might occur which will interrupt the editing. This flag is used to avoid interruptions\n   * while the editing action is being initialized.\n   */\n  private _editStartPending = false;\n\n  @Input() editable: boolean = false;\n\n  /** Emitted when the chip is edited. */\n  @Output() readonly edited: EventEmitter<MatChipEditedEvent> =\n    new EventEmitter<MatChipEditedEvent>();\n\n  /** The default chip edit input that is used if none is projected into this chip row. */\n  @ViewChild(MatChipEditInput) defaultEditInput?: MatChipEditInput;\n\n  /** The projected chip edit input. */\n  @ContentChild(MatChipEditInput) contentEditInput?: MatChipEditInput;\n\n  /**\n   * Set on a mousedown when the chip is already focused via mouse or keyboard.\n   *\n   * This allows us to ensure chip is already focused when deciding whether to enter the\n   * edit mode on a subsequent click. Otherwise, the chip appears focused when handling the\n   * first click event.\n   */\n  private _alreadyFocused = false;\n\n  _isEditing = false;\n\n  constructor(...args: unknown[]);\n\n  constructor() {\n    super();\n\n    this.role = 'row';\n    this._onBlur.pipe(takeUntil(this.destroyed)).subscribe(() => {\n      if (this._isEditing && !this._editStartPending) {\n        this._onEditFinish();\n      }\n      this._alreadyFocused = false;\n    });\n  }\n\n  override ngAfterViewInit() {\n    super.ngAfterViewInit();\n\n    // Sets _alreadyFocused (ahead of click) when chip already has focus.\n    this._ngZone.runOutsideAngular(() => {\n      this._elementRef.nativeElement.addEventListener(\n        'mousedown',\n        () => (this._alreadyFocused = this._hasFocus()),\n      );\n    });\n  }\n\n  protected _hasLeadingActionIcon() {\n    // The leading action (edit) icon is hidden while editing.\n    return !this._isEditing && !!this.editIcon;\n  }\n\n  override _hasTrailingIcon() {\n    // The trailing icon is hidden while editing.\n    return !this._isEditing && super._hasTrailingIcon();\n  }\n\n  /** Sends focus to the first gridcell when the user clicks anywhere inside the chip. */\n  _handleFocus() {\n    if (!this._isEditing && !this.disabled) {\n      this.focus();\n    }\n  }\n\n  override _handleKeydown(event: KeyboardEvent): void {\n    if (event.keyCode === ENTER && !this.disabled) {\n      if (this._isEditing) {\n        event.preventDefault();\n        this._onEditFinish();\n      } else if (this.editable) {\n        this._startEditing(event);\n      }\n    } else if (this._isEditing) {\n      // Stop the event from reaching the chip set in order to avoid navigating.\n      event.stopPropagation();\n    } else {\n      super._handleKeydown(event);\n    }\n  }\n\n  _handleClick(event: MouseEvent) {\n    if (!this.disabled && this.editable && !this._isEditing && this._alreadyFocused) {\n      // Ensure click event not picked up unintentionally by other listeners, as\n      // once editing starts, the source element is detached from DOM.\n      event.preventDefault();\n      event.stopPropagation();\n      this._startEditing(event);\n    }\n  }\n\n  _handleDoubleclick(event: MouseEvent) {\n    if (!this.disabled && this.editable) {\n      this._startEditing(event);\n    }\n  }\n\n  override _edit(): void {\n    // markForCheck necessary for edit input to be rendered\n    this._changeDetectorRef.markForCheck();\n    this._startEditing();\n  }\n\n  private _startEditing(event?: Event) {\n    if (\n      !this.primaryAction ||\n      (this.removeIcon &&\n        !!event &&\n        this._getSourceAction(event.target as Node) === this.removeIcon)\n    ) {\n      return;\n    }\n\n    // The value depends on the DOM so we need to extract it before we flip the flag.\n    const value = this.value;\n\n    this._isEditing = this._editStartPending = true;\n\n    // Defer initializing the input until after it has been added to the DOM.\n    afterNextRender(\n      () => {\n        this._getEditInput().initialize(value);\n\n        // Necessary when using edit icon to prevent edit from aborting\n        setTimeout(() => this._ngZone.run(() => (this._editStartPending = false)));\n      },\n      {injector: this._injector},\n    );\n  }\n\n  private _onEditFinish() {\n    this._isEditing = this._editStartPending = false;\n    this.edited.emit({chip: this, value: this._getEditInput().getValue()});\n\n    // If the edit input is still focused or focus was returned to the body after it was destroyed,\n    // return focus to the chip contents.\n    if (\n      this._document.activeElement === this._getEditInput().getNativeElement() ||\n      this._document.activeElement === this._document.body\n    ) {\n      this.primaryAction.focus();\n    }\n  }\n\n  override _isRippleDisabled(): boolean {\n    return super._isRippleDisabled() || this._isEditing;\n  }\n\n  /**\n   * Gets the projected chip edit input, or the default input if none is projected in. One of these\n   * two values is guaranteed to be defined.\n   */\n  private _getEditInput(): MatChipEditInput {\n    return this.contentEditInput || this.defaultEditInput!;\n  }\n}\n","@if (!_isEditing) {\n  <span class=\"mat-mdc-chip-focus-overlay\"></span>\n}\n\n@if (_hasLeadingActionIcon()) {\n  <span class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--leading\" role=\"gridcell\">\n    <ng-content select=\"[matChipEdit]\"></ng-content>\n  </span>\n}\n<span class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--primary\" role=\"gridcell\"\n    matChipAction\n    [disabled]=\"disabled\"\n    [attr.aria-description]=\"ariaDescription\"\n    [attr.aria-label]=\"ariaLabel\">\n  @if (leadingIcon) {\n    <span class=\"mdc-evolution-chip__graphic mat-mdc-chip-graphic\">\n      <ng-content select=\"mat-chip-avatar, [matChipAvatar]\"></ng-content>\n    </span>\n  }\n\n  <span class=\"mdc-evolution-chip__text-label mat-mdc-chip-action-label\">\n    @if (_isEditing) {\n      @if (contentEditInput) {\n        <ng-content select=\"[matChipEditInput]\"></ng-content>\n      } @else {\n        <span matChipEditInput></span>\n      }\n    } @else {\n      <ng-content></ng-content>\n    }\n\n    <span class=\"mat-mdc-chip-primary-focus-indicator mat-focus-indicator\" aria-hidden=\"true\"></span>\n  </span>\n</span>\n\n@if (_hasTrailingIcon()) {\n  <span\n    class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing\"\n    role=\"gridcell\">\n    <ng-content select=\"mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]\"></ng-content>\n  </span>\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {FocusKeyManager} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  Input,\n  OnDestroy,\n  QueryList,\n  ViewEncapsulation,\n  booleanAttribute,\n  numberAttribute,\n  inject,\n} from '@angular/core';\nimport {Observable, Subject, merge} from 'rxjs';\nimport {startWith, switchMap, takeUntil} from 'rxjs/operators';\nimport {MatChip, MatChipEvent} from './chip';\nimport {MatChipAction, MatChipContent} from './chip-action';\n\n/**\n * Basic container component for the MatChip component.\n *\n * Extended by MatChipListbox and MatChipGrid for different interaction patterns.\n */\n@Component({\n  selector: 'mat-chip-set',\n  template: `\n    <div class=\"mdc-evolution-chip-set__chips\" role=\"presentation\">\n      <ng-content></ng-content>\n    </div>\n  `,\n  styleUrl: 'chip-set.css',\n  host: {\n    'class': 'mat-mdc-chip-set mdc-evolution-chip-set',\n    '(keydown)': '_handleKeydown($event)',\n    '[attr.role]': 'role',\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatChipSet implements AfterViewInit, OnDestroy {\n  protected _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n  protected _changeDetectorRef = inject(ChangeDetectorRef);\n  private _dir = inject(Directionality, {optional: true});\n\n  /** Index of the last destroyed chip that had focus. */\n  private _lastDestroyedFocusedChipIndex: number | null = null;\n\n  /** Used to manage focus within the chip list. */\n  protected _keyManager: FocusKeyManager<MatChipAction>;\n\n  /** Subject that emits when the component has been destroyed. */\n  protected _destroyed = new Subject<void>();\n\n  /** Role to use if it hasn't been overwritten by the user. */\n  protected _defaultRole = 'presentation';\n\n  /** Combined stream of all of the child chips' focus events. */\n  get chipFocusChanges(): Observable<MatChipEvent> {\n    return this._getChipStream(chip => chip._onFocus);\n  }\n\n  /** Combined stream of all of the child chips' destroy events. */\n  get chipDestroyedChanges(): Observable<MatChipEvent> {\n    return this._getChipStream(chip => chip.destroyed);\n  }\n\n  /** Combined stream of all of the child chips' remove events. */\n  get chipRemovedChanges(): Observable<MatChipEvent> {\n    return this._getChipStream(chip => chip.removed);\n  }\n\n  /** Whether the chip set is disabled. */\n  @Input({transform: booleanAttribute})\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: boolean) {\n    this._disabled = value;\n    this._syncChipsState();\n  }\n  protected _disabled: boolean = false;\n\n  /** Whether the chip list contains chips or not. */\n  get empty(): boolean {\n    return !this._chips || this._chips.length === 0;\n  }\n\n  /** The ARIA role applied to the chip set. */\n  @Input()\n  get role(): string | null {\n    if (this._explicitRole) {\n      return this._explicitRole;\n    }\n\n    return this.empty ? null : this._defaultRole;\n  }\n\n  /** Tabindex of the chip set. */\n  @Input({\n    transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n  })\n  tabIndex: number = 0;\n\n  set role(value: string | null) {\n    this._explicitRole = value;\n  }\n  private _explicitRole: string | null = null;\n\n  /** Whether any of the chips inside of this chip-set has focus. */\n  get focused(): boolean {\n    return this._hasFocusedChip();\n  }\n\n  /** The chips that are part of this chip set. */\n  @ContentChildren(MatChip, {\n    // We need to use `descendants: true`, because Ivy will no longer match\n    // indirect descendants if it's left as false.\n    descendants: true,\n  })\n  _chips: QueryList<MatChip>;\n\n  /** Flat list of all the actions contained within the chips. */\n  _chipActions = new QueryList<MatChipAction>();\n\n  constructor(...args: unknown[]);\n  constructor() {}\n\n  ngAfterViewInit() {\n    this._setUpFocusManagement();\n    this._trackChipSetChanges();\n    this._trackDestroyedFocusedChip();\n  }\n\n  ngOnDestroy() {\n    this._keyManager?.destroy();\n    this._chipActions.destroy();\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n\n  /** Checks whether any of the chips is focused. */\n  protected _hasFocusedChip() {\n    return this._chips && this._chips.some(chip => chip._hasFocus());\n  }\n\n  /** Syncs the chip-set's state with the individual chips. */\n  protected _syncChipsState() {\n    this._chips?.forEach(chip => {\n      chip._chipListDisabled = this._disabled;\n      chip._changeDetectorRef.markForCheck();\n    });\n  }\n\n  /** Dummy method for subclasses to override. Base chip set cannot be focused. */\n  focus() {}\n\n  /** Handles keyboard events on the chip set. */\n  _handleKeydown(event: KeyboardEvent) {\n    if (this._originatesFromChip(event)) {\n      this._keyManager.onKeydown(event);\n    }\n  }\n\n  /**\n   * Utility to ensure all indexes are valid.\n   *\n   * @param index The index to be checked.\n   * @returns True if the index is valid for our list of chips.\n   */\n  protected _isValidIndex(index: number): boolean {\n    return index >= 0 && index < this._chips.length;\n  }\n\n  /**\n   * Removes the `tabindex` from the chip set and resets it back afterwards, allowing the\n   * user to tab out of it. This prevents the set from capturing focus and redirecting\n   * it back to the first chip, creating a focus trap, if it user tries to tab away.\n   */\n  protected _allowFocusEscape() {\n    const previous = this._elementRef.nativeElement.tabIndex;\n\n    if (previous !== -1) {\n      // Set the tabindex directly on the element, instead of going through\n      // the data binding, because we aren't guaranteed that change detection\n      // will run quickly enough to allow focus to escape.\n      this._elementRef.nativeElement.tabIndex = -1;\n\n      // Note that this needs to be a `setTimeout`, because a `Promise.resolve`\n      // doesn't allow enough time for the focus to escape.\n      setTimeout(() => (this._elementRef.nativeElement.tabIndex = previous));\n    }\n  }\n\n  /**\n   * Gets a stream of events from all the chips within the set.\n   * The stream will automatically incorporate any newly-added chips.\n   */\n  protected _getChipStream<T, C extends MatChip = MatChip>(\n    mappingFunction: (chip: C) => Observable<T>,\n  ): Observable<T> {\n    return this._chips.changes.pipe(\n      startWith(null),\n      switchMap(() => merge(...(this._chips as QueryList<C>).map(mappingFunction))),\n    );\n  }\n\n  /** Checks whether an event comes from inside a chip element. */\n  protected _originatesFromChip(event: Event): boolean {\n    let currentElement = event.target as HTMLElement | null;\n\n    while (currentElement && currentElement !== this._elementRef.nativeElement) {\n      if (currentElement.classList.contains('mat-mdc-chip')) {\n        return true;\n      }\n      currentElement = currentElement.parentElement;\n    }\n    return false;\n  }\n\n  /** Sets up the chip set's focus management logic. */\n  private _setUpFocusManagement() {\n    // Create a flat `QueryList` containing the actions of all of the chips.\n    // This allows us to navigate both within the chip and move to the next/previous\n    // one using the existing `ListKeyManager`.\n    this._chips.changes.pipe(startWith(this._chips)).subscribe((chips: QueryList<MatChip>) => {\n      const actions: MatChipAction[] = [];\n      chips.forEach(chip => chip._getActions().forEach(action => actions.push(action)));\n      this._chipActions.reset(actions);\n      this._chipActions.notifyOnChanges();\n    });\n\n    this._keyManager = new FocusKeyManager(this._chipActions)\n      .withVerticalOrientation()\n      .withHorizontalOrientation(this._dir ? this._dir.value : 'ltr')\n      .withHomeAndEnd()\n      .skipPredicate(action => this._skipPredicate(action));\n\n    // Keep the manager active index in sync so that navigation picks\n    // up from the current chip if the user clicks into the list directly.\n    this.chipFocusChanges.pipe(takeUntil(this._destroyed)).subscribe(({chip}) => {\n      const action = chip._getSourceAction(document.activeElement as Element);\n\n      if (action) {\n        this._keyManager.updateActiveItem(action);\n      }\n    });\n\n    this._dir?.change\n      .pipe(takeUntil(this._destroyed))\n      .subscribe(direction => this._keyManager.withHorizontalOrientation(direction));\n  }\n\n  /**\n   * Determines if key manager should avoid putting a given chip action in the tab index. Skip\n   * non-interactive and disabled actions since the user can't do anything with them.\n   */\n  protected _skipPredicate(action: MatChipContent): boolean {\n    // `mat-chip-set` does not permit focusing disabled chips.\n    return action.disabled;\n  }\n\n  /** Listens to changes in the chip set and syncs up the state of the individual chips. */\n  private _trackChipSetChanges() {\n    this._chips.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n      if (this.disabled) {\n        // Since this happens after the content has been\n        // checked, we need to defer it to the next tick.\n        Promise.resolve().then(() => this._syncChipsState());\n      }\n\n      this._redirectDestroyedChipFocus();\n    });\n  }\n\n  /** Starts tracking the destroyed chips in order to capture the focused one. */\n  private _trackDestroyedFocusedChip() {\n    this.chipDestroyedChanges.pipe(takeUntil(this._destroyed)).subscribe((event: MatChipEvent) => {\n      // If the focused chip is destroyed, save its index so that we can move focus to the next\n      // chip. We only save the index here, rather than move the focus immediately, because we want\n      // to wait until the chip is removed from the chip list before focusing the next one. This\n      // allows us to keep focus on the same index if the chip gets swapped out.\n      const chipArray = this._chips.toArray();\n      const chipIndex = chipArray.indexOf(event.chip);\n      const hasFocus = event.chip._hasFocus();\n      const wasLastFocused =\n        event.chip._hadFocusOnRemove &&\n        this._keyManager.activeItem &&\n        event.chip._getActions().includes(this._keyManager.activeItem);\n\n      // Note that depending on the timing, the chip might've already lost focus by the\n      // time we check this. We need the `wasLastFocused` as a fallback to detect such cases.\n      // In `wasLastFocused` we also need to ensure that the chip actually had focus when it was\n      // deleted so that we don't steal away the user's focus after they've moved on from the chip.\n      const shouldMoveFocus = hasFocus || wasLastFocused;\n\n      if (this._isValidIndex(chipIndex) && shouldMoveFocus) {\n        this._lastDestroyedFocusedChipIndex = chipIndex;\n      }\n    });\n  }\n\n  /**\n   * Finds the next appropriate chip to move focus to,\n   * if the currently-focused chip is destroyed.\n   */\n  private _redirectDestroyedChipFocus() {\n    if (this._lastDestroyedFocusedChipIndex == null) {\n      return;\n    }\n\n    if (this._chips.length) {\n      const newIndex = Math.min(this._lastDestroyedFocusedChipIndex, this._chips.length - 1);\n      const chipToFocus = this._chips.toArray()[newIndex];\n\n      if (chipToFocus.disabled) {\n        // If we're down to one disabled chip, move focus back to the set.\n        if (this._chips.length === 1) {\n          this.focus();\n        } else {\n          this._keyManager.setPreviousItemActive();\n        }\n      } else {\n        chipToFocus.focus();\n      }\n    } else {\n      this.focus();\n    }\n\n    this._lastDestroyedFocusedChipIndex = null;\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  forwardRef,\n  inject,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {Observable} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\nimport {TAB} from '@angular/cdk/keycodes';\nimport {MatChip, MatChipEvent} from './chip';\nimport {MatChipOption, MatChipSelectionChange} from './chip-option';\nimport {MatChipSet} from './chip-set';\nimport {MatChipAction} from './chip-action';\nimport {MAT_CHIPS_DEFAULT_OPTIONS} from './tokens';\n\n/** Change event object that is emitted when the chip listbox value has changed. */\nexport class MatChipListboxChange {\n  constructor(\n    /** Chip listbox that emitted the event. */\n    public source: MatChipListbox,\n    /** Value of the chip listbox when the event was emitted. */\n    public value: any,\n  ) {}\n}\n\n/**\n * Provider Expression that allows mat-chip-listbox to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => MatChipListbox),\n  multi: true,\n};\n\n/**\n * An extension of the MatChipSet component that supports chip selection.\n * Used with MatChipOption chips.\n */\n@Component({\n  selector: 'mat-chip-listbox',\n  template: `\n    <div class=\"mdc-evolution-chip-set__chips\" role=\"presentation\">\n      <ng-content></ng-content>\n    </div>\n  `,\n  styleUrl: 'chip-set.css',\n  host: {\n    'class': 'mdc-evolution-chip-set mat-mdc-chip-listbox',\n    '[attr.role]': 'role',\n    '[tabIndex]': '(disabled || empty) ? -1 : tabIndex',\n    '[attr.aria-required]': 'role ? required : null',\n    '[attr.aria-disabled]': 'disabled.toString()',\n    '[attr.aria-multiselectable]': 'multiple',\n    '[attr.aria-orientation]': 'ariaOrientation',\n    '[class.mat-mdc-chip-list-disabled]': 'disabled',\n    '[class.mat-mdc-chip-list-required]': 'required',\n    '(focus)': 'focus()',\n    '(blur)': '_blur()',\n    '(keydown)': '_keydown($event)',\n  },\n  providers: [MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatChipListbox\n  extends MatChipSet\n  implements AfterContentInit, OnDestroy, ControlValueAccessor\n{\n  /**\n   * Function when touched. Set as part of ControlValueAccessor implementation.\n   * @docs-private\n   */\n  _onTouched = () => {};\n\n  /**\n   * Function when changed. Set as part of ControlValueAccessor implementation.\n   * @docs-private\n   */\n  _onChange: (value: any) => void = () => {};\n\n  // TODO: MDC uses `grid` here\n  protected override _defaultRole = 'listbox';\n\n  /** Default chip options. */\n  private _defaultOptions = inject(MAT_CHIPS_DEFAULT_OPTIONS, {optional: true});\n\n  /** Whether the user should be allowed to select multiple chips. */\n  @Input({transform: booleanAttribute})\n  get multiple(): boolean {\n    return this._multiple;\n  }\n  set multiple(value: boolean) {\n    this._multiple = value;\n    this._syncListboxProperties();\n  }\n  private _multiple: boolean = false;\n\n  /** The array of selected chips inside the chip listbox. */\n  get selected(): MatChipOption[] | MatChipOption {\n    const selectedChips = this._chips.toArray().filter(chip => chip.selected);\n    return this.multiple ? selectedChips : selectedChips[0];\n  }\n\n  /** Orientation of the chip list. */\n  @Input('aria-orientation') ariaOrientation: 'horizontal' | 'vertical' = 'horizontal';\n\n  /**\n   * Whether or not this chip listbox is selectable.\n   *\n   * When a chip listbox is not selectable, the selected states for all\n   * the chips inside the chip listbox are always ignored.\n   */\n  @Input({transform: booleanAttribute})\n  get selectable(): boolean {\n    return this._selectable;\n  }\n  set selectable(value: boolean) {\n    this._selectable = value;\n    this._syncListboxProperties();\n  }\n  protected _selectable: boolean = true;\n\n  /**\n   * A function to compare the option values with the selected values. The first argument\n   * is a value from an option. The second is a value from the selection. A boolean\n   * should be returned.\n   */\n  @Input() compareWith: (o1: any, o2: any) => boolean = (o1: any, o2: any) => o1 === o2;\n\n  /** Whether this chip listbox is required. */\n  @Input({transform: booleanAttribute})\n  required: boolean = false;\n\n  /** Whether checkmark indicator for single-selection options is hidden. */\n  @Input({transform: booleanAttribute})\n  get hideSingleSelectionIndicator(): boolean {\n    return this._hideSingleSelectionIndicator;\n  }\n  set hideSingleSelectionIndicator(value: boolean) {\n    this._hideSingleSelectionIndicator = value;\n    this._syncListboxProperties();\n  }\n  private _hideSingleSelectionIndicator: boolean =\n    this._defaultOptions?.hideSingleSelectionIndicator ?? false;\n\n  /** Combined stream of all of the child chips' selection change events. */\n  get chipSelectionChanges(): Observable<MatChipSelectionChange> {\n    return this._getChipStream<MatChipSelectionChange, MatChipOption>(chip => chip.selectionChange);\n  }\n\n  /** Combined stream of all of the child chips' blur events. */\n  get chipBlurChanges(): Observable<MatChipEvent> {\n    return this._getChipStream(chip => chip._onBlur);\n  }\n\n  /** The value of the listbox, which is the combined value of the selected chips. */\n  @Input()\n  get value(): any {\n    return this._value;\n  }\n  set value(value: any) {\n    if (this._chips && this._chips.length) {\n      this._setSelectionByValue(value, false);\n    }\n    this._value = value;\n  }\n  protected _value: any;\n\n  /** Event emitted when the selected chip listbox value has been changed by the user. */\n  @Output() readonly change: EventEmitter<MatChipListboxChange> =\n    new EventEmitter<MatChipListboxChange>();\n\n  @ContentChildren(MatChipOption, {\n    // We need to use `descendants: true`, because Ivy will no longer match\n    // indirect descendants if it's left as false.\n    descendants: true,\n  })\n  // We need an initializer here to avoid a TS error. The value will be set in `ngAfterViewInit`.\n  override _chips: QueryList<MatChipOption> = undefined!;\n\n  ngAfterContentInit() {\n    this._chips.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n      if (this.value !== undefined) {\n        Promise.resolve().then(() => {\n          this._setSelectionByValue(this.value, false);\n        });\n      }\n      // Update listbox selectable/multiple properties on chips\n      this._syncListboxProperties();\n    });\n\n    this.chipBlurChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this._blur());\n    this.chipSelectionChanges.pipe(takeUntil(this._destroyed)).subscribe(event => {\n      if (!this.multiple) {\n        this._chips.forEach(chip => {\n          if (chip !== event.source) {\n            chip._setSelectedState(false, false, false);\n          }\n        });\n      }\n\n      if (event.isUserInput) {\n        this._propagateChanges();\n      }\n    });\n  }\n\n  /**\n   * Focuses the first selected chip in this chip listbox, or the first non-disabled chip when there\n   * are no selected chips.\n   */\n  override focus(): void {\n    if (this.disabled) {\n      return;\n    }\n\n    const firstSelectedChip = this._getFirstSelectedChip();\n\n    if (firstSelectedChip && !firstSelectedChip.disabled) {\n      firstSelectedChip.focus();\n    } else if (this._chips.length > 0) {\n      this._keyManager.setFirstItemActive();\n    } else {\n      this._elementRef.nativeElement.focus();\n    }\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @docs-private\n   */\n  writeValue(value: any): void {\n    if (value != null) {\n      this.value = value;\n    } else {\n      this.value = undefined;\n    }\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @docs-private\n   */\n  registerOnChange(fn: (value: any) => void): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @docs-private\n   */\n  registerOnTouched(fn: () => void): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @docs-private\n   */\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  /** Selects all chips with value. */\n  _setSelectionByValue(value: any, isUserInput: boolean = true) {\n    this._clearSelection();\n\n    if (Array.isArray(value)) {\n      value.forEach(currentValue => this._selectValue(currentValue, isUserInput));\n    } else {\n      this._selectValue(value, isUserInput);\n    }\n  }\n\n  /** When blurred, marks the field as touched when focus moved outside the chip listbox. */\n  _blur() {\n    if (!this.disabled) {\n      // Wait to see if focus moves to an individual chip.\n      setTimeout(() => {\n        if (!this.focused) {\n          this._markAsTouched();\n        }\n      });\n    }\n  }\n\n  _keydown(event: KeyboardEvent) {\n    if (event.keyCode === TAB) {\n      super._allowFocusEscape();\n    }\n  }\n\n  /** Marks the field as touched */\n  private _markAsTouched() {\n    this._onTouched();\n    this._changeDetectorRef.markForCheck();\n  }\n\n  /** Emits change event to set the model value. */\n  private _propagateChanges(): void {\n    let valueToEmit: any = null;\n\n    if (Array.isArray(this.selected)) {\n      valueToEmit = this.selected.map(chip => chip.value);\n    } else {\n      valueToEmit = this.selected ? this.selected.value : undefined;\n    }\n    this._value = valueToEmit;\n    this.change.emit(new MatChipListboxChange(this, valueToEmit));\n    this._onChange(valueToEmit);\n    this._changeDetectorRef.markForCheck();\n  }\n\n  /**\n   * Deselects every chip in the listbox.\n   * @param skip Chip that should not be deselected.\n   */\n  private _clearSelection(skip?: MatChip): void {\n    this._chips.forEach(chip => {\n      if (chip !== skip) {\n        chip.deselect();\n      }\n    });\n  }\n\n  /**\n   * Finds and selects the chip based on its value.\n   * @returns Chip that has the corresponding value.\n   */\n  private _selectValue(value: any, isUserInput: boolean): MatChip | undefined {\n    const correspondingChip = this._chips.find(chip => {\n      return chip.value != null && this.compareWith(chip.value, value);\n    });\n\n    if (correspondingChip) {\n      isUserInput ? correspondingChip.selectViaInteraction() : correspondingChip.select();\n    }\n\n    return correspondingChip;\n  }\n\n  /** Syncs the chip-listbox selection state with the individual chips. */\n  private _syncListboxProperties() {\n    if (this._chips) {\n      // Defer setting the value in order to avoid the \"Expression\n      // has changed after it was checked\" errors from Angular.\n      Promise.resolve().then(() => {\n        this._chips.forEach(chip => {\n          chip._chipListMultiple = this.multiple;\n          chip.chipListSelectable = this._selectable;\n          chip._chipListHideSingleSelectionIndicator = this.hideSingleSelectionIndicator;\n          chip._changeDetectorRef.markForCheck();\n        });\n      });\n    }\n  }\n\n  /** Returns the first selected chip in this listbox, or undefined if no chips are selected. */\n  private _getFirstSelectedChip(): MatChipOption | undefined {\n    if (Array.isArray(this.selected)) {\n      return this.selected.length ? this.selected[0] : undefined;\n    } else {\n      return this.selected;\n    }\n  }\n\n  /**\n   * Determines if key manager should avoid putting a given chip action in the tab index. Skip\n   * non-interactive actions since the user can't do anything with them.\n   */\n  protected override _skipPredicate(action: MatChipAction): boolean {\n    // Override the skip predicate in the base class to avoid skipping disabled chips. Allow\n    // disabled chip options to receive focus to align with WAI ARIA recommendation. Normally WAI\n    // ARIA's instructions are to exclude disabled items from the tab order, but it makes a few\n    // 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    return false;\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {DOWN_ARROW, hasModifierKey, TAB, UP_ARROW} from '@angular/cdk/keycodes';\nimport {\n  AfterContentInit,\n  AfterViewInit,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  DoCheck,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  ViewEncapsulation,\n  inject,\n} from '@angular/core';\nimport {\n  ControlValueAccessor,\n  FormGroupDirective,\n  NgControl,\n  NgForm,\n  Validators,\n} from '@angular/forms';\nimport {_ErrorStateTracker, ErrorStateMatcher} from '../core';\nimport {MatFormFieldControl} from '../form-field';\nimport {merge, Observable, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {MatChipEvent} from './chip';\nimport {MatChipRow} from './chip-row';\nimport {MatChipSet} from './chip-set';\nimport {MatChipTextControl} from './chip-text-control';\n\n/** Change event object that is emitted when the chip grid value has changed. */\nexport class MatChipGridChange {\n  constructor(\n    /** Chip grid that emitted the event. */\n    public source: MatChipGrid,\n    /** Value of the chip grid when the event was emitted. */\n    public value: any,\n  ) {}\n}\n\n/**\n * An extension of the MatChipSet component used with MatChipRow chips and\n * the matChipInputFor directive.\n */\n@Component({\n  selector: 'mat-chip-grid',\n  template: `\n    <div class=\"mdc-evolution-chip-set__chips\" role=\"presentation\">\n      <ng-content></ng-content>\n    </div>\n  `,\n  styleUrl: 'chip-set.css',\n  host: {\n    'class': 'mat-mdc-chip-set mat-mdc-chip-grid mdc-evolution-chip-set',\n    '[attr.role]': 'role',\n    '[attr.tabindex]': '(disabled || (_chips && _chips.length === 0)) ? -1 : tabIndex',\n    '[attr.aria-disabled]': 'disabled.toString()',\n    '[attr.aria-invalid]': 'errorState',\n    '[class.mat-mdc-chip-list-disabled]': 'disabled',\n    '[class.mat-mdc-chip-list-invalid]': 'errorState',\n    '[class.mat-mdc-chip-list-required]': 'required',\n    '(focus)': 'focus()',\n    '(blur)': '_blur()',\n  },\n  providers: [{provide: MatFormFieldControl, useExisting: MatChipGrid}],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatChipGrid\n  extends MatChipSet\n  implements\n    AfterContentInit,\n    AfterViewInit,\n    ControlValueAccessor,\n    DoCheck,\n    MatFormFieldControl<any>,\n    OnDestroy\n{\n  ngControl = inject(NgControl, {optional: true, self: true})!;\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  readonly controlType: string = 'mat-chip-grid';\n\n  /** The chip input to add more chips */\n  protected _chipInput?: MatChipTextControl;\n\n  protected override _defaultRole = 'grid';\n  private _errorStateTracker: _ErrorStateTracker;\n  private _uid = inject(_IdGenerator).getId('mat-chip-grid-');\n\n  /**\n   * List of element ids to propagate to the chipInput's aria-describedby attribute.\n   */\n  private _ariaDescribedbyIds: string[] = [];\n\n  /**\n   * Function when touched. Set as part of ControlValueAccessor implementation.\n   * @docs-private\n   */\n  _onTouched = () => {};\n\n  /**\n   * Function when changed. Set as part of ControlValueAccessor implementation.\n   * @docs-private\n   */\n  _onChange: (value: any) => void = () => {};\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  @Input({transform: booleanAttribute})\n  override get disabled(): boolean {\n    return this.ngControl ? !!this.ngControl.disabled : this._disabled;\n  }\n  override set disabled(value: boolean) {\n    this._disabled = value;\n    this._syncChipsState();\n    this.stateChanges.next();\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  get id(): string {\n    return this._chipInput ? this._chipInput.id : this._uid;\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  override get empty(): boolean {\n    return (\n      (!this._chipInput || this._chipInput.empty) && (!this._chips || this._chips.length === 0)\n    );\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  @Input()\n  get placeholder(): string {\n    return this._chipInput ? this._chipInput.placeholder : this._placeholder;\n  }\n  set placeholder(value: string) {\n    this._placeholder = value;\n    this.stateChanges.next();\n  }\n  protected _placeholder: string;\n\n  /** Whether any chips or the matChipInput inside of this chip-grid has focus. */\n  override get focused(): boolean {\n    return this._chipInput?.focused || this._hasFocusedChip();\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  @Input({transform: booleanAttribute})\n  get required(): boolean {\n    return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n  }\n  set required(value: boolean) {\n    this._required = value;\n    this.stateChanges.next();\n  }\n  protected _required: boolean | undefined;\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  get shouldLabelFloat(): boolean {\n    return !this.empty || this.focused;\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  @Input()\n  get value(): any {\n    return this._value;\n  }\n  set value(value: any) {\n    this._value = value;\n  }\n  protected _value: any[] = [];\n\n  /** An object used to control when error messages are shown. */\n  @Input()\n  get errorStateMatcher() {\n    return this._errorStateTracker.matcher;\n  }\n  set errorStateMatcher(value: ErrorStateMatcher) {\n    this._errorStateTracker.matcher = value;\n  }\n\n  /** Combined stream of all of the child chips' blur events. */\n  get chipBlurChanges(): Observable<MatChipEvent> {\n    return this._getChipStream(chip => chip._onBlur);\n  }\n\n  /** Emits when the chip grid value has been changed by the user. */\n  @Output() readonly change: EventEmitter<MatChipGridChange> =\n    new EventEmitter<MatChipGridChange>();\n\n  /**\n   * Emits whenever the raw value of the chip-grid changes. This is here primarily\n   * to facilitate the two-way binding for the `value` input.\n   * @docs-private\n   */\n  @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n  @ContentChildren(MatChipRow, {\n    // We need to use `descendants: true`, because Ivy will no longer match\n    // indirect descendants if it's left as false.\n    descendants: true,\n  })\n  // We need an initializer here to avoid a TS error. The value will be set in `ngAfterViewInit`.\n  override _chips: QueryList<MatChipRow> = undefined!;\n\n  /**\n   * Emits whenever the component state changes and should cause the parent\n   * form-field to update. Implemented as part of `MatFormFieldControl`.\n   * @docs-private\n   */\n  readonly stateChanges = new Subject<void>();\n\n  /** Whether the chip grid is in an error state. */\n  get errorState() {\n    return this._errorStateTracker.errorState;\n  }\n  set errorState(value: boolean) {\n    this._errorStateTracker.errorState = value;\n  }\n\n  constructor(...args: unknown[]);\n\n  constructor() {\n    super();\n\n    const parentForm = inject(NgForm, {optional: true});\n    const parentFormGroup = inject(FormGroupDirective, {optional: true});\n    const defaultErrorStateMatcher = inject(ErrorStateMatcher);\n\n    if (this.ngControl) {\n      this.ngControl.valueAccessor = this;\n    }\n\n    this._errorStateTracker = new _ErrorStateTracker(\n      defaultErrorStateMatcher,\n      this.ngControl,\n      parentFormGroup,\n      parentForm,\n      this.stateChanges,\n    );\n  }\n\n  ngAfterContentInit() {\n    this.chipBlurChanges.pipe(takeUntil(this._destroyed)).subscribe(() => {\n      this._blur();\n      this.stateChanges.next();\n    });\n\n    merge(this.chipFocusChanges, this._chips.changes)\n      .pipe(takeUntil(this._destroyed))\n      .subscribe(() => this.stateChanges.next());\n  }\n\n  ngDoCheck() {\n    if (this.ngControl) {\n      // We need to re-evaluate this on every change detection cycle, because there are some\n      // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n      // that whatever logic is in here has to be super lean or we risk destroying the performance.\n      this.updateErrorState();\n    }\n  }\n\n  override ngOnDestroy() {\n    super.ngOnDestroy();\n    this.stateChanges.complete();\n  }\n\n  /** Associates an HTML input element with this chip grid. */\n  registerInput(inputElement: MatChipTextControl): void {\n    this._chipInput = inputElement;\n    this._chipInput.setDescribedByIds(this._ariaDescribedbyIds);\n\n    // If ids were already attached to host element, can now remove in favor of chipInput\n    this._elementRef.nativeElement.removeAttribute('aria-describedby');\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  onContainerClick(event: MouseEvent) {\n    if (!this.disabled && !this._originatesFromChip(event)) {\n      this.focus();\n    }\n  }\n\n  /**\n   * Focuses the first chip in this chip grid, or the associated input when there\n   * are no eligible chips.\n   */\n  override focus(): void {\n    if (this.disabled || this._chipInput?.focused) {\n      return;\n    }\n\n    if (!this._chips.length || this._chips.first.disabled) {\n      if (!this._chipInput) {\n        return;\n      }\n\n      // Delay until the next tick, because this can cause a \"changed after checked\"\n      // error if the input does something on focus (e.g. opens an autocomplete).\n      Promise.resolve().then(() => this._chipInput!.focus());\n    } else {\n      const activeItem = this._keyManager.activeItem;\n\n      if (activeItem) {\n        activeItem.focus();\n      } else {\n        this._keyManager.setFirstItemActive();\n      }\n    }\n\n    this.stateChanges.next();\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  get describedByIds(): string[] {\n    if (this._chipInput) {\n      return this._chipInput.describedByIds || [];\n    }\n    const existing = this._elementRef.nativeElement.getAttribute('aria-describedby');\n    return existing ? existing.split(' ') : [];\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  setDescribedByIds(ids: string[]) {\n    // We must keep this up to date to handle the case where ids are set\n    // before the chip input is registered.\n    this._ariaDescribedbyIds = ids;\n\n    if (this._chipInput) {\n      this._chipInput.setDescribedByIds(ids);\n    } else if (ids.length) {\n      this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n    } else {\n      this._elementRef.nativeElement.removeAttribute('aria-describedby');\n    }\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @docs-private\n   */\n  writeValue(value: any): void {\n    // The user is responsible for creating the child chips, so we just store the value.\n    this._value = value;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @docs-private\n   */\n  registerOnChange(fn: (value: any) => void): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @docs-private\n   */\n  registerOnTouched(fn: () => void): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @docs-private\n   */\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this.stateChanges.next();\n  }\n\n  /** Refreshes the error state of the chip grid. */\n  updateErrorState() {\n    this._errorStateTracker.updateErrorState();\n  }\n\n  /** When blurred, mark the field as touched when focus moved outside the chip grid. */\n  _blur() {\n    if (!this.disabled) {\n      // Check whether the focus moved to chip input.\n      // If the focus is not moved to chip input, mark the field as touched. If the focus moved\n      // to chip input, do nothing.\n      // Timeout is needed to wait for the focus() event trigger on chip input.\n      setTimeout(() => {\n        if (!this.focused) {\n          this._propagateChanges();\n          this._markAsTouched();\n        }\n      });\n    }\n  }\n\n  /**\n   * Removes the `tabindex` from the chip grid and resets it back afterwards, allowing the\n   * user to tab out of it. This prevents the grid from capturing focus and redirecting\n   * it back to the first chip, creating a focus trap, if it user tries to tab away.\n   */\n  protected override _allowFocusEscape() {\n    if (!this._chipInput?.focused) {\n      super._allowFocusEscape();\n    }\n  }\n\n  /** Handles custom keyboard events. */\n  override _handleKeydown(event: KeyboardEvent) {\n    const keyCode = event.keyCode;\n    const activeItem = this._keyManager.activeItem;\n\n    if (keyCode === TAB) {\n      if (\n        this._chipInput?.focused &&\n        hasModifierKey(event, 'shiftKey') &&\n        this._chips.length &&\n        !this._chips.last.disabled\n      ) {\n        event.preventDefault();\n\n        if (activeItem) {\n          this._keyManager.setActiveItem(activeItem);\n        } else {\n          this._focusLastChip();\n        }\n      } else {\n        // Use the super method here since it doesn't check for the input\n        // focused state. This allows focus to escape if there's only one\n        // disabled chip left in the list.\n        super._allowFocusEscape();\n      }\n    } else if (!this._chipInput?.focused) {\n      // The up and down arrows are supposed to navigate between the individual rows in the grid.\n      // We do this by filtering the actions down to the ones that have the same `_isPrimary`\n      // flag as the active action and moving focus between them ourseles instead of delegating\n      // to the key manager. For more information, see #29359 and:\n      // https://www.w3.org/WAI/ARIA/apg/patterns/grid/examples/layout-grids/#ex2_label\n      if ((keyCode === UP_ARROW || keyCode === DOWN_ARROW) && activeItem) {\n        const eligibleActions = this._chipActions.filter(\n          action => action._isPrimary === activeItem._isPrimary && !this._skipPredicate(action),\n        );\n        const currentIndex = eligibleActions.indexOf(activeItem);\n        const delta = event.keyCode === UP_ARROW ? -1 : 1;\n\n        event.preventDefault();\n        if (currentIndex > -1 && this._isValidIndex(currentIndex + delta)) {\n          this._keyManager.setActiveItem(eligibleActions[currentIndex + delta]);\n        }\n      } else {\n        super._handleKeydown(event);\n      }\n    }\n\n    this.stateChanges.next();\n  }\n\n  _focusLastChip() {\n    if (this._chips.length) {\n      this._chips.last.focus();\n    }\n  }\n\n  /** Emits change event to set the model value. */\n  private _propagateChanges(): void {\n    const valueToEmit = this._chips.length ? this._chips.toArray().map(chip => chip.value) : [];\n    this._value = valueToEmit;\n    this.change.emit(new MatChipGridChange(this, valueToEmit));\n    this.valueChange.emit(valueToEmit);\n    this._onChange(valueToEmit);\n    this._changeDetectorRef.markForCheck();\n  }\n\n  /** Mark the field as touched */\n  private _markAsTouched() {\n    this._onTouched();\n    this._changeDetectorRef.markForCheck();\n    this.stateChanges.next();\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {BACKSPACE, hasModifierKey, ModifierKey} from '@angular/cdk/keycodes';\nimport {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  booleanAttribute,\n  inject,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {MatFormField, MAT_FORM_FIELD} from '../form-field';\nimport {MatChipsDefaultOptions, MAT_CHIPS_DEFAULT_OPTIONS, SeparatorKey} from './tokens';\nimport {MatChipGrid} from './chip-grid';\nimport {MatChipTextControl} from './chip-text-control';\n\n/** Represents an input event on a `matChipInput`. */\nexport interface MatChipInputEvent {\n  /**\n   * The native `<input>` element that the event is being fired for.\n   * @deprecated Use `MatChipInputEvent#chipInput.inputElement` instead.\n   * @breaking-change 13.0.0 This property will be removed.\n   */\n  input: HTMLInputElement;\n\n  /** The value of the input. */\n  value: string;\n\n  /** Reference to the chip input that emitted the event. */\n  chipInput: MatChipInput;\n}\n\n/**\n * Directive that adds chip-specific behaviors to an input element inside `<mat-form-field>`.\n * May be placed inside or outside of a `<mat-chip-grid>`.\n */\n@Directive({\n  selector: 'input[matChipInputFor]',\n  exportAs: 'matChipInput, matChipInputFor',\n  host: {\n    // TODO: eventually we should remove `mat-input-element` from here since it comes from the\n    // non-MDC version of the input. It's currently being kept for backwards compatibility, because\n    // the MDC chips were landed initially with it.\n    'class': 'mat-mdc-chip-input mat-mdc-input-element mdc-text-field__input mat-input-element',\n    '(keydown)': '_keydown($event)',\n    '(blur)': '_blur()',\n    '(focus)': '_focus()',\n    '(input)': '_onInput()',\n    '[id]': 'id',\n    '[attr.disabled]': 'disabled && !disabledInteractive ? \"\" : null',\n    '[attr.placeholder]': 'placeholder || null',\n    '[attr.aria-invalid]': '_chipGrid && _chipGrid.ngControl ? _chipGrid.ngControl.invalid : null',\n    '[attr.aria-required]': '_chipGrid && _chipGrid.required || null',\n    '[attr.aria-disabled]': 'disabled && disabledInteractive ? \"true\" : null',\n    '[attr.readonly]': '_getReadonlyAttribute()',\n    '[attr.required]': '_chipGrid && _chipGrid.required || null',\n  },\n})\nexport class MatChipInput implements MatChipTextControl, OnChanges, OnDestroy {\n  protected _elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n  /** Whether the control is focused. */\n  focused: boolean = false;\n\n  /** Register input for chip list */\n  @Input('matChipInputFor')\n  get chipGrid(): MatChipGrid {\n    return this._chipGrid;\n  }\n  set chipGrid(value: MatChipGrid) {\n    if (value) {\n      this._chipGrid = value;\n      this._chipGrid.registerInput(this);\n    }\n  }\n  protected _chipGrid: MatChipGrid;\n\n  /**\n   * Whether or not the chipEnd event will be emitted when the input is blurred.\n   */\n  @Input({alias: 'matChipInputAddOnBlur', transform: booleanAttribute})\n  addOnBlur: boolean = false;\n\n  /**\n   * The list of key codes that will trigger a chipEnd event.\n   *\n   * Defaults to `[ENTER]`.\n   */\n  @Input('matChipInputSeparatorKeyCodes')\n  separatorKeyCodes: readonly (number | SeparatorKey)[] | ReadonlySet<number | SeparatorKey>;\n\n  /** Emitted when a chip is to be added. */\n  @Output('matChipInputTokenEnd')\n  readonly chipEnd: EventEmitter<MatChipInputEvent> = new EventEmitter<MatChipInputEvent>();\n\n  /** The input's placeholder text. */\n  @Input() placeholder: string = '';\n\n  /** Unique id for the input. */\n  @Input() id: string = inject(_IdGenerator).getId('mat-mdc-chip-list-input-');\n\n  /** Whether the input is disabled. */\n  @Input({transform: booleanAttribute})\n  get disabled(): boolean {\n    return this._disabled || (this._chipGrid && this._chipGrid.disabled);\n  }\n  set disabled(value: boolean) {\n    this._disabled = value;\n  }\n  private _disabled: boolean = false;\n\n  /** Whether the input is readonly. */\n  @Input({transform: booleanAttribute})\n  readonly: boolean = false;\n\n  /** Whether the input should remain interactive when it is disabled. */\n  @Input({alias: 'matChipInputDisabledInteractive', transform: booleanAttribute})\n  disabledInteractive: boolean;\n\n  /** Whether the input is empty. */\n  get empty(): boolean {\n    return !this.inputElement.value;\n  }\n\n  /** The native input element to which this directive is attached. */\n  readonly inputElement!: HTMLInputElement;\n\n  constructor(...args: unknown[]);\n\n  constructor() {\n    const defaultOptions = inject<MatChipsDefaultOptions>(MAT_CHIPS_DEFAULT_OPTIONS);\n    const formField = inject<MatFormField>(MAT_FORM_FIELD, {optional: true});\n\n    this.inputElement = this._elementRef.nativeElement as HTMLInputElement;\n    this.separatorKeyCodes = defaultOptions.separatorKeyCodes;\n    this.disabledInteractive = defaultOptions.inputDisabledInteractive ?? false;\n\n    if (formField) {\n      this.inputElement.classList.add('mat-mdc-form-field-input-control');\n    }\n  }\n\n  ngOnChanges() {\n    this._chipGrid.stateChanges.next();\n  }\n\n  ngOnDestroy(): void {\n    this.chipEnd.complete();\n  }\n\n  /** Utility method to make host definition/tests more clear. */\n  _keydown(event: KeyboardEvent) {\n    if (this.empty && event.keyCode === BACKSPACE) {\n      // Ignore events where the user is holding down backspace\n      // so that we don't accidentally remove too many chips.\n      if (!event.repeat) {\n        this._chipGrid._focusLastChip();\n      }\n      event.preventDefault();\n    } else {\n      this._emitChipEnd(event);\n    }\n  }\n\n  /** Checks to see if the blur should emit the (chipEnd) event. */\n  _blur() {\n    if (this.addOnBlur) {\n      this._emitChipEnd();\n    }\n    this.focused = false;\n    // Blur the chip list if it is not focused\n    if (!this._chipGrid.focused) {\n      this._chipGrid._blur();\n    }\n    this._chipGrid.stateChanges.next();\n  }\n\n  _focus() {\n    this.focused = true;\n    this._chipGrid.stateChanges.next();\n  }\n\n  /** Checks to see if the (chipEnd) event needs to be emitted. */\n  _emitChipEnd(event?: KeyboardEvent) {\n    if (!event || (this._isSeparatorKey(event) && !event.repeat)) {\n      this.chipEnd.emit({\n        input: this.inputElement,\n        value: this.inputElement.value,\n        chipInput: this,\n      });\n\n      event?.preventDefault();\n    }\n  }\n\n  _onInput() {\n    // Let chip list know whenever the value changes.\n    this._chipGrid.stateChanges.next();\n  }\n\n  /** Focuses the input. */\n  focus(): void {\n    this.inputElement.focus();\n  }\n\n  /** Clears the input */\n  clear(): void {\n    this.inputElement.value = '';\n  }\n\n  /**\n   * Implemented as part of MatChipTextControl.\n   * @docs-private\n   */\n  get describedByIds(): string[] {\n    const element = this._elementRef.nativeElement;\n    const existingDescribedBy = element.getAttribute('aria-describedby');\n\n    return existingDescribedBy?.split(' ') || [];\n  }\n\n  setDescribedByIds(ids: string[]): void {\n    const element = this._elementRef.nativeElement;\n\n    // Set the value directly in the DOM since this binding\n    // is prone to \"changed after checked\" errors.\n    if (ids.length) {\n      element.setAttribute('aria-describedby', ids.join(' '));\n    } else {\n      element.removeAttribute('aria-describedby');\n    }\n  }\n\n  /** Checks whether a keycode is one of the configured separators. */\n  private _isSeparatorKey(event: KeyboardEvent): boolean {\n    if (!this.separatorKeyCodes) {\n      return false;\n    }\n\n    for (const key of this.separatorKeyCodes) {\n      let keyCode: number;\n      let modifiers: readonly ModifierKey[] | null;\n\n      if (typeof key === 'number') {\n        keyCode = key;\n        modifiers = null;\n      } else {\n        keyCode = key.keyCode;\n        modifiers = key.modifiers;\n      }\n\n      const modifiersMatch = !modifiers?.length\n        ? !hasModifierKey(event)\n        : hasModifierKey(event, ...modifiers);\n\n      if (keyCode === event.keyCode && modifiersMatch) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  /** Gets the value to set on the `readonly` attribute. */\n  protected _getReadonlyAttribute(): string | null {\n    return this.readonly || (this.disabled && this.disabledInteractive) ? 'true' : null;\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ENTER} from '@angular/cdk/keycodes';\nimport {NgModule} from '@angular/core';\nimport {ErrorStateMatcher, MatRippleModule} from '../core';\nimport {MatChip} from './chip';\nimport {MAT_CHIPS_DEFAULT_OPTIONS, MatChipsDefaultOptions} from './tokens';\nimport {MatChipEditInput} from './chip-edit-input';\nimport {MatChipGrid} from './chip-grid';\nimport {MatChipAvatar, MatChipEdit, MatChipRemove, MatChipTrailingIcon} from './chip-icons';\nimport {MatChipInput} from './chip-input';\nimport {MatChipListbox} from './chip-listbox';\nimport {MatChipRow} from './chip-row';\nimport {MatChipOption} from './chip-option';\nimport {MatChipSet} from './chip-set';\nimport {MatChipAction} from './chip-action';\nimport {BidiModule} from '@angular/cdk/bidi';\n\nconst CHIP_DECLARATIONS = [\n  MatChip,\n  MatChipAvatar,\n  MatChipEdit,\n  MatChipEditInput,\n  MatChipGrid,\n  MatChipInput,\n  MatChipListbox,\n  MatChipOption,\n  MatChipRemove,\n  MatChipRow,\n  MatChipSet,\n  MatChipTrailingIcon,\n];\n\n@NgModule({\n  imports: [MatRippleModule, MatChipAction, CHIP_DECLARATIONS],\n  exports: [BidiModule, CHIP_DECLARATIONS],\n  providers: [\n    ErrorStateMatcher,\n    {\n      provide: MAT_CHIPS_DEFAULT_OPTIONS,\n      useValue: {\n        separatorKeyCodes: [ENTER],\n      } as MatChipsDefaultOptions,\n    },\n  ],\n})\nexport class MatChipsModule {}\n"],"names":["MAT_CHIPS_DEFAULT_OPTIONS","InjectionToken","providedIn","factory","separatorKeyCodes","ENTER","MAT_CHIP_AVATAR","MAT_CHIP_TRAILING_ICON","MAT_CHIP_EDIT","MAT_CHIP_REMOVE","MAT_CHIP","MatChipContent","_elementRef","inject","ElementRef","_parentChip","_isPrimary","_isLeading","disabled","_disabled","value","tabIndex","_allowFocusWhenDisabled","_getDisabledAttribute","constructor","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","nativeElement","nodeName","setAttribute","focus","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","booleanAttribute","numberAttribute","host","properties","classAttribute","ngImport","decorators","args","Input","transform","MatChipAction","_getTabindex","toString","_handleClick","event","preventDefault","_handlePrimaryActionInteraction","_handleKeydown","keyCode","SPACE","_isEditing","listeners","usesInheritance","MatChipAvatar","attributes","providers","provide","useExisting","MatChipTrailingIcon","MatChipEdit","stopPropagation","_edit","MatChipRemove","remove","MatChip","_changeDetectorRef","ChangeDetectorRef","_tagName","HOST_TAG_NAME","_ngZone","NgZone","_focusMonitor","FocusMonitor","_globalRippleOptions","MAT_RIPPLE_GLOBAL_OPTIONS","optional","_document","DOCUMENT","_onFocus","Subject","_onBlur","_isBasicChip","role","_hasFocusInternal","_pendingFocus","_actionChanges","_animationsDisabled","_allLeadingIcons","_allTrailingIcons","_allEditIcons","_allRemoveIcons","_hasFocus","id","_IdGenerator","getId","ariaLabel","ariaDescription","_chipListDisabled","_hadFocusOnRemove","_textElement","_value","undefined","textContent","trim","color","removable","highlighted","disableRipple","removed","EventEmitter","destroyed","basicChipAttrName","leadingIcon","editIcon","trailingIcon","removeIcon","primaryAction","_rippleLoader","MatRippleLoader","_injector","Injector","styleLoader","_VisuallyHiddenLoader","_monitorFocus","configureRipple","className","_isRippleDisabled","ngOnInit","hasAttribute","toLowerCase","ngAfterViewInit","querySelector","ngAfterContentInit","merge","changes","subscribe","markForCheck","ngDoCheck","setDisabled","ngOnDestroy","stopMonitoring","destroyRipple","unsubscribe","emit","chip","complete","_hasInteractiveActions","_hasTrailingIcon","BACKSPACE","repeat","DELETE","_getSourceAction","_getActions","find","action","element","contains","result","push","length","monitor","origin","hasFocus","next","setTimeout","run","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","outputs","queries","propertyName","first","predicate","descendants","viewQueries","exportAs","template","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","imports","styles","ContentChildren","Output","ContentChild","ViewChild","MatChipSelectionChange","source","selected","isUserInput","MatChipOption","_defaultOptions","chipListSelectable","_chipListMultiple","_chipListHideSingleSelectionIndicator","hideSingleSelectionIndicator","selectable","_selectable","_selected","_setSelectedState","ariaSelected","selectionChange","select","deselect","selectViaInteraction","toggleSelected","_hasLeadingGraphic","isSelected","emitEvent","MatChipEditInput","initialize","initialValue","getNativeElement","setValue","_moveCursorToEndOfInput","getValue","range","createRange","selectNodeContents","collapse","sel","window","getSelection","removeAllRanges","addRange","MatChipRow","_editStartPending","editable","edited","defaultEditInput","contentEditInput","_alreadyFocused","pipe","takeUntil","_onEditFinish","runOutsideAngular","addEventListener","_hasLeadingActionIcon","_handleFocus","_startEditing","_handleDoubleclick","afterNextRender","_getEditInput","injector","activeElement","body","dependencies","kind","MatChipSet","_dir","Directionality","_lastDestroyedFocusedChipIndex","_keyManager","_destroyed","_defaultRole","chipFocusChanges","_getChipStream","chipDestroyedChanges","chipRemovedChanges","_syncChipsState","empty","_chips","_explicitRole","focused","_hasFocusedChip","_chipActions","QueryList","_setUpFocusManagement","_trackChipSetChanges","_trackDestroyedFocusedChip","destroy","some","forEach","_originatesFromChip","onKeydown","_isValidIndex","index","_allowFocusEscape","previous","mappingFunction","startWith","switchMap","map","currentElement","classList","parentElement","chips","actions","reset","notifyOnChanges","FocusKeyManager","withVerticalOrientation","withHorizontalOrientation","withHomeAndEnd","skipPredicate","_skipPredicate","document","updateActiveItem","change","direction","Promise","resolve","then","_redirectDestroyedChipFocus","chipArray","toArray","chipIndex","indexOf","wasLastFocused","activeItem","includes","shouldMoveFocus","newIndex","Math","min","chipToFocus","setPreviousItemActive","isInline","MatChipListboxChange","MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR","NG_VALUE_ACCESSOR","forwardRef","MatChipListbox","multi","_onTouched","_onChange","multiple","_multiple","_syncListboxProperties","selectedChips","filter","ariaOrientation","compareWith","o1","o2","required","_hideSingleSelectionIndicator","chipSelectionChanges","chipBlurChanges","_setSelectionByValue","_blur","_propagateChanges","firstSelectedChip","_getFirstSelectedChip","setFirstItemActive","writeValue","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","_clearSelection","Array","isArray","currentValue","_selectValue","_markAsTouched","_keydown","TAB","valueToEmit","skip","correspondingChip","MatChipGridChange","MatChipGrid","ngControl","NgControl","self","controlType","_chipInput","_errorStateTracker","_uid","_ariaDescribedbyIds","stateChanges","placeholder","_placeholder","_required","control","hasValidator","Validators","shouldLabelFloat","errorStateMatcher","matcher","valueChange","errorState","parentForm","NgForm","parentFormGroup","FormGroupDirective","defaultErrorStateMatcher","ErrorStateMatcher","valueAccessor","_ErrorStateTracker","updateErrorState","registerInput","inputElement","setDescribedByIds","removeAttribute","onContainerClick","describedByIds","existing","getAttribute","split","ids","join","hasModifierKey","last","setActiveItem","_focusLastChip","UP_ARROW","DOWN_ARROW","eligibleActions","currentIndex","delta","MatFormFieldControl","MatChipInput","chipGrid","_chipGrid","addOnBlur","chipEnd","readonly","disabledInteractive","defaultOptions","formField","MAT_FORM_FIELD","inputDisabledInteractive","add","ngOnChanges","_emitChipEnd","_focus","_isSeparatorKey","input","chipInput","_onInput","clear","existingDescribedBy","key","modifiers","modifiersMatch","_getReadonlyAttribute","ɵdir","ɵɵngDeclareDirective","usesOnChanges","alias","CHIP_DECLARATIONS","MatChipsModule","NgModule","ɵmod","ɵɵngDeclareNgModule","MatRippleModule","exports","BidiModule","ɵinj","ɵɵngDeclareInjector","useValue"],"mappings":"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"}