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