HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/node_modules/@angular/material/fesm2022/chips.mjs.map
{"version":3,"file":"chips.mjs","sources":["../../../../../../src/material/chips/tokens.ts","../../../../../../src/material/chips/chip-action.ts","../../../../../../src/material/chips/chip-icons.ts","../../../../../../src/material/chips/chip.ts","../../../../../../src/material/chips/chip.html","../../../../../../src/material/chips/chip-option.ts","../../../../../../src/material/chips/chip-option.html","../../../../../../src/material/chips/chip-edit-input.ts","../../../../../../src/material/chips/chip-row.ts","../../../../../../src/material/chips/chip-row.html","../../../../../../src/material/chips/chip-set.ts","../../../../../../src/material/chips/chip-listbox.ts","../../../../../../src/material/chips/chip-grid.ts","../../../../../../src/material/chips/chip-input.ts","../../../../../../src/material/chips/module.ts","../../../../../../src/material/chips/chips_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {InjectionToken} from '@angular/core';\n\n/** 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[] | ReadonlySet<number>;\n\n  /** Wheter icon indicators should be hidden for single-selection. */\n  hideSingleSelectionIndicator?: 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\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 `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.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ENTER, SPACE} from '@angular/cdk/keycodes';\nimport {Directive, ElementRef, Inject, Input} from '@angular/core';\nimport {HasTabIndex, mixinTabIndex} from '@angular/material/core';\nimport {MAT_CHIP} from './tokens';\n\nabstract class _MatChipActionBase {\n  abstract disabled: boolean;\n}\n\nconst _MatChipActionMixinBase = mixinTabIndex(_MatChipActionBase, -1);\n\n/**\n * Section within a chip.\n * @docs-private\n */\n@Directive({\n  selector: '[matChipAction]',\n  inputs: ['disabled', 'tabIndex'],\n  host: {\n    'class': 'mdc-evolution-chip__action mat-mdc-chip-action',\n    '[class.mdc-evolution-chip__action--primary]': '_isPrimary',\n    '[class.mdc-evolution-chip__action--presentational]': '!isInteractive',\n    '[class.mdc-evolution-chip__action--trailing]': '!_isPrimary',\n    '[attr.tabindex]': '_getTabindex()',\n    '[attr.disabled]': '_getDisabledAttribute()',\n    '[attr.aria-disabled]': 'disabled',\n    '(click)': '_handleClick($event)',\n    '(keydown)': '_handleKeydown($event)',\n  },\n})\nexport class MatChipAction extends _MatChipActionMixinBase implements HasTabIndex {\n  /** Whether the action is interactive. */\n  @Input() isInteractive = true;\n\n  /** Whether this is the primary action in the chip. */\n  _isPrimary = true;\n\n  /** Whether the action is disabled. */\n  @Input()\n  get disabled(): boolean {\n    return this._disabled || this._parentChip.disabled;\n  }\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n  private _disabled = false;\n\n  /**\n   * Private API to allow focusing this chip when it is disabled.\n   */\n  @Input()\n  private _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  /**\n   * Determine the value of the tabindex attribute for this chip action.\n   */\n  protected _getTabindex(): string | null {\n    return (this.disabled && !this._allowFocusWhenDisabled) || !this.isInteractive\n      ? null\n      : this.tabIndex.toString();\n  }\n\n  constructor(\n    public _elementRef: ElementRef<HTMLElement>,\n    @Inject(MAT_CHIP)\n    protected _parentChip: {\n      _handlePrimaryActionInteraction(): void;\n      remove(): void;\n      disabled: boolean;\n      _isEditing?: boolean;\n    },\n  ) {\n    super();\n\n    if (_elementRef.nativeElement.nodeName === 'BUTTON') {\n      _elementRef.nativeElement.setAttribute('type', 'button');\n    }\n  }\n\n  focus() {\n    this._elementRef.nativeElement.focus();\n  }\n\n  _handleClick(event: MouseEvent) {\n    if (!this.disabled && this.isInteractive && 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.isInteractive &&\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.io/license\n */\n\nimport {ENTER, SPACE} from '@angular/cdk/keycodes';\nimport {Directive} from '@angular/core';\nimport {MatChipAction} from './chip-action';\nimport {MAT_CHIP_AVATAR, 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 MatChipAction {\n  /**\n   * MDC considers all trailing actions as a remove icon,\n   * but we support non-interactive trailing icons.\n   */\n  override isInteractive = false;\n\n  override _isPrimary = false;\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-mdc-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.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {\n  AfterViewInit,\n  AfterContentInit,\n  Component,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  ContentChild,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  Optional,\n  Output,\n  ViewEncapsulation,\n  ViewChild,\n  Attribute,\n  ContentChildren,\n  QueryList,\n  OnInit,\n  DoCheck,\n  inject,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {\n  CanColor,\n  CanDisable,\n  CanDisableRipple,\n  HasTabIndex,\n  MatRipple,\n  MAT_RIPPLE_GLOBAL_OPTIONS,\n  mixinColor,\n  mixinDisableRipple,\n  mixinTabIndex,\n  mixinDisabled,\n  RippleGlobalOptions,\n  MatRippleLoader,\n} from '@angular/material/core';\nimport {FocusMonitor} from '@angular/cdk/a11y';\nimport {merge, Subject, Subscription} from 'rxjs';\nimport {take} from 'rxjs/operators';\nimport {MatChipAvatar, MatChipTrailingIcon, MatChipRemove} from './chip-icons';\nimport {MatChipAction} from './chip-action';\nimport {BACKSPACE, DELETE} from '@angular/cdk/keycodes';\nimport {MAT_CHIP, MAT_CHIP_AVATAR, MAT_CHIP_REMOVE, MAT_CHIP_TRAILING_ICON} from './tokens';\n\nlet uid = 0;\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 * Boilerplate for applying mixins to MatChip.\n * @docs-private\n */\nconst _MatChipMixinBase = mixinTabIndex(\n  mixinColor(\n    mixinDisableRipple(\n      mixinDisabled(\n        class {\n          constructor(public _elementRef: ElementRef<HTMLElement>) {}\n        },\n      ),\n    ),\n    'primary',\n  ),\n  -1,\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  inputs: ['color', 'disabled', 'disableRipple', 'tabIndex'],\n  exportAs: 'matChip',\n  templateUrl: 'chip.html',\n  styleUrls: ['chip.css'],\n  host: {\n    'class': 'mat-mdc-chip',\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.tabindex]': 'role ? tabIndex : null',\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})\nexport class MatChip\n  extends _MatChipMixinBase\n  implements\n    OnInit,\n    AfterViewInit,\n    AfterContentInit,\n    CanColor,\n    CanDisableRipple,\n    CanDisable,\n    DoCheck,\n    HasTabIndex,\n    OnDestroy\n{\n  protected _document: 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: boolean;\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 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 = `mat-mdc-chip-${uid++}`;\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  /** Id of a span that contains this chip's aria description. */\n  _ariaDescriptionId = `${this.id}-aria-description`;\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  /**\n   * Determines whether or not the chip displays the remove styling and emits (removed) events.\n   */\n  @Input()\n  get removable(): boolean {\n    return this._removable;\n  }\n  set removable(value: BooleanInput) {\n    this._removable = coerceBooleanProperty(value);\n  }\n  protected _removable: boolean = true;\n\n  /**\n   * Colors the chip for emphasis as if it were selected.\n   */\n  @Input()\n  get highlighted(): boolean {\n    return this._highlighted;\n  }\n  set highlighted(value: BooleanInput) {\n    this._highlighted = coerceBooleanProperty(value);\n  }\n  protected _highlighted: boolean = 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 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  /**\n   * Reference to the MatRipple instance of the chip.\n   * @deprecated Considered an implementation detail. To be removed.\n   * @breaking-change 17.0.0\n   */\n  get ripple(): MatRipple {\n    return this._rippleLoader?.getRipple(this._elementRef.nativeElement)!;\n  }\n  set ripple(v: MatRipple) {\n    this._rippleLoader?.attachRipple(this._elementRef.nativeElement, v);\n  }\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  _rippleLoader: MatRippleLoader = inject(MatRippleLoader);\n\n  constructor(\n    public _changeDetectorRef: ChangeDetectorRef,\n    elementRef: ElementRef<HTMLElement>,\n    protected _ngZone: NgZone,\n    private _focusMonitor: FocusMonitor,\n    @Inject(DOCUMENT) _document: any,\n    @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n    @Optional()\n    @Inject(MAT_RIPPLE_GLOBAL_OPTIONS)\n    private _globalRippleOptions?: RippleGlobalOptions,\n    @Attribute('tabindex') tabIndex?: string,\n  ) {\n    super(elementRef);\n    this._document = _document;\n    this._animationsDisabled = animationMode === 'NoopAnimations';\n    if (tabIndex != null) {\n      this.tabIndex = parseInt(tabIndex) ?? this.defaultTabIndex;\n    }\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    const element = this._elementRef.nativeElement;\n    this._isBasicChip =\n      element.hasAttribute(this.basicChipAttrName) ||\n      element.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._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.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._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    if (event.keyCode === BACKSPACE || 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.primaryAction) {\n      result.push(this.primaryAction);\n    }\n\n    if (this.removeIcon) {\n      result.push(this.removeIcon);\n    }\n\n    if (this.trailingIcon) {\n      result.push(this.trailingIcon);\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  /** 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 not the next item. To work around the issue, we defer marking the chip\n          // as not focused until the next time the zone stabilizes.\n          this._ngZone.onStable\n            .pipe(take(1))\n            .subscribe(() => 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 matChipAction [isInteractive]=\"false\">\n    <span class=\"mdc-evolution-chip__graphic mat-mdc-chip-graphic\" *ngIf=\"leadingIcon\">\n      <ng-content select=\"mat-chip-avatar, [matChipAvatar]\"></ng-content>\n    </span>\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-mdc-focus-indicator\"></span>\n    </span>\n  </span>\n</span>\n\n<span\n  class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing\"\n  *ngIf=\"_hasTrailingIcon()\">\n  <ng-content select=\"mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]\"></ng-content>\n</span>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  ViewEncapsulation,\n  OnInit,\n  inject,\n} from '@angular/core';\nimport {MatChip} from './chip';\nimport {MAT_CHIP, MAT_CHIPS_DEFAULT_OPTIONS} from './tokens';\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  styleUrls: ['chip.css'],\n  inputs: ['color', 'disabled', 'disableRipple', 'tabIndex'],\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})\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()\n  get selectable(): boolean {\n    return this._selectable && this.chipListSelectable;\n  }\n  set selectable(value: BooleanInput) {\n    this._selectable = coerceBooleanProperty(value);\n    this._changeDetectorRef.markForCheck();\n  }\n  protected _selectable: boolean = true;\n\n  /** Whether the chip is selected. */\n  @Input()\n  get selected(): boolean {\n    return this._selected;\n  }\n  set selected(value: BooleanInput) {\n    this._setSelectedState(coerceBooleanProperty(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    [tabIndex]=\"tabIndex\"\n    [_allowFocusWhenDisabled]=\"true\"\n    [attr.aria-selected]=\"ariaSelected\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-describedby]=\"_ariaDescriptionId\"\n    role=\"option\">\n    <span class=\"mdc-evolution-chip__graphic mat-mdc-chip-graphic\" *ngIf=\"_hasLeadingGraphic()\">\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    <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-mdc-focus-indicator\"></span>\n    </span>\n  </button>\n</span>\n\n<span\n  class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing\"\n  *ngIf=\"_hasTrailingIcon()\">\n  <ng-content select=\"mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]\"></ng-content>\n</span>\n\n<span class=\"cdk-visually-hidden\" [id]=\"_ariaDescriptionId\">{{ariaDescription}}</span>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef, Inject} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\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  constructor(\n    private readonly _elementRef: ElementRef,\n    @Inject(DOCUMENT) private readonly _document: any,\n  ) {}\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.io/license\n */\n\nimport {ENTER} from '@angular/cdk/keycodes';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {\n  AfterViewInit,\n  Attribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  Input,\n  NgZone,\n  Optional,\n  Output,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {MAT_RIPPLE_GLOBAL_OPTIONS, RippleGlobalOptions} from '@angular/material/core';\nimport {FocusMonitor} from '@angular/cdk/a11y';\nimport {MatChip, MatChipEvent} from './chip';\nimport {MatChipEditInput} from './chip-edit-input';\nimport {takeUntil} from 'rxjs/operators';\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  styleUrls: ['chip.css'],\n  inputs: ['color', 'disabled', 'disableRipple', 'tabIndex'],\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-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($event)',\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})\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  _isEditing = false;\n\n  constructor(\n    changeDetectorRef: ChangeDetectorRef,\n    elementRef: ElementRef,\n    ngZone: NgZone,\n    focusMonitor: FocusMonitor,\n    @Inject(DOCUMENT) _document: any,\n    @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n    @Optional()\n    @Inject(MAT_RIPPLE_GLOBAL_OPTIONS)\n    globalRippleOptions?: RippleGlobalOptions,\n    @Attribute('tabindex') tabIndex?: string,\n  ) {\n    super(\n      changeDetectorRef,\n      elementRef,\n      ngZone,\n      focusMonitor,\n      _document,\n      animationMode,\n      globalRippleOptions,\n      tabIndex,\n    );\n\n    this.role = 'row';\n    this._onBlur.pipe(takeUntil(this.destroyed)).subscribe(() => {\n      if (this._isEditing && !this._editStartPending) {\n        this._onEditFinish();\n      }\n    });\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  _handleDoubleclick(event: MouseEvent) {\n    if (!this.disabled && this.editable) {\n      this._startEditing(event);\n    }\n  }\n\n  private _startEditing(event: Event) {\n    if (\n      !this.primaryAction ||\n      (this.removeIcon && 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    // Starting the editing sequence below depends on the edit input\n    // query resolving on time. Trigger a synchronous change detection to\n    // ensure that it happens by the time we hit the timeout below.\n    this._changeDetectorRef.detectChanges();\n\n    // TODO(crisbeto): this timeout shouldn't be necessary given the `detectChange` call above.\n    // Defer initializing the input so it has time to be added to the DOM.\n    setTimeout(() => {\n      this._getEditInput().initialize(value);\n      this._editStartPending = false;\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","<ng-container *ngIf=\"!_isEditing\">\n  <span class=\"mat-mdc-chip-focus-overlay\"></span>\n</ng-container>\n\n<span class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--primary\" role=\"gridcell\"\n    matChipAction\n    [tabIndex]=\"tabIndex\"\n    [disabled]=\"disabled\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-describedby]=\"_ariaDescriptionId\">\n  <span class=\"mdc-evolution-chip__graphic mat-mdc-chip-graphic\" *ngIf=\"leadingIcon\">\n    <ng-content select=\"mat-chip-avatar, [matChipAvatar]\"></ng-content>\n  </span>\n  <span class=\"mdc-evolution-chip__text-label mat-mdc-chip-action-label\" [ngSwitch]=\"_isEditing\">\n    <ng-container *ngSwitchCase=\"false\"><ng-content></ng-content></ng-container>\n\n    <ng-container *ngSwitchCase=\"true\">\n      <ng-content *ngIf=\"contentEditInput; else defaultMatChipEditInput\"\n                  select=\"[matChipEditInput]\"></ng-content>\n      <ng-template #defaultMatChipEditInput><span matChipEditInput></span></ng-template>\n    </ng-container>\n\n    <span class=\"mat-mdc-chip-primary-focus-indicator mat-mdc-focus-indicator\" aria-hidden=\"true\"></span>\n  </span>\n</span>\n\n<span\n  class=\"mdc-evolution-chip__cell mdc-evolution-chip__cell--trailing\"\n  role=\"gridcell\"\n  *ngIf=\"_hasTrailingIcon()\">\n  <ng-content select=\"mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]\"></ng-content>\n</span>\n\n<span class=\"cdk-visually-hidden\" [id]=\"_ariaDescriptionId\">{{ariaDescription}}</span>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {FocusKeyManager} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  Input,\n  OnDestroy,\n  Optional,\n  QueryList,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {HasTabIndex, mixinTabIndex} from '@angular/material/core';\nimport {merge, Observable, Subject} from 'rxjs';\nimport {startWith, switchMap, takeUntil} from 'rxjs/operators';\nimport {MatChip, MatChipEvent} from './chip';\nimport {MatChipAction} from './chip-action';\n\n/**\n * Boilerplate for applying mixins to MatChipSet.\n * @docs-private\n */\nabstract class MatChipSetBase {\n  abstract disabled: boolean;\n  constructor(_elementRef: ElementRef) {}\n}\nconst _MatChipSetMixinBase = mixinTabIndex(MatChipSetBase);\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  styleUrls: ['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\n  extends _MatChipSetMixinBase\n  implements AfterViewInit, HasTabIndex, OnDestroy\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' remove events. */\n  get chipDestroyedChanges(): Observable<MatChipEvent> {\n    return this._getChipStream(chip => chip.destroyed);\n  }\n\n  /** Whether the chip set is disabled. */\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(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  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(\n    protected _elementRef: ElementRef<HTMLElement>,\n    protected _changeDetectorRef: ChangeDetectorRef,\n    @Optional() private _dir: Directionality,\n  ) {\n    super(_elementRef);\n  }\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    if (this._chips) {\n      this._chips.forEach(chip => {\n        chip.disabled = this._disabled;\n        chip._changeDetectorRef.markForCheck();\n      });\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    if (this.tabIndex !== -1) {\n      const previousTabIndex = this.tabIndex;\n      this.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.tabIndex = previousTabIndex));\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: MatChipAction): boolean {\n    // Skip chips that the user cannot interact with. `mat-chip-set` does not permit focusing disabled\n    // chips.\n    return !action.isInteractive || 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      const chipArray = this._chips.toArray();\n      const chipIndex = chipArray.indexOf(event.chip);\n\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      if (this._isValidIndex(chipIndex) && event.chip._hasFocus()) {\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.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {MatChipAction} from './chip-action';\nimport {TAB} from '@angular/cdk/keycodes';\nimport {\n  AfterContentInit,\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 {MatChip, MatChipEvent} from './chip';\nimport {MatChipOption, MatChipSelectionChange} from './chip-option';\nimport {MatChipSet} from './chip-set';\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  styleUrls: ['chip-set.css'],\n  inputs: ['tabIndex'],\n  host: {\n    'class': 'mdc-evolution-chip-set mat-mdc-chip-listbox',\n    '[attr.role]': 'role',\n    '[tabIndex]': 'empty ? -1 : tabIndex',\n    // TODO: replace this binding with use of AriaDescriber\n    '[attr.aria-describedby]': '_ariaDescribedby || null',\n    '[attr.aria-required]': 'role ? required : null',\n    '[attr.aria-disabled]': 'disabled.toString()',\n    '[attr.aria-multiselectable]': 'multiple',\n    '[attr.aria-orientation]': 'ariaOrientation',\n    'ngSkipHydration': '',\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  /** Value that was assigned before the listbox was initialized. */\n  private _pendingInitialValue: any;\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()\n  get multiple(): boolean {\n    return this._multiple;\n  }\n  set multiple(value: BooleanInput) {\n    this._multiple = coerceBooleanProperty(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()\n  get selectable(): boolean {\n    return this._selectable;\n  }\n  set selectable(value: BooleanInput) {\n    this._selectable = coerceBooleanProperty(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()\n  get required(): boolean {\n    return this._required;\n  }\n  set required(value: BooleanInput) {\n    this._required = coerceBooleanProperty(value);\n  }\n  protected _required: boolean = false;\n\n  /** Whether checkmark indicator for single-selection options is hidden. */\n  @Input()\n  get hideSingleSelectionIndicator(): boolean {\n    return this._hideSingleSelectionIndicator;\n  }\n  set hideSingleSelectionIndicator(value: BooleanInput) {\n    this._hideSingleSelectionIndicator = coerceBooleanProperty(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    this.writeValue(value);\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    if (this._pendingInitialValue !== undefined) {\n      Promise.resolve().then(() => {\n        this._setSelectionByValue(this._pendingInitialValue, false);\n        this._pendingInitialValue = undefined;\n      });\n    }\n\n    this._chips.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\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 (this._chips) {\n      this._setSelectionByValue(value, false);\n    } else if (value != null) {\n      this._pendingInitialValue = value;\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 !action.isInteractive;\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {hasModifierKey, TAB} from '@angular/cdk/keycodes';\nimport {\n  AfterContentInit,\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  DoCheck,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Optional,\n  Output,\n  QueryList,\n  Self,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {\n  ControlValueAccessor,\n  FormGroupDirective,\n  NgControl,\n  NgForm,\n  Validators,\n} from '@angular/forms';\nimport {CanUpdateErrorState, ErrorStateMatcher, mixinErrorState} from '@angular/material/core';\nimport {MatFormFieldControl} from '@angular/material/form-field';\nimport {MatChipTextControl} from './chip-text-control';\nimport {Observable, Subject, merge} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {MatChipEvent} from './chip';\nimport {MatChipRow} from './chip-row';\nimport {MatChipSet} from './chip-set';\nimport {Directionality} from '@angular/cdk/bidi';\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 * Boilerplate for applying mixins to MatChipGrid.\n * @docs-private\n */\nclass MatChipGridBase extends MatChipSet {\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  constructor(\n    elementRef: ElementRef,\n    changeDetectorRef: ChangeDetectorRef,\n    dir: Directionality,\n    public _defaultErrorStateMatcher: ErrorStateMatcher,\n    public _parentForm: NgForm,\n    public _parentFormGroup: FormGroupDirective,\n    /**\n     * Form control bound to the component.\n     * Implemented as part of `MatFormFieldControl`.\n     * @docs-private\n     */\n    public ngControl: NgControl,\n  ) {\n    super(elementRef, changeDetectorRef, dir);\n  }\n}\nconst _MatChipGridMixinBase = mixinErrorState(MatChipGridBase);\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  styleUrls: ['chip-set.css'],\n  inputs: ['tabIndex'],\n  host: {\n    'class': 'mat-mdc-chip-set mat-mdc-chip-grid mdc-evolution-chip-set',\n    '[attr.role]': 'role',\n    '[tabIndex]': '_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 _MatChipGridMixinBase\n  implements\n    AfterContentInit,\n    AfterViewInit,\n    CanUpdateErrorState,\n    ControlValueAccessor,\n    DoCheck,\n    MatFormFieldControl<any>,\n    OnDestroy\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\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()\n  override get disabled(): boolean {\n    return this.ngControl ? !!this.ngControl.disabled : this._disabled;\n  }\n  override set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n    this._syncChipsState();\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  get id(): string {\n    return this._chipInput.id;\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()\n  get required(): boolean {\n    return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n  }\n  set required(value: BooleanInput) {\n    this._required = coerceBooleanProperty(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() override errorStateMatcher: ErrorStateMatcher;\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  constructor(\n    elementRef: ElementRef,\n    changeDetectorRef: ChangeDetectorRef,\n    @Optional() dir: Directionality,\n    @Optional() parentForm: NgForm,\n    @Optional() parentFormGroup: FormGroupDirective,\n    defaultErrorStateMatcher: ErrorStateMatcher,\n    @Optional() @Self() ngControl: NgControl,\n  ) {\n    super(\n      elementRef,\n      changeDetectorRef,\n      dir,\n      defaultErrorStateMatcher,\n      parentForm,\n      parentFormGroup,\n      ngControl,\n    );\n    if (this.ngControl) {\n      this.ngControl.valueAccessor = this;\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  override ngAfterViewInit() {\n    super.ngAfterViewInit();\n\n    if (!this._chipInput && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw Error('mat-chip-grid must be used in combination with matChipInputFor.');\n    }\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\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      // 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 if (this._chips.length) {\n      this._keyManager.setFirstItemActive();\n    }\n\n    this.stateChanges.next();\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    this._chipInput?.setDescribedByIds(ids);\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  /** 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    if (event.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 (this._keyManager.activeItem) {\n          this._keyManager.setActiveItem(this._keyManager.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      super._handleKeydown(event);\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.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {BACKSPACE, hasModifierKey} from '@angular/cdk/keycodes';\nimport {\n  AfterContentInit,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Optional,\n  Output,\n} from '@angular/core';\nimport {MatFormField, MAT_FORM_FIELD} from '@angular/material/form-field';\nimport {MatChipsDefaultOptions, MAT_CHIPS_DEFAULT_OPTIONS} 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// Increasing integer for generating unique ids.\nlet nextUniqueId = 0;\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    '(keyup)': '_keyup($event)',\n    '(blur)': '_blur()',\n    '(focus)': '_focus()',\n    '(input)': '_onInput()',\n    '[id]': 'id',\n    '[attr.disabled]': 'disabled || 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.required]': '_chipGrid && _chipGrid.required || null',\n  },\n})\nexport class MatChipInput implements MatChipTextControl, AfterContentInit, OnChanges, OnDestroy {\n  /** Used to prevent focus moving to chips while user is holding backspace */\n  private _focusLastChipOnBackspace: boolean;\n\n  /** Whether the control is focused. */\n  focused: boolean = false;\n  _chipGrid: MatChipGrid;\n\n  /** Register input for chip list */\n  @Input('matChipInputFor')\n  set chipGrid(value: MatChipGrid) {\n    if (value) {\n      this._chipGrid = value;\n      this._chipGrid.registerInput(this);\n    }\n  }\n\n  /**\n   * Whether or not the chipEnd event will be emitted when the input is blurred.\n   */\n  @Input('matChipInputAddOnBlur')\n  get addOnBlur(): boolean {\n    return this._addOnBlur;\n  }\n  set addOnBlur(value: BooleanInput) {\n    this._addOnBlur = coerceBooleanProperty(value);\n  }\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[] | ReadonlySet<number>;\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 = `mat-mdc-chip-list-input-${nextUniqueId++}`;\n\n  /** Whether the input is disabled. */\n  @Input()\n  get disabled(): boolean {\n    return this._disabled || (this._chipGrid && this._chipGrid.disabled);\n  }\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n  }\n  private _disabled: boolean = false;\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(\n    protected _elementRef: ElementRef<HTMLInputElement>,\n    @Inject(MAT_CHIPS_DEFAULT_OPTIONS) defaultOptions: MatChipsDefaultOptions,\n    @Optional() @Inject(MAT_FORM_FIELD) formField?: MatFormField,\n  ) {\n    this.inputElement = this._elementRef.nativeElement as HTMLInputElement;\n    this.separatorKeyCodes = defaultOptions.separatorKeyCodes;\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  ngAfterContentInit(): void {\n    this._focusLastChipOnBackspace = this.empty;\n  }\n\n  /** Utility method to make host definition/tests more clear. */\n  _keydown(event?: KeyboardEvent) {\n    if (event) {\n      // To prevent the user from accidentally deleting chips when pressing BACKSPACE continuously,\n      // We focus the last chip on backspace only after the user has released the backspace button,\n      // And the input is empty (see behaviour in _keyup)\n      if (event.keyCode === BACKSPACE && this._focusLastChipOnBackspace) {\n        this._chipGrid._focusLastChip();\n        event.preventDefault();\n        return;\n      } else {\n        this._focusLastChipOnBackspace = false;\n      }\n    }\n\n    this._emitChipEnd(event);\n  }\n\n  /**\n   * Pass events to the keyboard manager. Available here for tests.\n   */\n  _keyup(event: KeyboardEvent) {\n    // Allow user to move focus to chips next time he presses backspace\n    if (!this._focusLastChipOnBackspace && event.keyCode === BACKSPACE && this.empty) {\n      this._focusLastChipOnBackspace = true;\n      event.preventDefault();\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._focusLastChipOnBackspace = this.empty;\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)) {\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    this._focusLastChipOnBackspace = true;\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) {\n    return !hasModifierKey(event) && new Set(this.separatorKeyCodes).has(event.keyCode);\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ENTER} from '@angular/cdk/keycodes';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {ErrorStateMatcher, MatCommonModule, MatRippleModule} from '@angular/material/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, 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';\n\nconst CHIP_DECLARATIONS = [\n  MatChip,\n  MatChipAvatar,\n  MatChipEditInput,\n  MatChipGrid,\n  MatChipInput,\n  MatChipListbox,\n  MatChipOption,\n  MatChipRemove,\n  MatChipRow,\n  MatChipSet,\n  MatChipTrailingIcon,\n];\n\n@NgModule({\n  imports: [MatCommonModule, CommonModule, MatRippleModule],\n  exports: [MatCommonModule, CHIP_DECLARATIONS],\n  declarations: [MatChipAction, 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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.MatChipAction","i1","i2.MatChipAction","i4.MatChipEditInput","i2"],"mappings":"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"}